1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-13 05:22:54 +08:00
Commit Graph

6143 Commits

Author SHA1 Message Date
OliBomby
66459c50de Rename to 'Grid' 2024-10-07 19:09:09 +02:00
OliBomby
076c8dec5a Revert "Use new place grid icon"
This reverts commit db10202642.
2024-10-07 19:06:32 +02:00
OliBomby
db10202642 Use new place grid icon 2024-10-07 16:51:53 +02:00
OliBomby
533ed609fb Fix crash on placing circular grid 2024-10-07 16:19:01 +02:00
Bartłomiej Dach
1af464d5ae
Bump difficulty calculator versions
In order for the new star difficulty to be shown to users on the next
release.

catch's difficulty calculator version is not bumped because the only
catch change pending deploy is https://github.com/ppy/osu/pull/28353 and
that affects performance points only.
2024-10-07 15:38:41 +02:00
OliBomby
a755ae70a3 fix warning 2024-10-07 12:13:56 +02:00
OliBomby
7b998219d7 move grid placement tool to left toolbox 2024-10-07 12:04:14 +02:00
OliBomby
d7526be243 Merge remote-tracking branch 'upstream/master' into grids-4 2024-10-07 11:56:35 +02:00
Bartłomiej Dach
f30ac5d996
Merge branch 'master' into no-combo-scaling 2024-10-07 11:50:58 +02:00
Bartłomiej Dach
9a8a5cd45d
Merge pull request #27063 from tsunyoku/account-for-sliders-in-accuracy-pp
Include sliders in accuracy pp if slider head accuracy is in use
2024-10-07 11:50:46 +02:00
Dean Herbert
5cb106e8e6
Merge pull request #30134 from bdach/center-button-breakage
Fix "Center on selected object" button not changing grid coordinates
2024-10-07 18:12:19 +09:00
Bartłomiej Dach
707c237acc
Merge branch 'master' into account-for-sliders-in-accuracy-pp 2024-10-07 10:51:41 +02:00
Bartłomiej Dach
2b5ddddf4f
Fix "centre on selected object" button not respecting precision of allowable grid positions 2024-10-07 10:29:45 +02:00
Bartłomiej Dach
04c65ad919
Fix "centre on selected object" sometimes remaining disabled after moving grid 2024-10-07 10:29:18 +02:00
Bartłomiej Dach
3da59f44b5
Fix clicking "centre on selected object" button not updating slider state 2024-10-07 10:29:09 +02:00
Bartłomiej Dach
f47b8d5eb6
Merge branch 'slight-rebalance' into rhythm-fixes 2024-10-07 09:30:16 +02:00
Bartłomiej Dach
6507e3e406
Merge branch 'master' into rhythm-fixes 2024-10-07 09:29:51 +02:00
Dean Herbert
1ab02b93b3
Merge branch 'master' into grids-4 2024-10-07 15:42:23 +09:00
Bartłomiej Dach
77f32708e0
Merge pull request #29980 from tsunyoku/speed-distance-hotfix
Various speed distance difficulty calculation changes
2024-10-07 08:31:52 +02:00
Dean Herbert
af43b368ea
Merge pull request #30114 from bdach/form-slider-bar-transfer-value-on-commit
Fix difficulty settings sliders attempting to reprocess all hitobjects on every instantaneous change
2024-10-07 14:59:48 +09:00
Dan Balasescu
b977a187e5
Merge pull request #30021 from bdach/fix-random-mod-broken-sr
Fix broken star rating on Random mod
2024-10-07 14:54:55 +09:00
Bartłomiej Dach
1854e1c2f9
Merge branch 'master' into form-slider-bar-transfer-value-on-commit 2024-10-07 07:21:23 +02:00
Bartłomiej Dach
8496005e47
Merge pull request #30088 from stanriders/uncap-od-accuracy
Uncap speed OD-accuracy scaling
2024-10-07 07:15:03 +02:00
OliBomby
cc29e8c16d introduce tooltip to rounded button with subclass instead 2024-10-05 15:16:29 +02:00
StanR
d4a00d75e8
Update osu.Game.Rulesets.Osu/Difficulty/Evaluators/RhythmEvaluator.cs
Co-authored-by: James Wilson <tsunyoku@gmail.com>
2024-10-04 17:42:15 +05:00
James Wilson
7cfc389d03
remove double-negative on usingClassicSliderHeadAccuracy 2024-10-04 13:37:05 +01:00
Bartłomiej Dach
7816c41b94
Only transfer difficulty slider values on commit
Closes https://github.com/ppy/osu/issues/30112.
2024-10-04 14:08:46 +02:00
tsunyoku
f54a5a5b0e Merge branch 'master' into no-combo-scaling 2024-10-03 16:37:20 +01:00
Bartłomiej Dach
1bab2236fe
Ensure columns collapse into one correctly if no space 2024-10-03 15:01:23 +02:00
Bartłomiej Dach
99eb26b7d5
Redo the layout of sections based on discord feedback
See
https://discord.com/channels/188630481301012481/188630652340404224/1291358770064130140
and everything after.
2024-10-03 13:53:21 +02:00
OliBomby
19d8be4890 Add more comments 2024-10-03 11:49:45 +02:00
Bartłomiej Dach
b15608343b
Replace setup screen controls with new "form" controls 2024-10-03 11:49:03 +02:00
StanR
87835f2481 Uncap speed od accuracy scaling 2024-10-02 19:47:22 +05:00
OliBomby
0695d51968 Set minimum scale to 0.5 2024-10-01 16:48:55 +02:00
OliBomby
08e1698bb6 fix scale clamp computation and code cleanup 2024-10-01 16:45:39 +02:00
OliBomby
0677430975 compute lower bound in clamp scale 2024-10-01 16:45:27 +02:00
OliBomby
4959045851 Remove 'Centre on selected object' button 2024-10-01 15:53:39 +02:00
OliBomby
f8397cccc7 Merge remote-tracking branch 'upstream/master' into grids-4 2024-10-01 15:43:54 +02:00
OliBomby
c84bb4b797 Update tooltip 2024-10-01 15:38:21 +02:00
OliBomby
4de73dd9c8 Reapply "Add tooltip to rounded button"
This reverts commit 1912b1fcf3.
2024-10-01 15:28:13 +02:00
Dean Herbert
54e68005ef
Merge pull request #29691 from bdach/hotkeys-in-context-menus
Add hotkey hints to editor menus
2024-10-01 19:29:05 +09:00
Dean Herbert
8ea1ff5de6
Merge pull request #30069 from peppy/grid-to-current-object
Add button to centre editor grid to current hit object
2024-10-01 19:24:46 +09:00
Dean Herbert
24d534929d
Less var please 2024-10-01 18:44:27 +09:00
Bartłomiej Dach
9dad38c457
Fix button being interactable when collapsed
Did not match the expandable button in distance snap toolbox.
2024-10-01 11:35:43 +02:00
Dean Herbert
87ab953935
Merge pull request #30062 from bdach/distance-snap-weirdness
Fix various distance snap grid weirdness around unsnapped objects
2024-10-01 16:16:22 +09:00
Dean Herbert
590f27e0a0
Merge branch 'master' into hotkeys-in-context-menus 2024-10-01 15:50:19 +09:00
Dean Herbert
0409edccce
Add button to centre editor grid to current hit object 2024-10-01 15:22:05 +09:00
Bartłomiej Dach
48b03a328b
Ensure sliders are snapped when changing path types
Closes https://github.com/ppy/osu/issues/29915.

