1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-17 02:12:56 +08:00
Commit Graph

337 Commits

Author SHA1 Message Date
Justus Franklin Tumacder
c4d28110d6 Add visual tests for timing based note coloring 2021-04-27 19:02:57 +08:00
Naxess
a3570e18dd Add concurrent objects check
Here we use `IHasColumn` to support rulesets with columns, and so I moved that interface out into `osu.Game` from `osu.Game.Rulesets.Mania`.

We also use the same threshold as the unsnap check to ensure that no problems slip through. Specifically where an object is simultaneously not concurrent and not unsnapped but still on the same tick.
2021-04-26 20:17:18 +02:00
Justus Franklin Tumacder
559d403abe Rename ColourCodedNotes to TimingBasedNoteColouring 2021-04-26 19:05:12 +08:00
Justus Franklin Tumacder
58ebec4803 Move BindValueChanged hooks to LoadComplete() 2021-04-26 19:00:40 +08:00
Bartłomiej Dach
e14255f395 Rename {Snap -> BeatDivisor}Finder 2021-04-25 17:44:26 +02:00
Bartłomiej Dach
afb67726f0 Reduce casting 2021-04-25 17:41:23 +02:00
Bartłomiej Dach
f9e228d6bf Use null-permitting BDL to reduce number of fields 2021-04-25 17:40:23 +02:00
Justus Franklin Tumacder
211bff6a8f Fix cake errors 2021-04-25 09:21:25 +08:00
Justus Franklin Tumacder
8b9d2a6cff Remove caching for ConfigColourCodedNotes 2021-04-25 08:32:49 +08:00
Justus Franklin Tumacder
d3db19c3ce Simplify DrawableNote 2021-04-25 08:11:44 +08:00
Justus Franklin Tumacder
e0ca44c908 Move SnapFinder from mania ruleset to osu.Game 2021-04-25 07:35:53 +08:00
Justus Franklin Tumacder
bedabc1ddf Fix cake errors 2021-04-24 22:12:07 +08:00
Justus Franklin Tumacder
8b01082cbb Fix visual tests missing dependency for ColourCodedNotes 2021-04-24 21:28:48 +08:00
Justus Franklin Tumacder
3103fd8343 Move snapping logic into SnapFinder 2021-04-24 21:28:35 +08:00
Justus Franklin Tumacder
a8b401522b Remove ManiaColourCode in favor for boolean 2021-04-24 20:39:22 +08:00
Justus Franklin Tumacder
d6d81fb8e5 Move color snap logic from Note to DrawableNote 2021-04-24 19:53:21 +08:00
Justus Franklin Tumacder
f9905ebe68 Remove beatmap argument in Note 2021-04-24 19:37:10 +08:00
Justus Franklin Tumacder
7e3a611f95 Add snap color option for osu!mania 2021-04-24 16:23:52 +08:00
smoogipoo
4148d473e3 Fix hold note crashing with 0 length 2021-04-22 19:51:33 +09:00
smoogipoo
43e48406ca Miss all ticks when hold note is hit 2021-03-31 12:21:14 +09:00
Bartłomiej Dach
9a330c4c56 Fix mania hold note heads hiding when frozen
This was an insidious regression from a3dc1d5. Prior to that commit,
`DrawableHoldNoteHead` had `UpdateStateTransforms()` overridden, to set
the hold note head's lifetime. When that method was split into
`UpdateInitialStateTransforms()` and `UpdateHitStateTransforms()`, the
lifetime set was moved to the former.

Unfortunately, that override served two purposes: both to set the
lifetime, and to suppress hit animations which would normally be added
by the base `DrawableManiaHitObject`. That fact being missed led to
`UpdateHitStateTransforms()` hiding the hold note head immediately on
hit and with a slight delay on miss.

