Commit Graph

2557 Commits

Author SHA1 Message Date
PercyDan54 b20b2203ac
Fix mania Autoplay mod missing 0ms hold notes 2023-12-11 21:10:14 +08:00
Dan Balasescu b36db3518c
Add keycount to song select details panel and carousel panels 2023-12-09 22:31:51 +09:00
Dan Balasescu 81fe15f288
Fix osu!mania converted key count edge cases 2023-12-09 15:39:54 +09:00
Dan Balasescu 0fe2e1e8d6
Re-fix mania conversion following new discoveries 2023-12-08 16:33:10 +09:00
Dan Balasescu d6cb8b70bb
Fix FP precision issue when converting mania beatmaps 2023-12-07 12:26:02 +09:00
Dan Balasescu d0acb7f4f9
Improve commenting
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-12-04 06:08:31 +09:00
Dan Balasescu 230278f2c9
Once again remove Mania passive HP drain 2023-12-03 01:47:20 +09:00
Dan Balasescu 1c3bcbd548
Use IHasPath instead of IHasDistance for mania/taiko 2023-11-29 17:30:21 +09:00
Dan Balasescu 16577829e2
Fix mania and taiko slider conversion distance 2023-11-28 21:14:56 +09:00
Dan Balasescu d924227810
Add `ManiaHealthProcessor` that uses the legacy drain rate algorithm 2023-11-27 14:38:31 +09:00
Bartłomiej Dach a8fc73695f
Rename variable 2023-11-20 22:04:08 +09:00
Bartłomiej Dach 364a3f75e1
Compile regexes 2023-11-20 22:03:25 +09:00
Bartłomiej Dach b6215b2809
Rename and document `SelectFromTimestamp` 2023-11-20 21:57:14 +09:00
ratinfx fab6fc9adb Updated comments, renamed method 2023-11-12 15:09:15 +01:00
ratinfx 4e7c40f1d7 Do Split and Parse before checking HitObjects 2023-11-12 14:58:46 +01:00
ratinfx 4e1e19728c Refactor HitObject selection in Composer 2023-11-11 14:02:42 +01:00
ratinfx aa87e0a44d HitObject Selection logic and separation for gamemodes
+ moved time_regex into EditorTimestampParser
2023-11-07 01:36:58 +01:00
Bartłomiej Dach 998d709331
Merge branch 'master' into mania-key-expand-mobile 2023-11-02 11:59:01 +01:00
Dean Herbert 704f5a6de3
Adjust sizing slightly to ensure we stay within 1366 limits 2023-11-02 11:44:36 +01:00
Dean Herbert c83589cb74
Change osu!mania conversion mod ordering to be more appeasing 2023-11-02 15:49:10 +09:00
Dean Herbert 6dab5ee4cf
Add support for "argon" default skin to expand columns when on mobile device
Should ease those looking to play the game on mobile until we
(potentially) have a better solution in the future.

If this works out well, we can consider rolling it out to other skins.

