1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-22 02:07:34 +08:00
Commit Graph

1850 Commits

Author SHA1 Message Date
Salman Ahmed
1051009827 Change bindable properties in all HitObjects to be lazily initialised 2022-07-19 05:39:10 +03:00
Salman Ahmed
32ba58109b Remove score multiplier on difficulty-increasing mods with customised settings 2022-07-18 07:29:03 +03:00
為什麼
1725a76fa0 Remove the nullable disable annotation for all rulesets. 2022-07-10 10:15:27 +08:00
為什麼
857377e145 Move CreateConvertibleReplayFrame() into legacy ruleset interface because technically only legacy ruleset use it to convert the legacy frame.
But seems some of the customized ruleset use it for save the replay frame.
2022-07-10 10:15:27 +08:00
Dean Herbert
c95eb2d2c1 Fix incorrect case in CatcherArea parameter 2022-07-06 14:28:50 +09:00
andy840119
19721a9bbb Remove the nullable disable annotation and fix the breaking api. 2022-07-02 13:33:05 +08:00
Dan Balasescu
0fd2c010e5 Remove NRT disables from attributes classes 2022-06-27 16:07:15 +09:00
Dan Balasescu
0579780bb8 Add IBeatmapOnlineInfo parameter and use to extract more data 2022-06-27 16:07:15 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Bartłomiej Dach
26c5b59f6d
Replace usages of string.To{Lower,Upper}() 2022-06-24 11:57:45 +02:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dan Balasescu
6d2a2ba7d6 Rename Position -> Index 2022-06-09 18:49:11 +09:00
apollo-dw
66a6467403 Pass object position to the object 2022-05-26 19:26:14 +01:00
apollo-dw
30b9e0e7ab Use object list size for object position 2022-05-24 16:30:25 +01:00
Gabe Livengood
252bacc8d4 revert more testing leftovers... 2022-05-24 10:56:31 -04:00
Gabe Livengood
dde0756bed add accuracy challenge mod 2022-05-24 10:23:44 -04:00
apollo-dw
26985ca8af Store hitobject history in the hitobject 2022-05-22 16:26:22 +01:00
Dan Balasescu
64a371638e
Merge pull request #18236 from peppy/snap-unification
Add `enum` to snap method as alternative to multiple nested invocations
2022-05-20 11:35:05 +09:00
Dean Herbert
c0abce918f Add enum to snap method as alternative to mutliple nested invocations 2022-05-12 16:19:07 +09:00
Dean Herbert
c7e9bd7751
Merge branch 'master' into catch-editor-per-object-sv 2022-05-09 19:18:01 +09:00
Dan Balasescu
45c6f5edef
Merge pull request #18158 from ekrctb/fix-banana-shower-placement-negative-duration
Fix duration is negative while placing banana shower in catch editor
2022-05-09 11:26:06 +09:00
ekrctb
158f134260 Fix duration is negative while placing banana shower in catch editor.
Timeline blueprint is glitched when the hit object has negative duration.
Negative duration is unwanted anyways so placement implementation is fixed instead of supporting it in timline blueprint.
2022-05-09 00:01:05 +09:00
ekrctb
483a611c41 Fix BeginPlacement location. 2022-05-08 23:10:51 +09:00
ekrctb
7daa3d8eb7 Remove now-redundant velocity calculation
Velocity is computed from the up-to-date SV now.
2022-05-08 22:36:33 +09:00
ekrctb
37c9aac49f Make ScrollingPath use time instead of distance.
This is consistent as other components now use time instead of distance.
2022-05-08 22:36:33 +09:00
ekrctb
670922c8e5 Use latest slider velocity for juice stream velocity computation.
This fixes one-frame glitch in editor when slider velocity is changed.
2022-05-08 22:36:33 +09:00
ekrctb
0e98bb28bd Fix wrong resampling times are used for juice stream path 2022-05-08 22:36:33 +09:00
ekrctb
9ffa90602b Automatically set slider velocity from juice stream path 2022-05-08 22:36:33 +09:00
ekrctb
4e0155fa4b Make JuiceStreamPath time based instead of distance based.
And remove the "slope limit" feature.
TODO: for a juice stream with a large slope, the slider velocity of the hit object should be changed.
2022-05-08 22:36:33 +09:00
ekrctb
125628dd20 Fix hit object not shown in timline while placement is waiting 2022-05-08 15:52:14 +09:00
Dean Herbert
f6fc926f1a Add xmldoc and rename methods in IPositionSnapProvider for legibility 2022-05-05 15:58:21 +09:00
Dean Herbert
faeefc5e18
Merge pull request #16576 from frenzibyte/osu-distance-spacing
Add "distance spacing" support in editor for osu! ruleset
2022-05-03 12:15:18 +09:00
Dean Herbert
93db6c6bb0 Move FastRandom to LegacyRandom in osu.Game project 2022-04-28 17:47:32 +09:00
Salman Ahmed
b6d2ca7709 Clarify TODO comment 2022-04-28 10:57:14 +03:00
Salman Ahmed
bfc6bfc91b Let CatchHitObjectComposer inherit from DistancedHitObjectComposer and hide control 2022-04-28 06:44:50 +03:00
Salman Ahmed
8ed39009fd Encapsulate distance spacing control handling to a "distance toolbox composite"
Encapsulated in a way which can allow further extensibility for the
right-side area of toolboxes.
2022-04-24 08:33:03 +03:00
Salman Ahmed
4f8f27a58b Merge branch 'master' into osu-distance-spacing 2022-04-24 05:23:30 +03:00
Salman Ahmed
61078910a6 Handle all skin component types explicitly 2022-04-23 03:34:05 +03:00
Dean Herbert
0cac935939 Shorten class name of ModCreatedReplayUser 2022-03-31 11:34:23 +09:00
Dean Herbert
4b2c01a8c1 Bring all mod implementations up-to-date 2022-03-29 16:59:03 +09:00
Dean Herbert
d2d88015e3 Update all cinema/autoplay mods to specify the system user ID 2022-03-28 22:22:56 +09:00
Dean Herbert
6fb06d69cc
Merge branch 'master' into pp-counter-alloc-reduction 2022-03-15 13:31:57 +09:00
Dan Balasescu
523f668c8c Remove unnecessary ctor argument 2022-03-15 12:37:39 +09:00
Dan Balasescu
daac933498 Remove unnecessary ctor arguments 2022-03-15 12:34:58 +09:00
Dan Balasescu
59d57a44d4 Prevent incorrect usages by hard-typing ctor type 2022-03-15 09:11:59 +09:00
Dan Balasescu
3fff7f4b7e Require ScoreProcessor to receive ruleset 2022-03-14 15:51:10 +09:00
Dan Balasescu
4a3e3aba65 Restructure PerformanceCalculator to not require ScoreInfo argument 2022-03-14 14:25:28 +09:00
Dan Balasescu
c36badab4b Add per-ruleset score multipliers for classic scoring 2022-03-10 10:26:09 +09:00
Dan Balasescu
84e82ef5e4 Add XMLDocs to difficulty attribute properties 2022-02-16 14:09:19 +09:00
Salman Ahmed
19ee05c232 Add "distance spacing" multiplier for osu! ruleset
While osu!catch also implements a distance snap grid, it doesn't rely on
`GetBeatSnapDistanceAt` (unlike osu!), therefore it can't have the
"distance spacing" multiplier yet.
2022-02-15 02:21:53 +03:00
Bartłomiej Dach
82f9ad63f5
Fix flashlight size multiplier printing with too many decimal digits 2022-02-02 20:41:25 +01:00
Bartłomiej Dach
e042f29ee3
Remove skin ctor param from LegacyCatchComboCounter
No longer used since 004798d61d.
2022-02-01 21:49:52 +01:00
Dan Balasescu
0458d408bb Add replay statistics frames to FramedReplayInputHandler 2022-01-31 18:53:47 +09:00
Bartłomiej Dach
2375420d4c
Tweak allowable ranges of size multiplier 2022-01-24 21:32:31 +01:00
Bartłomiej Dach
a227af75ed
Simplify flashlight parameter passing flow 2022-01-24 21:03:02 +01:00
Bartłomiej Dach
5874475dff
Extract DefaultFlashlightSize to base flashlight class 2022-01-24 21:03:02 +01:00
Bartłomiej Dach
a7c0d507ce
Rename flashlight settings to be more accurate 2022-01-24 21:03:02 +01:00
mk-56
948867898c ModeMultiplier rename 2022-01-24 11:38:52 +01:00
mk-56
161a2a321e Remove bindable from ModeMultiplier 2022-01-24 09:07:07 +01:00
mk-56
ed84ae0ac0 Adjust values to Bdach's refined taste 2022-01-24 00:42:43 +01:00
mk-56
955bab926f Separate the settings for each modes radiuses 2022-01-22 19:38:56 +01:00
mk-56
57cc2f7893 Adjustment to size values of FL per mode 2022-01-16 14:26:26 +01:00
mk-56
ee4331dda4 Merge remote-tracking branch 'origin/Liswiera-FL-changes' into Liswiera-FL-changes 2022-01-15 21:44:03 +01:00
mk-56
2a59735525 Initial commit 2022-01-15 21:43:28 +01:00
Dean Herbert
5c0494f3ba Remove unnecessary precondition check and disallow vertical catch flips for now 2022-01-06 14:39:29 +09:00
Dean Herbert
6779503e57 Refactor logic to avoid TimelineSelectionHandler having to block base calls 2022-01-05 16:56:54 +09:00
Dean Herbert
866ae3472b Add global flip hotkeys 2022-01-05 16:48:07 +09:00
Joseph Madamba
0bd928b5cd Fix incorrect naming / apply review 2021-12-27 21:44:19 -08:00
Joseph Madamba
98524d60a4 Fix clear identifier typos 2021-12-27 20:26:28 -08:00
StanR
40b3ce0ade Clean up comments 2021-12-21 14:03:24 +03:00
StanR
cca02a8016 Create PerformanceAttributes 2021-12-21 13:08:31 +03:00
StanR
2f2006715e Slightly refactor difficulty and pp calculators 2021-12-17 23:40:23 +03:00
Dan Balasescu
8a81392d2b Fix use of incorrect variable, add test 2021-12-16 19:26:36 +09:00
Dan Balasescu
5ea081e899 Test hyperdash generation in catch conversion tests 2021-12-16 19:04:42 +09:00
Dean Herbert
9f688f6291 Stop persisting Skills in DifficultyAttributes 2021-11-21 12:15:32 +09:00
Dan Balasescu
33294ffda6
Merge branch 'master' into fix-plate-clearing-missing-last-banana 2021-11-19 11:42:57 +09:00
Darius Wattimena
38edeac710 Moved the logic to the bottom as placeCaughtObject is otherwise not called yet 2021-11-18 20:24:40 +01:00
Darius Wattimena
95891bc655 Moved clear plate logic to Catcher class 2021-11-18 20:03:41 +01:00
Dean Herbert
fd0cae2bfb
Merge branch 'master' into difficulty-attribute-helpers 2021-11-17 20:49:31 +09:00
Dan Balasescu
815179f713 Use consts for attribute IDs 2021-11-17 20:31:18 +09:00
Dean Herbert
369b4ba789 Update DifficultyCalculator to take an IRulesetInfo 2021-11-15 19:16:48 +09:00
Dean Herbert
62d670a3ca Update DifficultyCalculator to take an IWorkingBeatmap 2021-11-15 19:16:48 +09:00
Dan Balasescu
c8a01c35f7 Remove extra members from FromDatabaseAttributes 2021-11-15 18:11:07 +09:00
Dan Balasescu
0cfd6fdf04 Add to/from database mapping functions to difficulty attributes 2021-11-15 16:06:50 +09:00
Dan Balasescu
907499f73a Add json properties to difficulty attributes 2021-11-15 16:06:29 +09:00
Darius Wattimena
2c4f1817d3 Fixed an issue where banana showers don't clear the plate when missing the last banana 2021-11-14 20:43:31 +01:00
ekrctb
dca2cd6c44
Merge branch 'master' into catch-spinner-checks 2021-11-11 11:32:58 +09:00
Darius Wattimena
d370f64ac3 Changed finding the spinner gaps via a dictionary instead of getting the thresholds via an array 2021-11-10 19:58:36 +01:00
ekrctb
116b857cea
Merge branch 'master' into no-scope-catch 2021-11-10 20:50:31 +09:00
Bartłomiej Dach
6d04823b05
Remove unnecessary virtual specs 2021-11-10 12:00:36 +01:00
Semyon Rozhkov
577bdade5b Hide catcher during banana shower 2021-11-10 04:10:05 +03:00
Semyon Rozhkov
41f4f0ab5e Different setting slider description in each mod 2021-11-10 03:57:22 +03:00
Semyon Rozhkov
ce0eb0b26f Using IUpdatableByPlayfield 2021-11-10 03:53:30 +03:00
Darius Wattimena
bd5caceeb1 Fixed typo in banana shower gap check message 2021-11-10 00:23:14 +01:00
Darius Wattimena
5d8f35f3c9 Code cleanup and added tests for the spinner check 2021-11-10 00:16:29 +01:00
Darius Wattimena
fbfed16756 Started on implementing a spinner gap check for catch 2021-11-09 23:05:25 +01:00
Semyon Rozhkov
64bc8da14c Add "No Scope" mod implementation for Catch 2021-11-09 17:11:19 +03:00
Dean Herbert
0ecf5f201c Rename User to APIUser and move to correct namespace 2021-11-07 11:26:01 +09:00
Dean Herbert
9b705460db Remove trailing exclamation marks from autoplay character names
As mentioned in
https://github.com/ppy/osu/discussions/15401#discussioncomment-1573839.
2021-11-02 14:53:58 +09:00
Dean Herbert
5c7623e68e
Merge pull request #15255 from goodtrailer/node-samples-ilist
Change IHasRepeats.NodeSamples to IList from List
2021-10-28 14:24:26 +09:00
Dean Herbert
add39fbd4f Merge branch 'master' into fix-skin-layout-editor-crash 2021-10-28 06:24:24 +09:00
Dan Balasescu
cab254dc81
Merge branch 'master' into var-inspections-update 2021-10-27 14:02:49 +09:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
ekrctb
393d118eef Fix compilation failure overlooked in merge 2021-10-26 20:20:43 +09:00
ekrctb
e5050b90a5 Don't assume catcher dash speed is 2x the walk speed 2021-10-26 20:09:48 +09:00
ekrctb
de7a908be2 Cut distance snap lines at playfield border in catch editor 2021-10-26 14:51:52 +09:00
ekrctb
c5d765029c Don't compute source object for distance snap grid when it is not enabled 2021-10-26 11:17:04 +09:00
ekrctb
b7a719de71 Rename method 2021-10-26 11:14:12 +09:00
ekrctb
068217557e Add doc comment on catch distance snap grid 2021-10-26 11:12:10 +09:00
ekrctb
9f49a1df8b Handle the case of cursor below the start time of distance snap 2021-10-26 11:00:55 +09:00
ekrctb
865be5a10b Fix distance snap grid rendering inverted when out of bounds 2021-10-26 11:00:44 +09:00
ekrctb
2c92f1a0b7 Use array for fixed-size list 2021-10-26 10:41:17 +09:00
ekrctb
6d1cd0a3a1 Add distance snapping to catch editor 2021-10-25 16:37:44 +09:00
ekrctb
60df0151c0 Add very basic distance snap grid for catch editor 2021-10-25 15:25:59 +09:00
goodtrailer
4440b9ca11 Change IHasRepeats.NodeSamples to IList from List 2021-10-23 01:59:07 -07:00
Dean Herbert
93482414d6 Remove SkinConfiguration subclasses and allow configuration parsing for all skin types 2021-10-22 14:42:23 +09:00
smoogipoo
bc37cb6f43 Merge branch 'master' into no-more-difficulty-control-points-info 2021-10-08 18:41:17 +09:00
Dean Herbert
b339c149d8 Copy BaseDifficulty to Beatmap<T> and move all write operations across 2021-10-06 15:10:45 +09:00
Dean Herbert
a92d499d7a Convert usages of BeatmapDifficulty to IBeatmapDifficultyInfo 2021-10-01 16:55:50 +09:00
Dean Herbert
46bafb6252 Merge branch 'master' into no-more-difficulty-control-points-info 2021-09-28 13:53:56 +09:00
Dean Herbert
16e60eed56 Reduce NestedHitObject enumerator overhead
This was especially bad due to it allocating on any and every start time
change, even the first (see usage in `HitObject.ctor`).
2021-09-20 15:09:27 +09:00
smoogipoo
f9d5abff8a Update with keybinding changes 2021-09-16 18:26:12 +09:00
Dean Herbert
a3d9ab1e2e Move approach rate to EffectControlPoint 2021-09-03 16:58:16 +09:00
Dean Herbert
071c56e90b Update usages of DifficultyPointAt 2021-09-03 16:58:16 +09:00
Dean Herbert
6dcd9427ac Remove bindable usage in PathControlPoint
This is quite a breaking change, but I think it is beneficial due to the large amount of usage of this class.

