smoogipoo
54ab256c8e
Instantiate a new path rather than setting properties on it
...
# Conflicts:
# osu.Game.Rulesets.Catch/Beatmaps/CatchBeatmapConverter.cs
# osu.Game.Rulesets.Catch/Objects/JuiceStream.cs
# osu.Game.Rulesets.Osu/Beatmaps/OsuBeatmapConverter.cs
# osu.Game/Rulesets/Objects/Legacy/Catch/ConvertHitObjectParser.cs
# osu.Game/Rulesets/Objects/Legacy/Mania/ConvertHitObjectParser.cs
# osu.Game/Rulesets/Objects/Legacy/Osu/ConvertHitObjectParser.cs
# osu.Game/Rulesets/Objects/Legacy/Taiko/ConvertHitObjectParser.cs
# osu.Game/Rulesets/Objects/SliderPath.cs
2018-11-12 13:50:19 +09:00
smoogipoo
cf4dad0fe8
Fix hitobjects not updating IsMaskedAway after being judged
2018-11-07 15:42:40 +09:00
smoogipoo
ace1dce281
Merge remote-tracking branch 'origin/master' into fix-slider-samples
...
# Conflicts:
# osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapDecoderTest.cs
2018-11-05 18:10:22 +09:00
smoogipoo
92d570342c
Fix sample additions not falling back to non-addition bank
2018-11-05 17:35:24 +09:00
smoogipoo
a4caaf56ef
Merge remote-tracking branch 'origin/master' into fix-slider-samples
...
# Conflicts:
# osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapDecoderTest.cs
# osu.Game/Rulesets/Objects/Legacy/Catch/ConvertHitObjectParser.cs
# osu.Game/Rulesets/Objects/Legacy/ConvertHitObjectParser.cs
# osu.Game/Rulesets/Objects/Legacy/Mania/ConvertHitObjectParser.cs
# osu.Game/Rulesets/Objects/Legacy/Osu/ConvertHitObjectParser.cs
# osu.Game/Rulesets/Objects/Legacy/Taiko/ConvertHitObjectParser.cs
2018-11-05 16:38:28 +09:00
smoogipoo
1fffa48aa0
Sort nested hitobjects post-creation
2018-11-05 12:15:45 +09:00
Dean Herbert
e6ee3dc73e
Use framework helper functions for path approximation
2018-11-02 19:26:29 +09:00
smoogipoo
1aae123ff5
Make approximators share an interface
2018-11-01 19:16:44 +09:00
Dean Herbert
c1304eca1b
Merge remote-tracking branch 'upstream/master' into slider-placement
2018-11-01 17:59:37 +09:00
Dean Herbert
bb2f8deb18
ControlPoint -> PathControlPoint
...
Also Curve -> Path.
2018-11-01 03:56:51 +09:00
smoogipoo
08b16be3b8
Merge branch 'slider-controlpoint-masks' into slider-placement
...
# Conflicts:
# osu.Game.Rulesets.Osu/Edit/Masks/SliderMasks/Components/SliderBodyPiece.cs
# osu.Game.Rulesets.Osu/Objects/Drawables/DrawableSlider.cs
2018-10-29 15:55:38 +09:00
smoogipoo
acd703c27b
Make sliders respond to control point changes
2018-10-29 15:36:43 +09:00
smoogipoo
a9f1484e8b
Fix some post-rebase issues
2018-10-29 15:26:28 +09:00
smoogipoo
8b36d9b482
Remove SliderCurve.Offset (unused)
2018-10-29 15:26:07 +09:00
smoogipoo
b3e105ba93
Make curve approximators implement common interface
2018-10-29 15:26:07 +09:00
smoogipoo
47be95ce0b
Fix slider nodes using the wrong samples
2018-10-16 17:10:24 +09:00
smoogipoo
060cc24dba
Cleanup slidercurve calculation
2018-10-16 11:11:04 +09:00
smoogipoo
e130204a3b
Merge remote-tracking branch 'origin/master' into optimise-diffcalc
2018-10-12 12:26:15 +09:00
Dean Herbert
5d26c1b771
Merge pull request #3574 from smoogipoo/hitobject-perf-improvements
...
Various performance improvements around hitobjects
2018-10-11 22:16:48 +09:00
smoogipoo
d282d16e1c
Use SortedList again
2018-10-11 20:49:12 +09:00
smoogipoo
83fd251c7b
Pass sub-controlpoints as span slices
2018-10-11 17:44:25 +09:00
Dean Herbert
841b2e8692
Merge branch 'master' into consistent-terminology-format
2018-10-10 19:19:36 +09:00
smoogipoo
f53bb81723
Remove unnecessary lambda allocation
2018-10-10 14:58:54 +09:00
smoogipoo
417ebaeb85
Reduce hitobject size by removing lazy
2018-10-10 13:03:18 +09:00
smoogipoo
1125075b37
Use list with post-sort for nested hitobjects
2018-10-10 13:02:27 +09:00
smoogipoo
a8f156584b
Update framework with positional/non-positional changes
2018-09-26 14:01:15 +09:00
Joehu
f99eff1192
Use consistent terminology format
2018-09-15 07:30:11 -07:00
smoogipoo
356a60b561
Fix hitobjects in scrolling rulesets getting masked away
2018-09-12 15:14:51 +09:00
smoogipoo
551581e5cd
Skip invalid hitobject types, log error instead
2018-08-22 15:59:58 +09:00
smoogipoo
16d30f6756
Add explanatory comments
2018-08-17 13:31:12 +09:00
smoogipoo
eb6f1ae72c
Fix spinners providing one extra combo
2018-08-17 09:16:28 +09:00
smoogipoo
4c3e551295
Fix first object not receiving new combo
...
Note: If a normal catch fruit is the first object, it does not receive a new combo...
2018-08-15 11:48:28 +09:00
smoogipoo
31f324945e
Implement combo offsets
2018-08-15 11:47:31 +09:00
smoogipoo
da3e2cfee2
Catch/osu! spinners should have combo
2018-08-15 11:13:23 +09:00
smoogipoo
4f0305ffeb
Taiko convert hitobjects should not have combo
2018-08-15 10:58:59 +09:00
smoogipoo
83f75ac896
Mania convert hitobjects should not have combo
2018-08-15 10:57:11 +09:00
smoogipoo
8faf12579a
Fix field not being set correctly
2018-08-15 10:53:25 +09:00
smoogipoo
d2709613bc
Add combo offset to ConvertHitObjectParser
2018-08-15 10:49:45 +09:00
smoogipoo
ce77473910
Simplify usage of ConvertHitObjectParser
2018-08-15 10:24:56 +09:00
smoogipoo
e04b2f4fa9
Fix hitobject results not rewinding
2018-08-14 18:31:32 +09:00
smoogipoo
2a54b5b78d
ResetResult -> RevertResult
2018-08-06 12:29:22 +09:00
smoogipoo
3a7488767c
Make HitObject not store the judgement
2018-08-06 11:50:18 +09:00
smoogipoo
0d6a8a2bf5
More xmldocs
2018-08-06 11:31:54 +09:00
smoogipoo
741ec0021e
Rename more judgement-related methods to "result"
2018-08-06 11:31:46 +09:00
smoogipoo
ab642b563f
CreateJudgementResult -> CreateResult
2018-08-06 11:07:41 +09:00
smoogipoo
754f3c8621
Move result creation to load(), add exceptions
2018-08-06 11:07:05 +09:00
smoogipoo
b35817c877
More xmldocs to hitobject/drawablehitobject
2018-08-06 10:55:38 +09:00
smoogipoo
5fd4ed2f4e
Rename judgement-related methods/events + commenting
2018-08-06 10:55:25 +09:00
smoogipoo
482526135f
Make IsHit not consider nested hitobjects
2018-08-03 16:07:20 +09:00
smoogipoo
2a4994e5ce
Make hitobjects only have one judgement + result
2018-08-03 15:38:48 +09:00
smoogipoo
35b4ab5456
Introduce the concept of a "MainResult"
2018-08-02 21:07:40 +09:00
smoogipoo
3619290c34
Split out judgement definition from judgement result
2018-08-02 20:35:54 +09:00
smoogipoo
d51d0e8547
Initial structure for new hitobject judgement system
2018-08-01 21:45:59 +09:00
Dean Herbert
da8fc0ee5d
ToLower -> ToLowerInvariant
2018-07-25 07:37:05 +02:00
Dean Herbert
d561f54282
Merge branch 'master' into per-object-css
2018-07-23 03:01:17 +09:00
smoogipoo
c087a73f40
Implement per-hitobject custom sample banks
2018-07-20 15:12:44 +09:00
David V
9eb69a1e76
Restructure + corrects converting to support all systems
2018-07-19 17:47:55 +02:00
David V
4e72794101
Converts float to int.
2018-07-19 15:55:38 +02:00
Dean Herbert
dbc538abbe
Use Enum.HasFlag
...
With .NET core 2.0+ this is as efficient as the ugly code we've been using.
2018-07-16 16:18:46 +09:00
Dean Herbert
4f894969df
Merge branch 'master' into hitobject-samples
2018-07-05 19:43:19 +09:00
Dean Herbert
d11ba2df0e
Merge remote-tracking branch 'upstream/master' into smoogipoo-legacy-custom-banks
2018-07-05 14:53:31 +09:00
smoogipoo
45a4187923
Tidy up lookups to NestedHitObjects
2018-07-02 16:10:56 +09:00
smoogipoo
7f832e34c0
Reorder sample bank property setters
2018-07-02 14:29:18 +09:00
smoogipoo
73fac2115a
Implement hitobject sample files
2018-07-02 14:20:35 +09:00
smoogipoo
9f85c55915
Merge remote-tracking branch 'origin/master' into legacy-custom-banks
2018-07-02 12:34:51 +09:00
Dean Herbert
70a119dde7
Remove unused/duplicate interface
2018-06-29 12:20:53 +09:00
smoogipoo
781095b96b
Encapsulate the method to apply SampleControlPoints to SampleInfos
2018-06-28 18:29:07 +09:00
smoogipoo
80501de4b9
Add legacy slider offsets
2018-06-27 12:09:21 +09:00
Dean Herbert
8e784d9104
Merge branch 'master' into fix-conversion-hitwindows
2018-05-18 11:59:16 +09:00
smoogipoo
43cdbec0a3
Fix hold note hitwindow lenience
2018-05-17 13:59:04 +09:00
smoogipoo
f67d263596
Move ruleset-specific hitwindows to post-converted hitobjects
2018-05-17 13:35:15 +09:00
smoogipoo
c67f372560
Don't create nested hitobjects unless absolutely required
2018-05-17 12:29:33 +09:00
Dean Herbert
6bf1092c7d
Merge branch 'master' into enable-distance-overflow
2018-05-15 18:56:51 +09:00
smoogipoo
f5068804d5
Re-enable slider distance overflow
...
Fixes #2467 .
2018-05-14 15:14:29 +09:00
smoogipoo
97a523584d
Make HitWindows not return null by default
2018-05-11 15:52:51 +09:00
smoogipoo
bfad101d17
Standardise naming
2018-05-11 15:42:34 +09:00
smoogipoo
5245d2d426
Add info about when CreateHitWindows is invoked
2018-05-11 15:36:53 +09:00
smoogipoo
8563291796
Add convert mania HitWindows
2018-05-11 15:32:00 +09:00
smoogipoo
c052ee71c1
Add convert osu HitWindows
2018-05-11 15:31:36 +09:00
smoogipoo
9c65d347ba
Add convert taiko HitWindows
2018-05-11 15:31:12 +09:00
smoogipoo
8216bc311a
Restructure HitWindows to allow outside setting
2018-05-11 15:30:26 +09:00
Adonais Romero González
06c6f55995
Apply offset to end times on legacy converter
2018-04-30 00:43:32 -07:00
Dean Herbert
32a74f95a5
Normalize all the line endings
2018-04-13 18:26:38 +09:00
smoogipoo
6d4f94756e
Rewrite the way drag + click selections happen
...
The general idea here is that we need the masks to handle mouse down events, as they need to handle the drag (mousedown -> drag immediately).
I've rewritten the editor selections to use events, as there are some 3 different components that handle/trigger selections in different ways.
1. All selections/deselections now propagate through `HitObjectMask.Select()`/`HitObjectMask.Deselect()`.
2. Components that react to changes in the selection bind to the masks' `Selected`/`Deselected` events, and track them/change their states locally.
3. Masks provide a `SingleSelectionRequested` event which is invoked on the mouse-down event. Various components bind to this event to perform state changes locally in this scenario.
4. `DragBox` now handles all drag input locally. It triggers `Select`/`Deselect` on the masks it needs to.
5. `SelectionBox` handles the display of itself locally.
6. `SelectionBox` handles movement of groups of masks locally.
7. `HitObjectMasks` handles movement of itself locally.
2018-03-29 22:07:23 +09:00
Dean Herbert
af65f2dd48
Move AccentColour changes local to rulesets which rely on it
2018-03-22 18:53:16 +09:00
Dean Herbert
366b7fca65
Remove GetColour method
2018-03-22 18:50:19 +09:00
Dean Herbert
c4fe6a04c5
Use string lookups for combo colours
2018-03-22 17:32:05 +09:00
Dan Balasescu
ab9505652b
Merge branch 'master' into skin--completion
2018-03-22 16:44:00 +09:00
Dean Herbert
78a8f60b39
IHasComboIndex -> IHasComboInformation
2018-03-22 12:35:17 +09:00
Dean Herbert
1a782a840c
Fix xmldoc
2018-03-22 12:34:29 +09:00
Dean Herbert
9ad4e9284a
Add skin source fallback chain
2018-03-20 16:40:11 +09:00
Dean Herbert
c38c26eacb
Move combo index processing to BeatmapProcessor
2018-03-20 15:57:43 +09:00
Dean Herbert
a42035f494
Make DrawableHitObject a CompositeDrawable
...
No reason for it to be a container.
2018-03-15 13:41:06 +09:00
Dean Herbert
217dd2ecdc
Initial push for better decoders
2018-03-09 21:24:15 +09:00
smoogipoo
2a9fb2c2c6
Make NestedHitObjects lazily-constructed
2018-03-05 21:40:26 +09:00
smoogipoo
8a15d4e677
Fix linear perfect-curves not being cased to CurveType.Linear
...
Fixes #2151 .
2018-03-02 18:21:40 +09:00
Dean Herbert
5b4fef0180
Add bare minimum sanity checking of beatmap input values to make broken maps load
...
Resolves ppy/osu#1988 .
2018-02-28 18:12:24 +09:00
Dean Herbert
9cbed461c4
Merge branch 'master' into sliderbody-rework
2018-02-26 15:00:18 +09:00
Dean Herbert
4a52df2dd4
Apply review
2018-02-24 23:07:02 +09:00
Dean Herbert
768e0a4e2a
Add SkinnableSound class
...
Tidy things up, move logic out of SampleInfo.
2018-02-24 22:47:14 +09:00
smoogipoo
066abfbdbc
Rename PositionAt -> CurvePositionAt to represent its new meaning
2018-02-24 02:43:36 +09:00
smoogipoo
8c90abe0dc
Make slider control points relative to start position
2018-02-23 20:59:27 +09:00
Dean Herbert
6ceabfe19e
Add basic hitsound skinning
2018-02-23 13:38:12 +09:00
smoogipoo
f012cce668
Rewrite some xmldocs to make methods easier to understand
2018-02-21 17:33:22 +09:00
smoogipoo
4699b5ad7c
Fix a few code styling issues
...
These are present in the netstandard branch (the rules aren't working there - probably using the wrong configuration).
2018-02-08 23:47:03 +09:00
smoogipoo
0511728fbe
Remove "keypress" from comment
2018-02-08 17:38:46 +09:00
smoogipoo
46284c61ae
Return HitResult.None instead of null
2018-02-08 14:25:59 +09:00
smoogipoo
c537af0289
Fix/improve commends
2018-02-08 14:25:44 +09:00
smoogipoo
a6f1a4689e
Fix incorrect value copy-pasta
2018-02-08 14:16:37 +09:00
smoogipoo
802aaefe35
Give rulesets a way to disable/enable perfect/ok hit results
2018-02-08 13:54:08 +09:00
smoogipoo
cfdeac6428
Make hit windows settable by derived classes
2018-02-08 13:38:31 +09:00
smoogipoo
9225e883c1
Add + use HalfHitWindow
2018-02-02 20:29:50 +09:00
smoogipoo
6976347d64
Protect hit window values
2018-02-02 20:28:59 +09:00
smoogipoo
e45b26c742
Cleanup/minify HitWindows
2018-02-02 19:35:44 +09:00
smoogipoo
d371425c87
BAD -> MEH
2018-02-02 18:56:44 +09:00
smoogipoo
70462ebee3
Make HitWindows settable by derived HitObjects
2018-02-02 18:53:05 +09:00
smoogipoo
acf20c079c
General improvements around usage of HitWindows for mania
2018-02-02 18:47:54 +09:00
smoogipoo
558c53a6ba
Give HitObject some HitWindows
2018-02-02 18:47:10 +09:00
smoogipoo
a0c1662fb7
Move mania's HitWindows to osu.Game
2018-02-02 17:52:55 +09:00
smoogipoo
13f16077d4
Implement Catmull-Rom curve approximator
2018-02-01 20:04:41 +09:00
smoogipoo
b77f08941c
Make mania play the next note's sounds if no note is hit
...
Fixes #1911 .
This follows what osu!stable does, which is rather unfortunate, since it just plays _every_ sound for the note :|.
2018-01-24 20:05:37 +09:00
smoogipoo
d37844c068
Clean up off-by-one offsets from repeat-related properties
2018-01-23 13:37:25 +09:00
Dean Herbert
9b33499fe7
Merge remote-tracking branch 'upstream/master' into RefactorInputQueues
2018-01-16 20:04:34 +09:00
smoogipoo
0ae0dac192
Fix DrawableHitObject not binding nested hitobject events
2018-01-15 20:35:38 +09:00
Aergwyn
8ac6818639
expose IsHit
2018-01-13 16:26:14 +01:00
Dan Balasescu
ebb8550f53
Merge branch 'master' into shrink-drawablehitobject_t
2018-01-14 00:16:42 +09:00
Aergwyn
7875f0cb01
remove unnecessary internal
2018-01-13 16:15:41 +01:00
Aergwyn
356bb5da1e
move sample logic up too
2018-01-13 12:55:52 +01:00
Aergwyn
70fc09f81e
move judgement + state logic up to DrawableHitObject
2018-01-13 12:42:42 +01:00
Aergwyn
ae1adfd2f2
remove unnecessary empty lines
...
codefactor.io \(o.o)/
also one unnecessary semicolon
2018-01-12 19:30:34 +01:00
smoogipoo
9d00e5bb7d
Make ScrollingHitObjectContainer handle nested hitobjects
2018-01-11 15:08:30 +09:00
smoogipoo
9036ea92eb
Run child updates for nested hitobjects when parent hitobjects are masked
2018-01-10 18:29:46 +09:00
smoogipoo
86b5591583
Merge remote-tracking branch 'origin/master' into scrolling-hitobjects-rewrite
2018-01-10 18:02:49 +09:00
TocoToucan
ae032cbf23
Support HandleKeyboardInput, HandleMouseInput, CanReceiveKeyboardInput, CanReceiveMouseInput properties
2018-01-07 23:40:00 +03:00
Dean Herbert
37d393bca0
Update licence headers
2018-01-05 20:21:19 +09:00
smoogipoo
f34131f8f4
Initial game-wide replacement of scrolling playfields
2018-01-04 18:50:17 +09:00
Aergwyn
ccb69d16d9
move HitResult in Scoring namespace to replace HitCount
2017-12-30 21:23:18 +01:00
Dean Herbert
a0966305d4
Remove unnecessary new event
2017-12-30 14:46:44 +09:00
Aergwyn
f547c7986d
created option to override values before UpdateState is called
2017-12-29 17:50:55 +01:00
Dean Herbert
27cb445c24
Always recrusively apply custom sequence to nested hitobjects
2017-12-29 17:48:05 +09:00
Aergwyn
dbcf87267d
Merge branch 'master' into standard-hd-support
2017-12-27 21:26:39 +01:00
Aergwyn
4c2554595e
implement hidden (mostly)
...
some things work and others don't, I dunno
2017-12-26 17:25:18 +01:00
smoogipoo
9690591593
Make taiko use namespaced hitsounds
...
This is a temporary solution for now that uses DrawableHitObject.SampleNamespace for the override. We will not want to do this going forward, and instead have the rulesets add their custom resource stores to the games', but that requires deciding where/when to apply/remove such resource stores, and is probably left to skinning.
2017-12-26 19:55:56 +09:00
smoogipoo
14162b5d46
Make InputDrum handle all Normals/Claps, hitobjects all others
2017-12-26 14:18:23 +09:00
smoogipoo
0fb620a8d3
Make HitObject.Samples non-nullable
2017-12-25 16:41:18 +09:00
smoogipoo
d288d8a51f
Remove SampleInfoList
2017-12-25 15:40:01 +09:00
smoogipoo
68d76d4380
Fix taiko strong hits not being handled
2017-12-23 20:58:09 +09:00
Dean Herbert
aeafa5645a
Make Samples null by default and prepopulate in mania
2017-12-23 18:06:46 +09:00
Dean Herbert
2db68df999
Simplify DrawableHitObject's sample load code
2017-12-23 17:20:14 +09:00
Dean Herbert
5026c7a95e
SoundControlPoint -> SampleControlPoint
2017-12-23 16:34:34 +09:00