Commit Graph

52323 Commits

Author SHA1 Message Date
a1b7bf3986 Use a minimum fade length for clamping rather than zero
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-03-10 16:47:02 +09:00
c61397cc22 Fix whitespace/inspection 2022-03-10 16:22:27 +09:00
13a4058efd Merge pull request #17191 from peppy/fix-mod-conversion-exceptions
Change `ToMod` to return an `UnknownMod` rather than throw if a mod isn't available
2022-03-10 16:20:50 +09:00
cf91353009 Merge branch 'master' into scoreprocessor-rework 2022-03-10 16:14:28 +09:00
46f2db1712 Move ChannelListingItem spacing into item so input is always handled by an item in the list
Without this change, there would be a couple of pixels between each list
item where nothing would be hovered. This is a pretty annoying UX which
we should be avoiding we possible.
2022-03-10 15:58:57 +09:00
1a187d4dec Add animation to checkbox when joning/leaving a channel 2022-03-10 15:54:42 +09:00
0155519343 Merge branch 'master' into new-chat-channel-listing 2022-03-10 15:49:06 +09:00
eaef27595c Also mark UnknownMod as not user-playable 2022-03-10 15:33:50 +09:00
03d7d1e6ca Merge pull request #17195 from smoogipoo/classic-score-multiplier
Tune classic mod scaling per-ruleset
2022-03-10 14:32:52 +09:00
022dd88aef Merge branch 'master' into chat-mention-highlight 2022-03-10 14:23:23 +09:00
5e36383258 Convert IObjectPositionInfo to a class 2022-03-10 12:02:25 +08:00
3a71d81775 Convert the position modifier to stateless methods 2022-03-10 11:53:03 +08:00
c17dba4948 Merge pull request #17193 from peppy/update-dependencies
Update dependencies
2022-03-10 12:26:13 +09:00
ede838c4b3 Use ObjectPositionInfo.HitObject 2022-03-10 11:23:52 +08:00
2c1589e068 Add skinning support for "seeya" sample 2022-03-10 05:52:45 +03:00
b8ee786d77 Add skinning support for "welcome" sample 2022-03-10 05:52:45 +03:00
b38de6e580 Add skinning support for welcome sprite text 2022-03-10 05:52:43 +03:00
c36badab4b Add per-ruleset score multipliers for classic scoring 2022-03-10 10:26:09 +09:00
f229447453 Add too many messages to better test long scrolls 2022-03-10 04:01:07 +03:00
b25c37ce62 Instantiate highlight background container on animation
Also removes the necessity of scheduling as it actually never worked as
intended, `Scheduler` will still update even when the chat line is
masked away, and the animation will never be held anyways.

The new duration of the animation should be enough for long scrolls
either way.
2022-03-10 03:49:42 +03:00
d4de435eb2 Add test case for highlighting while chat overlay is hidden 2022-03-10 02:50:27 +03:00
cf9671cafb Increase highlight delay to 1500ms 2022-03-10 02:50:15 +03:00
80c0df6af5 Scroll chat line to channel center
We may eventually want that encapsulated within `ScrollIntoView`, as it
would also come in handy for `GameplayLeaderboard`.
2022-03-10 02:50:15 +03:00
93cf93943f Schedule chat line highlight after children to handle non-loaded lines 2022-03-10 02:48:33 +03:00
2d8983383a Revert newMessagesArrived changes and always schedule highlight
In the case a message arrives and the chat overlay is hidden, clicking
on the mention notification will not work as the `HighlightedMessage`
bindable callback will execute before the scheduled `newMessagesArrived`
logic (which was hanging since the message arrived until the chat
overlay became open because of the notification).