I originally intended just to remove the allocations of the two delegates handling the `Changed` flow internally, but as nothing was really using the bindables for anything more than a general "point has changed" case, this felt like a better direction.
2021-08-26 12:33:53 +09:00
Xexxar
ae076c9a4e merged latest ppy/master 2021-08-16 22:20:12 +00:00
Xexxar
176b3e7533 changed decay system to allow for customizing the currentStrain 2021-08-16 22:14:29 +00:00
Bartłomiej Dach
b84f238106
Adjust scaling numbers to be closer to stable 2021-08-12 22:33:12 +02:00
Bartłomiej Dach
e79150d4da
Reorder constructor arguments for HitExplosionEntry 2021-08-12 21:48:08 +02:00
Bartłomiej Dach
f3045b3152
Add comment about swapped sprite names 2021-08-12 21:48:07 +02:00
Bartłomiej Dach
68f454b51a
Enable NRT in explosion-related classes and streamline null handling 2021-08-12 21:48:07 +02:00
Bartłomiej Dach
98ce69d1d3
Fix explosion reading out time values from wrong clock 2021-08-11 23:32:58 +02:00
Bartłomiej Dach
427a88940c
Remove duplicated ClearTransforms() call 2021-08-11 23:18:42 +02:00
Bartłomiej Dach
2fb19210af
Fix legacy explosion sprites incorrectly showing after skin change 2021-08-11 22:36:27 +02:00
Bartłomiej Dach
4bcbe6ac90
Restructure explosion to ensure proper lifetime bounds 2021-08-11 21:23:34 +02:00
Bartłomiej Dach
8c8a64fe6e
Add legacy hit lighting implementation 2021-08-11 21:23:33 +02:00
Bartłomiej Dach
95a58ca366
Store judgement directly in hit explosion entry 2021-08-11 21:23:33 +02:00
Bartłomiej Dach
a1f50e39aa
Add basic structure for skinning catch explosions 2021-08-11 21:23:32 +02:00
Bartłomiej Dach
a9e53107d1
Also mirror banana showers 2021-08-10 22:33:28 +02:00
Bartłomiej Dach
637e5cb6b7
Fix offsets not being mirrored 2021-08-10 22:33:28 +02:00
Dean Herbert
30cda318f9 Reorganise code slightly 2021-08-09 15:57:18 +09:00
Salman Ahmed
3a741affa3 Remove whitespaces 2021-08-08 21:27:48 +03:00
Gabe Livengood
c72224fa94
Add "Mirror" mod to osu!catch 2021-08-08 13:45:13 -04:00
smoogipoo
3e56388ba8 Match casing in enum value 2021-08-02 15:08:42 +09:00
smoogipoo
9b98014606 Merge branch 'master' into catcher-trail-entry 2021-08-02 15:07:48 +09:00
ekrctb
4c68268d98 Call ApplyTransformsAt on free 2021-07-31 08:31:08 +09:00
ekrctb
4e2f928d65 Fix comment 2021-07-30 15:44:09 +09:00
Henry Lin
7251c28c4a Merge branch 'master' into mod-muted 2021-07-29 21:14:03 +08:00
ekrctb
a204ef39dd Prevent catcher trail generation while rewinding 2021-07-29 17:32:38 +09:00
ekrctb
81f23e1111 Manage catcher trails by lifetime entries 2021-07-29 17:12:01 +09:00
Henry Lin
e89f33483d Code formatting fixes 2021-07-28 21:52:01 +08:00
Henry Lin
22d83c75e3 Revert imports re-ordering
Out of the scope of this PR
2021-07-28 18:32:38 +08:00
Henry Lin
58bbe9db7e Added muted mod 2021-07-28 18:21:08 +08:00
ekrctb
90f3611ed0 Replace "sprite" variable names in CatcherTrailDisplay
The `CatcherTrail` was originally named `CatcherTrailSprite`, but it is not a sprite anymore.
2021-07-28 19:11:22 +09:00
ekrctb
a960a28d06 Replace "end glow" terminology with "hyper-dash after-image"
Because the is "end glow" is when a hyper-dash is *started*, the name was confusing.
The "after-image" was already used in the code as a synonym of "end glow" inconsistently.
2021-07-28 19:11:22 +09:00
Dean Herbert
2b107d624a
Merge pull request #14024 from ekrctb/trail-generation
Move catcher trail generation logic to `CatcherArea` to remove mutual dependency of `Catcher` and `CatcherTrailDisplay`
2021-07-28 19:06:44 +09:00
ekrctb
0bf04ece34 Avoid internal property by using ChildrenOfType 2021-07-28 18:13:43 +09:00
ekrctb
846f539428 Avoid usage of LINQ in last dash trail computation 2021-07-27 19:11:08 +09:00
ekrctb
da69867fd4 Move catcher trail generation logic to CatcherArea 2021-07-27 19:07:37 +09:00
ekrctb
de68fd12b3 Move catcher trail colouring logic to CatcherTrailDisplay 2021-07-27 19:07:37 +09:00
ekrctb
8045534fa5 Remove outdated comment and simplify code 2021-07-26 18:18:24 +09:00
ekrctb
4282442278 Make Catcher.body private as it is no longer needed by CatcherTrailDisplay 2021-07-26 17:58:34 +09:00
ekrctb
c08130398c Add some comments 2021-07-26 17:58:34 +09:00
ekrctb
bb046fa3b8 Move catcher trail generation logic to Catcher
It resolves mutual dependency of `Catcher` and `CatcherTrailDisplay`.
Trail generation logic is moved to `Catcher`.
The generation logic no longer uses delayed scheduling because the hidden state is hard to manage.
Instead, the last time a trail is generated is calculated and used.
The new logic has a different behavior when the dash key is pressed in succession under 50ms, but it is not noticeable for normal plays.
2021-07-26 17:51:59 +09:00
Dean Herbert
50a2abbe7f
Merge pull request #12683 from frenzibyte/legacy-beatmap-combo-offset
Apply combo offsets "colour hax" only on beatmap skins
2021-07-23 14:30:18 +09:00
Dean Herbert
a7d6c682de
Merge pull request #13983 from ekrctb/juice-stream-placement
Add initial implementation of juice stream placement
2021-07-23 13:52:25 +09:00
ekrctb
bd3386e770 Fix previously placed vertices in juice stream placement
A different UX than not fixing vertices.
2021-07-23 10:18:37 +09:00
ekrctb
4509c8bcfb Use the more consistent lastVertex, with a comment 2021-07-23 10:13:55 +09:00
ekrctb
d49d303bae Call GetContainingInputManager at LoadComplete 2021-07-23 10:10:55 +09:00
Salman Ahmed
523c154f15 Add ComboIndexWithOffsetsBindable and bind similar to ComboIndexBindable 2021-07-22 16:40:33 +03:00
ekrctb
9fff304554 Implement reversing of selected pattern in catch editor 2021-07-22 17:00:08 +09:00
ekrctb
dc90e4d24c EditorBeatmap.SelectedHitObjects -> SelectedItems (same thing) 2021-07-22 16:52:47 +09:00
ekrctb
64102d2972 Add initial implementation of juice stream placement 2021-07-22 15:47:23 +09:00
ekrctb
2beef89c23 Add empty juice stream placement blueprint (no implementation) 2021-07-22 15:47:23 +09:00
Dean Herbert
e8aaf4df16
Merge pull request #13961 from ekrctb/catch-editor-flip
Implement horizontal flipping of hit objects in catch editor
2021-07-22 15:27:59 +09:00
Dean Herbert
1d2fdd9841
Merge pull request #13937 from ekrctb/selection-editable-path
Add initial implementation of juice stream path editing
2021-07-22 14:48:02 +09:00
Dean Herbert
2151c1863e Rename variables for catch-specific casting to avoid any confusion 2021-07-22 14:07:32 +09:00
ekrctb
19657cd00e Guard against empty range in PositionRange 2021-07-22 13:29:32 +09:00
ekrctb
7b6981c632 Don't show the flip button when flipping is a no-op 2021-07-22 13:29:32 +09:00
ekrctb
d93bf5be80 Don't handle mouse down at fixed vertices 2021-07-22 12:58:39 +09:00
Dean Herbert
73866c2837
Merge branch 'master' into catch-editor-flip 2021-07-21 19:54:39 +09:00
Dean Herbert
399c3b0be8 Rename property, reword xmldoc and improve readability of update code 2021-07-21 17:32:56 +09:00
ekrctb
179ba3c9a8 Merge branch 'master' into catcher-area-catcher
# Conflicts:
#	osu.Game.Rulesets.Catch.Tests/TestSceneCatcher.cs
2021-07-21 16:45:28 +09:00
ekrctb
d9f9ad35be Move catcher base size constant to Catcher. 2021-07-21 16:43:24 +09:00
ekrctb
30777795ce Add some doc comment to CatcherArea 2021-07-21 16:40:35 +09:00
ekrctb
94678064ff Rename CatcherArea.MovableCatcher to Catcher 2021-07-21 16:28:31 +09:00
ekrctb
d2d3214d47 Implement horizontal flipping of hit objects in catch editor 2021-07-21 16:07:02 +09:00
ekrctb
4c8b9c168e Use added position range computation in hit object move handling 2021-07-21 16:06:34 +09:00
ekrctb
60f876511d Add function of computing position range occupied by hit objects 2021-07-21 16:06:34 +09:00
ekrctb
cd447f0305 Add some doc comment to JuiceStreamSelectionBlueprint 2021-07-21 13:27:07 +09:00
ekrctb
cc0110aa52 Add doc comment to VertexState 2021-07-21 13:17:18 +09:00
ekrctb
97fba5df58 Use existing method for the same code 2021-07-21 12:59:42 +09:00
ekrctb
ca3dfb2498 Fix comment 2021-07-21 12:53:48 +09:00
Salman Ahmed
9d92b795fa Revert making ComboOffsets legacy and define BeatmapSkinComboIndex instead 2021-07-20 14:15:43 +03:00
Salman Ahmed
554652b033 Merge branch 'refactor-combo-colour-retrieval' into legacy-beatmap-combo-offset 2021-07-20 10:11:52 +03:00
Salman Ahmed
1af230c48c Merge branch 'master' into refactor-combo-colour-retrieval 2021-07-20 10:08:25 +03:00
ekrctb
8586458704 Implement vertex deletion in juice stream selection blueprint 2021-07-19 22:53:32 +09:00
ekrctb
08f8d4e65e Implement vertex addition in juice stream selection blueprint 2021-07-19 22:53:32 +09:00
ekrctb
8cc1630655 Add initial juice stream editing 2021-07-19 22:53:32 +09:00
Dean Herbert
6d49165664
Merge pull request #13928 from ekrctb/juice-stream-path
Add `JuiceStreamPath` as alternative representation of `JuiceStream` path for catch editor
2021-07-19 22:18:05 +09:00
ekrctb
81d0a9bd9c Fix item ordering 2021-07-19 21:05:36 +09:00
ekrctb
41169fbdaf Add [NotNull] 2021-07-19 20:20:10 +09:00
ekrctb
7201cfe0b4 Move child drawable creation of CatchPlayfield from constructor to load. 2021-07-19 20:18:17 +09:00
ekrctb
879467961f Fix catcher trails displayed in wrong place 2021-07-19 20:13:31 +09:00
ekrctb
b88ee3c1a1 Pass DroppedObjectContainer via constructor instead of DI
It is now just one level deep, so it is not beneficial to use DI here.
This effectively reverts ae09c23e.
2021-07-19 20:11:49 +09:00
ekrctb
50f9e5f362 Replace usage of CatcherArea.MovableCatcher with Catcher 2021-07-19 19:52:40 +09:00
ekrctb
97059a9f50 Create Catcher in CatchPlayfield 2021-07-19 19:44:40 +09:00
Dean Herbert
23ef666f34
Merge pull request #13887 from ekrctb/legacy-converted-y
Preserve Y position of hit objects in osu!catch
2021-07-19 18:48:23 +09:00
Dean Herbert
443058f879 Move playfield constant to top of file and make internal 2021-07-19 18:41:29 +09:00
ekrctb
be495a7488 Add JuiceStreamPath to allow editing JuiceStream in catch editor
A `JuiceStream` holds a legacy `SliderPath` as the representation of the path.
However, the `SliderPath` representation is difficult to work with because `SliderPath` works in 2D position, while osu!catch works in `(time, x)` coordinates.
This `JuiceStreamPath` represents the path in a more convenient way, a polyline connecting list of `(distance, x)` vertices.
2021-07-19 13:59:10 +09:00
ekrctb
c347584851 Use added utility function 2021-07-19 13:33:46 +09:00
ekrctb
70c9d7105f Add a function to compute hit object position in catch editor 2021-07-19 13:33:22 +09:00
Bartłomiej Dach
fb5d25405e
Replace calls to obsoleted GetOrDefault() extension 2021-07-18 21:52:16 +02:00
ekrctb
7f432665e5 Preserve Y position of hit objects in osu!catch 2021-07-14 14:38:38 +09:00
Dan Balasescu
0c52b26d23
Merge pull request #13824 from peppy/da-mod-refactor
Refactor `ModDifficultyAdjust` to more elegantly track user override status
2021-07-12 12:03:45 +09:00
Dean Herbert
79d546afa2 Add missing osu!catch difficulty adjust attributes 2021-07-11 10:14:42 +09:00
Bartłomiej Dach
6f89f8e572 Merge branch 'master' into da-mod-refactor 2021-07-10 11:41:54 +02:00
Bartłomiej Dach
c5011865fc Invert strangely negated condition 2021-07-10 11:23:38 +02:00
Bartłomiej Dach
494089e402 Fix up English in comment 2021-07-10 11:22:54 +02:00
ekrctb
995ef953c6 Modify comment 2021-07-09 15:13:54 +09:00
Dean Herbert
90326f8864 Standardise variables 2021-07-09 13:24:26 +09:00
ekrctb
7e14679606 Expand the selection movement limiting code with detailed comments 2021-07-09 12:58:08 +09:00
ekrctb
c937c45360 Don't move selected objects outside the playfield in catch editor 2021-07-08 18:49:32 +09:00
Dean Herbert
88b00123f6 Use existing reflection methods to avoid manual binding of ExtendedLimits 2021-07-08 17:49:00 +09:00
Dean Herbert
bd7c334588 Avoid the need for per-settings control classes 2021-07-08 17:49:00 +09:00
Dean Herbert
a6e94dd491 Add back extended limits support 2021-07-08 17:49:00 +09:00
Dean Herbert
0e4f4a6fde Initial storage changes 2021-07-08 14:28:13 +09:00
ekrctb
f1aa99e103 Fix catch selection blueprint not displayed after copy-pasted 2021-07-07 21:03:26 +09:00
ekrctb
7d76fcf2b6 Fix hit object placement not receiving input when outside playfield
The input area is vertical infinite, but horizontally restricted to the playfield due to `CatchPlayfield`'s `ReceivePositionalInputAt` override.
2021-07-07 16:18:21 +09:00
ekrctb
115376c538 Add playfield border to catch editor 2021-07-07 16:14:45 +09:00
Dean Herbert
fd46d30f29
Merge pull request #13795 from ekrctb/juice-stream-selection-1
Add path visualization to juice stream selection blueprint
2021-07-07 15:24:39 +09:00
ekrctb
7b21d1ecf9 Fix juice stream outline disappears away when start position is outside the screen. 2021-07-06 19:50:32 +09:00
ekrctb
2ba3003934 Add nested fruit outlines to juice stream selection blueprint 2021-07-06 17:15:51 +09:00
ekrctb
7833a1b09a Allow FruitOutline to be used for nested hit objects 2021-07-06 17:15:27 +09:00
ekrctb
0fa7716ced Show path of juice stream in selection blueprint 2021-07-06 16:46:12 +09:00
ekrctb
7ef7c5148f Add ScrollingPath for visualization of the real path of a JuiceStream 2021-07-06 16:41:53 +09:00
ekrctb
175d666906 Use getters of OriginalX and XOffset 2021-07-06 15:32:32 +09:00
ekrctb
ae1b1cbec9 Allow serialization of catch hit objects 2021-07-06 15:32:32 +09:00
Dean Herbert
01961fe4f9
Merge pull request #13747 from ekrctb/catcher-flip
Don't flip catcher plate contents when catcher changes direction
2021-07-06 00:02:23 +09:00
ekrctb
d247b8042e Fix default skin catcher not flipping catcher plate
When legacy beatmap skin is present but catcher is not provided, it was using the legacy setting (always false).
2021-07-05 20:05:08 +09:00
ekrctb
83c80291d4 Don't flip catcher plate contents in legacy skin 2021-07-02 23:23:21 +09:00
ekrctb
fbba32647e Decouple direction of catcher from its scale 2021-07-02 23:22:39 +09:00
ekrctb
170513568b Move caught object stack vertical offset logic 2021-07-02 20:43:47 +09:00
Dean Herbert
ee6cf4396a
Merge pull request #13648 from ekrctb/dropped-object-container
Use DI to resolve "dropped object target" container in `Catcher`
2021-06-25 18:23:39 +09:00
ekrctb
c0c1b8d620 Fix catcher hyper-dash afterimage is not always displayed 2021-06-24 16:12:43 +09:00
ekrctb
ae09c23e4e Resolve DroppedObjectContainer via DI 2021-06-24 16:09:13 +09:00
ekrctb
16d5893535 Add DroppedObjectContainer class 2021-06-24 15:51:54 +09:00
smoogipoo
6215f2d42b Remove unnecessary string interpolation 2021-06-23 17:40:11 +09:00
smoogipoo
7767e2e77f Add to tooltip 2021-06-23 17:34:30 +09:00
ekrctb
ad60b9d5a0 Allow catch difficulty adjust to enable hard rock offsets 2021-06-23 14:52:41 +09:00
ekrctb
a0fd7f72ac Use IApplicableToBeatmapProcessor in CatchModHardRock 2021-06-23 14:47:32 +09:00
Dean Herbert
f62b4f2d24
Merge pull request #13617 from ekrctb/catch-editor
Add "placeholder" (pre-MVP) implementation of osu!catch editor
2021-06-23 14:00:34 +09:00
ekrctb
125e143401 Fix banana shower placement outline initial opacity 2021-06-23 10:27:40 +09:00
ekrctb
5a5cb39c9f Add some comments about logic 2021-06-23 10:27:40 +09:00
ekrctb
69c8865a04 Use more consistent method names 2021-06-23 10:19:25 +09:00
ekrctb
a9b8736f70 Order field and properties consistently 2021-06-23 10:18:44 +09:00
ekrctb
e96814bb86 Remove comment about using skin for blueprint
As the current game-wise direction is not using skin elements in blueprints.
The design of the blueprint could be improved somehow, though.
2021-06-23 09:37:30 +09:00
ekrctb
1a7bfafc69 Add icon for composition tools 2021-06-23 09:34:11 +09:00
Dean Herbert
4cb9c6a842
Merge pull request #13423 from frenzibyte/transformers-per-skin
Refactor ruleset skin transforming logic to be per-`ISkin` rather than one `ISkinSource`
2021-06-22 21:24:56 +09:00
ekrctb
21331d3a13 Disable caught object stacking in editor 2021-06-22 17:20:13 +09:00
ekrctb
e8907b53a8 Add basic banana shower placement tool 2021-06-22 17:20:13 +09:00
ekrctb
4d7a877795 Add basic fruit placement tool 2021-06-22 17:20:13 +09:00
ekrctb
0078d7dc18 Add outline to selected fruit 2021-06-22 17:20:13 +09:00
ekrctb
c28cd5dd75 Add basic juice stream selection blueprint 2021-06-22 17:20:13 +09:00
ekrctb
b8ccfe6ea7 Add basic selection blueprint movement logic 2021-06-22 17:20:13 +09:00
ekrctb
fbe44dac34 Add empty catch hit object composer 2021-06-22 17:20:13 +09:00
Dean Herbert
1b0aadcc6f Merge branch 'master' into transformers-per-skin 2021-06-22 16:03:15 +09:00
ekrctb
b54e82eb99 Remove unused argument from CatchPlayfield 2021-06-22 15:23:50 +09:00
Dean Herbert
4b45d8318e
Merge branch 'master' into transformers-per-skin 2021-06-16 16:37:28 +09:00
ekrctb
b087c95581 Use a frozen clock for catcher trails 2021-06-16 16:17:32 +09:00
ekrctb
1632450918 Add comments 2021-06-16 16:17:32 +09:00
ekrctb
73e443a0d9 Add comments 2021-06-16 14:01:12 +09:00
ekrctb
df16d4bacc Remove CurrentTexture from catcher 2021-06-14 20:26:33 +09:00
ekrctb
38a56d64d3 Rename CatcherTrailSprite -> CatcherTrail 2021-06-14 19:47:18 +09:00
ekrctb
c094914023 Simplify catcher trail creation 2021-06-14 19:46:48 +09:00
ekrctb
9b6ab4360e Use common skinnable catcher in catcher trails 2021-06-14 19:45:58 +09:00
ekrctb
ca061c4b93 Factor out SkinnableDrawable component of the catcher to SkinnableCatcher 2021-06-14 19:41:51 +09:00
Salman Ahmed
fbb856d84b Call base when overriding lookup methods
Rather than arbitrarily accessing `Skin` here and there.
2021-06-11 12:44:44 +03:00
ekrctb
7f7c2c73e0 Move catcher movement logic of Catcher to CatcherArea 2021-06-11 15:39:06 +09:00
Salman Ahmed
26cdcc8d78 Remove stale access to Source from master merge 2021-06-10 13:07:32 +03:00
Dan Balasescu
35d5632355
Merge pull request #13378 from Syriiin/diffcalc/refactor/auto-properties
Refactor DifficultyAttributes to use auto properties over public fields
2021-06-10 18:42:11 +09:00
Salman Ahmed
dde84e5cbd Merge branch 'master' into transformers-per-skin 2021-06-10 11:58:52 +03:00
Dan Balasescu
a44fd887ee
Merge branch 'master' into no-unranked-display 2021-06-10 17:09:46 +09:00
Dean Herbert
05b46b4743
Merge pull request #13379 from ekrctb/catcher-sprite
Refactor osu!catch catcher sprite to factor out skinning logic
2021-06-10 16:52:17 +09:00
Dean Herbert
865c5c0676 Use [Resolved] to simplify bindable resolution 2021-06-10 15:47:03 +09:00
Dean Herbert
6995945360 Use With to simplify drawable construction 2021-06-10 15:45:49 +09:00
Salman Ahmed
cf40282f1f Convert LegacySkinTransformers to accept raw ISkins rather than a full ISkinSource 2021-06-09 22:49:31 +03:00
ekrctb
e5deecf459 Check skin version for legacy catcher sprite 2021-06-09 15:47:23 +09:00
Dean Herbert
85abee5fc7 Remove difficulty calculator exceptions
I don't think there's any reason difficulty calculators shouldn't be
able to calculate for autoplays.
2021-06-09 14:33:35 +09:00
Dean Herbert
d0e9f8ef90 Replace and obsolete Ranked flag with IsUserPlayable 2021-06-09 14:17:03 +09:00
ekrctb
7df971a970 ICatcherPiece -> ICatcherSprite 2021-06-08 22:10:13 +09:00
ekrctb
194c78f67a Make current state bindable protected 2021-06-08 22:08:54 +09:00
ekrctb
109a366722 Use separate classes for old and new catcher legacy skin element
- Fix catcher texture animation is reset for legacy old catcher skin
2021-06-08 21:59:09 +09:00
ekrctb
0192549d6c Refactor catcher sprite to use skinned piece pattern 2021-06-08 21:29:41 +09:00
Samuel Cattini-Schultz
f1bef989b7 Refactor DifficultyAttributes to use auto properties over public fields 2021-06-08 19:43:59 +10:00
ekrctb
6e28c1b29a Move default catcher sprite to its own file 2021-06-08 17:54:57 +09:00
Dean Herbert
6017ef3825
Merge branch 'master' into fix-skin-sample-lookup 2021-06-08 17:37:36 +09:00
Dean Herbert
e388a896e8 Don't apply visibility increase to first object in osu!catch
The goal of the visibility increase is to help in cases where timing is
an issue (by showing the approach circle etc.). This doesn't need to
apply to catch.

