1
0
mirror of https://github.com/ppy/osu.git synced 2025-03-13 20:27:20 +08:00

2421 Commits

Author SHA1 Message Date
Dan Balasescu
5de7e42eb3
Merge branch 'master' into maniastatacc 2023-09-25 03:31:09 +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
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
Natelytle
75c295c228 Remove hit windows scaling by rate, adjust tests 2023-09-04 07:44:44 -04:00
Natelytle
52799d562f Merge remote-tracking branch 'osumaster/master' into maniastatacc 2023-09-04 07:20:22 -04: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
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
Natelytle
1e80f799b4 Fix non-existent attribute call 2023-08-13 22:55:56 -04:00
Natelytle
4eb307b9da
Merge pull request #1 from Eve-ning/maniastatacc-improve-test
Improves `maniastatacc` branch for Tests
2023-08-13 22:46:56 -04: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
Dan Balasescu
a2197e28af Store difficulty attribute values 2023-08-07 21:37:23 +09:00
Dan Balasescu
95c72374cd Remove IsConvert difficulty attribute 2023-08-07 21:35:34 +09:00
Natelytle
9cc6a3a4c0 Switch to using deviation on notes and heads for multiplier scaling 2023-08-02 00:51:28 -04:00
Evening
104eea3cfc Delete ur-estimation-test.osu 2023-08-02 12:12:03 +08:00
Evening
b2ad8ad9b4 Add remark on null & exception throwable 2023-08-02 12:07:26 +08:00
Evening
d00d7fd7a5 Narrow scope of computeEstimatedUr
We narrow it because maniaAttributes is a large dictionary.
If we can narrow down to the primitives that drives computeEstimatedUr, it makes it easier end-users to supply minimal parameters necessary for it to operate.
2023-08-01 19:10:08 +08:00
Evening
515ff5571f Narrow scope of hitWindows fns 2023-08-01 18:41:16 +08:00
Evening
1d7dd8ba99 Expose getHitWindows for tests 2023-08-01 18:37:24 +08:00
Natelytle
c20e1508dd Merge master 2023-07-31 23:11:29 -04:00
Evening
7ed9141d09 Fix incorrect legacyLogPHold function name
Also append that this is only used for legacy holds
2023-07-31 19:57:46 +08:00
Evening
20de476fbb Fix incorrect function name logPNote
The function actually returns the natural log of the probability of each note.
2023-07-31 19:55:28 +08:00
Evening
951861acf5 Shorten property fetching code 2023-07-31 19:27:18 +08:00
Evening
f60317c482 Nest Ternary into Math.Log
This removes the need to call Math.Log twice, improving readability.
I did consider doing NoteCount + (isLeg ? 0 : HoldNoteCount), but I think it deproves readability
2023-07-31 19:19:39 +08:00
Natelytle
a58470d00c Fix stable LN logic 2023-07-31 01:08:19 -04:00
Natelytle
0a72493395 Band-aid math error on stable LNs, add tail deviation multiplier 2023-07-30 00:44:57 -04: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