Closes https://github.com/ppy/osu/issues/23377.
2023-11-02 15:13:44 +09:00
Dean Herbert fbba3787d1
Merge pull request #25190 from frenzibyte/match-skin-element-animation-support
Match capability of animating legacy skin elements with osu!(stable)
2023-10-30 18:25:06 +09:00
Salman Ahmed 976ae62214 Fix incorrect nullability specification 2023-10-21 01:10:06 +03:00
Salman Ahmed 491f119988 Add animation support for legacy osu!mania column lights 2023-10-21 00:22:34 +03:00
Salman Ahmed 517d0f65b6 Adjust frame length of osu!mania hold-note body animation 2023-10-21 00:22:31 +03:00
Salman Ahmed badb1310a3 Adjust frame length of osu!mania judgement animation 2023-10-20 23:59:03 +03:00
Bartłomiej Dach b321d556b6
Enforce minimum gameplay sample volume of 5% 2023-10-20 15:50:13 +02:00
Dean Herbert 52c2eb93de
Merge branch 'master' into taiko-beat-snap-grid 2023-10-19 23:53:01 +09:00
Dean Herbert 5341a335a6
Bypass `Parent` nullability checks for now 2023-10-17 17:48:45 +09:00
Bartłomiej Dach 2192c9f2c2
Remove unused using directive 2023-10-17 10:30:01 +02:00
Bartłomiej Dach 22c1a963e7
Remove unused field 2023-10-17 10:27:16 +02:00
Dean Herbert 4381169a3f
Combine selection and input handling logic for beat snap grids across all rulesets 2023-10-17 17:09:42 +09:00
Dean Herbert 1b9acdf55c
Abstract out common implementation of `BeatSnapGrid` 2023-10-17 16:42:52 +09:00
Dean Herbert d26d4b8b79
Cache `IScrollingInfo` at a `HitObjectComposer` level automatically 2023-10-17 16:42:22 +09:00
Bartłomiej Dach b9a84127ac
Remove mention of "any tick"
They're very dead now.
2023-10-16 08:57:35 +02:00
Dean Herbert 4f1546c474
Rename `PerfectBonusNote` to `NotePerfectBonus` 2023-10-16 15:14:28 +09:00
Dean Herbert 3f09ed396f
Fix legacy skin body piece dimming when it shouldn't 2023-10-16 15:11:33 +09:00
Dean Herbert 1a957364ae
Add empty hit windows on `PefectBonusNote` 2023-10-16 14:58:49 +09:00
Dean Herbert 43f619f92a
Add `DisplayResult` flag and remove unnecessary `AlwaysPresent` 2023-10-16 14:57:58 +09:00
Dean Herbert 14fedffcc1
Fix `MissForcefully` not considering the bonus object 2023-10-16 14:53:36 +09:00
Dean Herbert e85c039722
Adjust method flow to hopefully be more legible 2023-10-16 13:31:14 +09:00
Dean Herbert ddbda69751
Remove nullability of `bonusNote` 2023-10-16 13:14:58 +09:00
Dean Herbert 850950ba61
Add note about why `SmallBonus` is not listed in `GetValidHitResults` 2023-10-13 17:36:30 +09:00
Dean Herbert 125f28219d
Fix hodl tail notes not correctly handling nested bonus judgement 2023-10-13 17:36:19 +09:00
Dean Herbert 94b64044e0
Add nested bonus judgement to `DrawableNote` for perfect bonus score 2023-10-13 17:01:48 +09:00
Bartłomiej Dach a42e75452e
Remove remaining usages of `LargeTickHit` in mania 2023-10-12 11:16:51 +02:00
Bartłomiej Dach 063623b4e6
Merge branch 'master' into remove-hold-note-ticks 2023-10-11 19:47:51 +02:00
Bartłomiej Dach 3f29f27cd4
Assign empty hit windows to `HoldNoteBody`
It's not a timed object, so following precedent, it should have empty
hitwindows.

This is not actually just aesthetics; several components check whether a
hitobject has empty hitwindows to determine whether to include it on
various HUD displays and results screen components where timed objects
are explicitly involved.
2023-10-11 19:40:55 +02:00
Dean Herbert 8dc9453d8d
Apply some xmldoc and structural changes 2023-10-10 16:59:25 +09:00
Dean Herbert 1a60d6ade5
Use a `DrawablePool` for mania's beat snap grid
I'm not sure what the cause of the issue is, but I'm also not sure why
it wasn't using `DrawablePool` (was it not around back then?).

Either way, switching to a proper pool fixes things just fine.

