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

367 Commits

Author SHA1 Message Date
Dean Herbert
9840a07eaf
Fix osu!mania hold notes playing a sound at their tail in the editor
Closes #29584.
2024-08-27 14:06:02 +09:00
Nathan Du
00ed7a7a2f Fix hold note light lingering with No Release
Turns out endHold() is not called in the Tail.IsHit branch of the
hold notes' CheckForResult method.
2024-07-18 16:08:30 +08:00
Nathan Du
1eb10e029c Rewrite no release mod
Per the request of spaceman_atlas, the No Release mod is rewritten to
avoid modifications to DrawableHoldNoteTail. The approach is based
on that of the Strict Tracking mod for the osu!(standard) ruleset,
injecting the mod behavior by replacing the normal hold note with
the mod's variant. The variant inherits most bevaior from the normal
hold note, but when creating nested hitobjects, it creates its own
hold note tail variant instead, which in turn is used to instantiate
the mod's variant of DrawableHoldNoteTail with a new behavior.

The time a judgement is awarded is changed from the end of its
Perfect window to the time of the tail itself.
2024-07-01 20:29:30 +08:00
Nathan Du
960d552dc1 Initial implemention of the No Release mod
This commit adds a new osu!mania mod No Release that relaxes tail
judgements. The current implementation automatically awards Perfect
(or Meh if the hold note is broken midway) for a hold note tail at
the end of its Perfect window, as long as it is held by then.

Tests are pending for the next commit.
2024-06-28 22:21:08 +08:00
Bartłomiej Dach
fb80d76b4a
Apply further changes to remove remaining weirdness 2024-02-05 13:37:38 +01:00
Bartłomiej Dach
efe6bb25b1
Refactor result application around again to remove requirement for fields
Co-authored-by: Dean Herbert <pe@ppy.sh>
2024-02-05 13:21:01 +01:00
Chandler Stowell
93bd3ce5ae update DrawableHitCircle.ApplyResult to pass this to its callback 2024-01-25 11:25:41 -05:00
Chandler Stowell
d2775680e6 use stack to pass action state when applying hit results
this removes closure allocations
2024-01-24 13:13:45 -05:00
Dean Herbert
e0c27510f2
Remove remaining usage of NotePerfectBonus 2023-12-20 19:47:36 +09:00
Dan Balasescu
104fbbde94
Change mania scoring to match ScoreV2 2023-12-20 18:35:45 +09:00
Bartłomiej Dach
b321d556b6
Enforce minimum gameplay sample volume of 5% 2023-10-20 15:50:13 +02:00
Dean Herbert
4f1546c474
Rename PerfectBonusNote to NotePerfectBonus 2023-10-16 15:14:28 +09:00
Dean Herbert
1a957364ae
Add empty hit windows on PefectBonusNote 2023-10-16 14:58:49 +09:00
Dean Herbert
43f619f92a
Add DisplayResult flag and remove unnecessary AlwaysPresent 2023-10-16 14:57:58 +09:00
Dean Herbert
14fedffcc1
Fix MissForcefully not considering the bonus object 2023-10-16 14:53:36 +09:00
Dean Herbert
e85c039722
Adjust method flow to hopefully be more legible 2023-10-16 13:31:14 +09:00
Dean Herbert
ddbda69751
Remove nullability of bonusNote 2023-10-16 13:14:58 +09:00
Dean Herbert
125f28219d
Fix hodl tail notes not correctly handling nested bonus judgement 2023-10-13 17:36:19 +09:00
Dean Herbert
94b64044e0
Add nested bonus judgement to DrawableNote for perfect bonus score 2023-10-13 17:01:48 +09:00
Bartłomiej Dach
3f29f27cd4
Assign empty hit windows to HoldNoteBody
It's not a timed object, so following precedent, it should have empty
hitwindows.

