Commit Graph

566 Commits

Author SHA1 Message Date
1814a325d8 Move GetSettingUnderlyingValue to a SettingSource extension method 2022-03-15 14:54:00 +09:00
eaef27595c Also mark UnknownMod as not user-playable 2022-03-10 15:33:50 +09:00
02f44d7061 Merge branch 'master' into fix-mod-conversion-exceptions 2022-03-09 18:07:42 +09:00
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
8b8b54b58f Scale rate adjustments based on hit timing consistency and tweak some related numbers 2022-03-05 21:48:57 +08:00
76d257fbe4 Merge branch 'master' into mod-adaptive-speed 2022-03-04 15:16:37 +08:00
f72c9a1f41 Cap speed change per hit and apply a speed decrease on miss 2022-03-04 11:48:48 +08:00
b66af7edf4 Rename approximatedRates to ratesForRewinding and update xmldoc 2022-03-04 11:03:57 +08:00
fcefd3c725 Fix slightly wrong references in xmldocs 2022-03-03 17:39:55 +01:00
3797871aa0 Add extended documentation of adaptive speed mod machinations 2022-03-03 17:25:49 +01:00
ffaf5b729f Move and reword docs of allowable rate range constants 2022-03-03 17:07:43 +01:00
464be6e64c Only call IUpdatableByPlayfield.Update if the playfield isn't nested 2022-03-03 14:37:39 +08:00
4ce2044e4c Reorder members 2022-03-03 13:09:41 +08:00
9c2aa51194 Rename applyPitchAdjustment to adjustPitchChanged 2022-03-03 13:07:30 +08:00
ae71dcceeb Convert comments to xmldoc 2022-03-03 13:03:53 +08:00
09254407fe Interpolate speed change using IUpdatableByPlayfield 2022-03-03 12:09:36 +08:00
51258dbab4 Use binary search in ApplyToBeatmap 2022-03-03 11:21:20 +08:00
95a40c5dc5 Remove pointless comment 2022-03-03 10:43:30 +08:00
ff7f65de27 Extract duplicated conditionals 2022-03-03 10:43:04 +08:00
55737226a3 Use Enumerable.Repeat 2022-03-03 10:18:36 +08:00
d335a2229f Tweak average_count 2022-03-02 21:07:57 +08:00
17bc714297 Allow the mod to properly react to nested hit objects 2022-03-02 20:48:57 +08:00
6caecf79a0 Use smooth speed change 2022-03-02 20:08:05 +08:00
c6934b4bce Improve adaptive speed algorithm and add rewind support 2022-03-02 10:35:03 +08:00
783f43ccfb Add initial rate setting 2022-03-02 09:57:52 +08:00
c9b205afeb Add adaptive speed mod 2022-03-02 09:57:52 +08:00
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
23933fc881 Update xmldoc to mention that multipliers are not applied anywhere 2022-02-16 17:32:22 +09:00
4c1413e0c7 No longer require Mod implementation 2022-02-16 16:36:02 +09:00
82f9ad63f5 Fix flashlight size multiplier printing with too many decimal digits 2022-02-02 20:41:25 +01:00
074a691635 Set keyboard step to 0.1 for difficulty adjust sliders 2022-02-02 17:43:08 +03:00
8c3fbb6eb4 Merge branch 'master' into Liswiera-FL-changes 2022-01-24 21:32:36 +01:00
a227af75ed Simplify flashlight parameter passing flow 2022-01-24 21:03:02 +01:00
5874475dff Extract DefaultFlashlightSize to base flashlight class 2022-01-24 21:03:02 +01:00
a7c0d507ce Rename flashlight settings to be more accurate 2022-01-24 21:03:02 +01:00
948867898c ModeMultiplier rename 2022-01-24 11:38:52 +01:00
161a2a321e Remove bindable from ModeMultiplier 2022-01-24 09:07:07 +01:00
ed84ae0ac0 Adjust values to Bdach's refined taste 2022-01-24 00:42:43 +01:00
735414bc49 Replace TimeSignatures enum with struct for storage of arbitrary meter 2022-01-22 20:50:31 +01:00
955bab926f Separate the settings for each modes radiuses 2022-01-22 19:38:56 +01:00
b5f813a949 Merge branch 'ppy:master' into Liswiera-FL-changes 2022-01-22 19:04:39 +01:00
7f65f3a47f Remove all usage of BaseDifficulty (and access Difficulty instead) 2022-01-18 22:57:39 +09:00
57cc2f7893 Adjustment to size values of FL per mode 2022-01-16 14:26:26 +01:00
ee4331dda4 Merge remote-tracking branch 'origin/Liswiera-FL-changes' into Liswiera-FL-changes 2022-01-15 21:44:03 +01:00
2a59735525 Initial commit 2022-01-15 21:43:28 +01:00
51251e3204 Fix CI reported warnings 2022-01-12 22:39:00 +09:00
7de43e3aba Fix most open compound words in identifiers being closed 2021-12-27 20:26:28 -08:00
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
116b857cea Merge branch 'master' into no-scope-catch 2021-11-10 20:50:31 +09:00
41f4f0ab5e Different setting slider description in each mod 2021-11-10 03:57:22 +03:00