Commit Graph

4935 Commits

Author SHA1 Message Date
Bartłomiej Dach e3a89a6273
Fix remaining obvious CI inspections 2023-06-24 16:07:01 +02:00
Dean Herbert df5b389629 Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
Dean Herbert 0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Bartłomiej Dach 6d32206a08
Fix slider tails receiving wrong colours
Only visually apparent on legacy skins.
2023-06-19 17:47:01 +02:00
Dean Herbert 0900cebc0d Avoid doing expensive colour fetch operation every update 2023-06-19 20:12:17 +09:00
Dean Herbert aa96fefae2 Merge branch 'master' into snap-colour-mod 2023-06-19 20:01:36 +09:00
Dan Balasescu 024a64e52c
Merge pull request #23866 from bdach/fix-judgement-processing-order
Fix not being able to receive full score for extremely short sliders with repeats
2023-06-12 15:04:08 +09:00
Dean Herbert bddb91dc0a Adjust adjustment to 1px based on review feedback
Also split out `Size` variable for clarity
2023-06-12 14:24:39 +09:00
Dean Herbert 03a5b701e9
Fix incorrect inline comment
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-06-12 14:20:54 +09:00
Bartłomiej Dach 7e5533e205
Fix not being able to receive full score for extremely short sliders with repeats
Closes #23862.

Score V2 is a scoring algorithm, which aside from the raw numerical
values of each judgement, incorporates a combo component, wherein each
judgement's "combo score" is derived from both the raw numerical value
of the object and the current combo after the given judgement. In
particular, this means that Score V2 is sensitive to the _order_ of
judging objects, as if two objects with the same start time are judged
using different ordering, they can end up having a different "combo
score".

The issue that this change is fixing is an instance of one such
reordering. Upon inspection, it turned out that the simulated autoplay
run, which is used to determine max possible score so that it can be
standardised to 1 million again, was processing a slider repeat before a
slider tail circle, while actual gameplay was processing the same slider
repeat _after_ the slider tail circle.

The cause of that behaviour is unfortunately due to `LegacyLastTick`.
The sliders which cause the issue are extremely short. Stable had a
behaviour, in which to provide leniency, slider tails were artificially
offset back by 36ms. However, if the slider is not long enough to make
this possible, the last tick is placed in the middle of the slider. If
that slider also happens to have exactly 1 repeat, then this means that
the last tick and the repeat have the same time instant.

Because of the time equality, what begins to matter now is the _order_
of processing the elements of the drawable slider in the hierarchy. For
the purposes of legacy skins, tail circles were moved below ticks in
fce3eacd7d - but in this particular case,
it means that the order of processing the slider elements is now
inadvertently inverted, causing the entire debacle.

While the fact that scoring depends on order of processing of visuals is
suboptimal, there isn't a great way to address this without significant
restructuring. Due to the structure of processing judgements currently
in place, in which each judgement is processed independently from others
by its corresponding drawable hit object, this is probably the best that
can be done for the time being at least.
2023-06-10 12:14:08 +02:00
Dan Balasescu 4b8c4bd503 Fix black jaggies around argon hitcircles 2023-06-10 01:54:13 +09:00
Dean Herbert 95ad18ed2e Reduce the radius of note-to-note snapping in osu! editor
Stable uses `0.15f`, but for whatever reason that feels too large still.

I've ballparked this.

Addresses https://github.com/ppy/osu/discussions/23806.
2023-06-08 17:44:33 +09:00
John Biddle d07437f810 Added recommendations from bdach:
Fixed null checking in ApplyToDrawableHitObject
Renamed mod to "Synesthesia"
Moved to the "Fun" mod category
2023-06-08 00:52:28 -07:00
Salman Ahmed 62cb6a98ca Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
Dean Herbert 247fa088db Add `IHasNoTimedInputs` interface to scope change further 2023-06-06 22:22:42 +09:00
Bartłomiej Dach 331e90f720
Merge branch 'master' into tidy-results-grid-usage 2023-06-03 19:45:23 +02:00
Dean Herbert a5fd833214 Fix "bubbles" mod not adding pool to hierarchy (and constructing too early) 2023-06-02 23:01:03 +09:00
Dean Herbert 985604fab5 Return `StatisticItem`s rather than `StatisticRow`s from ruleset
There were no usages of more than one column being provided per row, so
it seemed like unnecessarily complexity. I'm currently trying to reduce
complexity so we can improve the layout of the results screen, which
currently has up to three levels of nested `GridContainer`s.