This is not actually just aesthetics; several components check whether a
hitobject has empty hitwindows to determine whether to include it on
various HUD displays and results screen components where timed objects
are explicitly involved.
2023-10-11 19:40:55 +02:00
Dean Herbert
8dc9453d8d
Apply some xmldoc and structural changes 2023-10-10 16:59:25 +09:00
Dan Balasescu
f0da7f016d
Actually use the judgement 2023-10-09 11:49:54 +09:00
Dan Balasescu
9415fe4446
Add mania hold note body + combo break judgement 2023-10-09 09:47:00 +09:00
Dan Balasescu
c60f13dd92 Remove mania hold note ticks 2023-08-31 17:30:27 +09:00
Dan Balasescu
6a7b0786c9 Add barline pooling for mania 2023-08-15 13:33:49 +09: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
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Dean Herbert
3b1f92d8b8 Fix fix logic causing further regression on release 2023-06-17 01:37:09 +09:00
Dean Herbert
b5de109cb3 Fix osu!mania hold notes sometimes looking incorrect after rewind 2023-06-16 14:54:19 +09:00
Bartłomiej Dach
f069f982d4
Merge branch 'master' into mania-barlines-behind-notes 2023-06-07 21:43:39 +02:00
Dean Herbert
d57c2ab7e4 Fix osu!mania barlines showing in front of notes
Closes #23412.
2023-06-07 14:23:23 +09:00
Salman Ahmed
62cb6a98ca Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
Dean Herbert
98f35f7481 Fix osu!mania hold notes snapping to judgement area too early on early hits
Closes https://github.com/ppy/osu/issues/23515.
2023-06-01 16:06:35 +09:00
Bartłomiej Dach
1ff1730948
Remove no-longer-correct remark 2023-05-08 22:35:41 +02:00
Bartłomiej Dach
3f45948664
Merge branch 'master' into fix-mania-head-note-animation 2023-05-08 22:23:01 +02:00
Dean Herbert
27c10cbdb7 Remove clamping of sizingContainer in DrawableHoldNote to fix head note alignment 2023-05-08 18:14:07 +09:00
Dean Herbert
814f0b3fed Add back early return in OnReleased for safety 2023-05-08 15:43:11 +09:00
Dean Herbert
6a59ded1ba Move logic to Update instead 2023-05-03 15:18:37 +09:00
Dean Herbert
4013cdcfa8 Merge branch 'master' into mania-fix-hold-note-rewind 2023-05-03 15:04:59 +09:00
OliBomby
d97daee96b remove all non-test usage of SampleControlPoint 2023-04-26 13:55:39 +02:00
Dean Herbert
5aebbac6c5 Fix osu!mania hold note animations not correctly re-applying after rewind
There's early exit logic in `OnPressed`/`OnReleased` for the sake of
keeping order correct, but this doesn't account for the fact that
`DrawableHitObject` resets all animations when the hit state changes.

A bit of an ugly workaround, but seems to work as expected.
2023-03-14 18:15:19 +09:00
Dean Herbert
300d81c46b Add hitting layer to fix hit lighting not being applied to tail piece
Taken from https://github.com/ppy/osu/pull/22820#issuecomment-1462626898.
2023-03-14 17:29:19 +09:00
Dean Herbert
ed3ff62e4f Add note about why bodyPiece sizing is done as it is
I think we're going to have to change this as it's quite limiting in
what you can do with osu!mania skin implementation, but for now I want
to leave a note as to why this is done, because each time I have to
trial and error check what breaks when adjusting it.
2023-03-09 20:26:49 +09:00
Dean Herbert
da8ab7143b
Merge branch 'master' into maximum-judgement-offset-in-hit-object 2023-02-15 14:48:15 +09:00
Dean Herbert
74ab036f3e Refactor SkinnableSound.Samples to be non-nullable 2023-01-27 19:32:30 +09:00
ekrctb
11e1b22bf5 Move MaximumJudgementOffset to HitObject
We want to access this property for computing lifetime
2023-01-19 21:23:55 +09:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dean Herbert
57723107dd Fix osu!mania hold notes occasionally getting in a visually incorrect hit state
To correctly end a mania hold note, `endHold()` needs to be called. This
was not happening in a very specific scenario:

- The hold note's head is not hit
- The user pressed the column's key within the hold note's tail's window,
  but does so to hit the next object (a note in proximity to the hold note's tail).
- The hit policy forces a miss on the hold note, but `endHold()` is not called
- `CheckForResult` is not called after this point due to `Judged` being `true`.

Closes #21311.
2022-11-22 16:15:34 +09:00
Dean Herbert
1aa0e40f2f Add "Component" prefix to lookup naming 2022-11-09 17:46:43 +09:00