Resolves https://github.com/ppy/osu/issues/25009.
2023-10-10 13:36:31 +09:00
Bartłomiej Dach 71c4b138fb
Merge branch 'master' into fix-legacy-score-multipliers-2 2023-10-09 10:53:14 +02:00
Dan Balasescu e874ec81c9
Remove unused usings 2023-10-09 12:22:08 +09:00
Dan Balasescu f0da7f016d
Actually use the judgement 2023-10-09 11:49:54 +09:00
Dan Balasescu d988ef9b22
Revert functional change 2023-10-09 10:50:39 +09:00
Dan Balasescu 9415fe4446
Add mania hold note body + combo break judgement 2023-10-09 09:47:00 +09:00
Dan Balasescu b2d9c95441
Remove HoldNoteTickJudgement 2023-10-09 09:31:45 +09:00
Dan Balasescu 5362902c87
Merge branch 'master' into remove-hold-note-ticks 2023-10-09 08:15:10 +09:00
Dean Herbert f2e56bbb65
Fix publicly-settable bindables 2023-10-06 16:51:24 +09:00
Dan Balasescu da2a4681d9 Add method to retrieve legacy score multiplier 2023-10-02 16:52:01 +09:00
Dan Balasescu b4b7a7ea5e Add LegacyBeatmapConversionDifficultyInfo abstraction 2023-10-02 16:52:01 +09:00
NiceAesth 83bf1efc1c Add `color` search alias for `colour` settings 2023-09-27 16:29:29 +03:00
Bartłomiej Dach e1d52134ae
Merge pull request #24930 from peppy/adjust-mania-barlines
Adjust osu!mania "major" barlines to be less visually distracting
2023-09-26 19:39:22 +02:00
Dean Herbert 9949480ccd Add minor edge smoothing to fix flickering of barlines
In most cases.

Closes https://github.com/ppy/osu/issues/15184.
2023-09-26 17:06:52 +09:00
Dean Herbert 5150c5a643 Adjust osu!mania "major" barlines to be less visually distracting
Applies to both "triangles" and "argon" skins.
2023-09-26 17:06:27 +09:00
Dean Herbert 0dcf7a2fa9
Merge branch 'master' into split-legacy-scoring-attribs 2023-09-26 15:52:27 +09:00
Dean Herbert cb0226f843 Implement new interface-based speed change visualisation support on mania/taiko 2023-09-20 15:28:13 +09:00
Dean Herbert 41a8239e49 Remvoe null default for mods which can't be null 2023-09-20 15:27:50 +09:00
Dean Herbert c5397bdbb3
Merge branch 'master' into mania-edit-disable-sv 2023-09-20 14:23:07 +09: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
Dean Herbert 4ecc4632aa Make rounding error even less precise
Basically matching the old code more closely to avoid too much precision
from doing math in a slightly different way.
2023-09-12 18:41:09 +09:00
Bartłomiej Dach e71fef4b6a
Remove braces 2023-09-07 18:47:03 +02:00
Dan Balasescu 2334be1987 Split legacy scoring attributes into a separate object 2023-09-07 21:10:38 +09:00
Dean Herbert b34a36f6ce Remove all usage of `LegacyDifficultyControlPoint` 2023-09-07 17:41:57 +09:00
Bartłomiej Dach 17e791d984
Merge branch 'master' into skin-lookup-debug 2023-09-06 18:44:50 +02:00
Dean Herbert 1a37543d28 Rename `SliderVelocity` to `SliderVelocityMultiplier` to distinguish from `Velocity` 2023-09-06 19:01:08 +09:00
Dean Herbert 6c95b88589 Add debug output for skin configuration lookups
We've struggle with debugging these over the years so I think this was
worth a couple of hours of work.

Example of osu! lookups:

```log
[runtime] 2023-09-06 08:38:30 [verbose]: BeatmapSkinProvidingContainer.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacyBeatmapSkin{ Name: Vickeblanka - Lucky Ending (TV Size) (tears_) [Normal] } } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: SpinnerFrequencyModulate) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: SpinnerFrequencyModulate) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: osu.Game.Skinning.ResourceStoreBackedSkin }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-osu.Game.Skinning.ResourceStoreBackedSkin.GetConfig(lookup: SpinnerFrequencyModulate) 🔴
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: TrianglesSkin{ Name: osu! "triangles" (2017) } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-TrianglesSkin{ Name: osu! "triangles" (2017) }.GetConfig(lookup: SpinnerFrequencyModulate) 🔴
[runtime] 2023-09-06 08:38:30 [verbose]:
[runtime] 2023-09-06 08:38:30 [verbose]: BeatmapSkinProvidingContainer.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacyBeatmapSkin{ Name: Vickeblanka - Lucky Ending (TV Size) (tears_) [Normal] } } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: ScorePrefix) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: ScorePrefix) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: osu.Game.Skinning.ResourceStoreBackedSkin }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-osu.Game.Skinning.ResourceStoreBackedSkin.GetConfig(lookup: ScorePrefix) 🔴
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: TrianglesSkin{ Name: osu! "triangles" (2017) } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-TrianglesSkin{ Name: osu! "triangles" (2017) }.GetConfig(lookup: ScorePrefix) 🔴
```

