1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-11 10:33:30 +08:00
Commit Graph

42958 Commits

Author SHA1 Message Date
Bartłomiej Dach
03049d45bb
Remove stuff that looks bad after moving timeline toggle controls 2024-06-17 10:23:00 +02:00
Bartłomiej Dach
b42752c9f0
Move timeline toggle controls to "view" menu 2024-06-17 10:16:40 +02:00
Dan Balasescu
f86e9c9a4a
Also annotate ControlPointInfo
Same deal with this class. Fully qualifying the type names because this
has `#nullable disable` and makes use of `NotNull` which is also present
in the `System.Diagnostics.CodeAnalysis` namespace and AAAAAAARGH
NAMESPACE CONFLICTS.
2024-06-17 17:13:44 +09:00
Dan Balasescu
41446a08b6
Annotate ControlPoint and Mod for AOT trimming support 2024-06-17 16:19:33 +09:00
Dean Herbert
15fbad0097
Merge pull request #28480 from bdach/storyboard-pass-fail-show
Implement toggling visibility of pass and fail storyboard layers
2024-06-16 11:08:00 +09:00
Dean Herbert
ff2d721029
Inline enabled setting 2024-06-15 17:34:04 +08:00
Shiumano
6c82f1de9b Set to enable or disable at load time 2024-06-14 21:43:17 +09: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
bdeea37a44
Commit active placement when starting drag selection via timeline
This was reported in https://github.com/ppy/osu/pull/28474, albeit the
code changes proposed there did not fix the issue at all.

See 8b6385f7d0 for demonstration of the
crash scenario. Basically what is happening there is:

- The starting premise is that there is a spinner placement active.
- At this time, a drag selection is started via the timeline.
- Once the drag selection finds at least one suitable object to select,
  it mutates `SelectedItems`.
- When selection changes for any reason, the `HitObjectComposer`
  decides to switch to the "select" tool, regardless of why
  the selection changed.
- Changing the active tool causes the current placement - if any -
  to be committed, which mutates the beatmap.
- Back at the drag box selection code, this causes a "collection
  modified when enumerating" exception.

