Bartłomiej Dach
ebdc501e5b
Add example scenarios and configurable score multiplier
2023-09-15 12:58:29 +02:00
Bartłomiej Dach
0c22ff2a80
Refactor further to allow extensibility to other rulesets
2023-09-15 12:58:29 +02:00
Bartłomiej Dach
45751dd1f2
Minimum viable changes for ruleset-specific scoring test scenes
2023-09-15 12:58:29 +02:00
Bartłomiej Dach
1ae8665a08
Merge pull request #24738 from peppy/no-legacy-difficulty-control-point
...
Remove `LegacyDifficultyControlPoint` / `LegacyBpmMultiplier`
2023-09-15 12:01:56 +02:00
Bartłomiej Dach
a6fab28461
Merge branch 'master' into no-legacy-difficulty-control-point
2023-09-15 11:14:28 +02:00
Dean Herbert
56cc2b62f0
Make not extension method
2023-09-15 18:13:04 +09:00
Dean Herbert
0031da76ff
Move to extension method and throw on non-legacy ruleset
2023-09-15 17:38:34 +09:00
Bartłomiej Dach
b2b18092cf
Merge pull request #24807 from peppy/import-task-improve
...
Clean up `ImportTask` / `ArchiveReader` implementations
2023-09-14 20:24:32 +02:00
Bartłomiej Dach
9b391cd661
Merge branch 'master' into import-task-improve
2023-09-14 19:37:01 +02:00
Bartłomiej Dach
c8b18acd4d
Bring back disposal of stream after copy-out to MemoryStream
...
Was there in previous code and got removed in the refactor. I'd rather
have it than not.
2023-09-14 19:36:35 +02:00
Bartłomiej Dach
f7156599a6
Merge pull request #24802 from peppy/mod-select-difficulty-multiplier-animation
...
Rename "difficulty multiplier" to "score multiplier" and add more animation hinting
2023-09-14 19:21:20 +02:00
Bartłomiej Dach
6aff1d4063
Merge branch 'master' into mod-select-difficulty-multiplier-animation
2023-09-14 16:23:30 +02:00
Bartłomiej Dach
bb32368426
Merge pull request #24801 from peppy/mod-select-diff-multiplier-visual-matching
...
Simplify multiplier display implementation
2023-09-14 16:22:46 +02:00
Dean Herbert
57f32b177d
Fix incorrect handling of non-MemoryStream
pathway
2023-09-14 22:19:18 +09:00
Bartłomiej Dach
94cdcfd7ce
Move collapsed bindable back to BeatmapAttributesDisplay
for now
...
Better to have it only in one place that needs it, rather than have it
not work as expected when someone inherits
`ModFooterInformationDisplay`.
2023-09-14 14:56:58 +02:00
Bartłomiej Dach
44461b4eff
Merge branch 'master' into mod-select-diff-multiplier-visual-matching
2023-09-14 12:12:23 +02:00
Bartłomiej Dach
5bda9a3024
Merge pull request #24799 from peppy/move-mod-select-diff-multiplier
...
Move mod overlay difficulty multiplier display to bottom of screen
2023-09-14 12:11:50 +02:00
Bartłomiej Dach
3f7b8dbe58
Merge branch 'master' into move-mod-select-diff-multiplier
2023-09-14 11:26:22 +02:00
Bartłomiej Dach
25dbd0a1d3
Rename variable to reflect new "beatmap attributes display" naming
2023-09-14 11:24:53 +02:00
Bartłomiej Dach
2d3be819d0
Merge pull request #24796 from peppy/collapse-preset-column
...
Collapse mod presets column slightly when not in use
2023-09-14 11:07:36 +02:00
Bartłomiej Dach
18672e178f
Merge pull request #24795 from peppy/fix-mod-rate-adjust-tooltip-x
...
Fix rate adjust mods not showing "x" prefix on customisation slider's tooltip
2023-09-14 10:18:32 +02:00
Bartłomiej Dach
4c9c118af3
Merge pull request #24805 from smoogipoo/revert-masking-ssbo
...
Revert masking SSBO changes
2023-09-14 09:09:28 +02:00
Bartłomiej Dach
68323671ec
Update framework and resources
2023-09-14 08:24:18 +02:00
Dean Herbert
7bf0a22112
Improve flash effect
2023-09-14 13:57:56 +09:00
Dean Herbert
364094fcf2
Inline all archive reader pathing
2023-09-14 13:38:23 +09:00
Dean Herbert
541cd972e1
Rename ArchiveReader
implementations to read better
2023-09-14 13:36:07 +09:00
Dean Herbert
0657b55196
Avoid MemoryStream.ToArray
overhead in LegacyByteArrayReader
2023-09-14 13:33:25 +09:00
Dean Herbert
b5902a8736
Avoid MemoryStream
overhead for incoming non-MemoryStream
in ImportTask
2023-09-14 13:29:29 +09:00
Dan Balasescu
753c1c877c
Revert masking SSBO changes
2023-09-13 23:10:13 +09:00
Dean Herbert
32946413de
Change display text from "difficulty" to "score" multiplier
2023-09-13 20:01:19 +09:00
Dean Herbert
3e1388c73f
Add vertical animation when difficulty multiplier is changed
2023-09-13 19:57:48 +09:00
Dean Herbert
824a3e4adc
Update DifficultyMultiplierDisplay
to use new shared design
2023-09-13 19:56:31 +09:00
Dean Herbert
46d5aa59bf
Split base design out of BeatmapAttributesDisplay
2023-09-13 19:33:30 +09:00
Dean Herbert
9a7d1ed98b
Tidy up DifficultyMultiplierDisplay
2023-09-13 18:55:17 +09:00
Dean Herbert
35840bf671
Combine ModCounterDisplay
and DifficultyMultiplierDisplay
into one class
2023-09-13 18:51:56 +09:00
Dean Herbert
491d94c5ac
Use local shear definition
2023-09-13 18:51:50 +09:00
Dean Herbert
41b0619533
Fix shear being included on wrong side of ModCounterDisplay
2023-09-13 18:19:42 +09:00
Dean Herbert
923c2a16ed
Fix weird centering of multiplier "x"
2023-09-13 18:11:16 +09:00
Dean Herbert
21252c1c23
Fix animations
2023-09-13 18:06:50 +09:00
Dean Herbert
e241e41f2a
Fix layout decision to account for new multiplier addition
2023-09-13 17:55:21 +09:00
Dean Herbert
49114430ed
Move multiplier display to bottom of sceen to make visible while customising
2023-09-13 17:43:55 +09:00
Dean Herbert
be373391f8
Simplify multiplier display implementation
2023-09-13 17:43:41 +09:00
Dean Herbert
f5cee22db7
Collapse mod presets column slightly when not in use
2023-09-13 17:05:42 +09:00
Dean Herbert
d146da9546
Fix rate adjust mods not showing "x" prefix on customisation slider's tooltip
2023-09-13 16:43:48 +09:00
Dean Herbert
f90f2491c3
Merge pull request #24792 from bdach/fix-score-v1-multiplier-handling
...
Fix Score V1 simulation in scoring test scene incorrectly applying multiplier
2023-09-13 13:30:11 +09:00
Bartłomiej Dach
7c65a9de75
Fix Score V1 simulation in scoring test scene incorrectly applying multiplier
...
`TestSceneScoring` included a local simulation of stable's Score V1
algorithm. One of the parts of said algorithm is a mysterious
"score multiplier", influenced by - among others - the beatmap's drain
rate, overall difficulty, circle size, object count, drain length,
and active mods. (An implementation of this already exists in lazer
source, in `OsuLegacyScoreSimulator`, but more on this later.)
However, `TestSceneScoring` had this multiplier in _two_ places, with
_two_ distinct values, one of which being 1 (i.e. basically off).
Unfortunately, the place that had 1 as the multiplier was the wrong one.
Stable calculates the score increase for every hit in two stages;
first, it takes the raw numerical value of the judgement, but then
applies a combo-based bonus on top of it:
scoreIncrease += (int)(Math.Max(0, ComboCounter.HitCombo - 1) * (scoreIncrease / 25 * ScoreMultiplier));
On the face of it, it may appear that the `ScoreMultiplier` factor
can be factored out and applied at the end only when returning total
score. However, once the above formula is rewritten as:
scoreIncrease = scoreIncrease + (int)(Math.Max(0, ComboCounter.HitCombo - 1) * (scoreIncrease / 25 * ScoreMultiplier));
= scoreIncrease * (1 + (Math.Max(0, ComboCounter.HitCombo - 1) / 25 * ScoreMultiplier))
it becomes clear that that assumption is actually _incorrect_,
and the `ScoreMultiplier` _must_ be applied to every score increase
individually.
The above was cross-checked experimentally against stable source
on an example test map with 100 objects, and a replay hitting them
perfectly.
2023-09-12 21:33:26 +02:00
Dean Herbert
2bc6759704
Merge pull request #24662 from frenzibyte/stable-spinner-ticks-2
...
Add two spins gap before awarding bonus score on osu! spinners
2023-09-12 21:39:37 +09:00
Dean Herbert
3aca295aa5
Merge pull request #24790 from bdach/scoring-test-scene-improvements
...
Improve scoring test scene usability
2023-09-12 21:06:06 +09:00
Dean Herbert
e810abf1e6
Rename variable
2023-09-12 20:51:22 +09:00
Dean Herbert
39d69903ab
Merge branch 'master' into stable-spinner-ticks-2
2023-09-12 20:41:43 +09:00