Example of osu!mania lookups:

```log
[runtime] 2023-09-06 08:28:34 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnWidth col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnWidth col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4]) 🔴
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnWidth col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4]) 🟢
[runtime] 2023-09-06 08:28:34 [verbose]:
[runtime] 2023-09-06 08:28:34 [verbose]: BeatmapSkinProvidingContainer.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacyBeatmapSkin{ Name: antiPLUR - Runengon (Raveille) [Easy] } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4]) 🔴
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4]) 🟢
[runtime] 2023-09-06 08:28:34 [verbose]:

```
2023-09-06 18:03:40 +09:00
Dean Herbert 37c2b330a2 Move toggle implementation to work on all scrolling rulesets automatically 2023-09-01 19:53:10 +09:00
Dean Herbert 6ce251fbb5 Expose base `VisualisationMethod` so we don't need to `new` it locally per ruleset 2023-09-01 19:17:53 +09:00
Dean Herbert 0f5eff1230 Merge branch 'master' into mania-edit-disable-sv 2023-09-01 19:08:48 +09:00
Dan Balasescu c60f13dd92 Remove mania hold note ticks 2023-08-31 17:30:27 +09:00
Dan Balasescu c8f42f73e8 Adjust mania hit windows with gameplay rate 2023-08-24 11:17:41 +09:00
Dan Balasescu a2fd7707a1 Allow toggling SVs in the editor 2023-08-18 18:55:24 +09:00
Dan Balasescu cb23f03d4b
Merge pull request #24109 from Hydria/LNFixHotfix
Adjust LN value scaling to bring overrated LN maps more in line
2023-08-17 09:30:19 +02:00
Dan Balasescu 7d8cef83e6
Merge branch 'master' into LNFixHotfix 2023-08-15 13:45:06 +02:00
Dan Balasescu 5678db4e70 Fix test + cleanup 2023-08-15 19:42:32 +09:00
Dan Balasescu e34a9a0001 Disable hold end conversion for mania HoldOff mod 2023-08-15 19:30:40 +09:00
Dan Balasescu ec9e7f14a8 Disable SVs from being visualised in mania editor 2023-08-15 18:51:24 +09:00
Dean Herbert 3526032c9a
Merge pull request #24544 from smoogipoo/pool-mania-barlines
Add pooling for mania barlines
2023-08-15 15:21:59 +09:00
Dan Balasescu 6a7b0786c9 Add barline pooling for mania 2023-08-15 13:33:49 +09:00
Bartłomiej Dach 3178865cd3
Fix playfield skinnable layer bounds being incorrectly calculated with multiple stages
Closes #24514.

The original PR was _supposed_ to be handling this, and had code that
_looked_ like it would handle it, but was in fact subtly wrong, as the
union of `RectangleF.Empty` (initial value of `area`) and an arbitrary
other rectangle is _not_ the second rectangle, but rather a rectangle
that contains _both_ the second rectangle and the point (0,0),
thus leading to the bound calculation fail.
2023-08-12 21:55:20 +02:00
Dean Herbert 06fe5583cb Expose a new SSDQ from playfield for skinnable area bounds 2023-07-28 15:47:57 +09:00
Hydria 1e19def153 2nd fix to cover all scenarios 2023-07-22 16:44:01 +01:00
Bartłomiej Dach 157aec5144
Fix mania key count slider still using circle size precision 2023-07-22 16:10:58 +02:00
Hydria ef2134a92a Fix issue with processing LN orders
Related Issue: https://github.com/ppy/osu/issues/22756

The trigger in question happens when
(1) in a chord: a longer LN, then a shorter LN is processed respectively.
(2) in a chord: a long LN, then a note is processed respectively.

however, given the opposite processing step, it will fail to trigger.

