Dan Balasescu
ed295effc5
Maximise bonus score
2023-09-15 15:51:05 +09:00
Dean Herbert
cf9ca60b09
Change slider body to not animate snaking until head circle is (successfully) hit
2023-09-14 17:49:41 +09:00
Dean Herbert
e3e7a81ad9
Remove slider head circle movement (and remove setting from "classic" mod)
2023-09-14 17:49:41 +09:00
Dan Balasescu
753c1c877c
Revert masking SSBO changes
2023-09-13 23:10:13 +09:00
Dean Herbert
e810abf1e6
Rename variable
2023-09-12 20:51:22 +09:00
Dean Herbert
39d69903ab
Merge branch 'master' into stable-spinner-ticks-2
2023-09-12 20:41:43 +09:00
Dean Herbert
7db4b3e83c
Merge pull request #24661 from frenzibyte/stable-spinner-ticks-1
...
Update osu! spinner ticks calculation method to better match with osu!(stable)
2023-09-12 20:41:28 +09:00
Dan Balasescu
86330a7cc4
Adjust comment
2023-09-11 18:01:53 +09:00
Dan Balasescu
628517569b
Fix another difficulty-specific value
2023-09-08 21:08:09 +09:00
Bartłomiej Dach
e9b08219e9
Block input to objects lying under already-hit slider heads before slider is fully judged when classic note lock is active
2023-09-08 13:42:18 +02:00
Bartłomiej Dach
168a828f23
Revert "Block input to objects lying under already-hit hitcircles when classic note lock is active"
...
This reverts commit 03c61a573e
.
The goal here was to handle an edge case discovered during work on note
lock, wherein it was determined that on stable hit circles would block
input from reaching objects underneath them. However, the change
mentioned above did that _too_ hard and caused overlaps to also be
blocked even long past a hit circle has been faded out.
Revert the change pending further (and more careful) investigation.
2023-09-08 10:11:21 +02:00
Dan Balasescu
2334be1987
Split legacy scoring attributes into a separate object
2023-09-07 21:10:38 +09:00
Dean Herbert
22ee64cfda
Fix sliders not always being the correct length
...
This is another similar case where stable floating point precision comes
into play due to use of `hitObjectManager.Beatmap.BpmMultiplierAt` (see
1531237b63/osu
!/GameplayElements/HitObjects/Osu/SliderOsu.cs#L680)
Closes #24708 .
2023-09-07 18:20:08 +09:00
Dean Herbert
64baa4d01a
Add test coverage of failing slider tick generation edge case
2023-09-07 18:20:08 +09:00
Dean Herbert
dcbdc114ce
Remove precision limitations of SliderVelocity
2023-09-07 17:41:58 +09:00
Bartłomiej Dach
323a4f4522
Only show preempt time when limits are extended
2023-09-07 08:30:02 +02:00
Bartłomiej Dach
bd633889e7
Remove local preempt time calculation
...
And just use a hitcircle, and read the actual value. Comes with 100%
less chance of forgetting to update either place in the future.
2023-09-07 08:23:50 +02:00
Bartłomiej Dach
9c6f77b26e
Fix too many things being exposed
2023-09-07 08:11:04 +02:00
Dean Herbert
e05d7d5f8d
Inline local control
2023-09-07 14:22:06 +09:00
isakvik
2ab11ab568
adds new diffsetting control that shows millisecond values for approach rate override
2023-09-07 01:41:22 +02:00
isakvik
3db0d0d341
extendable minimum AR value for osu!std diff adjust mod, set to -10
2023-09-06 23:26:34 +02:00
Dean Herbert
1a37543d28
Rename SliderVelocity
to SliderVelocityMultiplier
to distinguish from Velocity
2023-09-06 19:01:08 +09:00
Dean Herbert
d06490220d
Add better xmldoc for Slider.Velocity
2023-09-06 18:58:58 +09:00
Salman Ahmed
912c8b0901
currentSpins
-> completedFullSpins
2023-09-06 00:10:41 +03:00
Bartłomiej Dach
03c61a573e
Block input to objects lying under already-hit hitcircles when classic note lock is active
2023-09-05 22:50:27 +02:00
Dean Herbert
96f12cfbaa
Update GetTexture
signature rather than creating new overload
2023-09-05 18:01:19 +09:00
Dean Herbert
0da37e4e99
Merge pull request #24701 from frenzibyte/remove-flashlight-slider-dim-transform
...
Apply flashlight slider dim immediately to match osu!(stable)
2023-09-04 16:35:30 +09:00
Salman Ahmed
351081eb27
Add limit to osu! hit circle elements
2023-09-03 02:22:53 +03:00
Salman Ahmed
920c6fa48f
Update comment
2023-09-01 23:29:51 +03:00
Salman Ahmed
f74dfa9c6c
Apply flashlight slider dim immediately to match osu!(stable)
2023-09-01 22:55:33 +03:00
Dean Herbert
90121814f9
Merge branch 'master' into stable-notelock
2023-09-01 17:15:48 +09:00
Dean Herbert
c75b14c729
Apply NRT to new LegacyHitPolicy
class (and other implementations)
2023-09-01 16:56:34 +09:00
Salman Ahmed
993cebe785
Fix mod "Classic" interfering with DrawableHitCircle
animation while in hit state
2023-08-30 21:42:47 +03:00
Salman Ahmed
3bcddf3cc8
Add gap of two whole spins before achieving bonus score
2023-08-27 01:54:10 +03:00
Salman Ahmed
d614e745b8
Calculate spinner ticks as "whole spins" without arbitrary factors
2023-08-27 01:27:31 +03:00
Salman Ahmed
e77581f641
wholeSpins
-> currentSpins
2023-08-27 01:27:31 +03:00
Bartłomiej Dach
7f215f163f
Use reduced hittable range with autopilot active
2023-08-24 08:52:49 +02:00
Bartłomiej Dach
ed2b1a0754
Contain entirety of legacy notelock badness inside the hit policy
2023-08-24 08:52:49 +02:00
Bartłomiej Dach
a045cb71fc
Add assertions checking action type taken by legacy hit policy
2023-08-24 08:52:49 +02:00
Bartłomiej Dach
b777b34cc0
Merge branch 'master' into stable-notelock
2023-08-24 08:43:59 +02:00
Dan Balasescu
e8337c592a
Update framework and apply changes to support masking SSBO
2023-08-22 12:50:13 +09:00
Bartłomiej Dach
3c191ff9ea
Expand allowable rotation range to [-360, 360]
2023-08-19 15:09:59 +02:00
Dean Herbert
63080d049f
Adjust icons slightly
2023-08-17 19:08:18 +09:00
Dean Herbert
0858bef66e
Update SmokeSegment
in line with framework vertex changes
2023-08-17 18:12:04 +09:00
Bartłomiej Dach
19f892687a
Add precise rotation control to osu! editor
2023-08-16 11:37:52 +02:00
Bartłomiej Dach
262f25dce8
Make SelectionRotationHandler
a Component
2023-07-30 20:18:33 +02:00
Bartłomiej Dach
821cd08f34
Merge branch 'master' into selection-operations-refactor
2023-07-30 19:29:06 +02:00
Bartłomiej Dach
c21167e2ab
Merge pull request #24360 from peppy/spinner-faster-rotation
...
Change spinner rotation animation to match input 1:1
2023-07-29 00:48:56 +02:00
Dean Herbert
2e9379474d
Change spinner rotation animation to match input 1:1
2023-07-25 19:21:20 +09:00
Dean Herbert
eac6271bd0
Add new property to avoid overlapping usages
2023-07-25 18:14:03 +09:00
Dean Herbert
2f7d38d98b
Merge branch 'master' into fix-editor-blueprint-input-extension
2023-07-25 18:14:02 +09:00
Bartłomiej Dach
aec3ca250c
Migrate SelectionHandler
to use SelectionRotationHandler
2023-07-23 20:56:22 +02:00
Bartłomiej Dach
ba904fd77b
Migrate osu! rotation handling to SelectionRotationHandler
2023-07-23 20:56:22 +02:00
Bartłomiej Dach
4622255cc7
Move out helper methods to static class
2023-07-23 18:24:20 +02:00
Dean Herbert
b58354ac64
Fix playfield getting cut off (again) at tall aspect ratios
2023-07-21 15:20:20 +09:00
Liam DeVoe
6a81230298
rename ObjectOrderedHitPolicy to LegacyHitPolicy
2023-07-19 14:44:28 -04:00
Liam DeVoe
2c97ac7410
convert AliveObjects to list in hit policy instead of globally
2023-07-19 14:28:04 -04:00
Dean Herbert
4a6a5b174a
Fix editor blueprints being selectable for too long when hit markers are enabled
...
Addresses https://github.com/ppy/osu/discussions/24163 .
2023-07-19 14:59:22 +09:00
Liam DeVoe
768d7b5e1c
correct implementation of stable notelock
2023-07-17 23:31:21 -04:00
Dean Herbert
dd8774a640
Vertically centre the editor osu! playfield
2023-07-14 13:21:28 +09:00
Bartłomiej Dach
d5912165e9
Merge branch 'master' into results-screen-component-metrics
2023-07-13 19:53:52 +02:00
Dean Herbert
9ad63bae37
Add missing heading for statistics section in results screen
2023-07-13 18:50:52 +09:00
Dean Herbert
947b40149f
Adjust metrics of SimpleStatisticTable
2023-07-13 18:45:32 +09:00
Dean Herbert
4f089eb5a5
Adjust metrics of AccuracyHeatmap
2023-07-13 18:30:57 +09:00
Dean Herbert
87570ed238
Fix incorrect slider stacking on very old beatmaps
...
Closes https://github.com/ppy/osu/issues/24185
The stable code has had a bug in this logic forever. So we'll need to
reimplement the bug.
Basically, sliders have to have `UpdateCalculations` run in order to
have a correct `Position2` and `EndTime`, but this wasn't being called
in the inner loop before use of `EndTime` at
1531237b63/osu
!/GameplayElements/HitObjectManager.cs#L1813.
To fix this, we use `StartTime` in the inner loop to reproduce the bug.
2023-07-12 17:35:03 +09:00
Bartłomiej Dach
7be5e0e978
Implement back-and-forth conversion of ModScoreV2
and LegacyMods
2023-07-09 16:15:21 +02:00
Bartłomiej Dach
e9ecad9839
Add failing test cases covering NaN-timing-point sliders
2023-07-08 23:24:38 +02:00
Dean Herbert
e0fc97bb93
Replace various local implementations of rewinding checks with new property
2023-07-07 15:21:24 +09:00
Dean Herbert
1629024111
ILegacyScoreProcessor
-> ILegacyScoreSimulator
2023-07-04 17:32:54 +09:00
Dan Balasescu
c6ad184d94
Move Ruleset method to ILegacyRuleset interface
2023-06-29 17:24:37 +09:00
Dan Balasescu
09bc8e45de
Refactoring
2023-06-28 16:14:32 +09:00
Dan Balasescu
5f350aa66f
Fix float division
...
Firstly, this is intended to be a float division.
Secondly, dividing integers by 0 results in an exception, but dividing
non-zero floats by 0 results in +/- infinity which will be clamped to
the upper range.
In particular, this occurs when the beatmap has 1 hitobject (0 drain
length).
2023-06-27 17:14:35 +09:00
Dan Balasescu
a9c65d200a
Initial conversion of scores
2023-06-26 22:19:01 +09:00
Dan Balasescu
e1d723a2cc
Merge branch 'master' into diffcalc-total-scorev1
2023-06-26 14:32:14 +09:00
Bartłomiej Dach
e3a89a6273
Fix remaining obvious CI inspections
2023-06-24 16:07:01 +02:00
Dan Balasescu
5fadadc3d0
Merge branch 'master' into diffcalc-total-scorev1
2023-06-24 02:46:15 +09:00
Dean Herbert
df5b389629
Manual fixes to reduce warnings to zero
2023-06-24 01:52:53 +09:00
Dan Balasescu
06565871d6
Add flag to disable computing legacy scoring values
2023-06-24 01:03:18 +09:00
Dean Herbert
0ab0c52ad5
Automated pass
2023-06-24 01:00:03 +09:00
Dan Balasescu
87447f41d0
Fix incorrect calculation of difficulty
2023-06-24 00:58:45 +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
Dan Balasescu
bfa449e47a
Adjust attribute data
2023-06-19 21:38:13 +09: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
0844a21a51
Merge branch 'master' into diffcalc-total-scorev1
2023-06-15 19:33:29 +09:00
Dan Balasescu
b9f485b551
Merge classes + split out
2023-06-13 02:32:54 +09:00
Dan Balasescu
446807e7f6
Add combo score / bonus score attributes
2023-06-12 23:00:29 +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
Dan Balasescu
d10c63ed2d
Fix difficulty calculation when mods are involved
2023-06-08 16:29:34 +09: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
Dan Balasescu
77c745cc94
"TotalScoreV1" -> "LegacyTotalScore"
2023-06-06 17:25:28 +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