Dean Herbert
fff2b57905
Tidy up and document FrameStabilityContainer
2022-08-15 19:28:12 +09:00
Dean Herbert
9bc2e91de0
Fix incorrect handling of reference clocks when no parent IGameplayClock
is available
2022-08-15 19:19:19 +09:00
Dean Herbert
828b6f2c30
Remove unnecessary setClock
shenanigans
2022-08-15 19:19:19 +09:00
Dean Herbert
27569e2ed5
Remove FrameStableClock
(and redirect usages to FrameStabilityContainer
)
2022-08-15 19:19:19 +09:00
Dean Herbert
c8764cb333
Move all usage of GameplayClock
to IGameplayClock
2022-08-15 18:30:53 +09:00
Dean Herbert
95c1b488a7
Add non-null assertion to FrameStabilityContainer
2022-08-15 18:08:49 +09:00
Nao
c940f5abcb
Merge branch 'master' into ruleset-localization
2022-08-14 15:17:44 -04:00
naoei
45e9eda9e7
Localise hit result name
2022-08-14 14:57:02 -04:00
Ryuki
2aa3a1b50d
Rename all "KeysPerSecond" usages to "ClicksPerSecond"
2022-08-14 20:12:11 +02:00
Ryuki
9dc806506e
Make ActionListener
and KeysPerSecondCalculator
not rely on events to add timestamps
2022-08-14 19:31:14 +02:00
Dan Balasescu
9d1b0b5836
Revert sealing
2022-08-12 22:32:27 +09:00
Dean Herbert
e5e9841652
Apply multiple other mod debuffs as decided in pull request discussion
2022-08-12 18:58:09 +09:00
Dean Herbert
ac4213ecee
Adjust relax mod multiplayer to 0.5x
...
Has previously been discussed internally. Probably good to get this out
before the next full reprocess of scores server-side.
The multiplier here was @smoogipoo's suggested value. I'd be willing to
go lower if this is seen at too high, but it should be a round number to
make it easy for users to understand the max score available to them.
2022-08-12 12:30:13 +09:00
Ryuki
9b252b1d81
Make KeysPerSecondCalculator
dependency in HUDOverlay
nullable
2022-08-11 11:58:30 +02:00
Ryuki
3c6461b9e4
Remove KPS acronym usage
2022-08-11 10:01:39 +02:00
naoei
1e356f6137
Revert localisation for GetDisplayNameForHitResult
...
Came across an issue where `LeaderboardScoreTooltip` attempts to capitalize all letters for the `displayName`.
Unsure if I should completely ignore it and localise it anyway.
2022-08-10 16:03:59 -04:00
naoei
60dae70a18
Change mod description type to LocalisableString
2022-08-10 15:54:48 -04:00
naoei
8cb2e11766
Change most ruleset-accessible string types to Localisable strings
2022-08-10 15:51:11 -04:00
Dan Balasescu
f9c6dc314b
Merge pull request #19678 from peppy/fix-file-comparisons-many-places
...
Fix audio track not correctly advancing when changing between certain beatmaps
2022-08-10 20:38:14 +09:00
Dean Herbert
ac99c1ad69
Migrate the majority of existing file lookups to use new extension methods
2022-08-10 16:01:16 +09:00
its5Q
abca3d1b2a
Prefix common strings for context
2022-08-10 00:35:19 +10:00
Ryuki
b52a07c16a
Use DI to provide dependencies for KPS Calculator and improve input
...
gathering
KPS Calculator now uses DI to retrieve the clocks. Using `HUDOverlay` it
is now cached for `KeysPerSecondCounter`s to resolve it. This also
allows to make an "Attach" flow like `KeyCounter`.
2022-08-08 21:54:06 +02:00
its5Q
5080d62e77
Add missing localisation for settings enums
2022-08-08 21:51:23 +10:00
Dan Balasescu
802dc90cb1
Adjust using directives for vertices
2022-08-05 20:37:33 +09:00
Dan Balasescu
b4e55f7309
Apply IRenderer changes
2022-08-02 19:50:57 +09:00
Dan Balasescu
dc49862466
Merge branch 'irenderer-shaders' into irenderer-textures
2022-08-02 19:25:24 +09:00
Dan Balasescu
a2a913ab52
Merge branch 'irenderer-batches' into irenderer-textures
2022-08-02 19:25:08 +09:00
Bartłomiej Dach
cbabc4886c
Convert ModPreset
to realm object
2022-07-31 22:10:15 +02:00
Dan Balasescu
e06f39a69f
Apply IRenderer shader changes
2022-07-30 01:29:11 +09:00
Dan Balasescu
09979d44aa
Apply DrawNode batching changes
2022-07-29 23:32:09 +09:00
Dan Balasescu
155dac55d0
Apply DrawNode parameter changes
2022-07-29 22:33:34 +09:00
Dan Balasescu
ce694123eb
Move spectator begin/end playing to SubmittingPlayer
2022-07-28 20:44:04 +09:00
Dean Herbert
ef10145d6f
Rename MenuCursorContainer
and clean up code
2022-07-26 14:11:52 +09:00
Bartłomiej Dach
d0e15d04cc
Merge branch 'master' into mod-overlay/preset-panel
2022-07-22 19:23:09 +02:00
Dan Balasescu
d9105c9785
Merge pull request #19272 from peppy/beatmap-background-reprocessing
...
Add background beatmap processing
2022-07-22 20:33:26 +09:00
Bartłomiej Dach
de0a076eb6
Add model class for mod presets
2022-07-21 23:29:21 +02:00
Dean Herbert
68f28ff660
Add last applied version to RulesetInfo
2022-07-21 18:15:25 +09:00
Dean Herbert
aca19a005e
Add versioning to difficulty calculators
2022-07-21 18:15:25 +09:00
Salman Ahmed
a97170a272
Keep Rank
bindable enabled on score fail
2022-07-21 08:16:17 +03:00
Salman Ahmed
9df49db45f
Include bonus/ignore judgements in statistics fill logic
2022-07-21 08:13:09 +03:00
Salman Ahmed
ad09e728fd
Move Passed
assignment inside FailScore
2022-07-21 08:12:06 +03:00
Salman Ahmed
c1bcbd9c8a
Fix fail score not handling bonus/tick-only beatmaps
2022-07-21 07:20:59 +03:00
Salman Ahmed
0f0b19da4a
Populate score with remaining "miss" statistics on fail/exit
2022-07-21 06:01:36 +03:00
Salman Ahmed
c4089b71bd
Store maximum score results from simulated autoplay
2022-07-21 06:00:41 +03:00
Salman Ahmed
6ce6f6f7df
Merge branch 'master' into remove-score-multiplier-on-custom-mod-settings
2022-07-20 08:57:43 +03:00
Dan Balasescu
ebb9861377
Merge branch 'master' into remove-nullable-disable-in-the-mods
2022-07-20 13:28:28 +09:00
Salman Ahmed
4210ec6502
Merge branch 'master' into remove-score-multiplier-on-custom-mod-settings
2022-07-19 19:21:26 +03:00
為什麼
317558f876
Mark the shader as non-nullable because shader should always has the value.
...
And initialize the breaks to avoid get the null instance.
2022-07-19 20:39:41 +08:00
為什麼
3af093cb27
Remove the null check because bindable should always have the value.
2022-07-19 20:39:41 +08:00
為什麼
ce1bb206c8
Initialize some bindables for prevent get the null instance.
2022-07-19 20:39:41 +08:00
andy840119
1f9f2b413e
Remove the nullable disable annotation.
...
Also, mark as nullable for some properties.
2022-07-19 20:39:41 +08:00
Salman Ahmed
8f80a22ef9
Fix osu! and catch hitobjects no longer scaled to 1 by default
2022-07-19 07:00:13 +03:00
Salman Ahmed
5ddb5a3d74
Introduce HitObjectProperty<T>
2022-07-19 05:39:10 +03:00
Dean Herbert
51f91fe62e
Update naming
2022-07-18 16:17:20 +09:00
Dean Herbert
eddf106f7c
Merge branch 'master' into score-country-storage
2022-07-18 16:12:40 +09:00
Salman Ahmed
6bfa5e53e0
Add property for whether mod uses default configuration
2022-07-18 07:29:03 +03:00
NotGumballer91
028653eb97
Update ModAdaptiveSpeed.cs
2022-07-18 00:10:49 +08:00
NotGumballer91
1caab78bdc
Update ModAutoplay.cs
2022-07-18 00:09:31 +08:00
Salman Ahmed
4e7156cee8
Store user country on databased scores
2022-07-16 06:39:05 +03:00
Dean Herbert
8dbe24fd7c
Simplify colour assigning logic and remove system mod colour for now
2022-07-12 14:36:50 +09:00
為什麼
8e1ed1c621
Mark CreateHitObjectComposer() accept null.
...
And add the null check in the test case.
2022-07-10 10:15:27 +08:00
為什麼
57c6763556
Mark the CreateBeatmapProcessor()
as nullable.
...
Also, should add the null check in the working beatmap.
2022-07-10 10:15:27 +08:00
為什麼
d39f53f1f0
Mark CreateConfig()
return type as nullable because it's not required all ruleset to implement.
...
Also, remove nullable disable annotation for all using classes.
Setting store can be nullable because `RulesetConfigManager()` can accept null setting store.
2022-07-10 10:15:27 +08:00
為什麼
857377e145
Move CreateConvertibleReplayFrame() into legacy ruleset interface because technically only legacy ruleset use it to convert the legacy frame.
...
But seems some of the customized ruleset use it for save the replay frame.
2022-07-10 10:15:27 +08:00
為什麼
e67cb4c905
Mark create beatmap verifier as nullable because seems it's not requirement to be implemented.
2022-07-10 10:10:43 +08:00
為什麼
4a503bab0a
Remove unnecessary attribute.
2022-07-10 10:10:43 +08:00
為什麼
855debd5f6
Remove nullable disable annotation and mark some return value as nullable.
2022-07-10 09:29:17 +08:00
Adam Baker
7ced84b7ef
Replace switch statement with ForModType
...
In order to make `highlightedColour` dependent on the mod type color, the color is converted to an `osu.Framework.Graphics.Colour4` and calls `Lighten`.
2022-07-08 03:23:58 -05:00
Adam Baker
89f1c75f7a
Update mod icon colors
2022-07-07 21:57:18 -05:00
andy840119
59e3d4b9e5
Remove the nullable disable annotation in the Ruleset.Filter namespace.
2022-07-03 21:00:54 +08:00
andy840119
ea573f314e
Remove the nullable disable annotation in the Rulesets.Replays namespace in the osu.game project.
2022-07-02 13:08:25 +08:00
Dan Balasescu
edc4ace17e
Attach DT with NC, SD with PF, and Cinema with Autoplay
2022-06-30 11:52:30 +09:00
Dean Herbert
6c64cea057
Catch a second location
2022-06-29 18:56:15 +09:00
Dean Herbert
b092e6937a
Guard against ruleset icon creation failures to avoid whole game death
2022-06-29 18:51:07 +09:00
Dan Balasescu
2989803b71
Merge branch 'master' into speed-acc-scaling
2022-06-29 16:15:20 +09:00
Joseph Madamba
aacded0ecf
Fix difficulty adjust settings having more padding on sliders
2022-06-28 07:33:05 -07:00
Dan Balasescu
0fd2c010e5
Remove NRT disables from attributes classes
2022-06-27 16:07:15 +09:00
Dan Balasescu
0579780bb8
Add IBeatmapOnlineInfo parameter and use to extract more data
2022-06-27 16:07:15 +09:00
Dean Herbert
31a447fda0
Update parameter discards
2022-06-24 21:26:19 +09:00
Dean Herbert
30eebf3511
Merge branch 'master' into c-sharp-10
2022-06-24 21:22:33 +09:00
Bartłomiej Dach
26c5b59f6d
Replace usages of string.To{Lower,Upper}()
2022-06-24 11:57:45 +02:00
Dean Herbert
f71f6302fd
Remove unnecessary null
casts
2022-06-24 14:50:11 +09:00
Dan Balasescu
a7de43ade6
Add attribute ID
2022-06-21 19:31:45 +09:00
Dan Balasescu
e0c82d11ab
Convert == usages to ReferenceEquals
2022-06-20 16:56:19 +09:00
Dean Herbert
bd5037fcad
Fix new hitobject placements not taking on the existing sample settings
...
Similar to velocity / difficulty points, a user expectation is that
volume and sample settings will be transferred to newly placed objects
from the most recent one.
Closes https://github.com/ppy/osu/issues/18742 .
2022-06-18 13:49:59 +09:00
Dan Balasescu
fd9902e816
Manual #nullable processing
2022-06-17 16:38:35 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Dan Balasescu
ea191da496
Merge pull request #18728 from peppy/fix-unsafe-sample-playback
...
Fix unsafe sample playback in `GameplaySampleTriggerSource`
2022-06-17 12:26:46 +09:00
Dean Herbert
ec53d87c30
Fix unsafe sample playback in GameplaySampleTriggerSource
...
Resolves https://github.com/ppy/osu/issues/18727 .
Added delay from `Schedule` should be minimal as it is always called
from the `Update` thread (input propagation) anyway.
2022-06-16 16:04:57 +09:00
Bartłomiej Dach
30382b0445
Fill out GetModsFor()
xmldoc and annotate items as non-null
2022-06-15 17:40:15 +02:00
Gabe Livengood
6e64a8f55e
use event to trigger failure
2022-06-10 13:13:35 -04:00
Gabe Livengood
21c5499da1
remove arbitrary from method name
2022-06-10 13:11:17 -04:00
Gabe Livengood
4b73c423bd
don't specify icon
2022-06-09 18:58:22 -04:00
Dan Balasescu
6d2a2ba7d6
Rename Position -> Index
2022-06-09 18:49:11 +09:00
Dan Balasescu
f0ef2e610e
Merge branch 'master' into dho
2022-06-09 18:29:14 +09:00
Gabe Livengood
99dc2fbc3e
specify culture
2022-06-09 00:15:15 -04:00
Gabe Livengood
fdbec4f8c0
display tooltip accuracy as percentage
2022-06-08 23:44:34 -04:00
Gabe Livengood
dc75d55f72
allow modfailcondition to arbitrarily trigger fail
2022-06-08 14:02:15 -04:00
Gabe Livengood
a805f78909
Merge branch 'master' into mod-accuracy-challenge
2022-06-06 12:11:47 -04:00
Gabe Livengood
6710df94a7
change max accuracy to 99%
2022-06-06 12:05:45 -04:00
Dan Balasescu
6351f652a2
Fix combo starting at 0 when spectating
2022-06-06 17:56:25 +09:00
Dan Balasescu
a638392e81
Rename member
2022-06-02 16:35:50 +09:00
Dan Balasescu
055845d4f5
Throw exception on access before ApplyBeatmap()
2022-06-02 16:34:45 +09:00
Dan Balasescu
e551e48697
Use ScoreInfo overload in more places
2022-06-02 11:01:46 +09:00
Dan Balasescu
425390e13b
Refactor to reduce nested conditions
2022-06-01 09:54:47 +09:00
Dan Balasescu
50c3dfca31
Apply code reviews
2022-06-01 09:54:47 +09:00
Dan Balasescu
1e0ee1b214
Expose MaximumScoringValues for user consumption
2022-05-31 19:49:37 +09:00
Dan Balasescu
93240073a6
Rename field + rewrite xmldoc a bit
2022-05-31 19:40:07 +09:00
Dan Balasescu
28d8799e11
Add overloads to + document + expose ExtractScoringValues
2022-05-31 19:40:07 +09:00
Dan Balasescu
d6d56ee22d
Fix unintentional truncation
2022-05-31 19:40:07 +09:00
Dan Balasescu
44ca350822
Reset minimal scoring values from frames
2022-05-31 19:40:07 +09:00
Dan Balasescu
20988be6bb
Fix incorrect value
2022-05-31 19:40:07 +09:00
Dan Balasescu
6ccdb61853
Use new ComputeScore() overload in more cases
2022-05-31 19:40:02 +09:00
Dan Balasescu
2289812801
Add method to compute score from ScoringValues
2022-05-31 19:39:53 +09:00
Dan Balasescu
a809a19eec
Remove getBonusScore()
2022-05-31 19:39:42 +09:00
Dan Balasescu
d0e3e50ca7
Extract score statistics directly into ScoringValues
2022-05-31 19:39:42 +09:00
Dan Balasescu
af0f934e1a
Move raw ScoreProcessor values into ScoringValues struct
2022-05-31 19:39:38 +09:00
Dan Balasescu
132c94c1b5
Remove Ruleset parameter from ResetFromReplayFrame()
2022-05-31 17:16:23 +09:00
Bartłomiej Dach
e511c1dfff
Merge branch 'master' into use-normalised-precise-scrolling
2022-05-27 16:55:13 +02:00
apollo-dw
66a6467403
Pass object position to the object
2022-05-26 19:26:14 +01:00
Gabe Livengood
58d4aeb4fb
add accuracy calculation comment
2022-05-25 15:11:06 -04:00
Gabe Livengood
5944a15c30
review pass eins
2022-05-24 20:04:57 -04:00
apollo
bf35ded871
Correct operation
...
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-05-24 17:06:11 +01:00
apollo-dw
1ef711de41
Return null for out of range objects
2022-05-24 16:40:24 +01:00
apollo-dw
30b9e0e7ab
Use object list size for object position
2022-05-24 16:30:25 +01:00
Gabe Livengood
dde0756bed
add accuracy challenge mod
2022-05-24 10:23:44 -04:00
Dean Herbert
17206bbebf
Update screen padding and colouring to better match new designs
2022-05-24 18:43:22 +09:00
Dan Balasescu
9259aa94f1
Fix Catmull slider parsing with duplicate initial point
2022-05-24 11:47:42 +09:00
Susko3
88217e0c98
Adjust ScrollDelta
usages to account for normalised IsPrecise
values
2022-05-23 20:22:27 +02:00
apollo-dw
903c4f7b3d
Merge remote-tracking branch 'master/master' into dho
2022-05-23 13:39:04 +01:00
apollo-dw
d054e404da
Set object list to read-only
2022-05-23 13:10:42 +01:00
Dean Herbert
87947c6ef0
Merge pull request #18340 from smoogipoo/hp-ratio-improvements
...
Adjust HP drain and recoveries to closer match osu-stable
2022-05-23 15:19:42 +09:00
apollo-dw
40f560d7d0
Remove internal process method
2022-05-22 21:45:27 +01:00
apollo-dw
26985ca8af
Store hitobject history in the hitobject
2022-05-22 16:26:22 +01:00
Dean Herbert
eabf578282
Use interface to convey beat sync information
2022-05-22 22:44:54 +09:00
Dan Balasescu
b29172ea45
Increase HP lost for misses
2022-05-20 17:53:14 +09:00
Dean Herbert
2e21d75b10
Move metronome into own class and rename to avoid conflict with mod sounds
2022-05-20 17:30:04 +09:00
Dan Balasescu
3fdff7bbcb
Make Meh judgements not drain HP
2022-05-20 15:36:30 +09:00
Dan Balasescu
64a371638e
Merge pull request #18236 from peppy/snap-unification
...
Add `enum` to snap method as alternative to multiple nested invocations
2022-05-20 11:35:05 +09:00
Dean Herbert
b3d6f76cfa
Add "None" snap type to fix flags not working correctly
2022-05-19 15:57:17 +09:00
Dan Balasescu
731f0960ec
Don't merge adjacent legacy Catmull segments
2022-05-18 17:16:24 +09:00
Dan Balasescu
5ad9692467
Adjust minimum health targets to match osu-stable
2022-05-17 19:24:51 +09:00
Dean Herbert
51744e428f
Merge branch 'master' into editor-readability
2022-05-12 22:56:55 +09:00
Dean Herbert
c63e65c677
Don't hide SelectionBlueprint
s themselves, only their children
2022-05-12 19:26:13 +09:00
Dean Herbert
10e41d018a
Fix toggling hit animations on the editor not applying immediately
2022-05-12 17:36:35 +09:00
Dean Herbert
f7e055dbfe
Move mania note height offset application to a much more suitable location
2022-05-12 16:19:07 +09:00
Dean Herbert
c0abce918f
Add enum
to snap method as alternative to mutliple nested invocations
2022-05-12 16:19:07 +09:00
Salman Ahmed
82b784ce5a
Change IApplicableToSample
to receive adjustable component instead
...
Done for consistency with `IApplicableToTrack`.
2022-05-10 18:06:03 +03:00
Salman Ahmed
4f5001704e
Change IApplicableToTrack
to receive adjustable component instead
2022-05-10 18:06:03 +03:00
Salman Ahmed
bbbecbb6b7
Apply time-ramping adjustment using clock instead of track
2022-05-10 18:06:03 +03:00
Dean Herbert
ab1d46b71c
Merge pull request #17270 from frenzibyte/multiplayer-disable-adaptive-speed
...
Disable mod "Adaptive Speed" in multiplayer
2022-05-09 17:31:47 +09:00
Salman Ahmed
144d33f0d2
Merge branch 'master' into distance-snapping-test
2022-05-06 17:29:27 +03:00
Dean Herbert
c6bc6be128
Fix toolbox expand being interrupted by gaps between groups
2022-05-06 19:06:40 +09:00
Dean Herbert
641584a049
Merge branch 'master' into multiplayer-disable-adaptive-speed
2022-05-06 14:00:44 +09:00
Dean Herbert
5029710de7
Merge branch 'master' into distance-snapping-test
2022-05-05 22:00:40 +09:00
Salman Ahmed
43c9058d09
Fix wrong obsolete message
2022-05-05 14:39:05 +03:00
Salman Ahmed
8501a41619
Bring back separate bool properties as non-cascading
2022-05-05 14:37:38 +03:00
Dan Balasescu
39d10487b9
Merge branch 'master' into snapping-tidy-distance
2022-05-05 19:55:55 +09:00
Dean Herbert
e83604a1fc
Merge branch 'master' into cache-at-interface
2022-05-05 18:54:24 +09:00
Dean Herbert
7b71fb860b
Expose DistanceSpacingMultiplier
for test usage
2022-05-05 18:49:12 +09:00
Dean Herbert
947a68006a
Add note about IDistanceSnapProvider
not multiplying DistanceSpacing
itself
2022-05-05 17:50:17 +09:00
Dean Herbert
c3d2648f85
Reword weird xmldoc
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-05-05 17:07:05 +09:00
Dean Herbert
4226583afd
Merge branch 'cache-at-interface'
2022-05-05 16:52:03 +09:00
Dean Herbert
19cf9dc20b
Merge branch 'snapping-tidy-distance'
2022-05-05 16:51:32 +09:00
Dean Herbert
5a1ac71d90
Remove unnecessary type specification in HitObjectComposer
's caching
2022-05-05 16:44:37 +09:00
Dean Herbert
1c6a233cc0
Move snap provider caching to interfaces
2022-05-05 16:44:37 +09:00
Dean Herbert
b411b59006
Move IPlacementHandler
caching to interface
2022-05-05 16:43:02 +09:00
Dean Herbert
977e6d8a80
Add xmldoc for IDistanceSnapProvider
and related properties
2022-05-05 16:25:45 +09:00
Dean Herbert
1fce0da331
Reword slightly, to allow better conformity with IDistanceSnapProvider
2022-05-05 16:04:34 +09:00
Dean Herbert
f6fc926f1a
Add xmldoc and rename methods in IPositionSnapProvider
for legibility
2022-05-05 15:58:21 +09:00
Salman Ahmed
8488a29e9e
Renew obsoletion date
2022-05-04 17:22:11 +03:00
Salman Ahmed
20e277d2e5
Apply proposed naming changes
2022-05-04 17:12:17 +03:00
Salman Ahmed
e9ecf26b6a
Merge branch 'master' into multiplayer-disable-adaptive-speed
2022-05-04 17:12:03 +03:00
Bartłomiej Dach
bf80dd864c
Merge branch 'master' into fix-editor-toolbox-click-through
2022-05-04 11:57:32 +02:00
Dean Herbert
4e0f899159
Rename value changed variable
2022-05-04 18:13:30 +09:00
Salman Ahmed
f5d4f02200
Use ToUpper
for key binding text
2022-05-04 11:59:29 +03:00
Salman Ahmed
0b8fd2e39f
Improve distance spacing toast inline with key binding changes
2022-05-04 11:43:19 +03:00
Dean Herbert
b325f0ee0b
Combine editor toolbox container implementation and fix input blocking
...
Until now, toolbox scroll areas would block input from arriving behind
them, even when no visible element was clicked.
In addition, clicking on a button inside a toolbox would still send a
`MouseDown` event to things behind it. Specifically, the editor's
`HitObjectComposer` would receive these events and also place objects
when the user does not expect them to be placed.
This fixes another regression that occurred due to `ScrollContainer`s no
longer blocking input theirselves.
2022-05-04 17:41:30 +09:00
Salman Ahmed
3d2072498e
Merge branch 'master' into distance-spacing-osd
2022-05-04 11:41:12 +03:00
Dean Herbert
a66743266f
Remove unused ScrollingToolboxGroup
class
2022-05-04 17:20:58 +09:00
Salman Ahmed
6f52a0b5eb
Merge branch 'master' into distance-spacing-osd
2022-05-04 11:10:18 +03:00
Dean Herbert
40f1ceca0a
Merge branch 'master' into distance-spacing-keybinding
2022-05-04 16:34:01 +09:00
Salman Ahmed
504ca5be31
Fix scrolling no longer adjusting distance spacing by amount
2022-05-04 09:52:33 +03:00
Salman Ahmed
813d6fed48
Split activation keybind to separate increase/decrease keybinds
2022-05-04 09:00:54 +03:00
Salman Ahmed
0dd2e1652c
Mark OnScreenDisplay
dependency as nullable
2022-05-03 11:15:28 +03:00
Salman Ahmed
b8287f3687
Display toast notification on editor distance spacing change
2022-05-03 10:30:32 +03:00
Salman Ahmed
521ec1a225
Add keybind for distance grid spacing activation
2022-05-03 10:15:24 +03:00
Dan Balasescu
637f817696
Ignore zero-sections on a per-case basis
2022-05-03 16:06:20 +09:00
Dan Balasescu
a555c47212
Reduce sorting complexity in worst-case of diffcalc
2022-05-03 15:02:57 +09:00
Dean Herbert
faeefc5e18
Merge pull request #16576 from frenzibyte/osu-distance-spacing
...
Add "distance spacing" support in editor for osu! ruleset
2022-05-03 12:15:18 +09:00
Salman Ahmed
fef94d49f4
Revert "Convert data type of DistanceSpacing
to float"
...
This reverts commit 7aaa88cac2
.
2022-04-29 08:02:07 +03:00
Salman Ahmed
abb88b0907
Move distance spacing application to DistanceSnapGrid
2022-04-28 10:54:38 +03:00
Salman Ahmed
7aaa88cac2
Convert data type of DistanceSpacing
to float
2022-04-28 10:24:36 +03:00
Salman Ahmed
2e8372fe90
Minor cleanup
...
Just from reading diff.
2022-04-28 07:14:43 +03:00
Salman Ahmed
bfc6bfc91b
Let CatchHitObjectComposer
inherit from DistancedHitObjectComposer
and hide control
2022-04-28 06:44:50 +03:00
Salman Ahmed
835898dd30
Introduce DistancedHitObjectComposer
and supersede OsuToolboxComposite
2022-04-28 06:44:50 +03:00
Salman Ahmed
59cf3ff50f
Move distancing methods from IPositionSnapProvider
to IDistanceSnapProvider
2022-04-28 05:48:45 +03:00
Salman Ahmed
cccc9d7d39
Rename method to better reflect what it's doing
2022-04-27 00:03:48 +03:00
Salman Ahmed
31f64b1381
Fix HealthProcessor
fail conditions not handling multiple invocations
2022-04-26 23:27:03 +03:00
Salman Ahmed
7d32490198
Change score accuracy grading logic to be inclusive
2022-04-26 04:55:27 +03:00
Salman Ahmed
8ed39009fd
Encapsulate distance spacing control handling to a "distance toolbox composite"
...
Encapsulated in a way which can allow further extensibility for the
right-side area of toolboxes.
2022-04-24 08:33:03 +03:00
Salman Ahmed
70a93c0e7e
Move DistanceSpacingMultiplier
bindable to its own IDistanceSnapProvider
interface
2022-04-24 08:33:00 +03:00
Salman Ahmed
4f8f27a58b
Merge branch 'master' into osu-distance-spacing
2022-04-24 05:23:30 +03:00
Dean Herbert
9c68b3edc5
Merge branch 'master' into fix-spectator-seeks
2022-04-13 12:33:41 +09:00
Bartłomiej Dach
6630b38c08
Make all ModRateAdjust
implementations incompatible with each other
2022-04-07 22:38:46 +02:00
Dean Herbert
a3695c7e97
Merge branch 'master' into fix-spectator-seeks
2022-04-06 12:58:43 +09:00
Dan Balasescu
40b6f3ff0a
Rename method to CalculateAllLegacyCombinations()
2022-03-31 15:09:06 +09:00
Dan Balasescu
32e55e7d78
Merge branch 'master' into osu-diff-calc-max-combo
2022-03-31 15:08:08 +09:00
Dean Herbert
e0d434b89f
Remove unused using statement
2022-03-31 11:34:32 +09:00
Dean Herbert
0cac935939
Shorten class name of ModCreatedReplayUser
2022-03-31 11:34:23 +09:00
Dean Herbert
2c1ccc7d36
Update obsolete message to match targeted developers' use case
...
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-03-31 11:33:26 +09:00
Dean Herbert
234bec45cc
Remove unnecessary logging
2022-03-31 11:32:00 +09:00
Salman Ahmed
6874cdf0c8
Remove unnecessary public
prefix in interface method
2022-03-31 01:50:46 +03:00
Bartłomiej Dach
83bae81095
Fill out ICreateReplayData
xmldocs
2022-03-30 22:04:54 +02:00
Bartłomiej Dach
9621a7f9cb
Merge branch 'master' into fix-autoplay-mod-user-id
2022-03-30 21:41:45 +02:00
Salman Ahmed
8d4356f23b
Mark "autoplay" and "cinema" mods as mutually exclusive
2022-03-29 17:26:02 +03:00
Salman Ahmed
9a09c97457
Fix "Barrel Roll" tooltip not limiting decimal places for spin speed
2022-03-29 16:11:44 +03:00
Dean Herbert
ea9495eb74
Update all existing calls to extension method with correct fallback handling
2022-03-29 16:51:30 +09:00
Dean Herbert
7d716adf39
Create new ICreateReplayData
interface and obsolete ICreateReplay
2022-03-29 16:51:30 +09:00
Dean Herbert
3fc8c23fe4
Remove unnecessary SetReplayScore
call in ModCinema
2022-03-29 16:51:30 +09:00
Dean Herbert
327477d050
Remove unnecessary SetReplayScore
call in ModCinema
2022-03-29 16:50:05 +09:00
Dean Herbert
6f529cf7a4
Merge branch 'master' into fix-spectator-seeks
2022-03-24 14:24:20 +09:00
Salman Ahmed
6cd67928ab
Simplify documentation of ModUsage
2022-03-23 15:48:52 +03:00
Salman Ahmed
b218046fa2
Remove redundant line from mod usage
2022-03-23 15:38:48 +03:00
Dean Herbert
c079a9cd32
Add comment regarding equality check importance in LegacyHitSampleInfo
2022-03-23 20:18:44 +09:00
Dean Herbert
997c091a8d
Revert "Remove IsLayered
from LegacyHitSampleInfo
comparison"
...
This reverts commit 4523393208
.
2022-03-23 20:15:17 +09:00
Dean Herbert
2ea9e5245c
Revert "Remove IsLayered
from GetHasCode
implementation"
...
This reverts commit 16ee6b5fc7
.
2022-03-23 20:15:13 +09:00
Dan Balasescu
36772ec652
Merge pull request #17356 from apollo-dw/strict-tracking
...
Implement "Strict Tracking" mod in osu!
2022-03-22 07:32:36 +09:00
Salman Ahmed
5f878ed82b
Delegate IsPlayable
to the obsoleted UserPlayable
by default
...
Handles consumers who still haven't updated to use `IsPlayable` yet.
2022-03-20 16:07:09 +03:00
Salman Ahmed
add9f3ec91
Rename multiplayer mod usages to make more sense
2022-03-20 13:12:24 +03:00
Salman Ahmed
820a672940
Reword xmldoc to make more sense
2022-03-20 06:37:08 +03:00
Salman Ahmed
70e943fbcc
ModUsage.Solo
-> ModUsage.User
2022-03-20 06:36:51 +03:00
apollo-dw
149cfd338d
Use new mod-related object types for Strict Tracking
2022-03-19 18:29:44 +00:00
Salman Ahmed
8078a8c1f8
Simplify IncreasesCombo
/BreaksCombo
helper method implementation
2022-03-18 17:18:42 +03:00
Salman Ahmed
5ec2d86c09
Update ScoreProcessor
to use new defined helper methods
2022-03-18 15:22:53 +03:00
Salman Ahmed
fc576b1369
Separate increase/break combo helper methods from AffectsCombo
2022-03-18 15:22:01 +03:00
Dean Herbert
0988c2b0fa
Move DrawableRuleset
binding to LoadComplete
to avoid exceptions on InputManager
access
2022-03-18 15:28:48 +09:00
Salman Ahmed
f2248ecc08
Update usages to use IsPlayable
instead
2022-03-18 02:11:18 +03:00
Salman Ahmed
51e5dd7d0e
Introduce IsPlayable(...)
and obsolete UserPlayable
2022-03-18 02:08:30 +03:00
Salman Ahmed
d90f21e140
Reword mod documentation
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-03-18 00:13:40 +03:00
Salman Ahmed
b3ac544d65
Revert "Consider UnknownMod
to be "playable in multiplayer""
...
This reverts commit 07e9f3780a
.
2022-03-17 06:31:51 +03:00
Salman Ahmed
07e9f3780a
Consider UnknownMod
to be "playable in multiplayer"
2022-03-17 05:15:48 +03:00
Salman Ahmed
187059a37f
Replace hardcoded overrides with the newly introduced Mod
properties
2022-03-17 03:51:27 +03:00
Salman Ahmed
d90a334853
Introduce multiplayer playability and free mod validity in Mod
2022-03-17 03:48:56 +03:00
Dan Balasescu
d80830b415
Merge pull request #17226 from peppy/skin-component-settings
...
Allow skin components to have settings
2022-03-16 17:12:11 +09:00
Dean Herbert
1814a325d8
Move GetSettingUnderlyingValue
to a SettingSource
extension method
2022-03-15 14:54:00 +09:00
Dean Herbert
6fb06d69cc
Merge branch 'master' into pp-counter-alloc-reduction
2022-03-15 13:31:57 +09:00
Dean Herbert
deb4aeb4b2
Merge pull request #17242 from smoogipoo/performance-calculator-cleanup
...
Restructure PerformanceCalculator to not require ScoreInfo argument
2022-03-15 13:31:34 +09:00
Dan Balasescu
3a6d254d1f
Add safeguards around incorrect ruleset sources
2022-03-15 09:20:32 +09:00
Dan Balasescu
e79bed8fbe
Merge branch 'master' into skin-component-settings
2022-03-14 18:54:27 +09:00
Dean Herbert
16ee6b5fc7
Remove IsLayered
from GetHasCode
implementation
2022-03-14 18:12:04 +09:00
Dean Herbert
39d95aa8cf
Add automatic preloading of sample pools at a Playfield
level
2022-03-14 17:19:48 +09:00
Dean Herbert
4523393208
Remove IsLayered
from LegacyHitSampleInfo
comparison
...
The equality of samples is generally used to compare the sample
equality, not its full properties. For instance, we don't compare
`Volume` in the base implementation.
Having `IsLayered` here breaks actual usages of equality, ie. for
pooling purposes.
2022-03-14 17:19:48 +09:00
Dean Herbert
8676a2587c
Add the ability for HitObject
s to specify auxiliary samples
2022-03-14 17:19:48 +09:00
Dan Balasescu
028750936c
Apply review suggestions
2022-03-14 17:10:37 +09:00
Dan Balasescu
3fff7f4b7e
Require ScoreProcessor to receive ruleset
2022-03-14 15:51:10 +09:00
Dan Balasescu
9cc7f70872
Nullable annotate classes
2022-03-14 15:38:00 +09:00
Dan Balasescu
4a3e3aba65
Restructure PerformanceCalculator to not require ScoreInfo argument
2022-03-14 14:25:28 +09:00
Dean Herbert
8d1ee28e67
Add settings modification UI to skin editor
2022-03-13 17:03:25 +09:00
Dean Herbert
db5c2c15dc
Merge pull request #17164 from smoogipoo/scoreprocessor-rework
...
Rework ScoreProcessor score calculation methods to fix various issues
2022-03-10 16:48:58 +09:00
Dan Balasescu
13a4058efd
Merge pull request #17191 from peppy/fix-mod-conversion-exceptions
...
Change `ToMod` to return an `UnknownMod` rather than throw if a mod isn't available
2022-03-10 16:20:50 +09:00
Dan Balasescu
cf91353009
Merge branch 'master' into scoreprocessor-rework
2022-03-10 16:14:28 +09:00
Dean Herbert
eaef27595c
Also mark UnknownMod
as not user-playable
2022-03-10 15:33:50 +09:00
Dan Balasescu
c36badab4b
Add per-ruleset score multipliers for classic scoring
2022-03-10 10:26:09 +09:00
Dean Herbert
94ff6a338f
Merge branch 'master' into scoreprocessor-rework
2022-03-09 23:04:18 +09:00
Dean Herbert
02f44d7061
Merge branch 'master' into fix-mod-conversion-exceptions
2022-03-09 18:07:42 +09:00
Dean Herbert
0267aed846
Change ToMod
to return an UnknownMod
rather than throw if a mod isn't available
...
As seen by this kind of crash, having the `.ToMod` method throw can be
very problematic and also hidden (as it is used inside of models in
places where exceptions are not expected to occur).
Given there are tens of usages of this method, returning a placeholder
mod seems like a better idea than outright throwing.
```
An unhandled has occurred.
System.InvalidOperationException:
There is no mod in the ruleset (osu) matching the acronym AS.
at osu.Game.Online.API.APIMod.ToMod(Ruleset ruleset) in /Users/dean/Projects/osu/osu.Game/Online/API/APIMod.cs:line 54
at osu.Game.Scoring.ScoreInfo.<get_Mods>b__117_0(APIMod m) in /Users/dean/Projects/osu/osu.Game/Scoring/ScoreInfo.cs:line 193
at System.Linq.Enumerable.SelectArrayIterator`2.ToArray()
at osu.Game.Scoring.ScoreInfo.get_Mods() in /Users/dean/Projects/osu/osu.Game/Scoring/ScoreInfo.cs:line 193
at osu.Game.Screens.Select.Leaderboards.BeatmapLeaderboard.<>c.<subscribeToLocalScores>b__40_2(ScoreInfo s) in /Users/dean/Projects/osu/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs:line 199
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at osu.Game.Database.RealmObjectExtensions.Detach[T](IEnumerable`1 items) in /Users/dean/Projects/osu/osu.Game/Database/RealmObjectExtensions.cs:line 180
at osu.Game.Screens.Select.Leaderboards.BeatmapLeaderboard.<>c__DisplayClass40_0.<subscribeToLocalScores>g__localScoresChanged|1(IRealmCollection`1 sender, ChangeSet changes, Exception exception) in /Users/dean/Projects/osu/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs:line
209
at Realms.RealmCollectionBase`1.Realms.INotifiable<Realms.NotifiableObjectHandleBase.CollectionChangeSet>.NotifyCallbacks(Nullable`1 changes, Nullable`1 exception)
at Realms.NotifiableObjectHandleBase.NotifyObjectChanged(IntPtr managedHandle, IntPtr changes, IntPtr exception)
```
2022-03-09 17:57:55 +09:00
Dean Herbert
8bb07f83cd
Merge pull request #17054 from hlysine/mod-adaptive-speed
...
Implement Adaptive Speed mod
2022-03-09 17:56:34 +09:00
Dan Balasescu
6fd8b4d891
Safeguard method against invalid invocation
2022-03-08 22:30:44 +09:00
Dan Balasescu
f1c40bd9ed
Rework GetScore() method signatures + implementations
...
Rename legacy-facing overload to mention as much
2022-03-08 22:30:44 +09:00
Dan Balasescu
a8e99f1a95
Calculate classic score using total basic hitobject count
2022-03-08 21:49:41 +09:00
Dan Balasescu
5b6b8d1fa9
Remove GetStandardisedScore() proxy method
2022-03-08 21:49:41 +09:00
Dan Balasescu
6654977a7b
Add GetScore() overload with total hitobject count
2022-03-08 21:49:41 +09:00
Dan Balasescu
2c382bd1d9
Rename GetImmediateScore() as overload of GetScore()
2022-03-08 21:49:40 +09:00
Dan Balasescu
a352a140bc
Merge pull request #17157 from peppy/fix-statistics-json-serialisation
...
Fix incorrect serialisation of submitted scores
2022-03-08 20:20:31 +09:00
Dan Balasescu
a172fc6cb8
Add IsBasic() and IsTick() extensions on HitResult
2022-03-08 18:19:12 +09:00
Dean Herbert
589a40ca2d
Add EnumMember
naming to HitResult
to allow for correct json serialisation
2022-03-08 17:58:37 +09:00
Henry Lin
8b8b54b58f
Scale rate adjustments based on hit timing consistency and tweak some related numbers
2022-03-05 21:48:57 +08:00
Henry Lin
76d257fbe4
Merge branch 'master' into mod-adaptive-speed
2022-03-04 15:16:37 +08:00
Henry Lin
f72c9a1f41
Cap speed change per hit and apply a speed decrease on miss
2022-03-04 11:48:48 +08:00
Henry Lin
b66af7edf4
Rename approximatedRates
to ratesForRewinding
and update xmldoc
2022-03-04 11:03:57 +08:00
Bartłomiej Dach
fcefd3c725
Fix slightly wrong references in xmldocs
2022-03-03 17:39:55 +01:00
Bartłomiej Dach
3797871aa0
Add extended documentation of adaptive speed mod machinations
2022-03-03 17:25:49 +01:00
Bartłomiej Dach
ffaf5b729f
Move and reword docs of allowable rate range constants
2022-03-03 17:07:43 +01:00
Henry Lin
464be6e64c
Only call IUpdatableByPlayfield.Update
if the playfield isn't nested
2022-03-03 14:37:39 +08:00
Henry Lin
4ce2044e4c
Reorder members
2022-03-03 13:09:41 +08:00
Henry Lin
9c2aa51194
Rename applyPitchAdjustment
to adjustPitchChanged
2022-03-03 13:07:30 +08:00
Henry Lin
ae71dcceeb
Convert comments to xmldoc
2022-03-03 13:03:53 +08:00
Henry Lin
09254407fe
Interpolate speed change using IUpdatableByPlayfield
2022-03-03 12:09:36 +08:00
Henry Lin
51258dbab4
Use binary search in ApplyToBeatmap
2022-03-03 11:21:20 +08:00
Henry Lin
95a40c5dc5
Remove pointless comment
2022-03-03 10:43:30 +08:00
Henry Lin
ff7f65de27
Extract duplicated conditionals
2022-03-03 10:43:04 +08:00
Henry Lin
55737226a3
Use Enumerable.Repeat
2022-03-03 10:18:36 +08:00
Henry Lin
d335a2229f
Tweak average_count
2022-03-02 21:07:57 +08:00
Henry Lin
17bc714297
Allow the mod to properly react to nested hit objects
2022-03-02 20:48:57 +08:00
Henry Lin
6caecf79a0
Use smooth speed change
2022-03-02 20:08:05 +08:00
Henry Lin
c6934b4bce
Improve adaptive speed algorithm and add rewind support
2022-03-02 10:35:03 +08:00
Henry Lin
783f43ccfb
Add initial rate setting
2022-03-02 09:57:52 +08:00
Henry Lin
c9b205afeb
Add adaptive speed mod
2022-03-02 09:57:52 +08:00
Dean Herbert
7215f3f66b
Fix CalculateAverageHitError
throwing if there are zero HitEvent
s
2022-03-01 18:44:15 +09:00
Dean Herbert
159db38f8a
Add missing xmldoc
2022-02-28 19:14:43 +09:00
Dean Herbert
a41e1c80f1
Show hit error on results screen
...
Leading up to implementation of "local offset", this feels like a good
thing to have visible first and foremost.
2022-02-28 19:11:06 +09:00
Dan Balasescu
3a03833912
Merge pull request #16890 from peppy/beatmap-decoder-ruleset-store
...
Fix `LegacyBeatmapDecoder` not populating correct rulesets
2022-02-25 19:03:43 +09:00
Bartłomiej Dach
d8fa443ea0
Extract default mod switch measurements to constants
...
For use later when specific sizes/scales of the mod switches are
desired.
2022-02-22 23:22:11 +01:00
Dan Balasescu
bedd07d2e4
Add remark about usage of CalculateAll()
2022-02-22 18:12:55 +09:00
Bartłomiej Dach
cfc41a0a36
Implement small mod switch
2022-02-22 00:26:35 +01:00
Bartłomiej Dach
5186693dad
Implement tiny mod switch
2022-02-22 00:26:35 +01:00
Dan Balasescu
c466d6df94
Ensure to not multiply by 0
2022-02-21 17:19:35 +09:00
Dan Balasescu
c3b365cf6b
Scale classic score by hitobject count
2022-02-21 13:31:03 +09:00
Dan Balasescu
567da9214e
Merge branch 'master' into osu-diff-calc-max-combo
2022-02-18 18:35:24 +09:00
Dan Balasescu
3945cd24eb
wip
2022-02-17 21:14:49 +09:00
Dean Herbert
7307e68e9c
Revert "Merge pull request #16889 from smoogipoo/remove-mod-multiplier"
...
This reverts commit 252b945d3b
, reversing
changes made to a1b39a96cf
.
2022-02-17 13:26:12 +09:00
Dean Herbert
23933fc881
Update xmldoc to mention that multipliers are not applied anywhere
2022-02-16 17:32:22 +09:00
Dean Herbert
5ffd3ff82a
Add xmldoc and allow constructing an AssemblyRulesetStore
with a directory path
2022-02-16 17:25:16 +09:00
Dean Herbert
d0efecfc9c
Add RulesetStore
for use where realm is not present (ie. other projects)
2022-02-16 17:13:54 +09:00
Dean Herbert
7a69de0060
Split out realm portion of RulesetStore
2022-02-16 17:13:31 +09:00
Dan Balasescu
4c1413e0c7
No longer require Mod implementation
2022-02-16 16:36:02 +09:00
Dan Balasescu
5dd9771c5f
Remove mod multipliers from being applied to scores
2022-02-16 16:27:27 +09:00
Dan Balasescu
84e82ef5e4
Add XMLDocs to difficulty attribute properties
2022-02-16 14:09:19 +09:00
Salman Ahmed
0992bec2c8
Change "distance spacing" multipler type to double
...
Avoids losing precision on initial load, causing an unnecessary
hash change in `EditorChangeHandler`.
Resolves test failures in `TestSceneEditorChangeStates`
(https://github.com/ppy/osu/runs/5192493482?check_suite_focus=true ).
2022-02-16 03:28:12 +03:00
Salman Ahmed
868dcd20f5
Remove e.ShiftPressed
handling for now
...
Broken on macOS, will be handled differently later on as discussed.
2022-02-15 02:21:53 +03:00
Salman Ahmed
528dc03b8c
Expose distance spacing in IPositionSnapProvider
for updating distance grid
...
Alternate method is to expose a `SnapDistancesChanged` event in
`IPositionSnapProvider` instead, but I chose this way as an analogue to
`IBeatSnapProvider.BeatDivisor`, which might even make sense to be
exposed as `BindableBeatDivisor` instead of caching that separately.
2022-02-15 02:21:53 +03:00
Salman Ahmed
19ee05c232
Add "distance spacing" multiplier for osu! ruleset
...
While osu!catch also implements a distance snap grid, it doesn't rely on
`GetBeatSnapDistanceAt` (unlike osu!), therefore it can't have the
"distance spacing" multiplier yet.
2022-02-15 02:21:53 +03:00
Dean Herbert
b9d9fc56af
Move files to UI namespace
2022-02-14 17:51:39 +09:00
Salman Ahmed
92e22c57a7
Introduce private APIRuleset
for online ID equality comparison
2022-02-11 08:27:01 +03:00
Salman Ahmed
26839f6ad8
Consider OnlineID
s during ruleset equality if available
...
Required for `APIBeatmap`s, which provide `Ruleset` instances with `OnlineID` available only.
Also consistent with the comparer implementation.
2022-02-11 04:26:58 +03:00
Salman Ahmed
1b729e891d
Update pointless CompareTo
implementation once again
2022-02-11 04:17:30 +03:00
Salman Ahmed
9574bc1382
Allow IRulesetInfo
s of same type to be comparable
...
At first I was planning on making `CompareTo` implemented at
`IRulesetInfo` itself and shared across classes, but turns out it only
implements it explicitly and not allow direct `IRulesetInfo.Equals`
calls.
It messed with my head enough that I decided to just let each class have
its own implementation and only allow same type.
2022-02-11 04:03:23 +03:00
Dan Balasescu
ebd105422f
Remove unused using
2022-02-10 14:22:08 +09:00
Dan Balasescu
f7fb7825cc
Simplify disposal
2022-02-10 14:21:51 +09:00
Dan Balasescu
a3896a8ebd
Remove allowance of null dependency
2022-02-10 14:21:50 +09:00
Dan Balasescu
45b3f472ab
Merge branch 'master' into spectator-state-rework
2022-02-08 19:51:50 +09:00
Henry Lin
56c90a21ce
Add a todo
2022-02-06 11:22:12 +08:00
Henry Lin
f78c853bc7
Calculate max combo locally in PerformanceBreakdownCalculator
2022-02-06 10:59:53 +08:00
Henry Lin
0b1fef38af
Use the playable beatmap provided in CreateStatisticsForScore
2022-02-05 21:36:34 +08:00
Henry Lin
f29301cd1e
Merge branch 'master' into display-performance-attributes
2022-02-05 16:59:46 +08:00
Dan Balasescu
483977d5c8
Merge branch 'master' into spectator-state-rework
2022-02-03 19:59:07 +09:00
Bartłomiej Dach
82f9ad63f5
Fix flashlight size multiplier printing with too many decimal digits
2022-02-02 20:41:25 +01:00
Salman Ahmed
074a691635
Set keyboard step to 0.1
for difficulty adjust sliders
2022-02-02 17:43:08 +03:00
Dan Balasescu
6d3bc005ea
Merge branch 'master' into spectator-state-rework
2022-02-02 18:57:04 +09:00
Dean Herbert
0c5da9370a
Fix rulesets potentially being marked Available
even when methods are missing
...
Came up when running the game after the recent breaking changes
(https://github.com/ppy/osu/pull/16722 ), where two template rulesets I
had loaded were erroring on startup but still being marked as available,
allowing them to crash the game on attempting to initiate relpay logic.
These cases are already handled for first-time ruleset loading via the
`GetTypes()` enumeration in `RulesetStore.addRuleset`, but when
consistency checking already present rulesets the only runtime
validation being done was `ruleset.CreateInstance()`, which does not
handle missing types or methods.
2022-02-02 14:52:01 +09:00
Henry Lin
b06128ffa5
Rename "Final PP" to "Achieved PP"
2022-02-01 22:26:55 +08:00
Dan Balasescu
41007169f7
Give SpectatorState a user state
2022-02-01 21:51:05 +09:00
Dean Herbert
0f83f77d2b
Add xmldoc for new ResetFromReplayFrame
method
2022-02-01 16:52:53 +09:00
Dan Balasescu
0641264a11
Merge branch 'master' into spectator-consistency-frames
2022-02-01 14:35:30 +09:00
Dan Balasescu
c50577e25f
Apply suggestion from review
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-02-01 10:48:41 +09:00
Dan Balasescu
4fb565e15f
Reset ScoreProcessor from statistics replay frames
2022-01-31 21:32:56 +09:00
Dan Balasescu
39e1d65976
Make ScoreProcessor write all judgement types
2022-01-31 18:53:47 +09:00
Dan Balasescu
0458d408bb
Add replay statistics frames to FramedReplayInputHandler
2022-01-31 18:53:47 +09:00
Dan Balasescu
4727aeda01
Give last bundled replay frame the frame header
2022-01-31 18:53:47 +09:00
Dean Herbert
0e764538e0
Retrieve KeyBindingContainer
via DI rather than traversal lookup
2022-01-31 17:05:04 +09:00
Dean Herbert
a84fd2e20c
Merge branch 'master' into master
2022-01-31 16:30:08 +09:00
Dean Herbert
2d1a8a9d49
Use a more correct CompareTo
implementation for ruleset ordering
2022-01-27 21:58:04 +09:00
Dean Herbert
33b7bdcf82
Update pointless CompareTo
implementation
2022-01-27 21:49:33 +09:00
Dean Herbert
7af23328a4
Merge branch 'master' into ruleset-ordering-fix
2022-01-27 21:46:03 +09:00
Dean Herbert
a5d422e82c
Merge branch 'master' into ruleset-id-fixes
2022-01-27 17:07:18 +09:00
Dan Balasescu
54d18bd7ac
Merge pull request #16642 from peppy/ruleset-private-info-set
...
Make `Ruleset.RulesetInfo` get only
2022-01-27 16:41:52 +09:00
Dean Herbert
5637fd64d6
Perform ordering using IComparable
instead
2022-01-27 15:59:20 +09:00
Dean Herbert
5288eedd31
Update all usages of RulesetID
and Ruleset.ID
to use Ruleset.OnlineID
2022-01-27 15:38:03 +09:00
Dean Herbert
714177cce1
Remove pointless constructor in RulesetInfo
2022-01-27 15:37:27 +09:00
Dean Herbert
e67b1fe0ec
Make Ruleset.RulesetInfo
get only
2022-01-27 15:36:35 +09:00
Dean Herbert
f30d63107a
Add SortID
to RulesetInfo
to allow stable ordering of rulesets for display
2022-01-27 15:35:16 +09:00
Dan Balasescu
0dd2de3e1e
Merge pull request #16628 from peppy/fix-realm-ruleset-ordering
...
Fix custom rulesets being displayed before official ones
2022-01-26 19:19:01 +09:00
Dean Herbert
57e624d8e7
Fix custom rulesets being displayed before official ones
2022-01-26 18:46:32 +09:00
Dean Herbert
f2d48d088d
Fix realm migration failures with presence of databased EF rulesets that don't exist on disk
2022-01-26 17:57:03 +09:00
Dan Balasescu
bfa521bdd2
Merge pull request #16593 from peppy/realm-clean-up
...
Clean up realm naming
2022-01-25 14:33:53 +09:00
Dean Herbert
d7342880f5
Update remaining cases of clashes with realm.Write
and realm.RegisterForNotifications
2022-01-25 13:09:48 +09:00
Bartłomiej Dach
8c3fbb6eb4
Merge branch 'master' into Liswiera-FL-changes
2022-01-24 21:32:36 +01:00
Bartłomiej Dach
a227af75ed
Simplify flashlight parameter passing flow
2022-01-24 21:03:02 +01:00
Bartłomiej Dach
5874475dff
Extract DefaultFlashlightSize
to base flashlight class
2022-01-24 21:03:02 +01:00
Bartłomiej Dach
a7c0d507ce
Rename flashlight settings to be more accurate
2022-01-24 21:03:02 +01:00
Dean Herbert
6eb2c28e41
Rename RealmContextFactory
to RealmAccess
2022-01-24 20:38:07 +09:00
mk-56
948867898c
ModeMultiplier rename
2022-01-24 11:38:52 +01:00
mk-56
161a2a321e
Remove bindable from ModeMultiplier
2022-01-24 09:07:07 +01:00
mk-56
ed84ae0ac0
Adjust values to Bdach's refined taste
2022-01-24 00:42:43 +01:00
Henry Lin
48aa1677dc
Include hit results of nested hit objects in statistics of perfect score
2022-01-23 11:01:30 +08:00
Bartłomiej Dach
735414bc49
Replace TimeSignatures
enum with struct for storage of arbitrary meter
2022-01-22 20:50:31 +01:00
mk-56
955bab926f
Separate the settings for each modes radiuses
2022-01-22 19:38:56 +01:00
MK56
b5f813a949
Merge branch 'ppy:master' into Liswiera-FL-changes
2022-01-22 19:04:39 +01:00
Bartłomiej Dach
1ce0b18003
Merge branch 'master' into display-performance-attributes
2022-01-22 14:12:57 +01:00
Dean Herbert
114c9e8c1f
Update all usages of CreateContext
to use either Run
or Write
2022-01-21 17:27:08 +09:00
Henry Lin
6c97fbd3f2
Calculate perfect performance without caching
2022-01-20 13:06:00 +08:00
Henry Lin
42d904acee
Remove blocking calls and add back Task.WhenAll
2022-01-20 12:50:28 +08:00
Henry Lin
dd42c89260
Feed more info to the temporary score processor for more accurate total score
2022-01-19 16:08:45 +08:00
Henry Lin
0d708efb73
Split off PerformanceBreakdown
and its own calculation logic
2022-01-19 15:33:33 +08:00
Henry Lin
31e03e99cd
Improve display of "total PP"
2022-01-18 22:11:43 +08:00
Dean Herbert
7f65f3a47f
Remove all usage of BaseDifficulty
(and access Difficulty
instead)
2022-01-18 22:57:39 +09:00
Henry Lin
eddf453294
Fix code quality issues
2022-01-17 21:32:13 +08:00
Henry Lin
b81fc675e8
Include PropertyName in PerformanceDisplayAttribute
2022-01-17 20:45:25 +08:00
Henry Lin
d014fef179
Hide confusing attributes
2022-01-17 20:36:36 +08:00
Henry Lin
511a607599
Display performance breakdown in a tooltip
2022-01-17 18:28:17 +08:00
mk-56
57cc2f7893
Adjustment to size values of FL per mode
2022-01-16 14:26:26 +01:00
mk-56
ee4331dda4
Merge remote-tracking branch 'origin/Liswiera-FL-changes' into Liswiera-FL-changes
2022-01-15 21:44:03 +01:00
mk-56
2a59735525
Initial commit
2022-01-15 21:43:28 +01:00
Bartłomiej Dach
03e4ec4214
Merge branch 'master' into realm-integration/score-and-beatmaps
2022-01-15 14:45:42 +01:00
Susko3
19467e58c1
Remove unused params from BDL methods
2022-01-15 01:06:39 +01:00
Dean Herbert
eb5f15a77e
Merge pull request #16420 from bdach/slider-paste-parsing-failures-2
...
Fix pasted sliders having sample points with time at infinity
2022-01-13 23:28:49 +09:00
Dean Herbert
4f8d29c1c0
Merge branch 'master' into realm-integration/score-and-beatmaps
2022-01-13 18:25:09 +09:00
Joseph Madamba
5185f6010e
Fix missed identifier typos
2022-01-12 15:46:20 -08:00
Bartłomiej Dach
afce976f08
Fix oversubscription to StartTimeBindable.ValueChanged
2022-01-12 19:29:49 +01:00
Bartłomiej Dach
07fc772c24
Merge branch 'master' into slider-paste-parsing-failures-2
2022-01-12 19:06:36 +01:00
Dean Herbert
51251e3204
Fix CI reported warnings
2022-01-12 22:39:00 +09:00
Dean Herbert
08da948afc
Merge branch 'master' into realm-integration/score-and-beatmaps
2022-01-12 19:22:55 +09:00
Dan Balasescu
4106ebf881
Fix mania requiring PERFECTs to maintain HP
2022-01-12 18:29:23 +09:00
Dean Herbert
eb70a1eeb7
Replace compatibility properties with direct references
2022-01-12 18:13:14 +09:00
Dean Herbert
482cf29e28
Merge branch 'master' into realm-integration/score-and-beatmaps
2022-01-12 17:57:14 +09:00
Dean Herbert
5cbd731864
Add RulesetInfo
hashcode implementation and tidy up equality
2022-01-12 17:49:10 +09:00
Dan Balasescu
52e240230b
Merge branch 'master' into mouse-button-disable-disables-touch
2022-01-12 17:14:39 +09:00
Dean Herbert
82259ee072
Improve legibility of RulesetInfo.Equals
2022-01-12 17:00:17 +09:00
Dean Herbert
2d2faa72a9
Fix rulesets being out of order
2022-01-12 17:00:16 +09:00
Dean Herbert
3811bd8520
Fix some null inspections
2022-01-12 17:00:16 +09:00
Dean Herbert
8d943b5709
Fix many shortcomings and compatibility issues with EF classes post-rename
2022-01-12 17:00:16 +09:00
Dean Herbert
a3da8dc49d
Fix missing interface implementation of IRulesetStore
2022-01-12 16:58:58 +09:00
Dean Herbert
b8cd3cdbbc
Various updates to ruleset and primary key usages to move closer to realm support
2022-01-12 16:57:13 +09:00
Dean Herbert
3ecd889fef
Replace EF RulesetStore
with realm version
...
Pass full EF context factory to `RealmContextFactory` for migration purposes
2022-01-12 16:39:36 +09:00
Dean Herbert
c3df58e01c
Add required properties to make realm models backwards compatible
2022-01-12 16:39:36 +09:00
Dean Herbert
618903c217
Rename realm to become imposter classes
2022-01-12 16:39:36 +09:00
Dean Herbert
0b6c4497bd
Rename EF classes to allow for shit to hit the fan
2022-01-12 16:39:36 +09:00
Dean Herbert
a82606cf5c
Merge pull request #16407 from smoogipoo/fix-mania-normalised-scroll-speed
...
Fix calculation of most common beat length for mania scroll speed
2022-01-12 15:23:22 +09:00
Bartłomiej Dach
80ccff9068
Remove no longer necessary guards against default control points
...
The subscription in which the guards were present was moved from
constructor to `ApplyDefaults()`, and at that point neither the sample
control point or the difficulty point can be the default point, because
there are explicit paths that overwrite those with blank points in the
same methods, prior to the subscription's registration.
The only worry would be that someone would set the default point on the
object themselves, but at that point that is most likely programmer
error anyhow.
2022-01-11 22:14:47 +01:00
Bartłomiej Dach
7a25fe79b7
Fix sample control point time being calculated before defaults applied
...
In editor contexts, the `StartTimeBindable` subscription in `HitObject`
was firing before defaults were applied, which in the case of sliders
manifested in an infinite end time. `ApplyDefaults()` also did not
always set the time of the control point to the correct value, which
matters when the beatmap is encoded.
Ensure that the control points receive the correct time values during
default application, and only register the `StartTimeBindable` change
callback after defaults have been successfully applied.
2022-01-11 21:38:59 +01:00
Dan Balasescu
a09563a7d9
Fix calculation of most common beat length for mania scroll speed
2022-01-11 11:00:30 +09:00
Bartłomiej Dach
c09f6ee052
Use slider snapping more liberally to match user expectations
...
Previously the slider path length would be snapped using the current
beat snap setting on *every* change of the slider path. As it turns out
this is unexpected behaviour in some situations (e.g. when reversing a
path, which is expected to preserve the previous duration, even though
the slider may be technically "unsnapped" at that point in time due to a
different beat snap setting being selected afterwards).
2022-01-07 16:02:04 +01:00
파링
74b15ec30c
Merge branch 'master' into master
2022-01-06 21:12:45 +09:00
Dean Herbert
cea9cab4dc
Use ExpandingButtonContainer
in editor composer
2022-01-06 21:10:45 +09:00
Dean Herbert
88602ec1b4
Fix mouse button disable not disabling touch input mappings
2022-01-05 18:29:32 +09:00
Dean Herbert
ef2a4aed9a
Fix editor playfield not being centered correctly
...
This has come up multiple times, with mappers citing that they have
muscle memory for mapping based on the centre of the playfield being in
the centre of the window.
The original plan was to have a second toolbar on the right hand side of
the screen to balance the padding, but we're not at that point yet.
Easiest solution is to do what stable does and allow the left-hand
toolbar items to overlap the playfield underneath it.
In edge cases where the user is running at an aspect ratio that causes
overlaps, they can choose to collapse the toolbars down. We can probably
work on this UI/UX a bit more as we update designs to be more friendly
to such cases.
2022-01-05 16:05:18 +09:00
Dean Herbert
bb54f438aa
Merge branch 'master' into positional-sounds-strength-adjustment
2022-01-03 12:40:56 +09:00
pikokr
dec1f31749
Make KeyBindingContainer
public
2021-12-28 22:43:07 +09:00
Joseph Madamba
7de43e3aba
Fix most open compound words in identifiers being closed
2021-12-27 20:26:28 -08:00
Bartłomiej Dach
8094b502cb
Remove test-specific logic from RulesetConfigCache
2021-12-23 19:42:26 +01:00
Bartłomiej Dach
5cbaa028eb
Use extracted ruleset config cache implementation in DI
2021-12-23 19:02:10 +01:00
Bartłomiej Dach
0f65c4e960
Extract interface for ruleset config cache
2021-12-23 18:59:02 +01:00
Bartłomiej Dach
1040590844
Add cancellation support to game-side IResourceStore
s
2021-12-23 10:33:17 +01:00
StanR
88436d51ae
Remove using
2021-12-21 13:44:20 +03:00
StanR
cca02a8016
Create PerformanceAttributes
2021-12-21 13:08:31 +03:00
StanR
2f2006715e
Slightly refactor difficulty and pp calculators
2021-12-17 23:40:23 +03:00
mk-56
fd5af1fbe7
Code refactor and name changes
...
cleaned code up with Jetbrains i hope it suffices
2021-12-17 13:16:06 +01:00
JamesTheGeek
828072bcea
Fix issue #15869
...
The taiko-slider is not included in `Playfield`, so it doesn't get hidden when calling `drawableRuleSet.Playfield.Hide()`. Calling `drawableRuleSet.Hide()` hides the taiko-slider, in addition to the rest of the `Playfield`.
2021-12-14 23:23:11 -05:00
Dean Herbert
cfa712473d
Use default timeout in GetPlayableBeatmap
when provided CancellationToken
is default
2021-12-07 13:33:41 +09:00
Dean Herbert
f3e9fb76fc
Add the ability to pass a CancellationToken
through DifficultyCalculator.CalculateAll
...
Was weirdly missing from this one method.
2021-12-07 13:32:47 +09:00
Bartłomiej Dach
38702beabf
Merge branch 'master' into i-ruleset-store
2021-12-04 15:05:39 +01:00
Dean Herbert
1eed2436e6
Clean up unused resolved properties
2021-12-03 18:49:49 +09:00
Dean Herbert
15db1372aa
Add missing equality implementations on IRulesetInfo
2021-12-03 18:01:45 +09:00
Dean Herbert
675ecb603f
Add IRulesetStore
to allow for transitional usage in upcoming manager classes
2021-12-03 17:57:40 +09:00
mk-56
cd095b5f7d
Merge remote-tracking branch 'origin/positional-sounds-strength-adjustment' into positional-sounds-strength-adjustment
2021-11-28 14:21:26 +01:00
mk-56
9c42cc0c05
Fix
2021-11-28 14:12:39 +01:00
mk-56
9065179c52
Fix
2021-11-28 14:09:30 +01:00
mk-56
c3fb793762
Fixed the problems that were brought up and deleted the old bind logic
2021-11-28 14:06:53 +01:00
mk-56
e83115ad5e
Binding logic fix, nullification of unnecessary path
2021-11-28 03:25:11 +01:00
mk-56
eaa464e548
Initial implementation of adjustable positional hitobject audio strength
2021-11-28 02:58:08 +01:00
Dean Herbert
f283770f34
Update mock RulesetInfo
usage to set OnlineID
instead of ID
2021-11-24 15:50:26 +09:00
Dean Herbert
e57c343531
Add helper setter to EF RulesetInfo.OnlineID
to allow updating usages
2021-11-24 15:50:26 +09:00
Dan Balasescu
33d95fbb9c
Merge pull request #15771 from peppy/ruleset-config-cache-shortname
...
Update `RulesetConfigCache` to cache via `ShortName` instead of `ID`
2021-11-24 15:24:57 +09:00
Dean Herbert
0aedbbe165
Fix incorrect fallback logic causing test failure
2021-11-24 14:04:55 +09:00
Dan Balasescu
6ffba8a546
Merge pull request #15768 from peppy/standardise-ruleset-create-instance
...
Remove nullability of `Ruleset.CreateInstance`
2021-11-24 13:43:23 +09:00
Dean Herbert
ee22c24370
Update RulesetConfigCache
to cache via ShortName
instead of ID
2021-11-24 13:10:18 +09:00
Dean Herbert
8d69ebd7db
Remove nullability of Ruleset.CreateInstance
2021-11-24 12:23:06 +09:00
Dean Herbert
f264b128c2
Merge branch 'master' into realm-ruleset-setting-short-name
2021-11-23 14:55:36 +09:00
Dean Herbert
e580fc5abc
Merge pull request #15735 from peppy/remove-ruleset-info-inheritance
...
Remove subclassing of `RulesetInfo`
2021-11-23 10:18:32 +09:00
Dean Herbert
6c36770eb3
Add back allowance for tests scenes using empty ShortName
2021-11-22 21:41:09 +09:00
Dean Herbert
329bae50b0
Switch realm ruleset configuration to use ruleset's ShortName
as key
2021-11-22 18:52:00 +09:00
Dean Herbert
377ba2673a
Use Ruleset
's ShortName
for mod caching purposes
2021-11-22 16:52:54 +09:00
Dean Herbert
cb5b6911e6
Seal RulesetInfo
and remove virtual
methods
2021-11-22 16:39:26 +09:00
Dean Herbert
fd3e5d333e
Add xmldoc note about Skill
potentially being memory expensive
2021-11-21 12:15:32 +09:00
Dean Herbert
9f688f6291
Stop persisting Skill
s in DifficultyAttributes
2021-11-21 12:15:32 +09:00
Dean Herbert
59e763467f
Move StoragePath
implementation to an extension method
2021-11-19 16:08:38 +09:00
Dan Balasescu
6ebe54b183
Merge pull request #15494 from Tollii/beatmap-cancellation-token
...
Add support for cancellation tokens for beatmap difficulty calculation
2021-11-19 10:54:32 +09:00
Dean Herbert
cdb2a92f86
Disable key repeat for all ruleset handling cases
2021-11-18 13:13:36 +09:00
Dean Herbert
66c307e0ee
Remove usage of key repeat helper method
2021-11-18 13:13:36 +09:00
Bartłomiej Dach
8b134914cf
Merge branch 'master' into beatmap-cancellation-token
2021-11-17 21:52:30 +01:00
Dean Herbert
fd0cae2bfb
Merge branch 'master' into difficulty-attribute-helpers
2021-11-17 20:49:31 +09:00
Dean Herbert
0a7498014f
Move const
s to top of file
2021-11-17 20:47:52 +09:00
Dan Balasescu
815179f713
Use consts for attribute IDs
2021-11-17 20:31:18 +09:00
Dan Balasescu
abb333299b
Document base class
2021-11-17 20:20:54 +09:00
Dean Herbert
0715d40ea0
Merge branch 'master' into beatmap-cancellation-token
2021-11-17 11:16:10 +09:00
Dean Herbert
6cca657a2d
Standardise naming of CancellationToken
parameters
2021-11-16 14:45:51 +09:00
Dean Herbert
53c0682a08
Merge branch 'master' into beatmap-cancellation-token
2021-11-16 14:43:13 +09:00
Dan Balasescu
2c45a327bb
Remove JsonIgnores, require opt-in properties
2021-11-15 19:54:35 +09:00
Dean Herbert
369b4ba789
Update DifficultyCalculator
to take an IRulesetInfo
2021-11-15 19:16:48 +09:00
Dean Herbert
62d670a3ca
Update DifficultyCalculator
to take an IWorkingBeatmap
2021-11-15 19:16:48 +09:00
Dan Balasescu
c8a01c35f7
Remove extra members from FromDatabaseAttributes
2021-11-15 18:11:07 +09:00
Dan Balasescu
45382a8127
Ignore some properties
2021-11-15 16:32:25 +09:00
Dan Balasescu
0cfd6fdf04
Add to/from database mapping functions to difficulty attributes
2021-11-15 16:06:50 +09:00
Dan Balasescu
907499f73a
Add json properties to difficulty attributes
2021-11-15 16:06:29 +09:00
Bartłomiej Dach
69809390d3
Fix HUD unstable rate counter not including judgements before load complete
...
Also unifies UR calculation logic with the results screen statistic item
to reduce duplication.
2021-11-11 13:36:05 +01:00
Bartłomiej Dach
40cffd1682
Expose HitEvents
publically from ScoreProcessor
2021-11-11 13:22:07 +01:00
Dean Herbert
4bca96d548
Throw again to ensure correct available state is set
...
Also standardises handling between `RulesetStore` and `RealmRulesetStore`.
2021-11-11 17:39:36 +09:00
Dan Balasescu
57c333b472
Remove unused using
2021-11-11 15:29:08 +09:00
Dean Herbert
ea536dea23
Gracefully handle missing type rather than triggering ArgumentNullException
2021-11-11 14:46:21 +09:00
ekrctb
116b857cea
Merge branch 'master' into no-scope-catch
2021-11-10 20:50:31 +09:00
Naxesss
b888185799
Properly dispose of Stream
in bg quality check
2021-11-10 05:06:11 +01:00
Semyon Rozhkov
41f4f0ab5e
Different setting slider description in each mod
2021-11-10 03:57:22 +03:00
Semyon Rozhkov
64bc8da14c
Add "No Scope" mod implementation for Catch
2021-11-09 17:11:19 +03:00
Dean Herbert
c58f21a115
Handle mods with overloaded method signature instead
2021-11-08 14:43:46 +09:00
Dean Herbert
5b5e3dc4a2
Revert incorrect mod nullable parameter specification
2021-11-08 14:33:15 +09:00
Dean Herbert
e338340c6a
Merge branch 'master' into beatmap-cancellation-token
2021-11-08 14:32:56 +09:00
Salman Ahmed
eb5e7402c3
Remove obsolete method in ModAutoplay
2021-11-07 16:15:57 +03:00
Tollii
d5f5d74a89
Rename CancellationToken variable
2021-11-07 13:41:54 +01:00
Tollii
cf0b757b16
Fix PR comments.
...
Nitpick, more cancellation token checks.
2021-11-06 16:03:53 +01:00
Tollii
eb7d04bc77
Add cancellation token support for beatmap difficulty calculation.
2021-11-06 00:21:29 +01:00
Dean Herbert
e43d91ad5d
Fix another case of incorrect null checking in editor verification processing
2021-11-04 15:18:10 +09:00
Dean Herbert
1e73b09e57
Fix another couple of cases of incorrect string null/empty checking
2021-11-04 14:22:28 +09:00
smoogipoo
81aaef719f
Add xmldoc to CalculateTimed()
2021-11-02 17:55:00 +09:00
smoogipoo
168a7a588b
Add xmldoc to ctor also
2021-11-02 17:19:14 +09:00
smoogipoo
efba7a9c4d
Missed hyphen
2021-11-02 17:18:02 +09:00
smoogipoo
0cdd2898fe
Expose non-adjusted time from CalculateTimed()
2021-11-02 17:17:14 +09:00
Dean Herbert
34d4715220
Allow for long
online IDs and implement in ScoreInfo
2021-10-29 11:48:36 +09:00
Dean Herbert
5c7623e68e
Merge pull request #15255 from goodtrailer/node-samples-ilist
...
Change IHasRepeats.NodeSamples to IList from List
2021-10-28 14:24:26 +09:00
Dean Herbert
add39fbd4f
Merge branch 'master' into fix-skin-layout-editor-crash
2021-10-28 06:24:24 +09:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
Dean Herbert
d5b4c68d3a
Merge branch 'master' into fix-slider-path-extension-incorrectness
2021-10-26 17:36:50 +09:00
Dan Balasescu
6a6d3a5e8a
Merge pull request #15304 from peppy/fix-editor-new-beatmap-sample-change-crash
...
Fix editor crash when attempting to change sample/velocity from timeline on new beatmap
2021-10-26 17:13:56 +09:00
Dean Herbert
dae7cdc4c5
Ensure HitObject
-local control points are non-default after ApplyDefaults
...
We will probably want to make this whole flow more efficient in the
future, but this should suffice for now.
2021-10-26 16:06:03 +09:00
Dean Herbert
81fee02c2b
Fix slider paths being extended even when the last two points are equal
2021-10-26 15:47:59 +09:00
Jason Won
a582976851
reversing slider maintains shape
2021-10-26 00:05:46 -04:00
goodtrailer
0affe7b79d
Remove unnecessary using
2021-10-23 02:25:20 -07:00
goodtrailer
4440b9ca11
Change IHasRepeats.NodeSamples to IList from List
2021-10-23 01:59:07 -07:00
Dean Herbert
93482414d6
Remove SkinConfiguration
subclasses and allow configuration parsing for all skin types
2021-10-22 14:42:23 +09:00
Dean Herbert
2c5ba1d8e2
Change OnlineID
to non-nullable to allow for indexing in Realm
2021-10-18 15:53:40 +09:00
Dean Herbert
8fb9aec730
Fix threaded realm usage not disposing context fast enough
2021-10-15 16:39:53 +09:00
Dean Herbert
e47ccbd08a
Fix realm transactional overhead when rapidly changing RulesetConfigManager
values
2021-10-15 13:50:26 +09:00
smoogipoo
aa380a11c1
Merge branch 'master' into no-more-difficulty-control-points-info
2021-10-14 12:02:10 +09:00
Bartłomiej Dach
c7db286b94
Merge branch 'master' into file-sanity-checks
2021-10-14 00:17:29 +02:00
Dan Balasescu
e49f1f6e6b
Merge branch 'master' into no-more-difficulty-control-points-info
2021-10-13 20:17:57 +09:00
Dean Herbert
82f7f99f37
Refactor to use scoped using
(and also correctly dispose TagLib portion)
2021-10-12 10:46:26 +09:00
Naxesss
f2f97602f2
Dispose of video resource later
...
We need the Stream to stay open here because `StreamFileAbstraction` uses it later in the block.
2021-10-12 00:40:39 +02:00
Naxesss
47b4d03145
Dispose of Stream
s when used
2021-10-12 00:13:38 +02:00
Naxesss
ce69dd3588
Use Prescan
flag for audio length check
2021-10-11 23:57:23 +02:00
Bartłomiej Dach
56eae703fe
Avoid changing frame stable clock direction if time hasn't changed between frames
2021-10-11 21:39:48 +02:00
Naxesss
8f093b9a11
Use TagLib instead of ManagedBass
2021-10-11 13:56:26 +02:00
Naxesss
f0cd18a721
Only check each video file once
2021-10-11 13:55:50 +02:00
Naxesss
6aa054b5fa
Change to non-BASS error template
2021-10-11 13:53:23 +02:00
Dan Balasescu
8884091422
Merge pull request #15014 from joseph-ireland/remove-initial-strain
...
Change initial strain value in skills from 1 to 0
2021-10-10 15:56:20 +09:00
smoogipoo
bc37cb6f43
Merge branch 'master' into no-more-difficulty-control-points-info
2021-10-08 18:41:17 +09:00
Joseph Ireland
185bb9c122
change initial strain from 1 to 0 to allow simpler implementations
2021-10-07 09:30:18 +01:00
Dan Balasescu
d50443fdf2
Merge branch 'master' into difficulty-move-to-beatmap
2021-10-07 16:50:10 +09:00
Dean Herbert
433e7cd403
Fix rate mods not working if pp counter is displayed
2021-10-06 21:26:30 +09:00
Dean Herbert
b339c149d8
Copy BaseDifficulty
to Beatmap<T>
and move all write operations across
2021-10-06 15:10:45 +09:00
Dan Balasescu
e837a3511d
Merge branch 'master' into beatmap-difficulty-more-interface-usage
2021-10-06 12:18:51 +09:00
Dan Balasescu
4bbff2ebf7
Merge branch 'master' into new-interfaces
2021-10-06 11:38:17 +09:00
Dean Herbert
4d5696959b
Remove unnecessary access modifier in interface
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-10-06 05:52:28 +09:00
Dean Herbert
bd84a8b749
Merge branch 'new-interfaces' into beatmap-difficulty-more-interface-usage
2021-10-05 18:21:21 +09:00
Dean Herbert
599d82e383
Avoid returning a live IEnumerable
2021-10-05 17:01:07 +09:00
Dean Herbert
676df55a0e
Fade display out during rewind (as the value displayed is no longer valid)
2021-10-05 15:39:29 +09:00
Dean Herbert
b6af93d434
Apply some code quality refactoring
2021-10-05 15:14:49 +09:00
Dean Herbert
1d99bc280f
Merge branch 'master' into new-interfaces
2021-10-04 20:42:40 +09:00
smoogipoo
031c5a441e
Merge branch 'master' into realtime-pp-display
2021-10-04 20:19:37 +09:00
Dean Herbert
fd6b10656c
Add TODO reminder about ruleset reference transfer quirk
2021-10-04 16:55:16 +09:00
smoogipoo
69c2b7dc59
Merge branch 'master' into rename-beatmap-info-beatmap-fields
2021-10-04 16:03:22 +09:00
Dean Herbert
ec61c3c5ee
Rename all remaining cases
2021-10-03 00:55:29 +09:00
Dean Herbert
32afd3f426
Replace all basic usages
2021-10-02 02:22:23 +09:00
smoogipoo
a1f880a36a
Split classes
2021-10-01 21:00:39 +09:00
smoogipoo
5820a71652
Fix mania difficulty calculator crashing
2021-10-01 19:57:45 +09:00
Dean Herbert
05996cc2e9
Add changes that got forgotted in branch surgery
2021-10-01 17:04:53 +09:00
Dean Herbert
a92d499d7a
Convert usages of BeatmapDifficulty
to IBeatmapDifficultyInfo
2021-10-01 16:55:50 +09:00
Dean Herbert
8595eb2d11
Switch BeatmapDifficulty
usages to use interface type
2021-10-01 16:55:50 +09:00
Dean Herbert
d309636460
Update all EF based models to implement new read only interfaces
2021-10-01 16:55:50 +09:00
smoogipoo
84bddf0885
Initial PP counter implementation
2021-09-30 17:00:24 +09:00
Dean Herbert
46bafb6252
Merge branch 'master' into no-more-difficulty-control-points-info
2021-09-28 13:53:56 +09:00
Dean Herbert
16e60eed56
Reduce NestedHitObject
enumerator overhead
...
This was especially bad due to it allocating on any and every start time
change, even the first (see usage in `HitObject.ctor`).
2021-09-20 15:09:27 +09:00
Dean Herbert
a743a3f306
Change combo bind logic to be non-weird
2021-09-17 19:15:14 +09:00
smoogipoo
2d39131202
Refactor taiko flashlight a bit
2021-09-17 18:41:03 +09:00
smoogipoo
f9d5abff8a
Update with keybinding changes
2021-09-16 18:26:12 +09:00
Dean Herbert
a1d325cb22
Mark key and value non-nullable (at realm end) and simplify Value
logic
2021-09-15 17:16:05 +09:00
Dean Herbert
a150fb2996
Add nullability directive and make variant non-nullable
2021-09-15 17:16:05 +09:00
Dean Herbert
dcfe9c67e3
Make ruleset id non-nullable
2021-09-15 17:12:04 +09:00
Dean Herbert
80ecf81be3
Rename all databased setting classes to be specific to rulesets for now
2021-09-15 17:12:04 +09:00
Dean Herbert
520e550764
Bring back SettingsStore
to avoid changing ruleset API for now
...
Also fixes some remaining test failures due to locally constructed
rulesets that are not being tracked by the game.
2021-09-15 17:12:02 +09:00
Dean Herbert
c36a67d06e
Fix some tests failing due to using a locally constructed ruleset
2021-09-15 17:04:38 +09:00
Dean Herbert
a2f1752344
Make settings works with current caching structure
...
Will likely pull out that `RulesetConfigCache` next, but this is an
"everything works" state.
2021-09-15 16:31:13 +09:00
Dean Herbert
187c557ea8
Begin migrating settings implementation across to realm
2021-09-15 16:22:14 +09:00
Dean Herbert
a7ae3cc03e
Change SampleControlPoint
time to use leniency in bindable changed event too
2021-09-14 16:24:55 +09:00
Dean Herbert
cd227213e6
Ensure time of HitObject
related ControlPoint
s are kept in sync with the hitobject
2021-09-10 15:59:30 +09:00
Dean Herbert
714f55b6bc
Clone control points when copying to HitObject
s
2021-09-10 14:36:39 +09:00
Dean Herbert
464797fecf
Allow ModIcon
to be constructed using an IMod
2021-09-10 12:43:12 +09:00
Dean Herbert
c3531e1361
Move more specification from Mod
to IMod
2021-09-10 12:42:53 +09:00
Dean Herbert
719392de39
Change CreateInstance
to use Activator.CreateInstance
instead of clone
2021-09-10 12:05:10 +09:00
Dean Herbert
cf633973a9
Refactor exposed mod retrieval methods for better safety
2021-09-10 11:09:13 +09:00
Dean Herbert
2edb851008
Add ability to lookup mod from a type specification
2021-09-09 16:50:59 +09:00
Dean Herbert
4d0530ca9d
Add new methods to ruleset for quicker mod lookups
2021-09-09 16:46:14 +09:00
Dean Herbert
693ecdf62a
Refactor some incorrect/outdated terminology
2021-09-06 21:32:43 +09:00
Dean Herbert
3c7a34bdbd
Move mania-specific conversion to converter
2021-09-06 21:06:13 +09:00
Dean Herbert
766d789845
Rename ApproachRate
to ScrollSpeed
for now (to reduce complexity/confusion)
2021-09-06 21:06:13 +09:00
Dean Herbert
0500cd578a
Merge branch 'master' into no-more-difficulty-control-points-info
2021-09-06 21:06:12 +09:00
Dean Herbert
25420af078
Rename method to drop redundant ruleset suffix
2021-09-05 13:34:23 +09:00
Dean Herbert
6894ed3426
Fix new ordering of retrieval meaning EndTime
is not available in time
2021-09-03 17:11:12 +09:00
Dean Herbert
74f385bad8
Assign default control points earlier in HitObject
construction
2021-09-03 17:11:12 +09:00
Dean Herbert
1aff4c2238
Ensure all hitobject level control points are populated before calling virtual
defaults application
2021-09-03 17:11:12 +09:00
Dean Herbert
d587dc6203
Populate new approach rate where required
2021-09-03 17:11:12 +09:00
Dean Herbert
d4e5a612ea
Update IPositionalSnapProvider
to take a HitObject
as reference, rather than raw time
...
This allows fetching the correct `DifficultyControlPoint` from the
hitobject. Nothing more.
2021-09-03 17:11:12 +09:00
Dean Herbert
a3d9ab1e2e
Move approach rate to EffectControlPoint
2021-09-03 16:58:16 +09:00
Dean Herbert
b41b1e2394
Write out DifficultyControlPoint
s into HitObject
s
2021-09-03 16:58:16 +09:00
Bartłomiej Dach
ce1912781e
Add extension point for ruleset-specific beatmap setup sections
2021-09-02 23:29:14 +02:00
Dean Herbert
cdd0262ca1
Merge pull request #14598 from smoogipoo/adjust-classic-scoring
...
Make classic scoring a constant multiple of standardised scoring
2021-09-02 19:18:03 +09:00
Dan Balasescu
6c649b7bbe
Merge branch 'master' into no-more-sample-control-points-info
2021-09-02 18:09:05 +09:00
smoogipoo
e2f7aaeb71
Fix 0 score with bonus-only maps
2021-09-02 17:00:13 +09:00
Dean Herbert
b907c2f4f6
Fix osu! judgements getting scaled twice over different durations
2021-09-02 16:31:43 +09:00
smoogipoo
31433c4b89
Apply @spaceman_atlas' quadratic factor
2021-09-02 16:26:17 +09:00
smoogipoo
bd0f385cdb
Make classic scoring a constant multiple of standardised scoring
2021-09-01 14:53:11 +09:00