We observe that both situations have the same pattern, however has undeterministic results, which only depends on the order the mapper placed each note.
2023-07-22 10:45:48 +01:00
Dean Herbert fd2bdc10c7 Fix "key count" setting showing as "circle size" in osu!mania editor
Closes https://github.com/ppy/osu/issues/12904.
2023-07-21 18:52:29 +09:00
Dean Herbert e58488d04a Fix incorrect comparer implementation 2023-07-15 11:19:34 +09:00
Dean Herbert d4fb0bef95 Fix osu!mania scores failing to convert to new standardised score due to cast failure
Regressed in https://github.com/ppy/osu/pull/23917.
Closes #24217.
2023-07-14 19:38:10 +09:00
Bartłomiej Dach d5912165e9
Merge branch 'master' into results-screen-component-metrics 2023-07-13 19:53:52 +02:00
Dean Herbert 9ad63bae37 Add missing heading for statistics section in results screen 2023-07-13 18:50:52 +09:00
Dean Herbert 947b40149f Adjust metrics of `SimpleStatisticTable` 2023-07-13 18:45:32 +09:00
Dan Balasescu 47a65f8890
Merge branch 'master' into fix-imperfect-simulation 2023-07-13 15:41:54 +09:00
Bartłomiej Dach 7be5e0e978
Implement back-and-forth conversion of `ModScoreV2` and `LegacyMods` 2023-07-09 16:15:21 +02:00
Bartłomiej Dach 9dae806734
Use `IsRewinding` in a few more places 2023-07-08 13:32:24 +02:00
Dean Herbert e0fc97bb93 Replace various local implementations of rewinding checks with new property 2023-07-07 15:21:24 +09:00
Dean Herbert 1629024111 `ILegacyScoreProcessor` -> `ILegacyScoreSimulator` 2023-07-04 17:32:54 +09:00
Hydria 5d5e6a5ab7 Finalised LN Adjustment Values
Spent a couple days discussing this on the pp rework server about values that were the most acceptable, these seemed to be the best from the community standpoint of top players.
Note: This is more to fix issues with the current system, not to be a final solution.
Related Google Sheets Page: https://docs.google.com/spreadsheets/d/1P0AxfdKvMHwWBQder4ZkFGO1fC9eADSGCryA5-UGriU/edit?usp=sharing
2023-07-03 17:45:30 +01:00
Dan Balasescu 426f11b824 Apply a few other code reviews 2023-06-29 17:28:06 +09:00
Dan Balasescu c6ad184d94 Move Ruleset method to ILegacyRuleset interface 2023-06-29 17:24:37 +09:00
Dan Balasescu 09bc8e45de Refactoring 2023-06-28 16:14:32 +09:00
Dan Balasescu a9c65d200a Initial conversion of scores 2023-06-26 22:19:01 +09:00
Dan Balasescu e1d723a2cc Merge branch 'master' into diffcalc-total-scorev1 2023-06-26 14:32:14 +09:00
Bartłomiej Dach e3a89a6273
Fix remaining obvious CI inspections 2023-06-24 16:07:01 +02:00
Dan Balasescu 5fadadc3d0 Merge branch 'master' into diffcalc-total-scorev1 2023-06-24 02:46:15 +09:00
Dean Herbert df5b389629 Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
Dan Balasescu 06565871d6 Add flag to disable computing legacy scoring values 2023-06-24 01:03:18 +09:00
Dean Herbert 0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Dan Balasescu bfa449e47a Adjust attribute data 2023-06-19 21:38:13 +09:00
Maksim Kan f70342bd67 Fix Triangle skin colors with Dual Stage mod 2023-06-17 10:12:26 +03:00
Bartłomiej Dach b36ded0ba9
Merge pull request #23936 from peppy/fix-mania-hold-note-rewind-visuals
Fix osu!mania hold notes sometimes looking incorrect after rewind
2023-06-16 20:45:40 +02:00
Dean Herbert 3b1f92d8b8 Fix fix logic causing further regression on release 2023-06-17 01:37:09 +09:00
Dean Herbert b5de109cb3 Fix osu!mania hold notes sometimes looking incorrect after rewind 2023-06-16 14:54:19 +09:00
Dan Balasescu 145530035c Optimise mania density calculation during beatmap conversion 2023-06-15 20:00:15 +09:00
Dan Balasescu 975e9baf43 Fix exception with no matching mods 2023-06-15 19:55:51 +09:00
Dan Balasescu 0844a21a51 Merge branch 'master' into diffcalc-total-scorev1 2023-06-15 19:33:29 +09:00
Bartłomiej Dach 0065334241
Fix mania autoplay simulation judging objects in different order to gameplay 2023-06-14 21:50:19 +02:00
Dan Balasescu 13d1f9c902 Add ScoreV1 calculation for ManiaRuleset 2023-06-13 23:28:45 +09:00
Dean Herbert dbb7ddac52 Change osu!mania scoring ratio to 99% acc (to match previous lazer scoring) 2023-06-08 20:55:13 +09:00
Bartłomiej Dach c8507837d1
Remove redundant initialisation of `Children` to empty array 2023-06-07 21:51:46 +02:00
Bartłomiej Dach 8463f5c7dd
Spell out location of external proxy explicitly 2023-06-07 21:50:16 +02:00
Bartłomiej Dach f069f982d4
Merge branch 'master' into mania-barlines-behind-notes 2023-06-07 21:43:39 +02:00
Bartłomiej Dach 7fa082cc1d
Merge pull request #23770 from peppy/add-catch-beat-snap-grid
Add beat snap grid for osu!catch editor
2023-06-07 18:35:14 +02:00
Bartłomiej Dach c50a5498e9
Merge pull request #23769 from peppy/update-mania-colours
Update argon osu!mania column colours in line with latest proposal
2023-06-07 16:55:54 +02:00
Dean Herbert d57c2ab7e4 Fix osu!mania barlines showing in front of notes
Closes #23412.
2023-06-07 14:23:23 +09:00
Salman Ahmed 62cb6a98ca Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
Dean Herbert 6d446d3e97 Fix incorrect colouring of beat snap grids (mania and catch) 2023-06-07 12:25:34 +09:00
Dean Herbert cdd931633d
Change 3K middle key to "special" purple colour
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-06-07 12:10:30 +09:00
Bartłomiej Dach 92c2320689
Merge pull request #23776 from peppy/fix-scroll-time-decimal
Fix osu!mania scroll speed milliseconds having too much precision
2023-06-06 22:34:08 +02:00
Dean Herbert 6b18f2f2bb Fix osu!mania scroll speed milliseconds having too much precision
Closes #23750.
2023-06-06 21:43:56 +09:00
Dean Herbert 7a1766e378 Update argon osu!mania column colours in line with latest proposal
Matches https://github.com/ppy/osu/discussions/21996#discussioncomment-5516872.
2023-06-06 16:42:20 +09:00
Dean Herbert b8d9c9ff93 Move `ApplyGameWideClock` to extension method
I don't see an issue with applying this workaround to more places, even
though it is a workaround, because it marks each usage very clearly. If
we design a better solution in the future it should be easy to replace
the usages.
2023-06-06 16:07:50 +09:00
Bartłomiej Dach 331e90f720
Merge branch 'master' into tidy-results-grid-usage 2023-06-03 19:45:23 +02:00
Dan Balasescu e402c6d2b4 Write max combo attribute from base class 2023-06-02 21:53:25 +09:00
Bartłomiej Dach 4daf1fcb7d
Merge pull request #23721 from peppy/fix-mania-hold-not-early-hit
Fix osu!mania hold notes snapping to judgement area too early on early hits
2023-06-01 21:57:36 +02:00
Dean Herbert 00bf79d51f
Merge pull request #23691 from smoogipoo/mania-scroll-speed
Replace mania scroll "time" with scroll "speed"
2023-06-01 17:23:27 +09:00
Dean Herbert 98f35f7481 Fix osu!mania hold notes snapping to judgement area too early on early hits
Closes https://github.com/ppy/osu/issues/23515.
2023-06-01 16:06:35 +09:00
Dean Herbert 985604fab5 Return `StatisticItem`s rather than `StatisticRow`s from ruleset
There were no usages of more than one column being provided per row, so
it seemed like unnecessarily complexity. I'm currently trying to reduce
complexity so we can improve the layout of the results screen, which
currently has up to three levels of nested `GridContainer`s.