The proposed fix here is to eagerly commit active placement - if any -
when drag selection is initiated via the timeline, which avoids this
issue. This also appears to vaguely match stable behaviour and is sort
of consistent with the logic of committing any outstanding changes upon
switching to the selection tool.
2024-06-14 09:32:40 +02:00
Joppe27
47f89b8969 Clamp X value to avoid excessive balance shift 2024-06-13 18:06:19 +02:00
Bartłomiej Dach
8c4aa84037
Implement event feed view for daily challenge screen 2024-06-13 09:05:45 +02:00
Dan Balasescu
91f2cf8cc3
Use more descriptive HitObject names for debugger displays 2024-06-13 15:18:39 +09:00
Bartłomiej Dach
ae6dd9d053
Use extracted headings on daily challenge screen 2024-06-12 11:44:19 +02:00
Bartłomiej Dach
51c598627a
Move out section header component from editor
This sort of thing has been showing up on flyte designs more and more
so I want to start using it more over that rather ugly "overlined" text
that's there on multiplayer screens right now.
2024-06-12 11:43:40 +02:00
Bartłomiej Dach
2be6b29f21
Implement time remaining display for daily challenge screen 2024-06-12 11:43:24 +02:00
Bartłomiej Dach
6fb0cabf36
Add start date to Room 2024-06-12 11:43:18 +02:00
Dean Herbert
94b7148a9e
Merge pull request #28440 from bdach/daily-challenge/new-screen
Add minimal viable new screen for daily challenge feature
2024-06-12 17:49:02 +09:00
Bartłomiej Dach
5e002fbf9b
Fix user mod select button being inserted in incorrect place 2024-06-12 08:59:50 +02:00
Dean Herbert
90481223dd
Merge pull request #28445 from bdach/mania-key-count-change-force-reload
Attempt full editor reload on key count change
2024-06-12 14:42:59 +09:00
Dan Balasescu
39b219bacc
Merge pull request #28441 from bdach/fix-editor-stacking-not-applying-immediately
Fix stack leniency not applying immediately after change
2024-06-12 12:24:28 +09:00
OliBomby
869cd40195 Fixed samples without additions contributing to common addition bank while not having an editable addition bank 2024-06-11 21:31:18 +02:00
OliBomby
12dd60736a remove code already covered by updatePrimaryBankState 2024-06-11 21:20:42 +02:00
Bartłomiej Dach
922837dd3a
Reload scrolling composer on control point changes 2024-06-11 12:01:35 +02:00
Bartłomiej Dach
da53a11d3c
Attempt full editor reload on key count change 2024-06-11 11:31:49 +02:00
Bartłomiej Dach
3afe98612c
Add RestoreState() to IEditorChangeHandler 2024-06-11 11:31:30 +02:00
Bartłomiej Dach
10af642342
Split mania difficulty section implementation off completely from base
- "Circle size" / key count needs completely different handling.
- Approach rate does not exist in mania.
2024-06-11 11:30:20 +02:00
Dean Herbert
c640fbbaf0
Merge branch 'master' into daily-challenge/new-screen 2024-06-11 18:24:31 +09:00
ColdVolcano
4048a4bdfb fix accuracy counter separating whole and fraction parts with wireframes off 2024-06-11 02:20:14 -06:00
Bartłomiej Dach
694cfd0e25
Expose singular coarse-grained change event on ControlPointInfo 2024-06-11 09:16:45 +02:00
Bartłomiej Dach
b8e0704554
Implement singular change events for ControlPoint 2024-06-11 09:15:45 +02:00
Bartłomiej Dach
25b2dfa601
Fix stack leniency not applying immediately after change 2024-06-10 14:34:22 +02:00
Bartłomiej Dach
073ddcebe4
Hide daily challenge from playlists listing 2024-06-10 13:12:21 +02:00
Bartłomiej Dach
e6da17d248
Add minimal viable variant of new daily challenge screen 2024-06-10 13:09:12 +02:00
Bartłomiej Dach
ffd788c65c
Use room mod select overlay rely on explicit binding rather than DI resolution 2024-06-10 12:45:51 +02:00
Bartłomiej Dach
dd6e9308b3
Extract user mod select button for reuse 2024-06-10 12:45:27 +02:00
Bartłomiej Dach
f135a9a923
Make SelectedItem externally mutable
Not being able to externally mutate this was making reuse in new daily
challenge screen unnecessarily arduous.
2024-06-10 12:44:38 +02:00
Bartłomiej Dach
d80f09e0c0
Adjust online play header to be reusable for new daily challenge screen 2024-06-10 12:43:58 +02:00
Bartłomiej Dach
19f39ca1b6
Extract OnlinePlayScreenWaveContainer from OnlinePlayScreen 2024-06-10 12:42:37 +02:00
Bartłomiej Dach
7d5dc750e5
Use slightly lighter shade of pink for alternative colour 2024-06-10 12:04:52 +02:00
Bartłomiej Dach
0efa028e0a
Restructure popover updates to be more centralised 2024-06-10 11:55:51 +02:00
Bartłomiej Dach
acf4dbb62c
Merge branch 'master' into mutually-exclusive-save-related-actions 2024-06-10 10:30:35 +02:00
Bartłomiej Dach
1d6b7e9c9b
Refactor further to address code quality complaints 2024-06-10 10:30:30 +02:00
Salman Ahmed
6201220994
Merge branch 'master' into footer-v2-become-global 2024-06-08 14:13:05 +03:00
Dean Herbert
daf85c320a
Merge pull request #22237 from mk56-spn/LeaderBoardScore_clean
New leaderboard score card design implementation
2024-06-08 20:06:17 +09:00
Dean Herbert
7fc6ad5340
Merge pull request #28184 from frenzibyte/footer-v2-transitions
Add basic animation to new footer and buttons
2024-06-08 19:43:23 +09:00
Salman Ahmed
5f8f6caedd Use OsuGame.SHEAR 2024-06-07 22:45:22 +03:00
Salman Ahmed
6f729be573 Merge branch 'master' into LeaderBoardScore_clean 2024-06-07 22:42:49 +03:00
Salman Ahmed
f59d94bba4 Move transitions inside ScreenFooterButton and re-use Content from base implementation instead
The point is to apply the transitions against a container that's inside of `ScreenFooterButton`, because the `ScreenFooterButton` drawable's position is being controlled by the flow container it's contained within, and we cannot apply the transitions on it directly.
2024-06-07 22:07:39 +03:00
Dean Herbert
9c6e707f00
Adjust transitions 2024-06-07 17:04:16 +08:00
Dean Herbert
366ef64a2c
Apply NRT to UpdateableRank 2024-06-07 16:54:12 +08:00
Bartłomiej Dach
72890bb9ac
Add stable-like animation legacy rank display
Just substituting the sprite felt pretty terrible.
2024-06-07 09:56:10 +02:00
Bartłomiej Dach
4cd1ccc4d4
Merge branch 'master' into add-rank-display 2024-06-07 09:33:03 +02:00
Bartłomiej Dach
e13e9abda9
Disallow running save-related operations concurrently
Closes https://github.com/ppy/osu/issues/25426.