Simplify things by always scheduling the `HighlightedMessage` bindable
callback.
2022-03-10 01:11:27 +03:00
5cb058a17d Bump Realm in Android test project for parity 2022-03-09 20:17:46 +01:00
d2983b74d5 Bump Moq in mobile test projects for parity 2022-03-09 20:15:34 +01:00
b67f9269f9 Remove NewChat namespace 2022-03-09 18:13:56 +00:00
94ff6a338f Merge branch 'master' into scoreprocessor-rework 2022-03-09 23:04:18 +09:00
df500dec04 Merge pull request #17187 from smoogipoo/fix-playlist-copy
Fix unable to copy playlist rooms without first opening
2022-03-09 23:03:43 +09:00
e8dbed738e Move OsuHitObjectPositionModifier to Utils/ 2022-03-09 21:52:15 +08:00
8e12a067df Remove an unused property 2022-03-09 21:04:35 +08:00
6a507ca11b Rename identifiers to remove references to random mod 2022-03-09 20:52:11 +08:00
b59117caf6 Update silly iOS dependencies 2022-03-09 21:42:02 +09:00
37328f8d24 Extract hit object positioning logic to a separate class
It is intentional to not rename the identifiers at this point to produce a cleaner diff.
2022-03-09 20:36:31 +08:00
8539f619c5 Update framework 2022-03-09 21:16:40 +09:00
1646e9d64c Merge pull request #17153 from hlysine/osu-random-mod-logic-changes
Separate randomization and object positioning logic in osu random mod
2022-03-09 20:52:33 +09:00
5fb51b578f Update dependencies
Mainly for a `Clowd.Squirrel` bump to fix https://github.com/ppy/osu/discussions/17190.
2022-03-09 19:09:51 +09:00
2e350a91cc Fix non-matching filename 2022-03-09 18:07:43 +09:00
02f44d7061 Merge branch 'master' into fix-mod-conversion-exceptions 2022-03-09 18:07:42 +09:00
2eb3365f46 Fix regressing issues when attempting to exit Player after an unsuccessful beatmap load 2022-03-09 17:57:58 +09:00
1ee0be5e39 Ensure gameplay can't start when an UnknownMod is present 2022-03-09 17:57:58 +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
8bb07f83cd Merge pull request #17054 from hlysine/mod-adaptive-speed
Implement Adaptive Speed mod
2022-03-09 17:56:34 +09:00
353b251d38 Attempt to merge conditional expression
Hoping to fix CI error, caused by older R# version.
2022-03-09 17:46:42 +09:00
d847f5874c Merge pull request #17188 from peppy/fix-carousel-item-interaction-when-not-visible
Fix beatmap carousel panels accepting input while marked as not-visible
2022-03-09 17:43:30 +09:00
e689973de5 Merge branch 'master' into osu-random-mod-logic-changes 2022-03-09 16:58:59 +09:00
75c6a676b4 Apply nullable to OsuModRandom rather than using jetbrains annotations 2022-03-09 16:58:36 +09:00
4839bd8044 Notify if copying room fails
Co-authored-by: Dean Herbert <pe@ppy.sh>
2022-03-09 16:47:47 +09:00
520d2d6cfa Fix beatmap carousel panels accepting input while marked as not-visible
This is an issue as carousel panels manage their own animated state. If
they are marked as not-visible (done at a higher level, from filtering
or update pathways) but clicked while fading out, they will animate back
to a visible state but not be marked as visible.

No tests for this one as it's probably not worthwhile to test (and hard
to do so). Manual testing can be done with the following patch:

```diff
diff --git a/osu.Game/Screens/Select/BeatmapCarousel.cs
b/osu.Game/Screens/Select/BeatmapCarousel.cs
index c3d340ac61..3372242acc 100644
--- a/osu.Game/Screens/Select/BeatmapCarousel.cs
+++ b/osu.Game/Screens/Select/BeatmapCarousel.cs
@@ -255,7 +255,7 @@ private void
beatmapSetsChanged(IRealmCollection<BeatmapSetInfo> sender, ChangeS
             }

             foreach (int i in changes.NewModifiedIndices)
-                UpdateBeatmapSet(sender[i].Detach());
+                Scheduler.AddDelayed(() =>
                 UpdateBeatmapSet(sender[i].Detach()), 100, true);

             foreach (int i in changes.InsertedIndices)
                 UpdateBeatmapSet(sender[i].Detach());

```

- Enter gameplay and adjust beatmap offset then return to song select
  and click the flashing panel.
OR
- Enter editor and save then return to song select and click the
  flashing panel.

Closes https://github.com/ppy/osu/discussions/17171.
2022-03-09 16:08:52 +09:00