Of note, I can't add backwards compatibility because the method
signature has not changed in `Ruleset` (only the return type). If we do
want to keep compatibility with other rulesets, we could designate a new
name for the updated method.
2023-06-01 14:35:15 +09:00
Dan Balasescu b456c36f64 Migrate in InitialiseDefaults() 2023-05-30 17:27:48 +09:00
Dan Balasescu 1c199b83e3 Replace mania scroll "time" with scroll "speed" 2023-05-29 21:22:23 +09:00
Dan Balasescu fee3d43596 Merge branch 'master' into scorev2 2023-05-23 19:07:54 +09:00
Dan Balasescu 30a296bd09 Rename parameters 2023-05-19 17:27:02 +09:00
Dan Balasescu d74bf2a096 Refactor for safety 2023-05-19 14:37:26 +09:00
Dan Balasescu 2ae34530f7 Avoid NaN values during ApplyBeatmap processing() 2023-05-19 14:14:34 +09:00
Dan Balasescu 7cbf48ffcf Fix TestSceneScoring and incorrect combo calculations 2023-05-19 14:09:19 +09:00
Dan Balasescu 8b56a3f87d Remove ClassicScoreMultiplier and DefaultScoreProcessor 2023-05-19 12:24:52 +09:00
Dean Herbert f443cfb93e Move blueprint validity conditions to allow more correct external usage of `EndPlacement`
Until now, these were haphazardly enforce inline in blueprint
implementations. The only thing stopping complete breakage is that
`EndPlacement` wasn't called (too much) from outside the blueprint,
leaving them responsible for their own placement.