Different approach to prior ones, this just disables the relevant
actions when something related to save/export is going on. Still ends up
being convoluted because many things you wouldn't expect to touch save
do touch save, so it's not just a concern between export and save
specifically.
2024-06-07 08:13:51 +02:00
Dean Herbert
7cbe93efc3
Refactor latest changes to avoid unnecessary call when mods not present 2024-06-07 10:37:27 +08:00
Xesquim
6e3bea938e Instancing a Ruleset only when it's necessary to 2024-06-06 13:26:52 -03:00
Dean Herbert
dd3f4bcdab
Fix code quality and null handling 2024-06-07 00:01:50 +08:00
Xesquim
860afb8123 Creating method in ModUtils to calculate the rate for the song 2024-06-06 10:06:07 -03:00
OliBomby
e873698221 Add some in-depth xmldoc to GetSamples 2024-06-06 14:57:25 +02:00
OliBomby
fcc8671cbd undo useless change 2024-06-06 14:50:24 +02:00
OliBomby
71ce400359 Fix wasteful recreating of container 2024-06-06 14:48:17 +02:00
Bartłomiej Dach
7a8a37dae6
Use established constants 2024-06-06 13:42:31 +02:00
Bartłomiej Dach
86b13074a0
Merge branch 'master' into edit-nodesample 2024-06-06 13:42:25 +02:00
Xesquim
7dd18a84f6 Fixing the GetTotalDuration in PlaylistExtesions 2024-06-05 12:25:33 -03:00
Dean Herbert
212be6b9a7
Merge branch 'master' into grids-1 2024-06-05 15:20:04 +09:00
Bartłomiej Dach
ecfcf7a2c0
Add xmldoc mention about performance overhead of PerformOnSelection() 2024-06-04 10:36:30 +02:00
Bartłomiej Dach
f13ca28d5e
Fix performance overhead from ternary state bindable callbacks when selection is changing
Closes https://github.com/ppy/osu/issues/28369.

The reporter of the issue was incorrect; it's not the beat snap grid
that is causing the problem, it's something far stupider than that.

When the current selection changes,
`EditorSelectionHandler.UpdateTernaryStates()` is supposed to update the
state of ternary bindables to reflect the reality of the current
selection. This in turn will fire bindable change callbacks for said
ternary toggles, which heavily use `EditorBeatmap.PerformOnSelection()`.

The thing about that method is that it will attempt to check whether any
changes were actually made to avoid producing empty undo states, *but*
to do this, it must *serialise out the entire beatmap to a stream* and
then *binary equality check that* to determine whether any changes were
actually made:

	7b14c77e43/osu.Game/Screens/Edit/EditorChangeHandler.cs (L65-L69)

As goes without saying, this is very expensive and unnecessary, which
leads to stuff like keeping a selection box active while a taiko beatmap
is playing under it dog slow. So to attempt to mitigate that, add
precondition checks to every single ternary callback of this sort to
avoid this serialisation overhead.

