Bartłomiej Dach
605269f65f
Extract preempt durations to shared constants
2023-12-14 20:41:12 +01:00
Bartłomiej Dach
fd1c72bf74
Use IBeatmapDifficultyInfo.(Inverse)DifficultyRange()
instead of local reimplementations
...
Also adds explicit references to places from where the magic constants
were lifted.
2023-12-14 20:41:12 +01:00
Bartłomiej Dach
15ce45ac71
Merge pull request #25726 from smoogipoo/fix-catch-clamping
...
Fix catch applying positional clamping too early
2023-12-13 18:47:05 +01:00
Bartłomiej Dach
a6bf4cdb98
Remove dead clamping code
...
`EffectiveX` is already defined as clamped
to `[0, CatchPlayfield.WIDTH]`.
2023-12-13 13:22:12 +01:00
Dean Herbert
9a982a9564
Tidy up GetRateAdjustedDisplayDifficulty
implemetations
2023-12-13 17:13:21 +09:00
Dean Herbert
0259ab761b
Merge branch 'master' into arod_rate_adjust
2023-12-13 16:35:18 +09:00
Dan Balasescu
c255339999
Merge branch 'master' into catch-hyperdash-stable-sort
2023-12-13 12:40:39 +09:00
Dan Balasescu
987fe9322e
Merge pull request #24166 from Zyfarok/scorev3
...
Modify osu! standardised scoring to introduce a combo exponent
2023-12-12 17:38:44 +09:00
Dan Balasescu
6320194e19
Fix catch applying positional clamping too early
2023-12-11 21:52:39 +09:00
Givikap120
faf54bca43
Merge branch 'master' into arod_rate_adjust
2023-12-10 01:49:18 +02:00
Dan Balasescu
394ea73055
Add some comments where truncations were added
2023-12-06 14:50:03 +09:00
Dan Balasescu
2c44ca1915
Add more test beatmaps
...
Move test files to Catch.Tests project
2023-12-06 12:27:11 +09:00
Dan Balasescu
3aaba3183b
Match stable precision when generating catch bananas
2023-12-05 15:39:26 +09:00
Dan Balasescu
7d602c792d
Fix legacy tick distance in JuiceStream generation
2023-12-05 15:10:03 +09:00
Dan Balasescu
b90de83f33
Replicate integer calculations for tiny tick conversion
2023-12-05 11:58:00 +09:00
Bartłomiej Dach
fcb6f40666
Prioritise hyperfruit over non-hyperfruit if simultaneous
...
In case of simultaneous hyperfruit and non-hyperfruit - which happen to
occur on some aspire maps - the desired behaviour is to hyperdash. This
did not previously occur, due to annoying details in how
`HitObjectContainer` is structured.
`HitObjectContainer`'s drawable comparer determines the order of
updating the objects. One could say that forcing the hyperfruit to be
updated last, after normal fruit, could help; unfortunately this is
complicated by the existence of juice streams and the fact that while a
juice stream can be terminated by a normal fruit that is coincidental
with a hyperfruit, the two are not comparable directly using the
comparer in any feasible way.
Therefore, apply a `Catcher`-level workaround that intends to handle
this locally; in short, if a hyperdash was toggled in a given frame, it
cannot be toggled off again in the same frame. This yields the desired
behaviour.
2023-12-04 09:30:18 +01:00
Bartłomiej Dach
0652ea316d
Merge branch 'master' into catch-hyperdash-stable-sort
2023-12-04 09:05:42 +01:00
Dan Balasescu
6f73d78bc9
Replicate integer calculations for catch hyperdash generation
2023-12-04 14:32:14 +09:00
Dan Balasescu
c755bcbec4
Add failing test
2023-12-04 14:30:08 +09:00
Dan Balasescu
295a1b01d6
Adjust catch score grade cutoffs
2023-11-29 19:05:31 +09:00
Zyf
71e5654b64
Account for legacyAccScore in score conversion
2023-11-24 23:07:27 +01:00
Dan Balasescu
8314f656a3
Encapsulate common HP logic from osu and catch HP calculations
2023-11-24 18:32:06 +09:00
Dan Balasescu
c126c46e2d
Remove legacy implementations (moved to osu-tools)
2023-11-24 15:43:57 +09:00
Dan Balasescu
bb66267634
Actually use CatchHealthProcessor for the ruleset
2023-11-24 13:49:28 +09:00
Dan Balasescu
4ba6450c77
Use better break calculation
2023-11-24 13:49:28 +09:00
Dan Balasescu
acf3de5e25
Add CatchHealthProcessor, following legacy calculations
2023-11-24 13:49:28 +09:00
Dan Balasescu
62a04a93c8
Implement legacy catch health processor
2023-11-24 13:49:28 +09:00
Dean Herbert
039f8e6242
Add note about shared code
2023-11-24 10:25:23 +09:00
Dan Balasescu
7bc2d6e6cd
Merge branch 'master' into fix-combo-handling
2023-11-23 16:22:01 +09:00
Dan Balasescu
7998204cfe
Fix combo/combo colouring issues around spinners
2023-11-23 13:54:05 +09:00
Dean Herbert
9172632b0b
Rename method and adjust xmldoc to be very explicit about how wrong this is
2023-11-17 17:04:20 +09:00
Dean Herbert
a04f9aaef7
Apply various inspections
2023-11-12 16:24:35 +09:00
Dean Herbert
4df1eb1b37
Refactor logic and tooltip formatting
2023-11-12 16:19:55 +09:00
Dean Herbert
6bd5eda2a0
Merge branch 'master' into arod_rate_adjust
2023-11-12 15:49:07 +09:00
Thomas Müller-Höhne
926636cc03
Generalize Bezier curves to BSplines of Nth degree
2023-11-11 13:32:53 +01:00
Givikap120
e451b2197c
Delete util functions from rulesets
2023-11-09 18:23:53 +02:00
Givikap120
97caf18036
Update CatchRuleset.cs
2023-11-04 21:57:17 +02:00
Givikap120
5597e819be
fixed bug in AR formula
2023-11-04 18:01:10 +02:00
Givikap120
57170501cd
Improve code quality
2023-11-04 17:25:09 +02:00
Bartłomiej Dach
359ae31204
Fix catch distance snap grid not moving
...
Regressed in https://github.com/ppy/osu/pull/25154 .
Specifically, in 013b5fa916
and 74b86349d5
.
A simple case of too-much-code-deleted-itis.
2023-10-26 15:42:50 +02:00
Dean Herbert
3fb74cb5f9
Move helper method to LegacyRulesetExtensions
and stop applying rounding allowance to catch
...
As discussed, it isn't used in stable like this. Was a mistake.
2023-10-20 18:57:14 +09:00
Dean Herbert
2ba6286470
Merge branch 'master' into fix-circle-radius
2023-10-20 18:53:36 +09:00
Dean Herbert
d49639bec3
Merge pull request #25173 from bdach/floating-fruits-borked
...
Fix Floating Fruits not flipping playfield properly
2023-10-20 13:04:08 +09:00
Bartłomiej Dach
cc1f1d2270
Fix Floating Fruits not flipping playfield properly
...
Regressed by https://github.com/ppy/osu/pull/25070 .
2023-10-19 19:47:49 +02:00
Dean Herbert
74b86349d5
Tidy up CatchHitObjectComposer
2023-10-19 23:57:36 +09:00
Dean Herbert
013b5fa916
Move beat snap grid implementation details to ScrollingHitObjectComposer
2023-10-19 23:54:34 +09:00
Dean Herbert
52c2eb93de
Merge branch 'master' into taiko-beat-snap-grid
2023-10-19 23:53:01 +09:00
Bartłomiej Dach
0c4e74c82d
Inherit ScrollingHitObjectComposer
in catch
2023-10-19 11:58:25 +02:00
Bartłomiej Dach
31849192c3
Remove DistancedHitObjectComposer
inheritance from catch composer
2023-10-19 11:46:30 +02:00
Dean Herbert
42087037ae
Fix Catcher
code change not accounting for double sizing requirement
2023-10-18 23:56:17 +09:00
Dean Herbert
3a5490892c
Centralise and repair circle size calculations game-wide
2023-10-18 19:50:42 +09:00
Bartłomiej Dach
e927267c4d
Merge pull request #25155 from peppy/fix-new-inspections
...
Fix various new rider EAP inspections
2023-10-17 17:04:39 +02:00
Dean Herbert
5341a335a6
Bypass Parent
nullability checks for now
2023-10-17 17:48:45 +09:00
Dean Herbert
4381169a3f
Combine selection and input handling logic for beat snap grids across all rulesets
2023-10-17 17:09:42 +09:00
Dean Herbert
1b9acdf55c
Abstract out common implementation of BeatSnapGrid
2023-10-17 16:42:52 +09:00
Bartłomiej Dach
79a4b985fe
Use left mouse as alternative default binding for catch dash
...
This mirrors stable. Although the way stable does this is pretty dodgy,
see:
https://github.com/peppy/osu-stable-reference/blob/master/osu!/GameModes/Play/Rulesets/Fruits/RulesetFruits.cs#L274-L275
2023-10-17 09:31:29 +02:00
Dean Herbert
3849b11644
Fix "Hard Rock" mod affecting CS/AR in osu!mania
...
Closes https://github.com/ppy/osu/issues/25090 .
Not sure if there are other exceptions we should account for here.
2023-10-12 19:48:47 +09:00
Salman Ahmed
6073f3e756
Refactor catch playfield size adjustment logic w.r.t. catcher position
2023-10-10 02:42:37 +03:00
Salman Ahmed
b2987caf7c
Adjust the catch playfield's position to match 1:1 with stable
2023-10-10 02:17:43 +03:00
Salman Ahmed
fed0deac02
Add brief explaination of BASE_SIZE
2023-10-10 01:26:59 +03:00
Salman Ahmed
fc63ee43be
Fix legacy catcher sprites getting shrunk
2023-10-10 01:26:59 +03:00
Salman Ahmed
0fb7895a52
Adjust catcher origin position to match 1:1 with stable
...
Change catcher origin position logic to 1:1 match stable on legacy skin
2023-10-10 01:26:59 +03:00
Bartłomiej Dach
71c4b138fb
Merge branch 'master' into fix-legacy-score-multipliers-2
2023-10-09 10:53:14 +02:00
Bartłomiej Dach
0ae4a0f11f
Adjust gameplay element maximum size limits for backwards compatibility
...
The new limits were chosen by sampling across over 4000 skins. The
methodology for doing so is described in the following gist:
https://gist.github.com/bdach/6228ba41d128b23d1f89142f404108a3
2023-10-05 20:37:10 +02:00
Dan Balasescu
bbe9d95b3d
Merge branch 'master' into catch-hyperdash-stable-sort
2023-10-04 20:38:08 +09:00
Dan Balasescu
da2a4681d9
Add method to retrieve legacy score multiplier
2023-10-02 16:52:01 +09:00
Dean Herbert
d7119674e8
Update comments to better explain what LastTick
is doing
2023-09-29 14:40:44 +09:00
Dean Herbert
81485c548c
Move LegacyLastTickOffset
specification to generation code and stop passing everywhere
2023-09-29 14:32:29 +09:00
Dean Herbert
9d8c3f0f5c
Merge pull request #24779 from smoogipoo/split-legacy-scoring-attribs
...
Split legacy scoring attribs into its own table
2023-09-26 22:35:38 +09:00
Dean Herbert
990c54519b
Merge branch 'master' into limit-gameplay-sprite-dimensions
2023-09-26 16:40:32 +09:00
Dean Herbert
0dcf7a2fa9
Merge branch 'master' into split-legacy-scoring-attribs
2023-09-26 15:52:27 +09:00
Salman Ahmed
c4fc4199d1
Use correct maximum size for droplets
2023-09-21 19:02:31 +03:00
Bartłomiej Dach
f2791d4f3e
Move comment a bit to fix formatting
...
Would otherwise trigger IDE0055, but that isn't resolveable without
an inspection cycle with resharper, so just move in a more sane place.
2023-09-20 12:22:05 +02:00
Dean Herbert
41a8239e49
Remvoe null default for mods which can't be null
2023-09-20 15:27:50 +09:00
Dean Herbert
c5397bdbb3
Merge branch 'master' into mania-edit-disable-sv
2023-09-20 14:23:07 +09:00
Dean Herbert
8e16b1d507
Simplify some maximum size specs
2023-09-20 12:48:15 +09:00
Dan Balasescu
4e1800860e
Merge branch 'master' into catch-hyperdash-stable-sort
2023-09-19 10:10:57 +09:00
Salman Ahmed
291a91be66
Change extension from retrieval to post-processing instead
2023-09-19 03:40:30 +03:00
Salman Ahmed
57dc76b345
Revert "Update GetTexture
signature rather than creating new overload"
...
This reverts commit 96f12cfbaa
.
2023-09-19 03:21:19 +03:00
Givikap120
1a70110a4e
Added BeatmapAttributesDisplay support
2023-09-12 16:44:44 +03:00
Givikap120
c61212c523
Merge pull request #1 from Givikap120/master
...
add display to calibrate
2023-09-12 13:02:19 +03:00
Dan Balasescu
2334be1987
Split legacy scoring attributes into a separate object
2023-09-07 21:10:38 +09:00
Dean Herbert
1a37543d28
Rename SliderVelocity
to SliderVelocityMultiplier
to distinguish from Velocity
2023-09-06 19:01:08 +09:00
Dean Herbert
96f12cfbaa
Update GetTexture
signature rather than creating new overload
2023-09-05 18:01:19 +09:00
Salman Ahmed
f182f571cb
Add limit to catch palpable object elements
2023-09-03 02:22:58 +03:00
Dean Herbert
37c2b330a2
Move toggle implementation to work on all scrolling rulesets automatically
2023-09-01 19:53:10 +09:00
Givikap120
290f8db341
fixed stated problems
...
removed functions from `Ruleset.cs` and added a `GetEffectiveDifficulty()` instead
2023-08-26 02:13:14 +03:00
Givikap120
17b9b1649a
Fixed "works only for std" problem
...
1) Now it use AR/OD calculation from Ruleset class
2) Implemented needed functions in each of default rulesets
2023-08-25 00:58:26 +03:00
Dan Balasescu
a2fd7707a1
Allow toggling SVs in the editor
2023-08-18 18:55:24 +09:00
OliBomby
cc4e11a5ac
Ensure populated node samples so new objects have unique node sample lists
2023-08-16 20:48:52 +02:00
Dean Herbert
2073810e95
Add performance breakdown chart for osu!catch
2023-07-13 18:48:24 +09:00
Dean Herbert
d12845d7b1
Remove no-longer-necessary ReceivePositionalInputAt
overide in CatchPlacementBlueprint
2023-07-12 17:39:54 +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
9dae806734
Use IsRewinding
in a few more places
2023-07-08 13:32:24 +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