By moving this conditional out of the provided paramters to
`EndPlacement`, it allows more flexible usage of that method externally.
Coming in a future PR.
2023-05-12 16:02:22 +09:00
Dan Balasescu a7b623f52a Reimplement classic scoring mode 2023-05-09 20:21:38 +09:00
Dan Balasescu 3c3c812ed6 Initial implementation of ScoreV2 2023-05-09 19:33:33 +09:00
Bartłomiej Dach efc4df95eb
Merge pull request #23429 from peppy/fix-incorrect-mania-description-keys
Fix incorrect special style description text
2023-05-09 07:04:57 +02:00
Bartłomiej Dach 0a47ffcbdd
Match generally used casing
Co-authored-by: Joseph Madamba <madamba.joehu@outlook.com>
2023-05-09 07:03:13 +02:00
Bartłomiej Dach 1ff1730948
Remove no-longer-correct remark 2023-05-08 22:35:41 +02:00
Bartłomiej Dach 3f45948664
Merge branch 'master' into fix-mania-head-note-animation 2023-05-08 22:23:01 +02:00
Dean Herbert 27c10cbdb7 Remove clamping of `sizingContainer` in `DrawableHoldNote` to fix head note alignment 2023-05-08 18:14:07 +09:00
Dean Herbert 814f0b3fed Add back early return in `OnReleased` for safety 2023-05-08 15:43:11 +09:00
Dean Herbert 85d0c56cd2 Fix incorrect special style description text
Closes https://github.com/ppy/osu/issues/23428.
2023-05-08 13:00:45 +09:00
Dean Herbert 6a59ded1ba Move logic to `Update` instead 2023-05-03 15:18:37 +09:00
Dean Herbert 4013cdcfa8 Merge branch 'master' into mania-fix-hold-note-rewind 2023-05-03 15:04:59 +09:00
OliBomby e7a478ce9c Update convert-samples-expected-conversion.json 2023-04-30 16:04:03 +02:00
OliBomby d97daee96b remove all non-test usage of SampleControlPoint 2023-04-26 13:55:39 +02:00
OliBomby 39d9f0c3f5 removing using 2023-04-26 13:22:13 +02:00
OliBomby 6c70948681 Remove IContext & add IHasGenerateTicks 2023-04-26 13:10:57 +02:00
OliBomby e4b64bdc3e clean up code stuff 2023-04-25 19:06:29 +02:00
OliBomby ea1e6e9798 Add LegacyContext 2023-04-25 12:12:46 +02:00
OliBomby a4c6850ab2 made the SampleControlPoint and DifficultyControlPoint obsolete 2023-04-25 11:34:09 +02:00
Dan Balasescu ad51f880e0 Remove overrides on DC/NC mods 2023-04-10 17:49:29 +09:00
Dan Balasescu 15f6bc155e Add progressive score multiplier for HT 2023-04-10 13:35:48 +09:00
Dan Balasescu c923482976 Add progressive score multiplier for DT 2023-04-10 13:31:48 +09:00
Bartłomiej Dach 2b525b626c
Revert to previous conditional style 2023-03-28 06:22:00 +02:00
Bartłomiej Dach c54934cb45
Fix hit lighting misalignment on argon skin with upscroll 2023-03-27 18:15:01 +02:00
Bartłomiej Dach b5e04791e9
Merge branch 'master' into mania-shadow-icon-changes 2023-03-20 19:33:52 +01:00
Bartłomiej Dach fe91f85f6f
Reuse colour constants in fallback path 2023-03-20 18:16:33 +01:00
Dean Herbert d87f0557ce Update colours for 3k to not use double-purples 2023-03-15 17:18:45 +09:00
Dean Herbert 5aebbac6c5 Fix osu!mania hold note animations not correctly re-applying after rewind
There's early exit logic in `OnPressed`/`OnReleased` for the sake of
keeping order correct, but this doesn't account for the fact that
`DrawableHitObject` resets all animations when the hit state changes.