Uses behaviour suggested in
https://github.com/ppy/osu/issues/29915#issuecomment-2361843011.
2024-09-30 14:38:20 +02:00
Bartłomiej Dach
75fc57c34b
Fix distance spacing grid displaying incorrectly for unsnapped objects with duration 2024-09-30 13:36:16 +02:00
Bartłomiej Dach
31d1ba4949
Remove unused member 2024-09-30 09:30:06 +02:00
OliBomby
1912b1fcf3 Revert "Add tooltip to rounded button"
This reverts commit 3e4cd0aeac.
2024-09-28 17:33:24 +02:00
OliBomby
4568af8fda Combine drag and clicky interactions 2024-09-28 17:26:39 +02:00
OliBomby
3e4cd0aeac Add tooltip to rounded button 2024-09-28 17:04:20 +02:00
OliBomby
1c6e42671a return grid placement tool to right toolbox 2024-09-28 17:04:11 +02:00
OliBomby
b1e381a391 Update tooltip for drag 2024-09-28 15:59:07 +02:00
OliBomby
4e2bc0d1bd place grid with drag instead 2024-09-28 15:56:37 +02:00
Dean Herbert
c46d787f1e
Merge pull request #29949 from minetoblend/feature/scale-around-center
Support scaling around center when scaling with select box
2024-09-28 21:37:39 +09:00
Finadoggie
9b1ae2fe26
fix the code such that it actually works when testing it 2024-09-27 14:21:15 -07:00
Finadoggie
7a849c7e20
Fix formatting 2024-09-27 14:11:12 -07:00
Fina
132931f605
Create variable to check if using slideracc 2024-09-27 14:04:48 -07:00
Bartłomiej Dach
89f47c4654
Fix random mod needlessly trying to fix nested object positions on its own 2024-09-27 10:28:32 +02:00
Bartłomiej Dach
1c23fd31d7
Ensure Slider.updateNestedPositions() actually updates the position of all nesteds 2024-09-27 10:27:54 +02:00
Bartłomiej Dach
fa90b43233
Merge branch 'master' into selection-center 2024-09-27 09:30:36 +02:00
Fina
44c94254c5
Merge branch 'ppy:master' into estimation-removal 2024-09-26 17:54:21 -07:00
OliBomby
b179e086c6 Merge remote-tracking branch 'upstream/master' into grids-4 2024-09-26 14:59:52 +02:00
tsunyoku
f4055d923f increase aim skill multiplier 2024-09-25 18:14:15 +01:00
StanR
fe8b9536ff Bring back some old nerfs as balancing factor 2024-09-25 18:58:24 +05:00
Dan Balasescu
3111d6a74d
Merge pull request #29986 from OliBomby/refactor-placement-tool
Refactor placement blueprints to not be limited to hit objects
2024-09-25 17:59:43 +09:00
Dan Balasescu
5b8ae90ec1
Merge pull request #29962 from Givikap120/use_max_combo
Make all difficulty calculators use `GetMaxCombo` function
2024-09-25 17:51:49 +09:00
OliBomby
e3b4483872 Refactor PlacementBlueprint to not be hitobject specific 2024-09-24 20:31:00 +02:00
StanR
872628b8b8 Some extra tweaking 2024-09-24 18:24:00 +05:00
StanR
75dc822540 Adjust some multipliers 2024-09-24 17:57:31 +05:00
tsunyoku
5eb23d3a71 balancing attempts 2024-09-24 12:24:54 +01:00
tsunyoku
ce5c666c34 bump global multiplier 2024-09-24 11:28:15 +01:00
tsunyoku
98d9b5eec8 correct distanceBonus code comment 2024-09-24 11:23:34 +01:00
James Wilson
ac9c1508b1
update incorrect code comment
Co-authored-by: StanR <castl@inbox.ru>
2024-09-24 11:22:46 +01:00
Bartłomiej Dach
86432078dd
Remove usage of switch expression syntax
It's not universally accepted here and a `when` crept in that can be
bypassed entirely using rather clean baseline language constructs, so
why bother at this point.
2024-09-24 11:53:02 +02:00
tsunyoku
4da78a8c00 make speed bonuses additive, scale distanceBonus 2024-09-24 10:06:07 +01:00
OliBomby
0f0f490598 Don't snap to global grid while placing grid 2024-09-23 17:24:09 +02:00
OliBomby
fe10621771 Clarify criteria of grid spacing subdivision 2024-09-23 16:39:09 +02:00
OliBomby
0a5a463380 Convert 'grid from points' button to placement tool 2024-09-23 16:36:45 +02:00
OliBomby
1a81e12192 Refactor PlacementBlueprint to not be hitobject specific 2024-09-23 16:33:36 +02:00
StanR
08bded82fd Remove GetHashCode 2024-09-23 16:30:02 +05:00
StanR
6ed151ccf5 Merge branch 'master' into rhythm-fixes 2024-09-23 14:25:32 +05:00
StanR
e04b88a9b0 Replace speed buff with aim buff 2024-09-23 13:49:25 +05:00
Givikap120
1b77b3912b initial commit 2024-09-22 15:01:58 +03:00
Marvin Schürz
3180468db1 Prevent the distance snap grid from being activated by alt key while dragging select box handle 2024-09-21 14:22:17 +02:00
Marvin Schürz
8bca8d6072 Restore previous scale behavior when using scale popover 2024-09-20 17:38:49 +02:00
Marvin Schürz
8ceea9a5f7 Use scale origin when scaling sliders 2024-09-20 17:19:38 +02:00
OliBomby
8e11cda41a use minimum enclosing circle selection centre in scale 2024-09-20 01:07:54 +02:00
OliBomby
ee00624751 use minimum enclosing circle selection centre in rotation 2024-09-20 01:07:47 +02:00
OliBomby
d2f97f5908 take into account rotation period for each grid type 2024-09-19 20:18:24 +02:00
OliBomby
e3aeaf6d85 Merge remote-tracking branch 'upstream/master' into grids-4 2024-09-19 20:06:47 +02:00
StanR
e986a7dfe1 Fix repetition nerf not updating the counts 2024-09-19 19:15:54 +05:00
StanR
202364be5e Use List instead of Dictionary for island counting, minor adjustments 2024-09-19 17:52:55 +05:00
Bartłomiej Dach
89509ea49e
Fix DrawableOsuHitObject not properly cleaning up dim application callbacks
Should fix https://github.com/ppy/osu/issues/28629.