@smoogipoo interested as to whether you agree with this one. Visually it
looks better to me but it does change the behaviour for only osu!catch,
so I'm not 100% confident on it.

Closes #13367.
2021-06-08 16:02:26 +09:00
Bartłomiej Dach
122a624b7f Remove bogus CatchHitWindows
`CatchHitWindows` were a vestige from the past, and were not actually
used anywhere except for the hit error meter test, giving off an
appearance that the hit error meter was working properly.
`CatchHitObject` actually specifies empty hit windows.
2021-06-07 13:16:07 +02:00
Dean Herbert
1b93234c76 Merge branch 'master' into fruit-representation 2021-06-07 16:05:00 +09:00
ekrctb
bb02c35f2d Move all osu!catch legacy skin piece files to the correct location 2021-06-07 15:10:47 +09:00
ekrctb
ac5c55bd2c Remove "fruit visual representation" state from DrawableFruit
Instead, skin pieces compute visual representation from `IndexInBeatmap`.
2021-06-07 14:49:37 +09:00
ekrctb
166e4565be Move FruitVisualRepresentation namespace 2021-06-07 13:59:17 +09:00
Dean Herbert
d26c9a66c2 Merge branch 'legacy-skin-default-fallback' into fix-skin-sample-lookup 2021-06-07 12:01:19 +09:00
ekrctb
8e20f90ed5 Use seeded RNG for catch explosion animation
The animation is always the same when a replay is rewound or a beatmap is played multiple times.
2021-06-04 19:54:46 +09:00
ekrctb
181f1da3d3 Maintain catch hit explosion by lifetime entries
- Fix hit explosion not showing when a replay is rewound to a time after a hit object is caught
2021-06-04 19:46:50 +09:00
Dan Balasescu
15b43beef1
Merge pull request #11857 from Syriiin/diffcalc/refactor/catch-clockrate-effects
Refactor catch Movement skill to not require explicit clockrate usage
2021-06-03 17:29:27 +09:00
Samuel Cattini-Schultz
f51413ead9 Refactor to pass clockrate in constructor rather than deriving from mods 2021-06-03 16:09:42 +10:00
Samuel Cattini-Schultz
7cdef5cb0a Merge branch 'master' into diffcalc/refactor/catch-clockrate-effects 2021-06-03 15:51:03 +10:00
Samuel Cattini-Schultz
94701b77cb Add TODO for variable clockrate support in catch difficulty calculator 2021-06-03 15:44:28 +10:00
Dean Herbert
14570b6fb1 Merge branch 'master' into autoplay-pause-support 2021-06-01 14:19:21 +09:00
Dean Herbert
00b3eea840 Merge branch 'legacy-skin-default-fallback' into fix-skin-sample-lookup 2021-05-31 21:39:04 +09:00
Dean Herbert
de0e51a81d Merge branch 'master' into fix-skin-sample-lookup 2021-05-31 15:27:39 +09:00
Salman Ahmed
4e186b0cf5 ContentVisible -> HiddenByRulesetImplementation 2021-05-31 09:24:26 +03:00
Salman Ahmed
60b781701f Rewrite catch combo counter hide logic 2021-05-30 14:22:11 +03:00
Salman Ahmed
fb81e5133f Merge branch 'master' into catch-hide-combo-workaround 2021-05-30 14:16:46 +03:00
Dean Herbert
50d71faf56 Restructure lookup code to avoid repeating the base call 2021-05-30 17:55:10 +09:00
Dean Herbert
dac1a98d8a Merge branch 'master' into fix-skin-sample-lookup 2021-05-30 15:19:47 +09:00
Salman Ahmed
fbc316ea1d Fix legacy skin transformers potentially ignoring source implementations 2021-05-29 21:23:22 +03:00
Susko3
2439de1c3d fix capitalzation of osu!catch HitResults 2021-05-28 18:40:58 +02:00
Dean Herbert
70a844ac10 Remove allowFallback parameters completely 2021-05-27 14:50:42 +09:00
Dean Herbert
a3c78674a1 Add new interface for autoplay mods 2021-05-25 18:09:24 +09:00
Salman Ahmed
a4d52a7f52 Use switch—case instead 2021-05-19 23:37:22 +03:00
Salman Ahmed
c98d036b48 Merge branch 'master' into catch-hide-combo-workaround 2021-05-18 17:47:20 +03:00
Salman Ahmed
ff419af512 Hide the combo counter content rather than full death 2021-05-18 09:10:15 +03:00
Salman Ahmed
df248ea41b Improve code readability 2021-05-17 11:41:53 +03:00
Salman Ahmed
102842bcf1 Expire legacy combo counters on catch ruleset 2021-05-15 16:55:15 +03:00
PercyDan54
166974506e
Duplicate implementions 2021-05-15 11:55:50 +08:00
PercyDan54
67dfeeb1b7
Cleanup code in ModHidden 2021-05-14 21:29:13 +08:00
Dean Herbert
004798d61d Update Legacy components to not require skin in ctor 2021-05-11 18:39:14 +09:00
ekrctb
207f7f1e56 Rename FramedAutoGenerator<T> -> AutoGenerator<T> 2021-05-07 00:31:12 +09:00
ekrctb
cf39178099 Use FramedAutoGenerator in Taiko, Catch, Mania
OsuAutoGenerator is not included in this change because it uses SortedList-like thing
2021-05-06 22:57:07 +09:00
Salman Ahmed
cd6d070b4a Consider "combo offsets" as legacy logic and separate from combo information 2021-05-05 07:43:08 +03:00
Salman Ahmed
eeeb001d62 Refactor combo colour retrieval logic to request skin lookups instead 2021-05-05 07:17:27 +03:00
Dean Herbert
0ccdfeea57 Fix code quality issues 2021-04-24 14:35:49 +09:00
Dean Herbert
d4ffd2ef4b Merge branch 'master' into reversed-fruits 2021-04-23 15:08:18 +09:00
Dean Herbert
bc0e1d8c37 Remove dead newline 2021-04-23 15:06:39 +09:00
smoogipoo
d4d78f7434 Merge branch 'master' into legacy-scores-classic-mod 2021-04-22 18:44:20 +09:00
Dean Herbert
dc2bc462b8 Expose internal catcher width calculation methods 2021-04-22 17:27:23 +09:00
Dean Herbert
84a7138223 Update tests to better support stack regeneration cases 2021-04-22 17:13:19 +09:00
Dean Herbert
3e1002fbf3 Improve osu!catch caught fruit placement algorithm 2021-04-22 17:06:28 +09:00
Salman Ahmed
e3398d8f1f Implement "classic" mod for all other legacy rulesets
Currently empty, automatically handled in game to not be selectable (see `Mod.HasImplementation`)
2021-04-21 09:14:33 +03:00
Dean Herbert
ddf1b560f3 Remove catcher fade during hyperdash
Closes https://github.com/ppy/osu/issues/12472.
2021-04-20 18:18:51 +09:00
Fabian
eec77b0527 replace icon 2021-04-17 23:55:39 +02:00
Fabian
5d274dbce8 replace IApplicableToPlayer with IApplicableToDrawableRuleset 2021-04-17 16:38:28 +02:00
Fabian
cf3aaff7bd Add floating fruits mod 2021-04-17 16:01:23 +02:00
ekrctb
a965e8a75d Remove AutoGenerator workaround of now-fixed issue 2021-04-16 14:13:41 +09:00
ekrctb
91c7d8d26c Introduce StartFrame and EndFrame to simplify the replay interpolation code 2021-04-16 14:13:41 +09:00
ekrctb
84bc81a6de Make FramedReplayInputHandler.CurrentTime non-null 2021-04-16 14:13:41 +09:00
ekrctb
6d0dc62502 Make sure latest catcher position is used for catching logic
A replay frame processed in CatchInputManager is applied to catcher in `CatcherArea`.
The catcher position is then used for the catching logic for each hit object under `HitObjectContainer`.
Thus, if `HitObjectContainer` came before `CatcherArea`, the replay input is delayed one frame.
That was one reason why the catch autoplay misses hit objects (especially when fast-forwarded).
2021-04-09 16:04:45 +09:00