A bit of an ugly workaround, but seems to work as expected.
2023-03-14 18:15:19 +09:00
Dean Herbert f40a4b591f Adjust animation length and colouring of hitting layer 2023-03-14 18:14:29 +09:00
Dean Herbert 300d81c46b Add hitting layer to fix hit lighting not being applied to tail piece
Taken from https://github.com/ppy/osu/pull/22820#issuecomment-1462626898.
2023-03-14 17:29:19 +09:00
Bartłomiej Dach 6b2a70b112
Remove unused fields 2023-03-09 19:14:08 +01:00
Dean Herbert 08b88ed639 Adjust hold note head icon to be more centered 2023-03-09 20:46:24 +09:00
Dean Herbert e12ab165b8 Adjust colours a bit to make hold note bodies more accented 2023-03-09 20:46:24 +09:00
Dean Herbert 2ad531f263 Adjust argon note shadows and body to be closer in line with new design proposal 2023-03-09 20:27:58 +09:00
Dean Herbert 526eeedec2 Adjust explosion and hit target to not include shadow portion in height calculation 2023-03-09 20:27:43 +09:00
Dean Herbert ed3ff62e4f Add note about why `bodyPiece` sizing is done as it is
I think we're going to have to change this as it's quite limiting in
what you can do with osu!mania skin implementation, but for now I want
to leave a note as to why this is done, because each time I have to
trial and error check what breaks when adjusting it.
2023-03-09 20:26:49 +09:00
Dean Herbert bfc0b946fb Remove additive blending from argon body piece 2023-03-09 20:26:35 +09:00
Dean Herbert 030742c648 Use different icon style on hold note heads 2023-03-09 19:02:45 +09:00
Dean Herbert e246784867 Fix dual stage column colours not being looked up correctly 2023-03-09 18:25:30 +09:00
Dean Herbert b8e87e3a08 Update osu!mania argon colours to match new proposal 2023-03-08 20:03:06 +09:00
Dean Herbert 36058b3da2 Fix upwards scroll direction not working with recent hold note display changes 2023-03-03 18:03:06 +09:00
Dean Herbert da8ab7143b
Merge branch 'master' into maximum-judgement-offset-in-hit-object 2023-02-15 14:48:15 +09:00
Dean Herbert bd8c58dc62 Adjust applied body ratio to ROUGHLY match stable 2023-02-14 14:34:12 +09:00
Dean Herbert b1d2a433f8 Apply second attempt at fixing long note bodies 2023-02-10 20:36:58 +09:00
Dean Herbert 5091c50003 Change scroll direction logic to not interfere with scale 2023-02-10 19:18:17 +09:00