To resolve, explicitly override `UpdateHitStateTransforms()` and
suppress the base call, with an explanatory comment.
2021-03-21 18:46:41 +01:00
ekrctb
e3c035fe9c Adjust namespace 2020-12-07 12:32:52 +09:00
ekrctb
40da799103 Move piece files of Mania ruleset 2020-12-07 12:31:56 +09:00
smoogipoo
0414e5c550 Add MaximumJudgementOffset to DrawableHitObject, use in more places 2020-11-26 01:12:42 +09:00
Dean Herbert
49b8331ccd
Merge pull request #10877 from smoogipoo/fix-mania-judgement-displays
Fix hold note judgements displaying incorrectly
2020-11-18 19:00:14 +09:00
smoogipoo
77942af3a6 Fix hold note judgements displaying incorrectly 2020-11-17 13:37:58 +09:00
Bartłomiej Dach
b62bf5798d Store time of hold note break 2020-11-13 21:14:34 +01:00
Bartłomiej Dach
7a89e58483 Disable pressed/released action logic when rewinding 2020-11-13 20:49:06 +01:00
Dean Herbert
a3dc1d5730 Update existing implementations 2020-11-04 17:14:23 +09:00
Bartłomiej Dach
1f0620ffd4 Replace assignment references to HitResult.Miss with Judgement.MinResult 2020-10-02 23:31:24 +02:00
Bartłomiej Dach
2b1ef16f89 Replace comparison references to HitResult.Miss with IsHit 2020-10-02 23:31:24 +02:00
smoogipoo
e789e06c86 Don't display hold note tick judgements 2020-09-29 16:33:38 +09:00
smoogipoo
b1877b649b Use new hit results in mania 2020-09-29 16:33:38 +09:00
Bartłomiej Dach
d419fe4dbf Remove note shaking mention that doesn't apply in mania 2020-08-31 12:03:05 +02:00
smoogipoo
acbeb5406f Add/improve xmldoc 2020-08-31 13:33:41 +09:00
smoogipoo
aa151e4cd7 Merge branch 'master' into mania-notelock 2020-08-31 13:31:41 +09:00
smoogipoo
deb172bb6c Implement basic mania hit order policy 2020-08-27 20:24:21 +09:00
smoogipoo
1db836e9e0 Merge branch 'master' into hold-note-lighting 2020-08-26 20:22:07 +09:00
smoogipoo
9372c6eef6 Implement hold note lighting 2020-08-26 20:21:56 +09:00
smoogipoo
b3338347b7 Remove fade on successful hits 2020-08-21 23:56:27 +09:00
smoogipoo
8632c3adf0 Fix hold notes bouncing with SV changes 2020-08-21 23:11:15 +09:00
Dan Balasescu
42ee9b75df
Apply suggestions from code review
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-08-21 19:38:59 +09:00
smoogipoo
aead13628b Rework freezing to use masking 2020-08-21 17:52:42 +09:00
smoogipoo
37cf7999b1 Merge branch 'master' into hold-note-freeze 2020-08-21 14:39:25 +09:00
Dean Herbert
74f8e61381
Merge branch 'master' into mania-body-recycling 2020-08-19 20:40:15 +09:00
smoogipoo
1d9d885d27 Mask the tail as the body gets shorter 2020-08-19 01:40:26 +09:00
smoogipoo
4d4d9b7356 Add rewinding support 2020-08-19 01:37:31 +09:00
smoogipoo
99315a4aa7 Fix incorrect anchors for up-scroll 2020-08-19 00:05:36 +09:00
smoogipoo
988ad378a7 Fix body size + freeze head piece 2020-08-19 00:05:05 +09:00
smoogipoo
385f7cf85d Implement mania hold note body recycling 2020-08-18 17:56:48 +09:00
smoogipoo
583760100a Implement mania invert mod 2020-08-18 01:40:55 +09:00
smoogipoo
548ccc1a50 Initial implementation of hold note freezing 2020-08-18 00:29:00 +09:00
smoogipoo
f044c06d08 Fix hold notes accepting presses during release lenience 2020-07-20 22:26:58 +09:00
Dean Herbert
cbd563e80b Rename to IHasDuration 2020-05-27 12:38:39 +09:00
smoogipoo
4719fcc291 Actually use the cancellation token 2020-05-15 18:17:39 +09:00
smoogipoo
98125102a7 Add cancellation token support to CreateNestedHitObjects() 2020-05-15 18:07:41 +09:00
smoogipoo
330521a2ae Fix lifetime override not working 2020-04-28 15:34:10 +09:00
Dean Herbert
59bd2b3035
Merge pull request #8823 from smoogipoo/all-ruleset-encoders
Implement legacy beatmap encoding for all rulesets
2020-04-24 17:49:34 +09:00
smoogipoo
4f0b5a34d3 Fix hold note placement body sized incorrectly 2020-04-23 12:53:23 +09:00
smoogipoo
6da0872ae5 Use the last node sample for the tail note 2020-04-22 09:06:04 +09:00
smoogipoo
1f962f5c56 Reword comment 2020-04-22 09:06:04 +09:00
smoogipoo
cc0c82aaeb Implement IHasXPosition on ManiaHitObject 2020-04-22 09:06:04 +09:00
smoogipoo
d957614fc9 Cleanup handling of mania samples 2020-04-22 09:06:04 +09:00
Dean Herbert
c51bad0e35 Cache ManiaPlayfield instead 2020-04-13 13:42:21 +09:00
Dean Herbert
cdff6060d3 Remove recursive hierarchy traversal for mania sample balance 2020-04-13 13:01:27 +09:00
Dean Herbert
65b96079a0 Move dampening to base implementation and change range to 0..1 2020-04-13 13:01:02 +09:00
Fire937
f274ec297c Add positional sound support for all rulesets
The SamplePlaybackBalance is calculated in a way that the balance
remains between -0.4 and 0.4.
Positional sound is not supported in osu!taiko.
2020-04-12 01:33:25 +02:00
smoogipoo
1f797207f7 Rework lookups to not require total playfield columns 2020-04-03 12:31:05 +09:00
smoogipoo
3cd353d387 Fix possible nullrefs 2020-03-31 16:57:58 +09:00
smoogipoo
1952fcc0ce Implement mania hold note skinning 2020-03-31 16:42:35 +09:00
smoogipoo
11430d616e Allow null hitobject 2020-03-31 16:00:08 +09:00
smoogipoo
9a37a328b6 Add component overrides for hold note head/tail 2020-03-31 15:39:00 +09:00
smoogipoo
c4f76ffdaf Implement mania note skinning 2020-03-31 15:29:25 +09:00
smoogipoo
da89798765 Merge remote-tracking branch 'origin/master' into layout-rework 2020-02-26 15:06:40 +09:00
smoogipoo
6c28fd21c7 osu-side changes 2020-02-24 20:52:15 +09:00
Dean Herbert
0e29d3c4a2 Correctly expire bar lines in osu!taiko and osu!mania 2020-02-23 13:50:05 +09:00
Dean Herbert
ffc7eaa3f2 Fix hitobjects with unknown lifetimes by enforcing non-null judgement
We've seen multiple cases where DrawableHitObject are stuck in the lifetime management container
due to not implementing a judgement (meaning they are never "hit" or "missed"). To avoid this going forward
CreateJudgement() must be implemented and return a non-null judgement.