And yes, those precondition checks use linq, and that is *still* faster
than not having them.
2024-06-04 10:32:12 +02:00
Bartłomiej Dach
4fcb902341
Merge branch 'master' into grids-1 2024-06-03 12:33:51 +02:00
Dean Herbert
96514132c1
Fix occasional test failures on new menu content tests
Scheduled data transfer could still overwrite test data.
2024-06-03 12:24:56 +09:00
Dean Herbert
091104764e
Fix AssemblyRulesetStore not marking rulesets as available 2024-06-02 17:33:06 +09:00
Dan Balasescu
e3205fce47
Fix unable to drag-scroll on collections right-click menu 2024-06-01 14:29:23 +09:00
Dean Herbert
4162d0babe
Merge pull request #28297 from Hecatia-Lapislazuli/near-straight-slider-crash-fix
Fix for nearly straight sliders causing a crash
2024-05-31 20:00:47 +09:00
Bartłomiej Dach
69990c35cb
Add commentary on presence of IsPresent override 2024-05-31 08:47:19 +02:00
Dean Herbert
c6a7082034
Fix incorrect prefix check 2024-05-31 15:38:26 +09:00
Aurelian
9111da81d2 Updated comments 2024-05-31 08:20:19 +02:00
Bartłomiej Dach
1a26a5dbda
Fix mismatching localisation key prefix
The `Strings` suffix is not supposed to be in here, judging by other
localisation classes.
2024-05-31 08:09:25 +02:00
Bartłomiej Dach
cb72630ce1
Fix compile failures 2024-05-31 08:09:06 +02:00
Dean Herbert
5dfeaa3c4a
Move dialog strings to more common class name 2024-05-31 11:46:32 +09:00
Dean Herbert
e52f524ea2
Use common header text 2024-05-31 11:44:53 +09:00
Dean Herbert
474ff5b99d
Use question mark for more grammatical correctness
Co-authored-by: Joseph Madamba <madamba.joehu@outlook.com>
2024-05-31 10:46:30 +09:00
Dean Herbert
53b7c29488
Add test coverage of menu banner link opening 2024-05-31 03:15:26 +09:00
Dean Herbert
ed64bfff8d
Bypass external link dialog for links on the trusted osu! domain 2024-05-31 02:44:51 +09:00
Dean Herbert
87a331fdde
Improve text on external link warning dialog 2024-05-31 02:44:45 +09:00
Dan Balasescu
3c2599c50f
Merge pull request #27977 from DavidBeh/magnetised-judgements
Make judgements follow hitcircles and enable them in magnetised, repel and depth
2024-05-30 19:21:20 +09:00
Dan Balasescu
981b69de2f
Merge pull request #28357 from peppy/dont-fail-acks
Avoid `ChatAckRequest` failures flooding console in `OsuGameTestScene`s
2024-05-30 18:15:25 +09:00
Dean Herbert
f3bc944ac8
Remove using statement 2024-05-30 17:45:32 +09:00
Bartłomiej Dach
50bd0897f6
Fix main menu button backgrounds not covering their entire width sometimes
I thought I had fixed this already once but it still looks broken.
Basically when hovering over main menu buttons every now and then it
will look like their backgrounds are not covering their entire width
when they expand.

The removed X position set looks wrong to me when inspecting the draw
visualiser with the element because the element looks to be off centre
horizontally, and removing it fixes that.
2024-05-30 10:38:22 +02:00
Dean Herbert
36d7775032
Fix typo in IAPIProvider xmldoc 2024-05-30 17:38:05 +09:00
Dean Herbert
2f2bc8e52e
Avoid ChatAckRequest failures flooding console in OsuGameTestScenes 2024-05-30 17:37:55 +09:00
Bartłomiej Dach
ab01fa6d45
Add xmldoc to APIAccess.APIVersion 2024-05-29 14:10:07 +02:00
Bartłomiej Dach
cc13655617
Derive API response version from game version
(Or local date, in the case of non-deployed builds).

Came up when I was looking at https://github.com/ppy/osu-web/pull/11240
and found that we were still hardcoding this.

Thankfully, this *should not* cause issues, since there don't seem to be
any (documented or undocumented) API response version checks for
versions newer than 20220705 in osu-web master.

For clarity and possible debugging needs, the API response version is
also logged.
2024-05-29 14:10:01 +02:00
Bartłomiej Dach
a6c776dac8
Use hopefully safer implementation of anchoring judgements to objects 2024-05-29 11:11:43 +02:00
Bartłomiej Dach
7b7e439d03
Merge branch 'master' into scale-tool 2024-05-29 10:15:48 +02:00
Bartłomiej Dach
9477e3b67d
Change editor scale hotkey to Ctrl-E
Forgot that Ctrl-T was taken by the game-global toolbar already, so it
wasn't working.
2024-05-29 10:14:47 +02:00
Bartłomiej Dach
4c881b5633
Use better name if we're renaming 2024-05-29 09:40:29 +02:00
Aurelian
542809a748 Reduced subpoints limit to be a more practical value 2024-05-29 09:39:46 +02:00
Dan Balasescu
655b0f5343
Merge branch 'master' into negative-frame-handling 2024-05-29 13:14:59 +09:00
OliBomby
d143a697d2 refactor CanScaleFromPlayfieldOrigin and GetClampedScale to derived class 2024-05-28 17:12:16 +02:00
OliBomby
8eb23f8a60 remove redundant CanScaleFromSelectionOrigin 2024-05-28 16:19:57 +02:00
OliBomby
a89ba33b47 rename CanScaleSelectionOrigin/PlayfieldOrigin to make clear its not the origin being scaled 2024-05-28 16:14:16 +02:00
OliBomby
36453f6215 Change scale hotkey to Ctrl+T 2024-05-28 15:56:59 +02:00