1
0
mirror of https://github.com/ppy/osu.git synced 2025-01-20 13:12:57 +08:00
Commit Graph

1128 Commits

Author SHA1 Message Date
Bartłomiej Dach
6c0ccc5ebe
Merge pull request #30863 from frenzibyte/improve-back-button-display
Delay back button appearance when performing a quick restart
2024-12-02 11:49:45 +01:00
Salman Alshamrani
3e1b4f4ac5 Rename AllowBackButton to AllowUserExit and rewrite visibility flow structure
Co-authored-by: Dean Herbert <pe@ppy.sh>
2024-11-26 16:52:39 -05:00
Bartłomiej Dach
cf905d0f5c
Merge branch 'master' into beatmap-info-purge 2024-11-26 10:21:16 +01:00
Salman Alshamrani
6d0d7f3e75 Don't play fail animation if restarting on failure 2024-11-24 04:45:48 -05:00
Dean Herbert
086a34f5c0
Merge branch 'master' into beatmap-info-purge 2024-11-22 18:47:32 +09:00
Dean Herbert
1a31e56d4a
Fix double restart call still existing 2024-11-14 23:59:55 +09:00
Bartłomiej Dach
5d3f55fe4d
Fill out xmldoc 2024-11-14 15:05:46 +01:00
Dean Herbert
d1b5d31ea6
Add explicit parameter in 2024-11-14 22:23:42 +09:00
Dean Herbert
3262b6d989
Refactor to avoid dual-boolean mess 2024-11-14 22:10:45 +09:00
Dean Herbert
afeb138ea0
Fix occasional flash when quick exiting / retrying from player
The gist of the issue is that `fadeOut` was being called *twice* in the
quick exit/retry scenarios, causing weirdness with transforms.

I've restructured things to ensure it's only called once.
2024-11-14 21:54:34 +09:00
Bartłomiej Dach
9902c22f5c
Do not fall back to beatmap's original ruleset if conversion fails
I don't know why this was ever a good idea, and would say that we want
this to fail *hard* not soft. If things ever get in this state, things
have gone *seriously* wrong elsewhere, and need to be fixed there.
2024-10-25 13:16:24 +02:00
Dean Herbert
24d6ea5444
Change failed states to be considered as NotPlaying 2024-10-03 17:11:41 +09:00
Dean Herbert
8773c34fdd
Rename enum to non-plural now that it won't conflict 2024-10-01 19:55:46 +09:00
Dean Herbert
8dba4cf760
Passing means NotPlaying 2024-10-01 19:55:31 +09:00
Dean Herbert
3d54f4a5ab
Make states better defined 2024-10-01 17:53:58 +09:00
Dean Herbert
ad3007eaad
Adjust ILocalUserPlayInfo to expose whether gameplay is in a paused/break state 2024-10-01 17:53:46 +09:00
Dean Herbert
58fe502af4
Merge branch 'master' into beatmap-info-purge 2024-09-15 04:53:35 +09:00
Dean Herbert
6f1664f0a6
Add beat-synced animation to break overlay
I've been meaning to make the progress bar synchronise with the beat
rather than a continuous countdown, just to give the overlay a bit more
of a rhythmic feel.

Not completely happy with how this feels but I think it's a start?

I had to refactor how the break overlay works in the process. It no
longer creates transforms for all breaks ahead-of-time, which could be
argued as a better way of doing things. It's more dynamically able to
handle breaks now (maybe useful for the future, who knows).
2024-08-27 16:34:37 +09:00
Dean Herbert
abdbe510b8
Move break overlay (and cursor) further forward in depth
I didn't really want to move the cursor in front of the HUD, but we face
a bit of an impossible scenario otherwise (it should definitely be in
front of the break overlay for visibility).

So I'll deal with it for now.
2024-08-27 14:52:11 +09:00
Dean Herbert
54e5f1c9f0
Merge pull request #29556 from frenzibyte/kiai-star-bursts
Add star fountains/bursts when entering kiai mode in gameplay
2024-08-22 14:14:25 +09:00
Salman Ahmed
c92af71029 Add in-gameplay version of kiai star fountains/burst 2024-08-21 17:34:38 +09:00
Salman Ahmed
0d358a1dae Fix resume overlay appearing behind HUD/skip overlays 2024-08-21 02:53:11 +09:00
Dean Herbert
e645651ef4
Merge branch 'master' into mania-combo-counter 2024-08-09 00:19:17 +09:00
Dean Herbert
d707e29ff7
Merge branch 'master' into beatmap-info-purge 2024-07-23 12:09:32 +09:00
Salman Ahmed
d7651ef387 Add extensive test cases for correct input handling while paused in osu! & non-osu! 2024-07-19 18:48:35 +03:00
Bartłomiej Dach
67ca7e4135
Implement toggling visibility of pass and fail storyboard layers
Closes https://github.com/ppy/osu/issues/6842.

This is a rather barebones implementation, just to get this in place
somehow at least. The logic is simple - 50% health or above shows pass
layer, anything below shows fail layer.

This does not match stable logic all across the board because I have
no idea how to package that. Stable defines "passing" in like fifty
ways:

- in mania it's >80% HP
  (bb57924c15/osu!/GameModes/Play/Rulesets/Mania/RulesetMania.cs#L333-L336)
- in taiko it's >80% *accuracy*
  (bb57924c15/osu!/GameModes/Play/Rulesets/Taiko/RulesetTaiko.cs#L486-L492)
- there's also the part where "geki additions" will unconditionally set
  passing state
  (bb57924c15/osu!/GameModes/Play/Player.cs#L3561-L3564)
- and also the part where at the end of the map, the final passing state
  is determined by checking whether the user passed more sections than
  failed
  (bb57924c15/osu!/GameModes/Play/Player.cs#L3320)

The biggest issues of these are probably the first two, and they can
*probably* be fixed, but would require a new member on `Ruleset` and I'm
not sure how to make one look, so I'm not doing that at this time
pending collection of ideas on how to do that.
2024-06-14 13:59:02 +02:00
Bartłomiej Dach
a6b7600bf2
Move LetterboxInBreaks out of BeatmapInfo 2024-06-12 13:18:44 +02:00
Dean Herbert
804b1b0d88
Fix settings colour scheme wrong when viewing gameplay from skin editor button
Closes https://github.com/ppy/osu/issues/27949.
2024-04-23 20:54:48 +08:00
Joseph Madamba
49154c0e23 Fix code quality 2024-04-22 11:23:38 -07:00
Bartłomiej Dach
ee2dac35e0
Merge branch 'master' into taiko-slider-storyboard 2024-02-29 08:50:58 +01:00
Dean Herbert
f44aadaaa8
Merge pull request #27331 from bdach/statistics-updates-in-multi
Show user statistics updates on multiplayer and playlists results screens
2024-02-29 12:26:48 +08:00
Salman Ahmed
7f5f3804f1 Expose beatmap storyboard as part of GameplayState 2024-02-29 05:39:36 +03:00
Joseph Madamba
351160f94e Move back/quit button from bottom left to fail overlay when spectating 2024-02-27 23:24:16 -08:00
Bartłomiej Dach
0074bdc5a1
Change ResultsScreen constructor boolean params to init-only properties 2024-02-22 20:15:03 +01:00
Bartłomiej Dach
f9e92c69a8
Merge branch 'master' into fix-skin-editor-init-fail 2024-02-22 14:08:38 +01:00
Dean Herbert
3e5fe66e58
Fix potential null reference in player screen transition handling
See https://github.com/ppy/osu/actions/runs/7607677219/job/20715418536?pr=26660.
2024-01-22 16:37:56 +09:00
Bartłomiej Dach
5cb17bcacf
Merge pull request #26502 from frenzibyte/prevent-submission-with-invalid-mods
Add guard against submitting score with invalid mod instances
2024-01-17 11:39:32 +01:00
Dean Herbert
c1c2e61723
Merge pull request #26446 from LeNitrous/add/replay-playback-controls
Add replay playback controls
2024-01-17 17:06:15 +09:00
Bartłomiej Dach
c5a276a7de
Merge pull request #26543 from peppy/offset-toast-limit
Only display offset toast when in local gameplay
2024-01-15 19:19:21 +01:00
Bartłomiej Dach
c5351bd14d
Fix back-to-front set 2024-01-15 14:20:07 +01:00
Salman Ahmed
1d7b63e204 Move checking logic inside ModUtils and somewhat optimise 2024-01-15 14:58:59 +03:00
Dean Herbert
8e32780888
Fix background dim occasionally getting in a bad state when exiting gameplay 2024-01-15 19:21:19 +09:00
Dean Herbert
2a2a4c416e
Only display offset toast when in local gameplay 2024-01-15 18:17:49 +09:00
Salman Ahmed
0c02062780 Add guard against starting gameplay with invalid mod instances
Move guard to `Player` instead
2024-01-13 16:25:02 +03:00
Nitrous
c404628113
move creation of PlaybackSettings to ReplayPlayer 2024-01-12 15:12:02 +08:00
Dean Herbert
705f25e4b9
Make ScoreProcessor.Rank read-only 2024-01-04 17:13:24 +09:00
Dean Herbert
0bbc27e380
Add a gameplay configuration flag to disable fail animation 2024-01-04 17:13:24 +09:00
Salman Ahmed
02f5ea200e Fix failing tests 2023-12-30 07:41:55 +03:00
rushiiMachine
1d4db3b7a9
Fix SkinEditorOverlay freezing when ReplayPlayer screen exits early
Originally when popping in, the ReplayPlayer was loaded first (if previous screen was MainMenu), and afterwards the SkinEditor component was loaded asynchronously. However, if the ReplayPlayer screen exits quickly (like in the event the beatmap has no objects), the skin editor component has not finished initializing (this is before it was even added to the component tree, so it's still not marked `Visible`), then the screen exiting will cause `OsuGame` to call SetTarget(newScreen) -> setTarget(...) which sees that the cached `skinEditor` is not visible yet, and hides/nulls the field. This is the point where LoadComponentAsync(editor, ...) finishes, and the callback sees that the cached skinEditor field is now different (null) than the one that was loaded, and never adds it to the component tree. This occurrence is unhandled and as such the SkinEditorOverlay never hides itself, consuming all input infinitely.

This PR changes the loading to start loading the ReplayPlayer *after* the SkinEditor has been loaded and added to the component tree.
Additionally, this lowers the exit delay for ReplayPlayer and changes the "no hit objects" notification to not be an error since it's a controlled exit.
2023-12-26 12:22:00 -08:00
Dean Herbert
6f11885d4b
Add control to allow changing offset from gameplay 2023-12-23 20:51:30 +09:00