Of note, I can't add backwards compatibility because the method
signature has not changed in `Ruleset` (only the return type). If we do
want to keep compatibility with other rulesets, we could designate a new
name for the updated method.
2023-06-01 14:35:15 +09:00
Dean Herbert e830b96e61 Add back required override to make `AccuracyHeatmap` work 2023-06-01 13:26:47 +09:00
Bartłomiej Dach aaf50c47a7
Merge pull request #23696 from peppy/fix-autopilot-ripples
Fix cursor ripples appearing in a weird place when "autopilot" mod is enabled
2023-05-30 23:29:30 +02:00
John ed850196d9 Reverted to applying the color change in OnUpdate, removed EnableComboColour flag from DrawableHitObject.cs 2023-05-30 01:43:08 -07:00
Dean Herbert 3e94d4bb5a Fix cursor ripples appearing in a weird place when "autopilot" mod is enabled 2023-05-30 15:18:23 +09:00
Dean Herbert 1558723420 Merge branch 'master' into scorev2 2023-05-29 20:06:32 +09:00
Bartłomiej Dach 53c91349fe
Merge branch 'master' into slider-control-point-no-distance-snap 2023-05-26 19:52:54 +02:00
Bartłomiej Dach e35201cb99
Don't snap non-head slider nodes to distance grid during placement either
1cd69220ef only disabled snapping the
aforementioned nodes to distance grid for already-placed sliders.
`SliderPlacementBlueprint` has its own logic for placement, so the fix
needs to be mirrored there too.
2023-05-26 19:51:20 +02:00
Bartłomiej Dach e8db0739fa
Merge pull request #23577 from peppy/accuracy-heatmap-text-hints
Show text hints on the accuracy heat map to better explain direction
2023-05-25 17:00:25 +02:00
Dean Herbert 1cd69220ef Fix slider path placement snapping non-head nodes to distanced snapping grid
As discussed at https://github.com/ppy/osu/discussions/23531.
2023-05-25 21:41:43 +09:00
Dean Herbert 804671ca74 Split out grid snapping modes into "relative" and "global" types 2023-05-25 21:41:19 +09:00
Dan Balasescu fee3d43596 Merge branch 'master' into scorev2 2023-05-23 19:07:54 +09:00
Dean Herbert c8303d55cd Adjust text and alignment 2023-05-23 16:21:56 +09:00
Bartłomiej Dach afdddb0195
Merge pull request #23582 from peppy/placement-blueprint-timeline-combo-fixes
Fix timeline blueprint display not showing correct combo number / colour during placement
2023-05-20 15:02:55 +02:00
Dan Balasescu 30a296bd09 Rename parameters 2023-05-19 17:27:02 +09:00
Dan Balasescu d74bf2a096 Refactor for safety 2023-05-19 14:37:26 +09:00
Dan Balasescu 2ae34530f7 Avoid NaN values during ApplyBeatmap processing() 2023-05-19 14:14:34 +09:00
Dan Balasescu 8b56a3f87d Remove ClassicScoreMultiplier and DefaultScoreProcessor 2023-05-19 12:24:52 +09:00
Dean Herbert b58ab28765 Make `EditorClock` non-nullable in `PlacementBlueprint` 2023-05-17 21:40:52 +09:00
Dean Herbert 3054348c73 Add text hints to accuracy heat map to better describe travel direction 2023-05-17 15:22:48 +09:00
Dean Herbert 9fe787acd8 Enable NRT on `AccuracyHeatmap` 2023-05-17 15:03:59 +09:00
Dean Herbert dc51d5ecf3 Rename `GetSampleInfo` to better describe what method does
Also add full xmldoc
2023-05-17 14:07:48 +09:00
John b7dc8d49ba Removed import for Allocation and other unnecessary [Resolved] tag missed in last commit 2023-05-16 21:14:55 -07:00
John e2633ae993 Removed unnecessary [Resolved] attribute (thanks bdach)
Moved accent color assignment from OnUpdate to ApplyCustomUpdateState. In order to get this to work, a flag needed to be added to DrawableHitObject.cs to disable combo color updates also being applied.
2023-05-16 21:08:56 -07:00
Bartłomiej Dach a6ddb107cd
Merge branch 'master' into master 2023-05-14 19:45:31 +02:00
alix d503312788 updates and add changes 2023-05-14 13:37:44 -04:00
John 7a907f7207 Code quality improvements (thanks to ItsShamed): Removed #nullable disable, fixed incorrect LocalisableString, removed incorrect dependency injection for OsuColour, fixed nullable dependency for IBeatmap
Removed unnecessary usage of "this." caught by the CI code quality check
2023-05-12 22:13:39 -07:00
John 24f07633f3 Formatting fixes 2023-05-12 19:43:28 -07:00
John e5884016ab Initial commit for the snap colour mod. Implements basic functionality. 2023-05-12 19:07:25 -07:00
Dean Herbert f443cfb93e Move blueprint validity conditions to allow more correct external usage of `EndPlacement`
Until now, these were haphazardly enforce inline in blueprint
implementations. The only thing stopping complete breakage is that
`EndPlacement` wasn't called (too much) from outside the blueprint,
leaving them responsible for their own placement.

By moving this conditional out of the provided paramters to
`EndPlacement`, it allows more flexible usage of that method externally.
Coming in a future PR.
2023-05-12 16:02:22 +09:00
alix b3a5e4d305 nest class outside of OsuModRandom 2023-05-12 00:29:00 -04:00
alix 53ab780796 fix indents 2023-05-11 23:50:45 -04:00
alix e50cab9e81 move class to the bottom of the file 2023-05-11 23:48:31 -04:00