This fixes BananaShower and JuiceStreams in osu!catch.

This also makes HitObject abstract and cleans up convert HitObject implementations.
2020-02-23 13:49:06 +09:00
Dean Herbert
cd6902a312 Make EndTime and RepeatCount settable 2020-02-05 17:52:51 +09:00
smoogipoo
7b2f58eb30 Apply OnRelease method signature refactorings 2020-01-22 13:22:34 +09:00
mcendu
a897f497a2
remove LaneGlowPiece and GlowPiece 2020-01-04 18:35:37 +08:00
smoogipoo
63c96d5a83 Fix tail note not properly capping result 2019-12-23 18:49:08 +09:00
smoogipoo
d6fd1007c4 internal -> public 2019-12-23 18:48:14 +09:00
smoogipoo
7ac6f68de8 Rewrite hold note input handling 2019-12-23 17:48:57 +09:00
smoogipoo
42853b5af6 Separate head/tail notes from hold note class 2019-12-23 17:48:57 +09:00
smoogipoo
bc41eb176e Clean up head/tail setting in various DHOs 2019-10-17 14:02:23 +09:00
smoogipoo
f429a8f7c2 Add back/obsolete old AddNested() method 2019-10-17 14:02:08 +09:00
smoogipoo
d8f3678c3c Rename parameter 2019-10-17 12:53:54 +09:00
smoogipoo
8a284bacba Make mania use the new nested hitobject structure 2019-10-17 12:37:20 +09:00
Dean Herbert
51bf600ea7 Use empty hitwindows instead of null 2019-10-09 19:08:31 +09:00
Bartłomiej Dach
9323df26a1 Decouple bar line hitobjects from generator
Introduce an IBarLine interface, which together with generic constraints
helps decouple BarLineGenerator from the actual hitobject types it
creates. Thanks to this, all rulesets that want bar lines can provide
an implementation of IBarLine that also derives from the base hitobject
class.

This allows DrawableBarLines in taiko and mania to be migrated back to
DrawableTaikoHitObject and DrawableManiaHitObject base classes
respectively. This in turn resolves #6215 without code duplication,
since the missing anchoring application is now done in mania's
DrawableBarLine through deriving from DrawableManiaHitObject.
2019-09-25 00:36:27 +02:00
Vperus
2d99d41a6d Remove unused CORNER_RADIUS 2019-09-20 18:17:35 +03:00
Dean Herbert
9fc60aeefc Merge branch 'master' into reset-dho-lifetimes 2019-09-12 19:29:14 +09:00
Dean Herbert
f21e47d6d2 Move expire to DrawableHitObject 2019-09-12 19:29:08 +09:00
Dan Balasescu
f9b64446e9
Merge branch 'master' into mania-note-sizing 2019-09-12 14:20:28 +09:00
Dean Herbert
06618b6d02 Fix osu!mania minor barline alpha not being respected 2019-09-11 18:45:47 +09:00
Dean Herbert
44d90a4e86 Increase note height 2019-09-11 18:16:14 +09:00
Dean Herbert
da6ba20fc8 Reduce glow on notes 2019-09-11 18:15:03 +09:00
Dean Herbert
af3bb5a2cd Centralise and share bar line generation code between rulesets 2019-09-10 13:30:54 +09:00
Dean Herbert
f925e781a9 Refactor HitWindows for legibility 2019-09-06 15:24:14 +09:00
smoogipoo
8302658186 Fix other potential nullref cases that rider missed 2019-09-02 18:31:33 +09:00