First of all, to support the claim that this does fix the issue -
reproduction is rather difficult, but I believe I found a way to
maximise the chances of it reproducing by performing the following
steps:

1. Apply the following diff:

diff --git a/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableSlider.cs b/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableSlider.cs
index eacd2b3e75..4c00da031a 100644
--- a/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableSlider.cs
+++ b/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableSlider.cs
@@ -6,6 +6,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Threading;
 using JetBrains.Annotations;
 using osu.Framework.Allocation;
 using osu.Framework.Bindables;
@@ -95,6 +96,8 @@ public DrawableSlider([CanBeNull] Slider s = null)
         [BackgroundDependencyLoader]
         private void load()
         {
+            Thread.Sleep(100);
+
             tailContainer = new Container<DrawableSliderTail> { RelativeSizeAxes = Axes.Both };

             AddRangeInternal(new Drawable[]

2. Download https://osu.ppy.sh/beatmapsets/1470790#osu/3023028 and open
   it in the editor.

3. Select all objects using Ctrl-A. Yes, it'll take a while, especially
   so with the patch above.

4. Rotate the selection by any amount using the right toolbox.

5. Press undo. The game should crash. If it doesn't spam redo and undo
   until it does.

Now to explain what the fix is.

In the issue thread I spent a considerable time hemming and hawing about
which of the dimmable pieces was null, which was a complete miss and a
failure at reading. Let's see the stack trace again:

	2024-06-27 02:15:20 [error]: at osu.Game.Rulesets.Osu.Objects.Drawables.DrawableOsuHitObject.<UpdateInitialTransforms>g__applyDim|15_0(Drawable piece) in /home/runner/work/osu-auth-client/osu-auth-client/osu/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableOsuHitObject.cs:line 101

Line 101, you say? What could be null here?

	bd8addfb5f/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableOsuHitObject.cs (L101)

Okay, what's `InitialLifetimeOffset`, then?

	bd8addfb5f/osu.Game.Rulesets.Osu/Objects/Drawables/DrawableOsuHitObject.cs (L108)

Yes, that's right. It's `HitObject` that is null here.

Now why does *that* happen? First, let's note that all stacks where this
died went through `UpdateState()`, which means that the problematic
`applyDim()` calls had to be `ApplyCustomUpdateState` event callbacks.
Meaning that the pieces where `HitObject` was null were DHOs themselves.

Recall that parent DHOs and child DHOs are pooled separately. Therefore,
there is no guarantee that any parent and child DHOs will remain
associated with each other for the entire duration of a gameplay
session; it is quite the contrary, and nobody should rely on that.
Unfortunately for us, adding a `applyDimToDrawableHitObject` callback to
a child object's `ApplyCustomUpdateState` *implicitly creates* such an
association, because it ends up allocating a closure that captures
`this` (meaning the parent in this context).

Therefore, this now creates a situation where a child DHO can attempt to
read state from a former parent DHO which can be in an indeterminate
state, and in fact, when this crashes, the former parent DHO is most
likely not even in use - hence the null `HitObject`.

Thus, the fix is to clear the association by unsubscribing from the
event when nested objects are cleared.

My hypothesis why the reproduction scenario is like it is, is that both
the sleep and the increased pressure on the pool (by way of selecting
all objects and therefore forcing the DHOs to be materialised beyond
pool capacity) increases the likelihood of getting a crosslink.
When pool pressure is low, it is much more likely that a parent DHO
*will* get the same child DHO again on re-application, even though
that is not guaranteed.

Just as an additional detail, note that the sentry issue for this lists
the "first seen" version as 2024.312.0, which is the release that
included https://github.com/ppy/osu/pull/27401 which would be directly
responsible for this mess.
2024-09-19 14:30:02 +02:00
StanR
732a114b95 Slight refactoring 2024-09-19 15:53:18 +05:00
Dean Herbert
188a430418
Merge branch 'master' into grids-3 2024-09-19 18:21:05 +09:00
StanR
0bad5e4684 Move slider-related ratio multiplier out of the delta switch block, add nerf for ratios with delta difference fractions that are too big, adjust consts 2024-09-19 04:38:01 +05:00
Bartłomiej Dach
67a7f608f1
Fix slider end drag marker being in incorrect position for stacked sliders
Closes https://github.com/ppy/osu/issues/29884.
2024-09-17 08:23:46 +02:00
StanR
c9ce7d29e6 Adjust multipliers 2024-09-16 01:04:46 +05:00
StanR
bee18b03e7 Reduce history max overall instead of using clock rate 2024-09-16 00:49:36 +05:00
StanR
145731bdef More balancing 2024-09-15 02:48:41 +05:00
StanR
863a74f980 Balancing 2024-09-15 02:08:37 +05:00
StanR
738d4bcb80 Reduce ratio if we're starting island counting after a slider 2024-09-15 01:49:52 +05:00
StanR
db626f168a Refactor 2024-09-15 01:12:41 +05:00
StanR
5e8174faa8 Reduce ratio for island size 1 2024-09-14 22:03:01 +05:00
StanR
d544498e8d Merge branch 'master' into rhythm-fixes 2024-09-12 15:29:20 +05:00
Dan Balasescu
d54c6aefbe
Merge branch 'master' into pp_refactoring_osustrainskill 2024-09-12 17:28:24 +09:00
Dean Herbert
a8365202d9
Merge pull request #29841 from bdach/replay-analysis-mod-woes
Fix several issues in interactions between playfield-altering mods and the replay analysis feature
2024-09-12 13:52:09 +09:00
StanR
3398497d4b Remove kickslider changes 2024-09-12 01:04:07 +05:00
Dan Balasescu
d935ed949c
Merge branch 'master' into pp_refactoring_speed_eval_change 2024-09-11 23:45:10 +09:00
Bartłomiej Dach
f38ae5f239
Fix replay analysis overlay being affected by visibility impairing mods
Closes https://github.com/ppy/osu/issues/29748.
2024-09-11 15:55:02 +02:00
Bartłomiej Dach
4a39873e2a
Fix replay analysis overlay not rotating with Barrel Roll enabled
Closes https://github.com/ppy/osu/issues/29839.
2024-09-11 15:54:30 +02:00
Dean Herbert
41d32ab2ca
Fix display length not resetting to default because default was wrong
Closes https://github.com/ppy/osu/issues/29757.
2024-09-07 13:54:12 +09:00
Sheppsu
e94e08fec3 fix marker depth when rewinding 2024-09-05 20:14:36 -04:00
Bartłomiej Dach
b9ddac4201
Fix test failures 2024-09-05 09:45:37 +02:00
Dean Herbert
167e3a3377
Make loading asynchronous 2024-09-05 16:25:08 +09:00
Dean Herbert
a1cf67be62
Add setting to adjust replay analysis display length 2024-09-05 15:53:53 +09:00
Dean Herbert
0f01a855af
Add note about cursor hiding being potentially flaky 2024-09-05 15:30:42 +09:00
Dean Herbert
47a9b345eb
Rename config variables and setting strings 2024-09-05 15:15:15 +09:00
Dean Herbert
7390d89c75
Switch to using CircularProgress for more consistent sizing
Also show both mouse buttons at once on frame markers.
2024-09-05 15:12:53 +09:00
Dean Herbert
4f719b9fec
One more rename pass 2024-09-05 14:28:20 +09:00
Dean Herbert
2d198e57e1
Second visual design pass 2024-09-05 14:17:53 +09:00
Dean Herbert
08ebc83a89
Fix path getting misaligned with negative position values 2024-09-05 12:14:24 +09:00
Dean Herbert
21146c3501
Add back shadow cast 2024-09-05 12:08:49 +09:00
Dean Herbert
a6ed719454
Visual design pass 2024-09-05 12:08:49 +09:00
Dean Herbert
a4a37c5ba6
Simplify lifetime entries and stuff 2024-09-05 12:08:49 +09:00
Dean Herbert
7f9a98a7aa
More renames 2024-09-05 12:08:48 +09:00
Dean Herbert
dcb463acaf
Split out classes and avoid weird configuration stuff 2024-09-05 12:08:48 +09:00
Dean Herbert
6c07b873af
Isolate configuration container from analysis overlay 2024-09-04 19:37:36 +09:00
Bartłomiej Dach
130802e480
Add hotkey hints to editor menus 2024-09-04 12:16:54 +02:00
Dean Herbert
9b81deb3ac
Fix settings not working if ReplayPlayer is not available 2024-09-04 19:09:23 +09:00
Dean Herbert
cc3d220f6f
Allow settings to be added to replay HUD from ruleset 2024-09-04 19:00:23 +09:00
Dean Herbert
992a0da957
Rename classes slightly 2024-09-04 19:00:22 +09:00
Dean Herbert
a417fec234
Move analysis container implementation completely local to osu! ruleset 2024-09-04 19:00:22 +09:00
Sheppsu
c89597b060 fix config mistake 2024-09-04 03:37:52 -04:00
Sheppsu
a549cdd5b9 persist analysis settings 2024-09-03 04:49:50 -04:00
Sheppsu
56db29d0f5 make test go indefinitely 2024-09-03 01:38:54 -04:00
Sheppsu
a2b15fcdee rework code logic to make more sense
analysis container creates settings and the settings items are created more nicely
also removed use of localized strings because that can be done separately
2024-09-03 00:59:42 -04:00
Sheppsu
1ed94e598a Merge branch 'master' into replay-analysis-settings 2024-09-01 19:32:25 -04:00
Andrei Zavatski
501ea68a21 Merge branch 'master' into fast-circle 2024-08-31 17:31:30 +03:00
Andrei Zavatski
f5a2b5ea03 Use FastCircle in demanding places in the editor 2024-08-30 17:45:26 +03:00
Dan Balasescu
4e8fb0dcab
Merge branch 'master' into scroll-speed-std 2024-08-30 00:41:05 +09:00
StanR
7fda8bc95b Reduce repetition nerf for non-consecutive islands 2024-08-27 23:48:15 +05:00
StanR
ed45c947fc Adjust max history by clockrate to make rhythm calculation more consistent between rates 2024-08-27 15:50:08 +05:00
Bartłomiej Dach
7c0550d251
Merge pull request #29500 from frenzibyte/fix-pausing-for-the-millionth-time
Fix oversight in osu! pause input handling
2024-08-27 10:04:47 +02:00
Dean Herbert
1b26e1c126
Merge branch 'master' into free-sliders 2024-08-27 13:32:24 +09:00
Dean Herbert
50a8348bf9
Apply NRT to remaining classes in slider blueprint namespace 2024-08-27 13:18:55 +09:00
Dean Herbert
4fc96ebfde
Tidy some thing up 2024-08-27 13:13:22 +09:00