Commit Graph

604 Commits

Author SHA1 Message Date
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
eabf578282 Use interface to convey beat sync information 2022-05-22 22:44:54 +09:00
2e21d75b10 Move metronome into own class and rename to avoid conflict with mod sounds 2022-05-20 17:30:04 +09:00
82b784ce5a Change IApplicableToSample to receive adjustable component instead
Done for consistency with `IApplicableToTrack`.
2022-05-10 18:06:03 +03:00
4f5001704e Change IApplicableToTrack to receive adjustable component instead 2022-05-10 18:06:03 +03:00
bbbecbb6b7 Apply time-ramping adjustment using clock instead of track 2022-05-10 18:06:03 +03:00
43c9058d09 Fix wrong obsolete message 2022-05-05 14:39:05 +03:00
8501a41619 Bring back separate bool properties as non-cascading 2022-05-05 14:37:38 +03:00
8488a29e9e Renew obsoletion date 2022-05-04 17:22:11 +03:00
20e277d2e5 Apply proposed naming changes 2022-05-04 17:12:17 +03:00
e9ecf26b6a Merge branch 'master' into multiplayer-disable-adaptive-speed 2022-05-04 17:12:03 +03:00
6630b38c08 Make all ModRateAdjust implementations incompatible with each other 2022-04-07 22:38:46 +02:00
e0d434b89f Remove unused using statement 2022-03-31 11:34:32 +09:00
0cac935939 Shorten class name of ModCreatedReplayUser 2022-03-31 11:34:23 +09:00
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
234bec45cc Remove unnecessary logging 2022-03-31 11:32:00 +09:00
6874cdf0c8 Remove unnecessary public prefix in interface method 2022-03-31 01:50:46 +03:00
83bae81095 Fill out ICreateReplayData xmldocs 2022-03-30 22:04:54 +02:00
9621a7f9cb Merge branch 'master' into fix-autoplay-mod-user-id 2022-03-30 21:41:45 +02:00
8d4356f23b Mark "autoplay" and "cinema" mods as mutually exclusive 2022-03-29 17:26:02 +03:00
9a09c97457 Fix "Barrel Roll" tooltip not limiting decimal places for spin speed 2022-03-29 16:11:44 +03:00
ea9495eb74 Update all existing calls to extension method with correct fallback handling 2022-03-29 16:51:30 +09:00
7d716adf39 Create new ICreateReplayData interface and obsolete ICreateReplay 2022-03-29 16:51:30 +09:00
3fc8c23fe4 Remove unnecessary SetReplayScore call in ModCinema 2022-03-29 16:51:30 +09:00
327477d050 Remove unnecessary SetReplayScore call in ModCinema 2022-03-29 16:50:05 +09:00
6cd67928ab Simplify documentation of ModUsage 2022-03-23 15:48:52 +03:00
b218046fa2 Remove redundant line from mod usage 2022-03-23 15:38:48 +03:00
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
add9f3ec91 Rename multiplayer mod usages to make more sense 2022-03-20 13:12:24 +03:00
820a672940 Reword xmldoc to make more sense 2022-03-20 06:37:08 +03:00
70e943fbcc ModUsage.Solo -> ModUsage.User 2022-03-20 06:36:51 +03:00
f2248ecc08 Update usages to use IsPlayable instead 2022-03-18 02:11:18 +03:00
51e5dd7d0e Introduce IsPlayable(...) and obsolete UserPlayable 2022-03-18 02:08:30 +03:00
d90f21e140 Reword mod documentation
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-03-18 00:13:40 +03:00
b3ac544d65 Revert "Consider UnknownMod to be "playable in multiplayer""
This reverts commit 07e9f3780a.
2022-03-17 06:31:51 +03:00
07e9f3780a Consider UnknownMod to be "playable in multiplayer" 2022-03-17 05:15:48 +03:00
187059a37f Replace hardcoded overrides with the newly introduced Mod properties 2022-03-17 03:51:27 +03:00
d90a334853 Introduce multiplayer playability and free mod validity in Mod 2022-03-17 03:48:56 +03:00
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