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

5254 Commits

Author SHA1 Message Date
John
e5884016ab Initial commit for the snap colour mod. Implements basic functionality. 2023-05-12 19:07:25 -07:00
Dean Herbert
0c1959ef2f Allow commiting / undoing placement of blueprints using back / select bindings 2023-05-12 16:06:20 +09:00
Dean Herbert
f443cfb93e Move blueprint validity conditions to allow more correct external usage of EndPlacement
Until now, these were haphazardly enforce inline in blueprint
implementations. The only thing stopping complete breakage is that
`EndPlacement` wasn't called (too much) from outside the blueprint,
leaving them responsible for their own placement.

By moving this conditional out of the provided paramters to
`EndPlacement`, it allows more flexible usage of that method externally.
Coming in a future PR.
2023-05-12 16:02:22 +09:00
Dan Balasescu
a7b623f52a Reimplement classic scoring mode 2023-05-09 20:21:38 +09:00
Dan Balasescu
3c3c812ed6 Initial implementation of ScoreV2 2023-05-09 19:33:33 +09:00
Bartłomiej Dach
1d162d1d15
Merge pull request #23440 from peppy/drawable-hit-object-sync-animations
Fix hit object animations not being played back in sync
2023-05-08 23:44:37 +02:00
Bartłomiej Dach
30ce86a582
Merge pull request #23437 from peppy/fix-hold-note-input-test
Fix `TestSceneHoldNoteInput` not displaying correctly
2023-05-08 22:22:33 +02:00
Dean Herbert
64498e95a4 Add an IAnimationTimeReference to DrawableHitObject to synchronise all animations 2023-05-08 18:56:29 +09:00
Dan Balasescu
d2380bd840 Remove usages of [ExcludeFromDynamicCompile] 2023-05-08 18:12:56 +09:00
Dean Herbert
1b7dd32eb1 Apply nullability in related classes and remove unused variable 2023-05-08 17:09:08 +09:00
Bartłomiej Dach
34b19dd6f4
Merge branch 'master' into slider-velocity-inspector 2023-05-05 20:20:16 +02:00
Bartłomiej Dach
4ca80cf6be
Merge pull request #23404 from peppy/show-sv-in-inspector
Show slider velocity in hit object inspector
2023-05-05 20:19:50 +02:00
Dean Herbert
490df8073c Fix one incorrect namespace syntax file 2023-05-05 21:15:26 +09:00
Dean Herbert
cc70d89bf9 Move editor inspector classes out of ruleset namespace 2023-05-05 15:57:38 +09:00
Dean Herbert
4663057060 Split out EditorInspector implementation for reuse 2023-05-05 15:54:15 +09:00
Dean Herbert
76b2f0e6dd Show slider velocity in hit object inspector 2023-05-05 15:15:18 +09:00
Dean Herbert
698baa78bf
Merge pull request #22711 from Terochi/keep-shared-settings-ruleset-change
Keep shared mod settings when changing ruleset
2023-05-05 13:29:55 +09:00
Bartłomiej Dach
485b7282dc
Clarify type check 2023-05-04 19:06:07 +02:00
Bartłomiej Dach
1f1342b099
Reword xmldoc 2023-05-04 18:33:49 +02:00
Bartłomiej Dach
88e77ad390
Rename Settings{-> Map} 2023-05-04 18:30:41 +02:00
Bartłomiej Dach
26337dbcd8
Do not rely on unspecified Dictionary.Values ordering 2023-05-04 18:29:01 +02:00
Bartłomiej Dach
0d2396c557
Rename method to better indicate directionality 2023-05-04 18:15:12 +02:00
Dean Herbert
6b017ac05f
Merge pull request #23308 from OliBomby/sample-control-points
Remove SampleControlPoint and DifficultyControlPoint from HitObject
2023-05-03 14:21:51 +09:00
Dean Herbert
e42b0cc5b1
Merge pull request #23370 from peppy/fix-editor-playfield-padding
Add more padding around playfield in editor to avoid overlap with tool areas
2023-05-03 11:44:55 +09:00
Dean Herbert
414b80d44e Change flashlight depth in a more standard way 2023-05-02 17:00:54 +09:00
Dean Herbert
b2b9f2a036 Merge branch 'master' into bubble_mod_implementation_clean 2023-05-02 16:59:55 +09:00
OliBomby
2e018c8b06
Fix comment 2 osu.Game/Rulesets/Objects/Types/IHasGenerateTicks.cs
Co-authored-by: Dean Herbert <pe@ppy.sh>
2023-05-02 08:41:47 +02:00
OliBomby
c2ad8c2320
Fix comment 1 osu.Game/Rulesets/Objects/Types/IHasGenerateTicks.cs
Co-authored-by: Dean Herbert <pe@ppy.sh>
2023-05-02 08:41:30 +02:00
Dean Herbert
67f83f246b Add more padding around playfield in editor to avoid overlap with tool areas
Closes #23130.
2023-05-02 15:37:02 +09:00
Dean Herbert
e3c384c6b5 Merge branch 'master' into sample-control-points 2023-05-02 14:38:39 +09:00
OliBomby
cf5211aec9 Enable current distance snap when exactly on a hit object 2023-05-01 19:22:52 +02:00
OliBomby
27cfadca16 add sample info to Banana and SpinnerBonusTick 2023-05-01 14:54:06 +02:00
OliBomby
2a94757154 Make sure the first object you place has bank and volume 2023-05-01 00:49:01 +02:00
OliBomby
608fa3cc73 Merge remote-tracking branch 'upstream/master' into sample-control-points 2023-04-30 19:47:03 +02:00
OliBomby
83111223e0 fix null sample 2023-04-30 01:08:52 +02:00
OliBomby
92efd04f31 fix sample of drumroll ticks being bankless 2023-04-29 23:52:24 +02:00
OliBomby
ffcc8e91b2 fix legacy parser incorrectly assigning sample info for sliders 2023-04-29 23:51:49 +02:00
OliBomby
354cd23874 removed all usage of hitobject's DifficultyControlPoint 2023-04-26 18:17:02 +02:00
OliBomby
c44f71a737 remove all regular usage of DifficultyControlPoint 2023-04-26 17:55:38 +02:00
OliBomby
c6fc180659 remove all test usages of SampleControlPoint 2023-04-26 14:21:52 +02:00
OliBomby
6c70948681 Remove IContext & add IHasGenerateTicks 2023-04-26 13:10:57 +02:00
OliBomby
e27c4dfa10 Invoke ApplyDefaultsToSelf 2023-04-26 11:46:05 +02:00
Terochi
332c199dc2 further simplification 2023-04-26 10:46:29 +02:00
cdwcgt
bfd81b77fa
provide more Accuracy Mode for ModAccuracyChallenge 2023-04-26 17:40:25 +09:00
Dean Herbert
27f81288ef
Merge branch 'master' into keep-shared-settings-ruleset-change 2023-04-26 15:51:31 +09:00
Dean Herbert
cb7b246e33 Fix naming and update in line with nullability 2023-04-26 15:27:58 +09:00
Dean Herbert
210c5e7c53 Merge branch 'master' into decouple-mod-fails 2023-04-26 15:26:20 +09:00
Terochi
0841e73a39 Improved readability and sounds 2023-04-25 21:07:17 +02:00
OliBomby
66eda40cdf fix implementations of IHasSliderVelocity 2023-04-25 18:22:22 +02:00
OliBomby
065464d90c Fixed DifficultyPointPiece 2023-04-25 18:12:53 +02:00
OliBomby
ebe1d852f5 remove other usages of hitobject SampleControlPoint 2023-04-25 16:01:43 +02:00
OliBomby
97910d6be6 remove unused directives 2023-04-25 13:06:37 +02:00
OliBomby
891b87a5ff remove ApplyLegacyInfo method 2023-04-25 12:52:21 +02:00
OliBomby
ea1e6e9798 Add LegacyContext 2023-04-25 12:12:46 +02:00
OliBomby
a4c6850ab2 made the SampleControlPoint and DifficultyControlPoint obsolete 2023-04-25 11:34:09 +02:00
Dan Balasescu
c0a25144cf Apply changes to custom ShaderManager 2023-04-18 11:31:56 +09:00
Bartłomiej Dach
db86ced4b4
Invoke RevertResult on parent DHO when nested DHO is reverted
The behaviour described above was removed in
812a4b412a, thus henceforth
contradicting `RevertResult`'s xmldoc. As it is relied on by some
external rulesets, bring it back to unbreak them.
2023-04-11 18:29:08 +02:00
Bartłomiej Dach
ead5e9f027
Merge branch 'master' into editor-inspector 2023-04-10 14:29:05 +02:00
Bartłomiej Dach
60358c7203
Perform first inspector text update immediately
Provides better and more consistent initial state for the inspector.
2023-04-10 14:13:53 +02:00
Bartłomiej Dach
641415ca32
Unify displayed duration format for single/multiple selection 2023-04-10 14:05:32 +02:00
Dan Balasescu
15f6bc155e Add progressive score multiplier for HT 2023-04-10 13:35:48 +09:00
Dan Balasescu
c923482976 Add progressive score multiplier for DT 2023-04-10 13:31:48 +09:00
Dean Herbert
ad717d2368 Fix scheduled calls piling up during transactions 2023-04-06 23:39:36 +09:00
Andrei Zavatski
ed565b1e59 Fix SampleStore isn't being disposed 2023-04-06 11:40:04 +03:00
Bartłomiej Dach
e5d57a65c9
Fix incorrect indent 2023-04-05 19:47:25 +02:00
Bartłomiej Dach
432f698697
Merge branch 'master' into gameplay/key-counter-abstraction 2023-04-05 19:45:14 +02:00
Dean Herbert
9c8b25e034 Fix display not always updating when expected by updating on a schedule 2023-04-05 13:45:24 +09:00
Dean Herbert
f07d859532 Optimise how often we update the display 2023-04-04 19:31:33 +09:00
Dean Herbert
3209b09270 Move inspector into own file 2023-04-04 19:17:34 +09:00
Dean Herbert
4aed483005 Tidy up dependency resolution 2023-04-04 19:14:30 +09:00
Dean Herbert
195b5fc3f1 Add view for selections of size != 1 2023-04-04 19:11:48 +09:00
Dean Herbert
b0d5761667 Add object type 2023-04-04 19:05:50 +09:00
Dean Herbert
c356c163fa Add hit object inspector view 2023-04-04 19:03:45 +09:00
Dean Herbert
f9ebdadfe8 Move right-side editor toolbox to base HitObjectComposer
Move right-side editor toolbox to base `HitObjectComposer`
2023-04-04 19:00:56 +09:00
Dean Herbert
7011928d86 Fix abysmal debug performance due to try-catch logic in DrawableRulesetDependencies 2023-04-03 18:04:33 +09:00
Dean Herbert
b0c09df259 Merge branch 'master' into gameplay/key-counter-abstraction 2023-04-03 15:33:35 +09:00
Dean Herbert
0d77ec013a Fix ruleset-local shader manager not correctly falling back to existing cached shaders 2023-03-28 15:00:49 +09:00
Dean Herbert
c742b3f0a8 Update DrawableRulesetDependencies xmldoc to read more correctly 2023-03-28 14:15:19 +09:00
Salman Ahmed
678e8ed736 Update UBO usages inline with framework changes 2023-03-16 14:06:35 +03:00
Dean Herbert
7b34607676 Merge branch 'master' into bubble_mod_implementation_clean 2023-03-16 13:45:22 +09:00
Dean Herbert
5f9b13a775 Rename Add/AddRange methods as they are no longer conflicting with Container 2023-03-15 18:02:41 +09:00
Dean Herbert
969c0e9c9d Merge branch 'master' into veldrid-renderer 2023-03-14 17:35:38 +09:00
Terochi
8e8dda3ac0 Big simplifying 2023-03-11 23:29:36 +01:00
Dan Balasescu
e327993d11
Merge pull request #22527 from Terochi/replay-length-extension
Replay recording extension until results screen transition
2023-03-11 15:41:32 +09:00
Terochi
b51c41a804 Addressed changes 2023-03-09 20:14:58 +01:00
tsrk
44297a7d0a
refactor: make KCD a CompositeDrawable 2023-03-08 00:47:16 +00:00
Bartłomiej Dach
72695f7c90
Merge branch 'master' into omit-barline-in-timing-control-point 2023-03-07 22:46:24 +01:00
Terochi
8bf84869a5 Fixed errors covered in new tests 2023-03-07 20:39:50 +01:00
Bartłomiej Dach
7ade525eef
Display corner radius setting as percentage 2023-03-07 19:43:52 +01:00
Dean Herbert
28520414aa Move KeyCounter components to HUD namespace 2023-03-07 16:41:39 +09:00
Dean Herbert
8f6df5ea0f
Merge branch 'master' into gameplay/key-counter-abstraction 2023-03-07 16:09:45 +09:00
Dean Herbert
044b0604b2 Move OmitFirstBarLine to TimingControlPoint 2023-02-28 19:29:31 +09:00
Dan Balasescu
dd9748a25c Adjust DrawNodes to use UBOs 2023-02-25 01:42:55 +09:00
Terochi
09e7c21b23 Implemented a more complex setting conversion logic + tests 2023-02-24 15:11:22 +01:00
Bartłomiej Dach
d679703fa2
Merge pull request #22659 from peppy/fix-taiko-drum-nested-sample-detection
Fix `GameplaySampleTriggerSource` not considering nested objects when determining the best sample to play
2023-02-22 18:56:59 +01:00
tsrk
1beec71037
refactor(KeyCounterDisplay): apply suggestions
I also took the freedom to add type checking, as we can't limit the
usage of `Add()` since it's a Container. The exception thrown also
advises of using the suggested `AddTrigger()` instead.
2023-02-22 14:58:27 +00:00
Dean Herbert
a8c692a215
Merge pull request #22635 from peppy/use-overlays-container-more
Use `Overlays` container rather than `KeyBindingInputManager` for flashlight
2023-02-22 18:30:21 +09:00
Bartłomiej Dach
ab97b02235
Remove contradictory remark from xmldoc 2023-02-21 21:05:46 +01:00
Terochi
dd53a70071 Addressed change requests 2023-02-21 21:01:31 +01:00
Terochi
191604340f Added a way for mod settings to be kept when changing ruleset + test 2023-02-21 19:05:10 +01:00
Dean Herbert
9384687d6d Switch ModMuted to add its metronome to components rather than overlays 2023-02-21 19:04:06 +09:00
Dean Herbert
1acc536248 Move DrawableRuleset.Audio to a less generic level 2023-02-21 19:03:52 +09:00
Dean Herbert
5ba6059911 Merge branch 'master' into fix-taiko-drum-nested-sample-detection 2023-02-21 13:58:15 +09:00
MK56
b74c1c8334
Merge branch 'master' into bubble_mod_implementation_clean 2023-02-19 21:36:59 +01:00
Bartłomiej Dach
3183f5cee2
Merge branch 'master' into revert-result-in-playfield 2023-02-19 16:33:10 +01:00
Bartłomiej Dach
d9ca7102f0
Use more generic wording for future-proofing 2023-02-19 15:06:40 +01:00
Bartłomiej Dach
aac32a2c9f
Combine config and time checks into one
Functionally equivalent right now, but the combined variant is more
localised to what it actually needs to do, and less error-prone if
any new code gets appended to the method.
2023-02-19 13:14:51 +01:00
Maximilian Kruse
f3522c4162 change bindable seekToHitObject to private 2023-02-19 10:18:02 +01:00
Maximilian Kruse
ddd37bb319 Add setting to disable automatic seeking after object placement 2023-02-18 19:43:45 +01:00
Dean Herbert
19d5293ad1 Change early return to also find the earliest nested object 2023-02-17 18:59:31 +09:00
Bartłomiej Dach
3ee046000e
Merge branch 'master' into revert-result-in-playfield 2023-02-16 21:54:29 +01:00
Bartłomiej Dach
b8084a15eb
Revert ResumeOverlay setter accessibility change 2023-02-16 21:26:01 +01:00
Dean Herbert
affa9507a1 Fix GameplaySampleTriggerSource not considering nested objects when determining the best sample to play 2023-02-16 18:21:33 +09:00
Dean Herbert
ce9ef3bc3c Always create ResumeOverlay, with UseResumeOverlay flag only affecting whether it is displayed or not 2023-02-16 15:47:20 +09:00
Dean Herbert
7afdcb9383 Merge branch 'master' into hide-resume-overlay 2023-02-16 15:42:14 +09:00
tsrk
076eb81b21
refactor: rename trigger classes
Makes it better to understand their purpose
2023-02-15 21:46:13 +00:00
tsrk
157bba7830
refactor: rename Trigger class to InputTrigger 2023-02-15 21:41:36 +00:00
Dean Herbert
da8ab7143b
Merge branch 'master' into maximum-judgement-offset-in-hit-object 2023-02-15 14:48:15 +09:00
Dean Herbert
5024838f3a Merge branch 'master' into bubble_mod_implementation_clean 2023-02-15 13:47:18 +09:00
Dean Herbert
5ec5222d8a Expose and consume OsuInputManager explicitly 2023-02-14 17:36:07 +09:00
Dean Herbert
b42b5f97cf Use Overlays container rather than KeyBindingInputManager for flashlight 2023-02-14 17:36:07 +09:00
Dean Herbert
970388d4e2 Move Overlays container to accept input and be frame-stable 2023-02-14 17:35:12 +09:00
Dean Herbert
7aaaf7fca2 Combine and attempt to simplify the score import / preparation process further 2023-02-14 16:55:35 +09:00
Dean Herbert
63f3498762 Restructure UseResumeOverlay to correctly handle a value change before BDL load 2023-02-14 15:11:33 +09:00
Pasi4K5
e4b84ebd0b Add UseResumeOverlay and use it for hiding the ResumeOverlay 2023-02-13 23:51:39 +01:00
tsrk
74a58fb674
refactor: separate things in KeyCounter
To implement different different sources of input for KeyCounter, it
is now possible to create a Trigger class (to inherit) instead of
inheriting KeyCounter. This eases the creation of more input sources
(like for tests) while allowing to implement different UI variants.

That way, if another variant of the key counter needs to implemented
(for whathever reason), this can be done by only inheriting KeyCounter
and changing how things are arranged visually.
2023-02-13 01:24:27 +00:00
Dean Herbert
9d09141ab7 Move taiko-specific property out of DrawableHitObject 2023-02-12 16:09:28 +09:00
Dean Herbert
ad8b01b478
Merge pull request #22589 from sw1tchbl4d3r/file_hitsample_additions
Always add to additions soundbank in `convertSoundType`
2023-02-10 17:14:29 +09:00
Dean Herbert
eccde923e5
Merge pull request #22554 from Walavouchey/ranking-accuracycircle-readability
Improve readability of `AccuracyCircle`
2023-02-10 17:03:46 +09:00
Dean Herbert
1df6fc6311 Use if statements rather than conditional case 2023-02-10 17:03:27 +09:00
Bartłomiej Dach
96c1832af4
Fix grammar in xmldoc
Co-authored-by: Walavouchey <36758269+Walavouchey@users.noreply.github.com>
2023-02-10 00:07:24 +01:00
sw1tchbl4d3
f0d11f44fc Always add to additions soundbank in convertSoundType 2023-02-09 22:27:52 +01:00
Dean Herbert
34d1890f1c Change snapping to only apply to classic mod 2023-02-09 18:22:14 +09:00
ekrctb
258de3b2d8 Store RawTime in JudgementResult 2023-02-09 17:15:37 +09:00
ekrctb
5f0636c330 Merge branch 'maximum-judgement-offset-in-hit-object' into revert-result-in-playfield 2023-02-09 16:47:58 +09:00
Dean Herbert
cf009432cc Centralise accuracy cutoff constants and add lookup helper methods 2023-02-09 15:41:58 +09:00
Dean Herbert
c691a0d3af
Merge branch 'master' into sheared_slider_implementation_clean_ii 2023-02-06 17:49:33 +09:00
Dean Herbert
a67d5d2a14 Merge branch 'master' into bubble_mod_implementation_clean 2023-02-06 17:24:20 +09:00
Joseph Madamba
191259c050 Use equals instead and update other usage 2023-02-04 19:58:48 -08:00
mk56-spn
3f0ce75bf5 Rename NormalSliderBar.cs to RoundedSliderBar.cs 2023-02-02 17:24:45 +01:00
Dean Herbert
b792dc3af0
Merge pull request #22281 from cdwcgt/editor-check-previewtime
Add preview time setting check
2023-02-02 15:10:06 +09:00
Dean Herbert
5b3d7a8f26 Fix typo in missing-preview-point message 2023-02-02 14:34:59 +09:00
Dean Herbert
c2cde8361a Fix message not reading well 2023-02-02 14:33:41 +09:00
Dean Herbert
3a861fd943 Remove multiple cases of excess braces 2023-02-02 14:28:21 +09:00
Dean Herbert
10df64467a
Merge pull request #22430 from peppy/skin-editor-nrt
Apply NRT to all skin editor classes
2023-02-02 13:57:57 +09:00
cdwcgt
76296eb35a Consistent with BeatmapsetVerifier 2023-02-01 11:52:14 +08:00
Bartłomiej Dach
c5e1f54185
Fix sample store creation mutating shared resource store 2023-01-30 20:48:52 +01:00
MK56
c50604f701
Merge branch 'master' into bubble_mod_implementation_clean 2023-01-27 11:58:56 +01:00
ekrctb
27578c48f5 Remove JudgementResultEntry
It is not needed anymore as TimeAbsolute is stored raw.
2023-01-27 19:35:44 +09:00
Dean Herbert
74ab036f3e Refactor SkinnableSound.Samples to be non-nullable 2023-01-27 19:32:30 +09:00
mk56-spn
3988131475 Rename OsuSliderBar.cs as NormalSliderBar.cs 2023-01-26 12:12:56 +01:00
Dean Herbert
f0406c34fd Merge branch 'master' into revert-result-in-playfield 2023-01-25 17:35:33 +09:00
Dean Herbert
a966d6c330
Merge pull request #18402 from ggliv/mod-accuracy-challenge
Add accuracy challenge mod
2023-01-24 16:00:55 +09:00
ekrctb
e1702a8ee9 Fix inspection issue 2023-01-24 15:43:57 +09:00
ekrctb
efef97d5be Store Result.TimeAbsolute separately from offset
Calculating from TimeOffset is bad because it loses precision.
The result time won't change anymore
even If `HitObject.GetEndTime()` changes later.
2023-01-24 15:35:06 +09:00
Gabe Livengood
b46ef67a14 increase min minimum accuracy to 60% 2023-01-24 00:31:46 -05:00
ekrctb
cc87923179 Fix OnRevertResult timing 2023-01-24 14:19:24 +09:00
ekrctb
e66e43e17c Remove unused code 2023-01-24 14:15:17 +09:00
Pasi4K5
8b47af6503 Remove HidesResumeOverlay and set ResumeOverlay to null in OsuModAutopilot 2023-01-24 00:49:09 +01:00
Bartłomiej Dach
7483967157
Merge branch 'master' into SliderEnd-Snap 2023-01-23 21:33:16 +01:00
Bartłomiej Dach
1f40b2daf6
Clean up xmldocs 2023-01-23 21:22:18 +01:00
cdwcgt
5afb733fb2
change IssueTemplatePreviewTimeConflict's text 2023-01-23 15:26:28 +09:00
Dean Herbert
73f083a316 Refactor how additional points are provided to avoid confusion 2023-01-23 14:13:46 +09:00
Pasi4K5
75a1a2ec2f Hide ResumeOverlay when OsuModAutopilot is enabled 2023-01-22 03:44:59 +01:00
ekrctb
d8f9b7d02f Use MaximumJudgementOffset for lifetime 2023-01-19 21:25:21 +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
ekrctb
812a4b412a Move judgement result revert logic to Playfield
Previously, some judgement results were not reverted
when the source DHO is not alive (e.g. frames skipped in editor).
Now, all results are reverted in the exact reverse order.
2023-01-19 19:57:13 +09:00
Wleter
f8d8a627b8 change property name 2023-01-18 22:00:39 +01:00
Wleter
ab78dd0436 add collection of selection points. 2023-01-18 21:34:23 +01:00
Gabe Livengood
150195b887 use extension method to check accuracy impact 2023-01-18 12:24:41 -05:00
Gabe Livengood
e0f3fa1af6 remove this in ruleset assignment 2023-01-18 12:22:27 -05:00
cdwcgt
e5eab72aeb
add check for preview time setting 2023-01-19 01:08:37 +09:00
Dean Herbert
522bb8bcca Use ComputeAccuracy to get imminent accuracy 2023-01-18 18:08:58 +09:00
Gabe Livengood
0b1e5c0f53 lambdaify function 2023-01-17 10:23:57 -05:00
Dean Herbert
23ea77cb74 Use ScoreProcessor to fetch accuracy rather than calculating manually 2023-01-17 17:03:04 +09:00
Dean Herbert
70cb23bbc9
Merge branch 'master' into mod-accuracy-challenge 2023-01-17 16:46:54 +09:00
Andrei Zavatski
d74a5ef9e6 Use property instead of ctor parameter 2023-01-12 23:26:29 +03:00
Andrei Zavatski
a7ac31fa34 Use IsLegacyRuleset extension method 2023-01-12 23:21:33 +03:00
Andrei Zavatski
a9915d6a64 Make OverlayRulesetSelector display only legacy rulesets 2023-01-12 22:44:41 +03:00
Dan Balasescu
bbec42c00e Fix incorrect max combo after watching imported legacy replays 2023-01-12 14:18:21 +09:00
MK56
f9b42161e3
Merge branch 'master' into bubble_mod_implementation_clean 2023-01-11 14:56:21 +01:00
Dean Herbert
d1ca4ebd40
Merge pull request #21559 from OliBomby/stream-tool-1
Add segment end completions list to SliderPath
2023-01-11 15:31:04 +09:00
Dan Balasescu
d9a6e4b862 Ensure drain lenience of 1.0 completly removes drain 2023-01-11 13:01:11 +09:00
Wleter
98ffcd33c7
Merge branch 'ppy:master' into SliderEnd-Snap 2023-01-10 21:22:13 +01:00
Wleter
e5863fbaf1 add ScreenSpaceEndPoint field 2023-01-10 21:20:09 +01:00
Bartłomiej Dach
6ed474d4fb
Rearrange formula for maximum accuracy
Feels like it's easier to understand this way. The difference of the
maximum scoring values for the entire beatmap and the max values for the
part of the beatmap that has already been played represents the act of
filling the rest of the unjudged objects with maximum results.
2022-12-30 20:56:54 +01:00
Bartłomiej Dach
8ace635249
Adjust minimum values 2022-12-30 20:55:51 +01:00
Bartłomiej Dach
bb2822a175
xmldoc pass 2022-12-30 20:55:48 +01:00
Bartłomiej Dach
6d42cc5a36
Naming pass 2022-12-30 20:30:58 +01:00
cdwcgt
3c32a50c12
add new accuracy counter display 2022-12-30 21:19:46 +09:00
Berkan Diler
c7ca4bbba5 Use generic Enum methods 2022-12-26 20:36:39 +01:00
mk56-spn
bbb22479a8 Add "ModBubbles" for the osu ruleset. 2022-12-25 23:09:52 +01:00
Bartłomiej Dach
80de5dac66
Fix judgement text never being added to hierarchy 2022-12-24 09:37:40 +01:00
Bartłomiej Dach
f973befcd4
Remove unused resolved member 2022-12-24 09:34:30 +01:00
Dean Herbert
5e9fb1063a Move judgement text creation to base class and tidy things up 2022-12-24 12:22:36 +08:00
Dean Herbert
727ac00f6d Combine base class for JudgementPiece 2022-12-24 03:32:13 +08:00
Berkan Diler
08d2fbeb8e Use new ArgumentNullException.ThrowIfNull throw-helper API 2022-12-22 21:27:59 +01:00
Dean Herbert
4a7d7c6ed9 Use MaxBy in all locations that can and update inspection level to match dotnet-build 2022-12-19 16:47:10 +09:00
Dean Herbert
877413524f Cherry-picked android changes from #17462 2022-12-19 15:46:54 +09:00
Dean Herbert
27c497145f Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0 2022-12-16 18:16:26 +09:00
Dean Herbert
5800734589
Merge pull request #21587 from smoogipoo/spectatorstate-maximum-statistics
Store maximum statistics to spectator state
2022-12-12 20:00:52 +09:00
Dean Herbert
df94af4495 Inline ScoringValues and make some more methods private inside ScoreProcessor 2022-12-12 19:22:09 +09:00
Dan Balasescu
7a54bcac57 Remove unused using 2022-12-12 11:41:07 +09:00
Dan Balasescu
6e41efede8 Simplify dictionary construction 2022-12-12 11:40:47 +09:00
Dan Balasescu
5e8d75bbbf Remove unused overload 2022-12-12 11:39:03 +09:00
Dean Herbert
85039209f8 Fix parsing of ruleset configuration values being incorrect on some locales
Closes #21611.
2022-12-12 01:56:36 +09:00
Dan Balasescu
e9998f1690 Store maximum statistics to spectator state 2022-12-09 20:15:07 +09:00
OliBomby
98a312ca96 Fix segmentEnds incorrect on shortened paths 2022-12-07 09:52:09 +01:00
OliBomby
cd46ca31f9 Add segmend end completions to SliderPath 2022-12-07 09:51:22 +01:00
Bartłomiej Dach
81a42dc05d
Fix extended values in difficulty adjust being truncated to 10 on beatmap change 2022-12-06 23:25:48 +01:00
Dan Balasescu
9e64f8dab1 Fix loss of precision when computing accuracy 2022-12-05 19:08:50 +09:00
Dean Herbert
5a69656764
Merge pull request #21496 from peppy/fix-zero-length-spinners
Fix being able to place zero-length spinners
2022-12-02 19:25:00 +09:00
Dan Balasescu
850931120d
Merge pull request #21479 from peppy/fix-wrong-last-hit-object-time
Fix some components not accounting for final hold notes in osu!mania beatmaps
2022-12-02 18:12:00 +09:00
Dean Herbert
ba99f1288c Update IBeatSnapProvider documentation to mention the pre-divided BeatSnap 2022-12-02 17:57:15 +09:00
Dan Balasescu
a39bd634c4
Merge pull request #21405 from LumpBloom7/Editor-DrawableRuleset-Dependencies
Provide DrawableRulesetDependencies from HitObjectComposer
2022-12-02 17:31:31 +09:00
Dean Herbert
25120060aa Use new helper method in ModTimeRamp 2022-12-02 16:09:46 +09:00
Dean Herbert
809d02cda0 Fix two implementation oversights 2022-12-02 16:05:14 +09:00
Dean Herbert
d8dd7e7e0f Fix test failures when no hitobjects are present in a scrolling ruleset 2022-12-01 21:42:03 +09:00
Dean Herbert
896f2d8f74 Fix multiple instances of last hitobject time being calculated incorrectly 2022-12-01 18:04:06 +09:00
Dean Herbert
c5bc071c4b
Merge pull request #21439 from LumpBloom7/Fix-DHO-load-state
Update DrawableHitObject state based on entry result during LoadComplete
2022-12-01 15:36:36 +09:00
Bartłomiej Dach
2e19e93036
Rename method 2022-11-30 22:54:14 +01:00
Bartłomiej Dach
6ebde9a747
Annotate Playfield.Mods as maybe-null 2022-11-30 20:00:25 +01:00
Derrick Timmermans
6a61e70766
Expose Ruleset from HitObjectComposer instead 2022-11-30 12:17:58 +01:00
Dean Herbert
5ce2d6f54a Hide the game mouse cursor when playing osu!catch with relax mod 2022-11-30 18:13:53 +09:00
Dean Herbert
bb0237d4a9 Fix nullability inspection on disposal path 2022-11-30 17:49:08 +09:00
Dean Herbert
4215f4f5d7 Merge branch 'master' into Editor-DrawableRuleset-Dependencies 2022-11-30 17:42:46 +09:00
Derrick Timmermans
93ba84e5ff
Fix code style 2022-11-27 21:48:44 +01:00
Derrick Timmermans
70c320b2e8
Provide ruleset dependencies only to Compose Placement Blueprints 2022-11-27 21:43:33 +01:00
Derrick Timmermans
cff3e06ad6
Update state based on result during LoadComplete 2022-11-27 20:57:00 +01:00
Bartłomiej Dach
894ef15e79
Merge branch 'master' into update-framework 2022-11-26 16:19:36 +01:00
Dan Balasescu
7bc8908ca9 Partial everything 2022-11-27 00:00:27 +09:00
Dean Herbert
76e9382e0b Fix triangles showing on ExpandableButtons when in contracted state 2022-11-25 20:18:35 +09:00
Derrick Timmermans
65e5c9a3ae
Dispose DrawableRulesetDependencies in HitObjectComposer 2022-11-25 08:27:22 +01:00
Dean Herbert
f6e229c24d "Fix" mod copy failure 2022-11-25 01:15:11 +09:00
Dean Herbert
2b2beadd06 Merge branch 'master' into update-framework 2022-11-25 01:00:08 +09:00
Derrick Timmermans
7b620392fe
Provide DrawableRulesetDependencies from HitObjectComposer 2022-11-24 13:13:45 +01:00
Dean Herbert
a2438428a2 Move base call to end 2022-11-24 13:57:43 +09:00
Dean Herbert
b381b4fd2d Merge branch 'master' into update-framework 2022-11-24 01:27:58 +09:00
Bartłomiej Dach
508f1f488c
Merge branch 'master' into limit-barline-generation-sanity 2022-11-23 17:12:36 +01:00
Dean Herbert
f9d952220f Fix barlines being misaligned if generation start time is clamped 2022-11-23 18:12:03 +09:00
Dean Herbert
172e798847
Merge pull request #21228 from Terochi/recent-messages-implementation
Add ability to view chat send history in input box
2022-11-23 14:58:42 +09:00
Dean Herbert
1632df1f4d Update DifficultyBindable to match new bindable spec 2022-11-22 14:51:19 +09:00
Dean Herbert
40f2da364c Limit how far before the first hitobject that barlines can be generated 2022-11-21 14:40:25 +09:00
Bartłomiej Dach
0f382590e6
Remove unnecessary #nullable disable 2022-11-20 15:31:51 +01:00
Salman Ahmed
58296bd4f0 Introduce IDrawableScrollingRuleset for editor consumption 2022-11-20 04:11:10 +03:00
Terochi
eff6c7be64 Removed unnecessary methods, changed tests, and moved LimitedCapacityQueue.cs to a more generic namespace. 2022-11-19 16:53:35 +01:00
Dan Balasescu
57b8495c7a Merge branch 'master' into long-standard 2022-11-18 14:24:04 +09:00
Dan Balasescu
d47c46d144 Compute raw score in-line
Saves on an allocation (though it seems to only be a ValueType so it
shouldn't be a big deal) and a tail-call.
2022-11-18 14:22:28 +09:00
Susko3
56fd1f95b1 Fix FallbackSampleStore.GetAsync fallback logic 2022-11-13 18:47:28 +01:00
maromalo
1911120afe
Merge branch 'master' into long-standard 2022-11-12 09:52:11 -03:00
Dean Herbert
106f1cf90b Merge branch 'master' into combo-colour-brightness-limit 2022-11-11 18:24:39 +09:00
Dan Balasescu
fe58329478
Merge pull request #21151 from peppy/taiko-judgement-fixes
Fix various issues surrounding hit judgements
2022-11-11 16:41:46 +09:00
Dan Balasescu
5bdbf56f43 Merge branch 'master' into taiko-judgement-fixes 2022-11-11 15:48:33 +09:00
Dan Balasescu
1a1a186d22 Merge branch 'master' into taiko-barline-separation 2022-11-11 15:47:06 +09:00
Dan Balasescu
db25e9e9c8 Merge branch 'master' into combo-colour-brightness-limit 2022-11-11 15:31:28 +09:00
maromalo
83a3f1b82e Add computeRawScore() 2022-11-10 14:15:20 -03:00
Dan Balasescu
606d42c679
Merge pull request #21184 from peppy/skinnable-things-cleanup
Skinnable class naming pass
2022-11-10 12:52:08 +09:00
Dan Balasescu
051f7f4c68
Merge pull request #21173 from peppy/toggle-hit-markers
Add the ability to toggle off hit marker displays in the editor
2022-11-10 12:23:53 +09:00
Dean Herbert
1aa0e40f2f Add "Component" prefix to lookup naming 2022-11-09 17:46:43 +09:00
Dean Herbert
c908969d9b Rename ISkinComponent to ISkinLookup 2022-11-09 17:46:43 +09:00
Dean Herbert
bf26dbffc2 Apply nullability to skinning support classes 2022-11-09 13:59:13 +09:00
Dean Herbert
dd4cd3cf8e Move gameplay configuration to interface to allow editor overriding 2022-11-08 18:25:24 +09:00
Dean Herbert
ada039151b Add the ability to toggle off hit marker displays in the editor 2022-11-08 18:07:06 +09:00
maromalo
64e6276397 Fix score rounding issue 2022-11-08 01:10:21 -03:00
Dean Herbert
2b72c3833b Remove unnecessary centering logic in DrawableJudgement 2022-11-07 17:19:32 +09:00
Dean Herbert
c69a4f9333 Move major barline portion to default implementation to allow for further customisation
Of note, this removes the "major" barline triangles from legacy skins. I
think this is more correct, as they did not display in stable.
2022-11-07 14:29:58 +09:00
maromalo
b7ef9b176d Make score type consistent 2022-11-06 19:59:27 -03:00
Dean Herbert
51078bddf9 Remove unused bindable 2022-11-06 23:34:04 +09:00
Dean Herbert
e02c477008
Merge pull request #21017 from andy840119/remove-nullable-disable-in-the-checks
Remove nullable disable in the checks.
2022-11-06 18:39:03 +09:00
Bartłomiej Dach
84179fb087
Merge branch 'master' into combo-colour-brightness-limit 2022-11-05 16:48:56 +01:00
Dean Herbert
566738494f
Merge pull request #20952 from OliBomby/bezier-convert
Add conversion algorithm for lazer slider curves to work with stable
2022-11-04 16:49:51 +09:00
Dean Herbert
3ec9686e58 Fix test failures and rename configuration value to match better 2022-11-02 18:15:18 +09:00
Dean Herbert
99ba7c29dd Change range to 0-100% and rename to "normalisation" 2022-11-02 13:47:11 +09:00
Dean Herbert
2f3c80f884 Remove toggle and change method of application to blend with original colour 2022-11-02 13:08:29 +09:00
Dean Herbert
a01602e63c Merge branch 'master' into combo-colour-brightness-limit 2022-11-02 12:09:27 +09:00
Bartłomiej Dach
ac554c644d
Merge branch 'master' into fix-slider-sv-snap 2022-11-01 13:19:46 +01:00
Dean Herbert
f014acfc8d Fix DrawableHitObject.AccentColour not being updated if object entry is not attached 2022-11-01 19:34:53 +09:00
Dean Herbert
27af91003b Merge branch 'master' into combo-colour-brightness-limit 2022-11-01 17:50:26 +09:00
Dean Herbert
29bc653d24 Remove incorrect double multiplication and add missing test coverage 2022-11-01 17:17:54 +09:00
Dean Herbert
2a88409dfe Fix time snap of sliders not matching when SV is not 1.0x
This regressed with https://github.com/ppy/osu/pull/20850 because the
function was used in other places which expect it to factor slider
velocity into the equation.

Rather than reverting, I've added a new argument, as based on the method
naming alone it was hard to discern whether SV should actually be
considered.

The reason for the change in #20850 was to avoid the SV coming in from a
reference object which may not have a correct SV in the first place. In
such cases, passing `false` to the function will give the expected
behaviour.
2022-11-01 15:12:58 +09:00
Dean Herbert
706adfb28c Improve messaging when ruleset load fails 2022-11-01 13:57:34 +09:00
OliBomby
0461303895 Change return type to List 2022-10-31 11:39:41 +01:00
OliBomby
414e21c657 Added xmldoc to public methods 2022-10-31 11:39:14 +01:00
Dean Herbert
94dd4045f1 Remove borrowed framework code 2022-10-31 15:42:17 +09:00
Dean Herbert
31ba77e378 Merge branch 'master' into bezier-convert 2022-10-31 15:41:08 +09:00
andy840119
a1a9238bd1 Use empty string instead of null because issue template not accept null. 2022-10-30 16:31:07 +08:00
andy840119
505ec800da File name should be nullable. 2022-10-30 16:29:54 +08:00
andy840119
db48a57fa7 Remove nullable disable annotation in some checks class. 2022-10-30 16:28:49 +08:00
andy840119
24c27e62f6 Remove nullable disable annotation in the issue and issue template-related class. 2022-10-30 16:25:15 +08:00
Dean Herbert
42eafe318c Remove various simple obsoletions 2022-10-28 13:20:58 +09:00
OliBomby
86d5fcc26d Added tests 2022-10-26 19:30:42 +02:00
OliBomby
77dcd0fae2 Create BezierConverter.cs 2022-10-26 17:21:20 +02:00
Dean Herbert
6b53ea3400 Enable distance snapping when DS value is changed via user interaction 2022-10-26 13:37:01 +09:00
Dean Herbert
7d59bc6e2f Merge branch 'grid-momentary-shortcuts' into read-current-distance-snap 2022-10-26 13:28:04 +09:00
Dean Herbert
54ae16badc Move distance snap toggle button implementation to DistancedHitObjectComposer 2022-10-26 13:27:23 +09:00
Dean Herbert
8d9a85e9e5
Fix typos in xmldoc
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-10-26 13:14:12 +09:00
Bartłomiej Dach
48057412f5
Merge branch 'master' into grid-momentary-shortcuts 2022-10-25 22:17:08 +02:00
Bartłomiej Dach
3d31c9bbc5
Merge branch 'master' into beat-snap-divisor-hotkey 2022-10-25 20:32:32 +02:00
Dean Herbert
da93849b80 Rename some pieces and better document SampleBankInfo 2022-10-25 14:55:33 +09:00
Dean Herbert
2b850694fa Merge branch 'allow-distance-grid-snap' into grid-momentary-shortcuts 2022-10-25 14:10:45 +09:00
Dean Herbert
d0e6bda9ef Stop HitObjectComposer from handling Shift+Number keys 2022-10-24 15:19:36 +09:00
Dean Herbert
f516e32949 Improve UI a bit 2022-10-21 23:35:53 +09:00
Dean Herbert
bb921ff9a7 Fix incorrect current DS value when inside a slider 2022-10-21 23:35:47 +09:00
Dean Herbert
f6de366766 Combine display and button into one control 2022-10-21 23:21:07 +09:00
Dean Herbert
645a84b1d6 Display current distance snap and add button to update to use it 2022-10-21 22:58:36 +09:00
Dean Herbert
7dc03097ff Change distance snap to never account for slider velocity
This is a nuanced detail that was implemented incorrectly from the
outset. When mapping, generally a mapper chooses the distance spacing
with no regard to the SV. It has always been common to have a lower
or higher distance spacing than SV, but with the way the lazer editor
has worked, the SV was multiplied into the distance snap grid display,
incorectly changing its spacing depending on the "reference object"
(which is usually the previous hitobject chronologically).
2022-10-21 21:51:24 +09:00
Dean Herbert
6cdfddea62 Always enable distance spacing when adusting distance space multiplier 2022-10-21 16:10:55 +09:00
Dan Balasescu
703a8afb11
Merge pull request #20809 from peppy/fix-taiko-broken-drum-roll-ticks
Fix taiko drum roll ticks sometimes overflowing outside the drum roll itself
2022-10-21 12:56:14 +09:00
Dean Herbert
5c13c443ff Fix incorrect fallback logic
Regressed when attempting to share implementation of binary search.
2022-10-20 23:08:44 +09:00
Dean Herbert
26860a903e Refactor implementation to support hitobjects nested multiple levels deep 2022-10-20 22:30:30 +09:00
Dean Herbert
b9f41611a7 Fix bank potentially being overwritten during placement 2022-10-19 21:48:18 +09:00
Dean Herbert
50e24ddd87 Add icon and radio button logic 2022-10-19 21:35:08 +09:00
Dean Herbert
d237c818f6 Fix nested objects in overlapping scrolling hit object container ruleset not using correct reference time 2022-10-18 16:15:21 +09:00
Dean Herbert
ec3761ced9 Standardise control point search logic in OverlappingScrollAlgorithm
Was using a very local algorithm which I cannot guarantee is correct.
I'd rather it just use the one used everywhere else.
2022-10-18 16:01:05 +09:00
Dean Herbert
860214c22a Adjust paddings to feel better now that backgrounds are visible of toolboxes 2022-10-18 14:38:45 +09:00
Dean Herbert
6a7f6c76ff Fix osu! editor padding being applied to toolboxes
The result of https://github.com/ppy/osu/pull/20739 and https://github.com/ppy/osu/pull/20738 having unintended side effects when applied together.
2022-10-18 14:32:00 +09:00
Dean Herbert
ccbac08985
Merge pull request #20593 from ekrctb/catch-editor-height
Allow arbitrary height catch editor
2022-10-18 12:10:49 +09:00
Salman Ahmed
ba72f13f54 Merge branch 'master' into hide-mouse-on-keyboard-input 2022-10-14 22:26:30 +03:00
Dean Herbert
32c3e35762 Change background colour to a lighter tint to avoid clash with slider bars 2022-10-14 19:38:27 +09:00
Dan Balasescu
8a88339e78 Allow combo colour normalisation to be disabled 2022-10-14 14:37:24 +09:00
Dan Balasescu
15db65c037 Extract to struct, add dictionary term 2022-10-14 14:12:53 +09:00
Dean Herbert
4d99c7002b Add background behind editor toolbox groups 2022-10-13 16:36:19 +09:00
Dan Balasescu
4149235e63 Limit minimum brightness of combo colours 2022-10-13 14:05:33 +09:00
Salman Ahmed
4fb156ef4e Update xmlodc and add nullability attributes 2022-10-13 00:16:42 +03:00
Salman Ahmed
7a6ecaff0d Remove default invisible cursor container from rulesets 2022-10-12 17:50:47 +03:00
Salman Ahmed
84fdd2e107 Improve flashlight display on break periods 2022-10-11 17:16:57 +03:00
Salman Ahmed
9b45a9cf76 Rename various cursor symbols
- `IProvideCursor.MenuCursor` -> `IProvideCursor.Cursor`
 - `MenuCursor` -> `MenuCursorContainer
2022-10-11 16:21:01 +03:00
Dean Herbert
f060e6a780 Implement hold "sliding" samples in osu!mania 2022-10-11 16:31:37 +09:00
Dean Herbert
5a43cb6bb2
Merge pull request #20606 from sw1tchbl4d3r/barline_generator_improvements
Barline generator improvements
2022-10-11 01:31:30 +09:00
sw1tchbl4d3
5a4196fd51 Make currentEffectPoint non-nullable 2022-10-10 15:34:29 +02:00
sw1tchbl4d3
d389808427 Make effect point search more efficient 2022-10-10 14:00:26 +02:00
sw1tchbl4d3
eae32ca483 Switch DefinitelyBigger to AlmostBigger to account for fp errors 2022-10-10 09:39:40 +02:00
Salman Ahmed
2d4f390372 Remove non-smoke key bindings on "Relax" mod instead 2022-10-09 17:14:16 +03:00
sw1tchbl4d3
63ffaa6929 Respect OmitFirstBarLine effect 2022-10-07 20:38:32 +02:00
sw1tchbl4d3
903c8612c8 Move endTime to next timing point 2022-10-07 20:34:31 +02:00
Dan Balasescu
bce20e0a59 Merge branch 'master' into adjust-flashlight 2022-10-07 14:45:30 +09:00
Dan Balasescu
7385ef3e1b Extract combo scale to virtual function 2022-10-07 14:26:19 +09:00
ekrctb
9247ff3e0a Allow changing scrolling speed in catch editor
Scroll speed is not saved and doesn't affect gameplay.
It is purely a feature for a better visualization.
It is currently bind to scroll speed increase/decrease.
Default F3/F4 crashes with editor shortcuts so it has to be changed.
2022-10-06 18:06:16 +09:00
ekrctb
1cccd03480 Fix scrolling nested hit object lifetime not set 2022-10-04 15:17:14 +09:00
ekrctb
781f5420b0 Add test for scrolling hit object lifetime 2022-10-04 15:17:11 +09:00
ekrctb
5d80950eaf Compute lifetime from entry in scrolling container 2022-10-04 15:12:28 +09:00
Dan Balasescu
deae7cff60 Adjust flashliht scaling to match classic 2022-10-03 18:38:29 +09:00
Dan Balasescu
0df217d85c Add ability to adjust flashlight smoothness 2022-10-03 18:24:56 +09:00
Dan Balasescu
1890a66b28
Merge pull request #20509 from o-dasher/cleanup-setting-sources
Removes unnecessary setting sources specifications
2022-09-28 17:55:42 +09:00
Dan Balasescu
cbed268ac9
Merge pull request #20510 from sw1tchbl4d3r/high_bpm_judgements
Clamp `LifetimeStart` of `HitObject`s to their judgement windows
2022-09-28 17:49:35 +09:00
sw1tchbl4d3
0cffbb7562 Clamp LifetimeStart of HitObject's to their judgement windows 2022-09-27 16:54:24 +02:00
o-dasher
f3e25eacad Removes unnecessary setting sources specifications 2022-09-27 09:25:58 -04:00
Dean Herbert
c4887269f7 Avoid performing a realm write if there are no changes pending in RulesetConfigManager 2022-09-26 14:55:23 +09:00
o-dasher
feadac1f79 Cleanup all other leftover binding instantiation 2022-09-25 16:02:40 -04:00
o-dasher
537796c3a1 Cleanup mod bindings 2022-09-25 15:49:22 -04:00
Dean Herbert
78625fda7d Improve exception when attempting to call DrawableHitObject.ClearInternal 2022-09-22 14:44:03 +09:00
O Thiago
a4e9c7711c Fix when flashlight shrinking takes place 2022-09-18 18:59:17 -04:00
O Thiago
407b104116 Revert changes
This reverts commit beef3b418a.

Revert "Use linq expression for handling breaks"

This reverts commit 8464a1941b.

Revert "renames variables to make more logical sense"

This reverts commit 3b87ecf56c.

Revert "Removes overhead when not combo based size"

This reverts commit ac4229e3d4.
2022-09-18 18:57:53 -04:00
O Thiago
ac4229e3d4 Removes overhead when not combo based size 2022-09-18 00:38:01 -04:00
O Thiago
3b87ecf56c renames variables to make more logical sense 2022-09-18 00:19:40 -04:00
O Thiago
8464a1941b Use linq expression for handling breaks 2022-09-17 23:49:23 -04:00
O Thiago
beef3b418a Simplifies size calculation 2022-09-17 23:41:23 -04:00
Dean Herbert
c7f8f948b9 Rename CreateLegacySkinProvider to CreateSkinTransformer and apply to all skins 2022-09-15 20:18:10 +09:00
Dan Balasescu
96a89f4fca
Merge pull request #20319 from peppy/remove-ef-migration
Remove all entity framework code and migrations
2022-09-15 19:15:23 +09:00
Dean Herbert
28b15e232d Remove all EF models 2022-09-15 16:59:36 +09:00
Dan Balasescu
e56ea58e71 Fix up xmldoc 2022-09-15 16:06:21 +09:00
Dan Balasescu
c847cc521e Add some inline comments 2022-09-15 16:00:35 +09:00
Dan Balasescu
68e4d22898 Precondition against entryMap intead of parentMap 2022-09-15 15:43:15 +09:00
Dan Balasescu
31bc067dd1 Don't store nulls to parentMap 2022-09-15 15:38:44 +09:00
Dean Herbert
5dc0d32e42 Apply NRT to hitobject lifetime related classes 2022-09-14 15:24:20 +09:00
ekrctb
c59aa57450 Remove createLifetimeEntry from HitObjectEntryManager 2022-09-14 15:19:33 +09:00
ekrctb
47539e2129 Add doc comments to HitObjectEntryManager 2022-09-14 15:19:05 +09:00
ekrctb
bde390828b Manage entries of nested hit objects in HitObjectEntryManager
- Fix nested hit objects are leaked when parent hit object is edited or deleted
2022-09-14 15:19:05 +09:00
ekrctb
a9eba27129 Factor out pooling logic from Playfield 2022-09-14 15:19:05 +09:00
Dean Herbert
6bf6b7e125 Fix null considerations in DrawableRulesetDependencies 2022-09-13 13:13:38 +09:00
Dean Herbert
9c2b0efbc7
Merge pull request #20262 from smoogipoo/scoreprocessor-computeaccuracy
Add `ScoreProcessor.ComputeAccuracy()`
2022-09-13 11:55:02 +09:00
Salman Ahmed
0ca4be5e5b Fix one more inspection 2022-09-13 03:45:31 +03:00
Salman Ahmed
69b9bae3b3
Merge branch 'master' into scoreprocessor-computeaccuracy 2022-09-13 03:09:52 +03:00
Dan Balasescu
27d4016ccb Add ScoreProcessor.ComputeAccuracy() 2022-09-12 18:37:55 +09:00
andy840119
3d7367a842 Move the CreateConvertibleReplayFrame() into the base ruleset class for avoid api breaking change in the customized ruleset. 2022-09-10 11:07:23 +08:00
andy840119
e62999fb16 Merge branch 'master' of https://github.com/ppy/osu into remove-the-nullable-disable-in-the-ruleset
# Conflicts:
#	osu.Game.Rulesets.Catch/CatchRuleset.cs
#	osu.Game.Rulesets.Osu/OsuRuleset.cs
#	osu.Game.Rulesets.Taiko/TaikoRuleset.cs
#	osu.Game/Rulesets/Ruleset.cs
2022-09-10 10:40:12 +08:00
Dean Herbert
ec21ab8171 Reduce ramp mod multipliers in line with other difficulty change mods for now
Closes https://github.com/ppy/osu/issues/20204.

Will require reprocessing of everything server-side.
2022-09-09 16:39:57 +09:00
Dean Herbert
d4afc3629c
Merge branch 'master' into kps 2022-09-08 23:00:36 +09:00
Dan Balasescu
9aab502adc
Merge pull request #20157 from peppy/true-gameplay-rate
Refactor `TrueGameplayRate` to account for only gameplay adjustments, no matter what
2022-09-08 19:54:32 +09:00
Dean Herbert
6729bb3e1a Change FrameStableClock to inherit IGameplayClock 2022-09-08 18:24:18 +09:00
Dean Herbert
c6521e4c72 Rename ordering helper method 2022-09-08 17:50:27 +09:00
Dan Balasescu
b559d4ecdf Rename GameplayAdjustments -> AdjustmentsFromMods 2022-09-08 17:14:06 +09:00
Acid Chicken (硫酸鶏)
267465df18
chore(osu.Game): combine Osu.Colour.{Draw,Text}ForHitResult into OsuColour.ForHitResult 2022-09-07 23:34:46 +09:00
Acid Chicken (硫酸鶏)
54f0bb797e
refactor(osu.Game): remove nullable optouts in HitResult.cs 2022-09-07 23:32:45 +09:00
Dean Herbert
75d0deef72 Apply proposed changes to remove inheritance from MasterGameplayClockContainer 2022-09-07 17:49:05 +09:00
Dean Herbert
bc1212f4e6 Change NonGameplayAdjustments to GameplayAdjustments and convert TrueGameplayRate to extension method 2022-09-06 22:26:46 +09:00
Dean Herbert
44b456e216 Use gameplay clock's TrueGameplayRate in FrameStabilityContainer? 2022-09-05 23:38:22 +09:00
Acid Chicken (硫酸鶏)
074d2a7a3a
chore(osu.Game): provide ordering index for HitResult 2022-09-05 02:01:44 +09:00
Acid Chicken (硫酸鶏)
5f0832ead7
refactor(osu.Game): separate OsuColour.ForHitResult by usage 2022-09-05 01:58:57 +09:00
Dean Herbert
6a35b233e5 Merge branch 'master' into remove-dispose-updates 2022-09-01 23:03:19 +09:00
Dean Herbert
7337d4c1aa Merge branch 'master' into kps 2022-08-31 15:41:42 +09:00
Dan Balasescu
e3e204001e
Merge pull request #19907 from peppy/ruleset-api-versioning
Add ruleset API versioning
2022-08-29 18:50:01 +09:00
Dean Herbert
9b830d063f
Merge pull request #20010 from smoogipoo/scoreprocessor-no-rewrite-statistics
Don't include misses in failed score statistics
2022-08-29 17:07:13 +09:00
Dean Herbert
105aa01e7d Update usages of RemoveInternal 2022-08-29 15:57:40 +09:00
Dean Herbert
a215d009fe Update Remove/RemoveRange/RemoveAll calls in line with framework changes 2022-08-29 15:57:40 +09:00
Dan Balasescu
81ac0daba8 Update xmldoc 2022-08-29 15:51:12 +09:00
Dan Balasescu
b2e80ca7f0 Don't include misses in failed score statistics 2022-08-29 15:27:19 +09:00
Dean Herbert
90b9c02ac6 Remove "internal" identifier as unnecessary 2022-08-29 14:01:15 +09:00
Dan Balasescu
c0b13c7e1f Refactor ScoreProcessor ComputeScore() methods 2022-08-29 13:51:10 +09:00
Dan Balasescu
91e044542d
Merge pull request #19828 from peppy/no-gameplay-clock-gameplay-offset
Introduce `FramedBeatmapClock` (and use in gameplay flow)
2022-08-26 20:21:34 +09:00
Dan Balasescu
9bca7223f6 Adjust xmldoc to better explain score contribution 2022-08-25 17:16:30 +09:00
Dan Balasescu
e2e10a8f26 Add some explanatory comments to conditions 2022-08-25 17:14:53 +09:00
Dean Herbert
3a17c6df08 Merge branch 'master' into no-gameplay-clock-gameplay-offset 2022-08-25 16:24:55 +09:00
Salman Ahmed
eb57ea76ab
Merge branch 'master' into legacy-combo-increase 2022-08-25 09:46:12 +03:00
Ryuki
5cddc7ed1f
Code cleanup (CPS) 2022-08-24 17:13:23 +02:00
Dan Balasescu
e7cbb6c63d Fix test failures/nullability 2022-08-24 19:53:16 +09:00
Dan Balasescu
c9ff39f8c3 Add HitResult.LegacyComboIncrease 2022-08-24 19:46:41 +09:00
Dan Balasescu
5ec95c9269 Update ScoreProcessor to make use of MaximumStatistics 2022-08-24 19:46:41 +09:00
Dean Herbert
f3847b90fd Tidy up attach logic 2022-08-24 19:36:01 +09:00
Dean Herbert
5129716612 Merge branch 'master' into kps 2022-08-24 18:18:45 +09:00
Dan Balasescu
f70af779a4 Add maximum statistics to ScoreInfo/SoloScoreInfo 2022-08-24 17:28:41 +09:00
Dean Herbert
ec61a94dc9 Merge branch 'master' into no-gameplay-clock-gameplay-offset 2022-08-23 17:36:06 +09:00
Dean Herbert
758a554180 Add basic check for correct ruleset API version 2022-08-22 16:35:08 +09:00
Dean Herbert
f5710d8000 Add ruleset API versioning 2022-08-22 16:35:08 +09:00
Dan Balasescu
3fb3a18e68
Merge pull request #19906 from peppy/fix-editor-crash-mobile
Fix editor crashing on mobile releases
2022-08-22 16:31:19 +09:00
Dean Herbert
058d67f8e8
Merge pull request #19695 from naoei/ruleset-localization
Change most ruleset-accessible string types to Localisable strings
2022-08-22 16:13:23 +09:00
Dean Herbert
19bba143ee Fix editor crashing on mobile releases 2022-08-22 15:57:24 +09:00
Dean Herbert
d199b3b100 Update GetVariantName to also support localisation 2022-08-22 14:51:00 +09:00
Dean Herbert
9d31f61ca9 Don't throw when a ruleset type is completely missing 2022-08-22 14:35:44 +09:00
Nao
189a407cb1
Merge branch 'master' into ruleset-localization 2022-08-20 21:39:10 -04:00
Dean Herbert
da407aa827
Merge branch 'master' into kps 2022-08-20 15:24:58 +09:00
Dean Herbert
2c6fd1ec6e Fix `GameplayClockContainer potentially resetting external seeks 2022-08-18 18:54:10 +09:00
Dean Herbert
b0a740071e Centralise logging of failed ruleset loads 2022-08-18 16:14:38 +09:00
Dean Herbert
e0edaf996f Test ruleset compatibility during initial startup to avoid runtime errors
As we continue to break the ruleset API, it makes more sense to
proactively check known changes and bail early during ruleset loading to
avoid a user experiencing a crash at a random point during execution.

This is a RFC and needs to be tested against known broken rulesets.
There might be some other calls we want to add in addition to the ones
I've listed.
2022-08-18 16:03:38 +09:00
Dean Herbert
43442dbf65 Merge branch 'even-less-gameplay-clock' into even-nicer-frame-stability-clock 2022-08-15 20:22:30 +09:00
Dean Herbert
87760bbc06 Fix IsCatchingUp not being in correct state 2022-08-15 20:17:48 +09:00
Dean Herbert
1fc3d005c0 Seal FrameStabilityContainer
No one should ever derive from this class. It is already too complex.
2022-08-15 19:31:02 +09:00
Dean Herbert
fff2b57905 Tidy up and document FrameStabilityContainer 2022-08-15 19:28:12 +09:00
Dean Herbert
9bc2e91de0 Fix incorrect handling of reference clocks when no parent IGameplayClock is available 2022-08-15 19:19:19 +09:00
Dean Herbert
828b6f2c30 Remove unnecessary setClock shenanigans 2022-08-15 19:19:19 +09:00
Dean Herbert
27569e2ed5 Remove FrameStableClock (and redirect usages to FrameStabilityContainer) 2022-08-15 19:19:19 +09:00
Dean Herbert
c8764cb333 Move all usage of GameplayClock to IGameplayClock 2022-08-15 18:30:53 +09:00
Dean Herbert
95c1b488a7 Add non-null assertion to FrameStabilityContainer 2022-08-15 18:08:49 +09:00
Nao
c940f5abcb
Merge branch 'master' into ruleset-localization 2022-08-14 15:17:44 -04:00
naoei
45e9eda9e7 Localise hit result name 2022-08-14 14:57:02 -04:00
Ryuki
2aa3a1b50d
Rename all "KeysPerSecond" usages to "ClicksPerSecond" 2022-08-14 20:12:11 +02:00
Ryuki
9dc806506e
Make ActionListener and KeysPerSecondCalculator not rely on events to add timestamps 2022-08-14 19:31:14 +02:00
Dan Balasescu
9d1b0b5836 Revert sealing 2022-08-12 22:32:27 +09:00
Dean Herbert
e5e9841652 Apply multiple other mod debuffs as decided in pull request discussion 2022-08-12 18:58:09 +09:00
Dean Herbert
ac4213ecee Adjust relax mod multiplayer to 0.5x
Has previously been discussed internally. Probably good to get this out
before the next full reprocess of scores server-side.

The multiplier here was @smoogipoo's suggested value. I'd be willing to
go lower if this is seen at too high, but it should be a round number to
make it easy for users to understand the max score available to them.
2022-08-12 12:30:13 +09:00
Ryuki
9b252b1d81
Make KeysPerSecondCalculator dependency in HUDOverlay nullable 2022-08-11 11:58:30 +02:00
Ryuki
3c6461b9e4
Remove KPS acronym usage 2022-08-11 10:01:39 +02:00
naoei
1e356f6137 Revert localisation for GetDisplayNameForHitResult
Came across an issue where `LeaderboardScoreTooltip` attempts to capitalize all letters for the `displayName`.

Unsure if I should completely ignore it and localise it anyway.
2022-08-10 16:03:59 -04:00
naoei
60dae70a18 Change mod description type to LocalisableString 2022-08-10 15:54:48 -04:00
naoei
8cb2e11766 Change most ruleset-accessible string types to Localisable strings 2022-08-10 15:51:11 -04:00
Dan Balasescu
f9c6dc314b
Merge pull request #19678 from peppy/fix-file-comparisons-many-places
Fix audio track not correctly advancing when changing between certain beatmaps
2022-08-10 20:38:14 +09:00
Dean Herbert
ac99c1ad69 Migrate the majority of existing file lookups to use new extension methods 2022-08-10 16:01:16 +09:00
its5Q
abca3d1b2a Prefix common strings for context 2022-08-10 00:35:19 +10:00
Ryuki
b52a07c16a
Use DI to provide dependencies for KPS Calculator and improve input
gathering

KPS Calculator now uses DI to retrieve the clocks. Using `HUDOverlay` it
is now cached for `KeysPerSecondCounter`s to resolve it. This also
allows to make an "Attach" flow like `KeyCounter`.
2022-08-08 21:54:06 +02:00
its5Q
5080d62e77 Add missing localisation for settings enums 2022-08-08 21:51:23 +10:00
Dan Balasescu
802dc90cb1 Adjust using directives for vertices 2022-08-05 20:37:33 +09:00
Dan Balasescu
b4e55f7309 Apply IRenderer changes 2022-08-02 19:50:57 +09:00
Dan Balasescu
dc49862466 Merge branch 'irenderer-shaders' into irenderer-textures 2022-08-02 19:25:24 +09:00
Dan Balasescu
a2a913ab52 Merge branch 'irenderer-batches' into irenderer-textures 2022-08-02 19:25:08 +09:00
Bartłomiej Dach
cbabc4886c
Convert ModPreset to realm object 2022-07-31 22:10:15 +02:00
Dan Balasescu
e06f39a69f Apply IRenderer shader changes 2022-07-30 01:29:11 +09:00
Dan Balasescu
09979d44aa Apply DrawNode batching changes 2022-07-29 23:32:09 +09:00
Dan Balasescu
155dac55d0 Apply DrawNode parameter changes 2022-07-29 22:33:34 +09:00
Dan Balasescu
ce694123eb Move spectator begin/end playing to SubmittingPlayer 2022-07-28 20:44:04 +09:00
Dean Herbert
ef10145d6f Rename MenuCursorContainer and clean up code 2022-07-26 14:11:52 +09:00
Bartłomiej Dach
d0e15d04cc
Merge branch 'master' into mod-overlay/preset-panel 2022-07-22 19:23:09 +02:00
Dan Balasescu
d9105c9785
Merge pull request #19272 from peppy/beatmap-background-reprocessing
Add background beatmap processing
2022-07-22 20:33:26 +09:00
Bartłomiej Dach
de0a076eb6
Add model class for mod presets 2022-07-21 23:29:21 +02:00
Dean Herbert
68f28ff660 Add last applied version to RulesetInfo 2022-07-21 18:15:25 +09:00
Dean Herbert
aca19a005e Add versioning to difficulty calculators 2022-07-21 18:15:25 +09:00
Salman Ahmed
a97170a272 Keep Rank bindable enabled on score fail 2022-07-21 08:16:17 +03:00
Salman Ahmed
9df49db45f Include bonus/ignore judgements in statistics fill logic 2022-07-21 08:13:09 +03:00
Salman Ahmed
ad09e728fd Move Passed assignment inside FailScore 2022-07-21 08:12:06 +03:00
Salman Ahmed
c1bcbd9c8a Fix fail score not handling bonus/tick-only beatmaps 2022-07-21 07:20:59 +03:00
Salman Ahmed
0f0b19da4a Populate score with remaining "miss" statistics on fail/exit 2022-07-21 06:01:36 +03:00
Salman Ahmed
c4089b71bd Store maximum score results from simulated autoplay 2022-07-21 06:00:41 +03:00
Salman Ahmed
6ce6f6f7df
Merge branch 'master' into remove-score-multiplier-on-custom-mod-settings 2022-07-20 08:57:43 +03:00
Dan Balasescu
ebb9861377
Merge branch 'master' into remove-nullable-disable-in-the-mods 2022-07-20 13:28:28 +09:00
Salman Ahmed
4210ec6502 Merge branch 'master' into remove-score-multiplier-on-custom-mod-settings 2022-07-19 19:21:26 +03:00
為什麼
317558f876 Mark the shader as non-nullable because shader should always has the value.
And initialize the breaks to avoid get the null instance.
2022-07-19 20:39:41 +08:00
為什麼
3af093cb27 Remove the null check because bindable should always have the value. 2022-07-19 20:39:41 +08:00
為什麼
ce1bb206c8 Initialize some bindables for prevent get the null instance. 2022-07-19 20:39:41 +08:00
andy840119
1f9f2b413e Remove the nullable disable annotation.
Also, mark as nullable for some properties.
2022-07-19 20:39:41 +08:00
Salman Ahmed
8f80a22ef9 Fix osu! and catch hitobjects no longer scaled to 1 by default 2022-07-19 07:00:13 +03:00
Salman Ahmed
5ddb5a3d74 Introduce HitObjectProperty<T> 2022-07-19 05:39:10 +03:00
Dean Herbert
51f91fe62e Update naming 2022-07-18 16:17:20 +09:00
Dean Herbert
eddf106f7c
Merge branch 'master' into score-country-storage 2022-07-18 16:12:40 +09:00
Salman Ahmed
6bfa5e53e0 Add property for whether mod uses default configuration 2022-07-18 07:29:03 +03:00
NotGumballer91
028653eb97
Update ModAdaptiveSpeed.cs 2022-07-18 00:10:49 +08:00
NotGumballer91
1caab78bdc
Update ModAutoplay.cs 2022-07-18 00:09:31 +08:00
Salman Ahmed
4e7156cee8 Store user country on databased scores 2022-07-16 06:39:05 +03:00
Dean Herbert
8dbe24fd7c Simplify colour assigning logic and remove system mod colour for now 2022-07-12 14:36:50 +09:00
為什麼
8e1ed1c621 Mark CreateHitObjectComposer() accept null.
And add the null check in the test case.
2022-07-10 10:15:27 +08:00
為什麼
57c6763556 Mark the CreateBeatmapProcessor() as nullable.
Also, should add the null check in the working beatmap.
2022-07-10 10:15:27 +08:00
為什麼
d39f53f1f0 Mark CreateConfig() return type as nullable because it's not required all ruleset to implement.
Also, remove nullable disable annotation for all using classes.

Setting store can be nullable because `RulesetConfigManager()` can accept null setting store.
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
為什麼
e67cb4c905 Mark create beatmap verifier as nullable because seems it's not requirement to be implemented. 2022-07-10 10:10:43 +08:00
為什麼
4a503bab0a Remove unnecessary attribute. 2022-07-10 10:10:43 +08:00
為什麼
855debd5f6 Remove nullable disable annotation and mark some return value as nullable. 2022-07-10 09:29:17 +08:00
Adam Baker
7ced84b7ef Replace switch statement with ForModType
In order to make `highlightedColour` dependent on the mod type color, the color is converted to an `osu.Framework.Graphics.Colour4` and calls `Lighten`.
2022-07-08 03:23:58 -05:00
Adam Baker
89f1c75f7a Update mod icon colors 2022-07-07 21:57:18 -05:00
andy840119
59e3d4b9e5 Remove the nullable disable annotation in the Ruleset.Filter namespace. 2022-07-03 21:00:54 +08:00
andy840119
ea573f314e Remove the nullable disable annotation in the Rulesets.Replays namespace in the osu.game project. 2022-07-02 13:08:25 +08:00
Dan Balasescu
edc4ace17e Attach DT with NC, SD with PF, and Cinema with Autoplay 2022-06-30 11:52:30 +09:00
Dean Herbert
6c64cea057 Catch a second location 2022-06-29 18:56:15 +09:00
Dean Herbert
b092e6937a Guard against ruleset icon creation failures to avoid whole game death 2022-06-29 18:51:07 +09:00
Dan Balasescu
2989803b71 Merge branch 'master' into speed-acc-scaling 2022-06-29 16:15:20 +09:00
Joseph Madamba
aacded0ecf Fix difficulty adjust settings having more padding on sliders 2022-06-28 07:33:05 -07: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
Dean Herbert
30eebf3511 Merge branch 'master' into c-sharp-10 2022-06-24 21:22:33 +09:00
Bartłomiej Dach
26c5b59f6d
Replace usages of string.To{Lower,Upper}() 2022-06-24 11:57:45 +02:00
Dean Herbert
f71f6302fd Remove unnecessary null casts 2022-06-24 14:50:11 +09:00
Dan Balasescu
a7de43ade6 Add attribute ID 2022-06-21 19:31:45 +09:00
Dan Balasescu
e0c82d11ab Convert == usages to ReferenceEquals 2022-06-20 16:56:19 +09:00
Dean Herbert
bd5037fcad Fix new hitobject placements not taking on the existing sample settings
Similar to velocity / difficulty points, a user expectation is that
volume and sample settings will be transferred to newly placed objects
from the most recent one.

Closes https://github.com/ppy/osu/issues/18742.
2022-06-18 13:49:59 +09:00
Dan Balasescu
fd9902e816 Manual #nullable processing 2022-06-17 16:38:35 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dan Balasescu
ea191da496
Merge pull request #18728 from peppy/fix-unsafe-sample-playback
Fix unsafe sample playback in `GameplaySampleTriggerSource`
2022-06-17 12:26:46 +09:00
Dean Herbert
ec53d87c30 Fix unsafe sample playback in GameplaySampleTriggerSource
Resolves https://github.com/ppy/osu/issues/18727.

Added delay from `Schedule` should be minimal as it is always called
from the `Update` thread (input propagation) anyway.
2022-06-16 16:04:57 +09:00
Bartłomiej Dach
30382b0445
Fill out GetModsFor() xmldoc and annotate items as non-null 2022-06-15 17:40:15 +02:00
Gabe Livengood
6e64a8f55e
use event to trigger failure 2022-06-10 13:13:35 -04:00
Gabe Livengood
21c5499da1
remove arbitrary from method name 2022-06-10 13:11:17 -04:00
Gabe Livengood
4b73c423bd don't specify icon 2022-06-09 18:58:22 -04:00
Dan Balasescu
6d2a2ba7d6 Rename Position -> Index 2022-06-09 18:49:11 +09:00
Dan Balasescu
f0ef2e610e Merge branch 'master' into dho 2022-06-09 18:29:14 +09:00
Gabe Livengood
99dc2fbc3e
specify culture 2022-06-09 00:15:15 -04:00
Gabe Livengood
fdbec4f8c0
display tooltip accuracy as percentage 2022-06-08 23:44:34 -04:00
Gabe Livengood
dc75d55f72
allow modfailcondition to arbitrarily trigger fail 2022-06-08 14:02:15 -04:00
Gabe Livengood
a805f78909
Merge branch 'master' into mod-accuracy-challenge 2022-06-06 12:11:47 -04:00
Gabe Livengood
6710df94a7
change max accuracy to 99% 2022-06-06 12:05:45 -04:00
Dan Balasescu
6351f652a2 Fix combo starting at 0 when spectating 2022-06-06 17:56:25 +09:00
Dan Balasescu
a638392e81 Rename member 2022-06-02 16:35:50 +09:00
Dan Balasescu
055845d4f5 Throw exception on access before ApplyBeatmap() 2022-06-02 16:34:45 +09:00
Dan Balasescu
e551e48697 Use ScoreInfo overload in more places 2022-06-02 11:01:46 +09:00
Dan Balasescu
425390e13b Refactor to reduce nested conditions 2022-06-01 09:54:47 +09:00
Dan Balasescu
50c3dfca31 Apply code reviews 2022-06-01 09:54:47 +09:00
Dan Balasescu
1e0ee1b214 Expose MaximumScoringValues for user consumption 2022-05-31 19:49:37 +09:00
Dan Balasescu
93240073a6 Rename field + rewrite xmldoc a bit 2022-05-31 19:40:07 +09:00
Dan Balasescu
28d8799e11 Add overloads to + document + expose ExtractScoringValues 2022-05-31 19:40:07 +09:00
Dan Balasescu
d6d56ee22d Fix unintentional truncation 2022-05-31 19:40:07 +09:00
Dan Balasescu
44ca350822 Reset minimal scoring values from frames 2022-05-31 19:40:07 +09:00
Dan Balasescu
20988be6bb Fix incorrect value 2022-05-31 19:40:07 +09:00
Dan Balasescu
6ccdb61853 Use new ComputeScore() overload in more cases 2022-05-31 19:40:02 +09:00
Dan Balasescu
2289812801 Add method to compute score from ScoringValues 2022-05-31 19:39:53 +09:00
Dan Balasescu
a809a19eec Remove getBonusScore() 2022-05-31 19:39:42 +09:00
Dan Balasescu
d0e3e50ca7 Extract score statistics directly into ScoringValues 2022-05-31 19:39:42 +09:00
Dan Balasescu
af0f934e1a Move raw ScoreProcessor values into ScoringValues struct 2022-05-31 19:39:38 +09:00
Dan Balasescu
132c94c1b5 Remove Ruleset parameter from ResetFromReplayFrame() 2022-05-31 17:16:23 +09:00
Bartłomiej Dach
e511c1dfff
Merge branch 'master' into use-normalised-precise-scrolling 2022-05-27 16:55:13 +02:00
apollo-dw
66a6467403 Pass object position to the object 2022-05-26 19:26:14 +01:00
Gabe Livengood
58d4aeb4fb
add accuracy calculation comment 2022-05-25 15:11:06 -04:00
Gabe Livengood
5944a15c30 review pass eins 2022-05-24 20:04:57 -04:00
apollo
bf35ded871
Correct operation
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-05-24 17:06:11 +01:00
apollo-dw
1ef711de41 Return null for out of range objects 2022-05-24 16:40:24 +01:00
apollo-dw
30b9e0e7ab Use object list size for object position 2022-05-24 16:30:25 +01:00
Gabe Livengood
dde0756bed add accuracy challenge mod 2022-05-24 10:23:44 -04:00
Dean Herbert
17206bbebf Update screen padding and colouring to better match new designs 2022-05-24 18:43:22 +09:00
Dan Balasescu
9259aa94f1 Fix Catmull slider parsing with duplicate initial point 2022-05-24 11:47:42 +09:00
Susko3
88217e0c98 Adjust ScrollDelta usages to account for normalised IsPrecise values 2022-05-23 20:22:27 +02:00
apollo-dw
903c4f7b3d Merge remote-tracking branch 'master/master' into dho 2022-05-23 13:39:04 +01:00
apollo-dw
d054e404da Set object list to read-only 2022-05-23 13:10:42 +01:00
Dean Herbert
87947c6ef0
Merge pull request #18340 from smoogipoo/hp-ratio-improvements
Adjust HP drain and recoveries to closer match osu-stable
2022-05-23 15:19:42 +09:00
apollo-dw
40f560d7d0 Remove internal process method 2022-05-22 21:45:27 +01:00
apollo-dw
26985ca8af Store hitobject history in the hitobject 2022-05-22 16:26:22 +01:00
Dean Herbert
eabf578282 Use interface to convey beat sync information 2022-05-22 22:44:54 +09:00
Dan Balasescu
b29172ea45 Increase HP lost for misses 2022-05-20 17:53:14 +09:00
Dean Herbert
2e21d75b10 Move metronome into own class and rename to avoid conflict with mod sounds 2022-05-20 17:30:04 +09:00
Dan Balasescu
3fdff7bbcb Make Meh judgements not drain HP 2022-05-20 15:36:30 +09: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
b3d6f76cfa Add "None" snap type to fix flags not working correctly 2022-05-19 15:57:17 +09:00
Dan Balasescu
731f0960ec Don't merge adjacent legacy Catmull segments 2022-05-18 17:16:24 +09:00
Dan Balasescu
5ad9692467 Adjust minimum health targets to match osu-stable 2022-05-17 19:24:51 +09:00
Dean Herbert
51744e428f Merge branch 'master' into editor-readability 2022-05-12 22:56:55 +09:00
Dean Herbert
c63e65c677 Don't hide SelectionBlueprints themselves, only their children 2022-05-12 19:26:13 +09:00
Dean Herbert
10e41d018a Fix toggling hit animations on the editor not applying immediately 2022-05-12 17:36:35 +09:00
Dean Herbert
f7e055dbfe Move mania note height offset application to a much more suitable location 2022-05-12 16:19:07 +09:00
Dean Herbert
c0abce918f Add enum to snap method as alternative to mutliple nested invocations 2022-05-12 16:19:07 +09:00
Salman Ahmed
82b784ce5a Change IApplicableToSample to receive adjustable component instead
Done for consistency with `IApplicableToTrack`.
2022-05-10 18:06:03 +03:00
Salman Ahmed
4f5001704e Change IApplicableToTrack to receive adjustable component instead 2022-05-10 18:06:03 +03:00
Salman Ahmed
bbbecbb6b7 Apply time-ramping adjustment using clock instead of track 2022-05-10 18:06:03 +03:00
Dean Herbert
ab1d46b71c
Merge pull request #17270 from frenzibyte/multiplayer-disable-adaptive-speed
Disable mod "Adaptive Speed" in multiplayer
2022-05-09 17:31:47 +09:00
Salman Ahmed
144d33f0d2
Merge branch 'master' into distance-snapping-test 2022-05-06 17:29:27 +03:00
Dean Herbert
c6bc6be128 Fix toolbox expand being interrupted by gaps between groups 2022-05-06 19:06:40 +09:00
Dean Herbert
641584a049
Merge branch 'master' into multiplayer-disable-adaptive-speed 2022-05-06 14:00:44 +09:00
Dean Herbert
5029710de7 Merge branch 'master' into distance-snapping-test 2022-05-05 22:00:40 +09:00
Salman Ahmed
43c9058d09 Fix wrong obsolete message 2022-05-05 14:39:05 +03:00
Salman Ahmed
8501a41619 Bring back separate bool properties as non-cascading 2022-05-05 14:37:38 +03:00
Dan Balasescu
39d10487b9
Merge branch 'master' into snapping-tidy-distance 2022-05-05 19:55:55 +09:00
Dean Herbert
e83604a1fc Merge branch 'master' into cache-at-interface 2022-05-05 18:54:24 +09:00
Dean Herbert
7b71fb860b Expose DistanceSpacingMultiplier for test usage 2022-05-05 18:49:12 +09:00
Dean Herbert
947a68006a Add note about IDistanceSnapProvider not multiplying DistanceSpacing itself 2022-05-05 17:50:17 +09:00
Dean Herbert
c3d2648f85
Reword weird xmldoc
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-05-05 17:07:05 +09:00
Dean Herbert
4226583afd Merge branch 'cache-at-interface' 2022-05-05 16:52:03 +09:00
Dean Herbert
19cf9dc20b Merge branch 'snapping-tidy-distance' 2022-05-05 16:51:32 +09:00
Dean Herbert
5a1ac71d90 Remove unnecessary type specification in HitObjectComposer's caching 2022-05-05 16:44:37 +09:00
Dean Herbert
1c6a233cc0 Move snap provider caching to interfaces 2022-05-05 16:44:37 +09:00
Dean Herbert
b411b59006 Move IPlacementHandler caching to interface 2022-05-05 16:43:02 +09:00
Dean Herbert
977e6d8a80 Add xmldoc for IDistanceSnapProvider and related properties 2022-05-05 16:25:45 +09:00
Dean Herbert
1fce0da331 Reword slightly, to allow better conformity with IDistanceSnapProvider 2022-05-05 16:04:34 +09:00
Dean Herbert
f6fc926f1a Add xmldoc and rename methods in IPositionSnapProvider for legibility 2022-05-05 15:58:21 +09:00
Salman Ahmed
8488a29e9e Renew obsoletion date 2022-05-04 17:22:11 +03:00
Salman Ahmed
20e277d2e5 Apply proposed naming changes 2022-05-04 17:12:17 +03:00
Salman Ahmed
e9ecf26b6a Merge branch 'master' into multiplayer-disable-adaptive-speed 2022-05-04 17:12:03 +03:00
Bartłomiej Dach
bf80dd864c
Merge branch 'master' into fix-editor-toolbox-click-through 2022-05-04 11:57:32 +02:00
Dean Herbert
4e0f899159 Rename value changed variable 2022-05-04 18:13:30 +09:00
Salman Ahmed
f5d4f02200 Use ToUpper for key binding text 2022-05-04 11:59:29 +03:00
Salman Ahmed
0b8fd2e39f Improve distance spacing toast inline with key binding changes 2022-05-04 11:43:19 +03:00
Dean Herbert
b325f0ee0b Combine editor toolbox container implementation and fix input blocking
Until now, toolbox scroll areas would block input from arriving behind
them, even when no visible element was clicked.

In addition, clicking on a button inside a toolbox would still send a
`MouseDown` event to things behind it. Specifically, the editor's
`HitObjectComposer` would receive these events and also place objects
when the user does not expect them to be placed.

This fixes another regression that occurred due to `ScrollContainer`s no
longer blocking input theirselves.
2022-05-04 17:41:30 +09:00
Salman Ahmed
3d2072498e Merge branch 'master' into distance-spacing-osd 2022-05-04 11:41:12 +03:00
Dean Herbert
a66743266f Remove unused ScrollingToolboxGroup class 2022-05-04 17:20:58 +09:00
Salman Ahmed
6f52a0b5eb Merge branch 'master' into distance-spacing-osd 2022-05-04 11:10:18 +03:00
Dean Herbert
40f1ceca0a
Merge branch 'master' into distance-spacing-keybinding 2022-05-04 16:34:01 +09:00
Salman Ahmed
504ca5be31 Fix scrolling no longer adjusting distance spacing by amount 2022-05-04 09:52:33 +03:00
Salman Ahmed
813d6fed48 Split activation keybind to separate increase/decrease keybinds 2022-05-04 09:00:54 +03:00
Salman Ahmed
0dd2e1652c Mark OnScreenDisplay dependency as nullable 2022-05-03 11:15:28 +03:00
Salman Ahmed
b8287f3687 Display toast notification on editor distance spacing change 2022-05-03 10:30:32 +03:00
Salman Ahmed
521ec1a225 Add keybind for distance grid spacing activation 2022-05-03 10:15:24 +03:00
Dan Balasescu
637f817696 Ignore zero-sections on a per-case basis 2022-05-03 16:06:20 +09:00
Dan Balasescu
a555c47212 Reduce sorting complexity in worst-case of diffcalc 2022-05-03 15:02:57 +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
Salman Ahmed
fef94d49f4 Revert "Convert data type of DistanceSpacing to float"
This reverts commit 7aaa88cac2.
2022-04-29 08:02:07 +03:00
Salman Ahmed
abb88b0907 Move distance spacing application to DistanceSnapGrid 2022-04-28 10:54:38 +03:00
Salman Ahmed
7aaa88cac2 Convert data type of DistanceSpacing to float 2022-04-28 10:24:36 +03:00
Salman Ahmed
2e8372fe90 Minor cleanup
Just from reading diff.
2022-04-28 07:14:43 +03:00
Salman Ahmed
bfc6bfc91b Let CatchHitObjectComposer inherit from DistancedHitObjectComposer and hide control 2022-04-28 06:44:50 +03:00
Salman Ahmed
835898dd30 Introduce DistancedHitObjectComposer and supersede OsuToolboxComposite 2022-04-28 06:44:50 +03:00
Salman Ahmed
59cf3ff50f Move distancing methods from IPositionSnapProvider to IDistanceSnapProvider 2022-04-28 05:48:45 +03:00
Salman Ahmed
cccc9d7d39 Rename method to better reflect what it's doing 2022-04-27 00:03:48 +03:00
Salman Ahmed
31f64b1381 Fix HealthProcessor fail conditions not handling multiple invocations 2022-04-26 23:27:03 +03:00
Salman Ahmed
7d32490198 Change score accuracy grading logic to be inclusive 2022-04-26 04:55:27 +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
70a93c0e7e Move DistanceSpacingMultiplier bindable to its own IDistanceSnapProvider interface 2022-04-24 08:33:00 +03:00
Salman Ahmed
4f8f27a58b Merge branch 'master' into osu-distance-spacing 2022-04-24 05:23:30 +03:00
Dean Herbert
9c68b3edc5 Merge branch 'master' into fix-spectator-seeks 2022-04-13 12:33:41 +09:00
Bartłomiej Dach
6630b38c08
Make all ModRateAdjust implementations incompatible with each other 2022-04-07 22:38:46 +02:00
Dean Herbert
a3695c7e97
Merge branch 'master' into fix-spectator-seeks 2022-04-06 12:58:43 +09:00
Dan Balasescu
40b6f3ff0a Rename method to CalculateAllLegacyCombinations() 2022-03-31 15:09:06 +09:00
Dan Balasescu
32e55e7d78 Merge branch 'master' into osu-diff-calc-max-combo 2022-03-31 15:08:08 +09:00
Dean Herbert
e0d434b89f Remove unused using statement 2022-03-31 11:34:32 +09:00
Dean Herbert
0cac935939 Shorten class name of ModCreatedReplayUser 2022-03-31 11:34:23 +09:00
Dean Herbert
2c1ccc7d36
Update obsolete message to match targeted developers' use case
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-03-31 11:33:26 +09:00
Dean Herbert
234bec45cc Remove unnecessary logging 2022-03-31 11:32:00 +09:00
Salman Ahmed
6874cdf0c8 Remove unnecessary public prefix in interface method 2022-03-31 01:50:46 +03:00
Bartłomiej Dach
83bae81095
Fill out ICreateReplayData xmldocs 2022-03-30 22:04:54 +02:00
Bartłomiej Dach
9621a7f9cb
Merge branch 'master' into fix-autoplay-mod-user-id 2022-03-30 21:41:45 +02:00
Salman Ahmed
8d4356f23b Mark "autoplay" and "cinema" mods as mutually exclusive 2022-03-29 17:26:02 +03:00
Salman Ahmed
9a09c97457 Fix "Barrel Roll" tooltip not limiting decimal places for spin speed 2022-03-29 16:11:44 +03:00
Dean Herbert
ea9495eb74 Update all existing calls to extension method with correct fallback handling 2022-03-29 16:51:30 +09:00
Dean Herbert
7d716adf39 Create new ICreateReplayData interface and obsolete ICreateReplay 2022-03-29 16:51:30 +09:00
Dean Herbert
3fc8c23fe4 Remove unnecessary SetReplayScore call in ModCinema 2022-03-29 16:51:30 +09:00
Dean Herbert
327477d050 Remove unnecessary SetReplayScore call in ModCinema 2022-03-29 16:50:05 +09:00
Dean Herbert
6f529cf7a4 Merge branch 'master' into fix-spectator-seeks 2022-03-24 14:24:20 +09:00
Salman Ahmed
6cd67928ab Simplify documentation of ModUsage 2022-03-23 15:48:52 +03:00
Salman Ahmed
b218046fa2 Remove redundant line from mod usage 2022-03-23 15:38:48 +03:00
Dean Herbert
c079a9cd32 Add comment regarding equality check importance in LegacyHitSampleInfo 2022-03-23 20:18:44 +09:00
Dean Herbert
997c091a8d Revert "Remove IsLayered from LegacyHitSampleInfo comparison"
This reverts commit 4523393208.
2022-03-23 20:15:17 +09:00
Dean Herbert
2ea9e5245c Revert "Remove IsLayered from GetHasCode implementation"
This reverts commit 16ee6b5fc7.
2022-03-23 20:15:13 +09:00
Dan Balasescu
36772ec652
Merge pull request #17356 from apollo-dw/strict-tracking
Implement "Strict Tracking" mod in osu!
2022-03-22 07:32:36 +09:00
Salman Ahmed
5f878ed82b Delegate IsPlayable to the obsoleted UserPlayable by default
Handles consumers who still haven't updated to use `IsPlayable` yet.
2022-03-20 16:07:09 +03:00
Salman Ahmed
add9f3ec91 Rename multiplayer mod usages to make more sense 2022-03-20 13:12:24 +03:00
Salman Ahmed
820a672940 Reword xmldoc to make more sense 2022-03-20 06:37:08 +03:00
Salman Ahmed
70e943fbcc ModUsage.Solo -> ModUsage.User 2022-03-20 06:36:51 +03:00
apollo-dw
149cfd338d Use new mod-related object types for Strict Tracking 2022-03-19 18:29:44 +00:00
Salman Ahmed
8078a8c1f8 Simplify IncreasesCombo/BreaksCombo helper method implementation 2022-03-18 17:18:42 +03:00
Salman Ahmed
5ec2d86c09 Update ScoreProcessor to use new defined helper methods 2022-03-18 15:22:53 +03:00
Salman Ahmed
fc576b1369 Separate increase/break combo helper methods from AffectsCombo 2022-03-18 15:22:01 +03:00
Dean Herbert
0988c2b0fa Move DrawableRuleset binding to LoadComplete to avoid exceptions on InputManager access 2022-03-18 15:28:48 +09:00
Salman Ahmed
f2248ecc08 Update usages to use IsPlayable instead 2022-03-18 02:11:18 +03:00
Salman Ahmed
51e5dd7d0e Introduce IsPlayable(...) and obsolete UserPlayable 2022-03-18 02:08:30 +03:00
Salman Ahmed
d90f21e140
Reword mod documentation
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-03-18 00:13:40 +03:00
Salman Ahmed
b3ac544d65 Revert "Consider UnknownMod to be "playable in multiplayer""
This reverts commit 07e9f3780a.
2022-03-17 06:31:51 +03:00
Salman Ahmed
07e9f3780a Consider UnknownMod to be "playable in multiplayer" 2022-03-17 05:15:48 +03:00
Salman Ahmed
187059a37f Replace hardcoded overrides with the newly introduced Mod properties 2022-03-17 03:51:27 +03:00
Salman Ahmed
d90a334853 Introduce multiplayer playability and free mod validity in Mod 2022-03-17 03:48:56 +03:00
Dan Balasescu
d80830b415
Merge pull request #17226 from peppy/skin-component-settings
Allow skin components to have settings
2022-03-16 17:12:11 +09:00
Dean Herbert
1814a325d8 Move GetSettingUnderlyingValue to a SettingSource extension method 2022-03-15 14:54:00 +09:00
Dean Herbert
6fb06d69cc
Merge branch 'master' into pp-counter-alloc-reduction 2022-03-15 13:31:57 +09:00
Dean Herbert
deb4aeb4b2
Merge pull request #17242 from smoogipoo/performance-calculator-cleanup
Restructure PerformanceCalculator to not require ScoreInfo argument
2022-03-15 13:31:34 +09:00
Dan Balasescu
3a6d254d1f Add safeguards around incorrect ruleset sources 2022-03-15 09:20:32 +09:00
Dan Balasescu
e79bed8fbe Merge branch 'master' into skin-component-settings 2022-03-14 18:54:27 +09:00
Dean Herbert
16ee6b5fc7 Remove IsLayered from GetHasCode implementation 2022-03-14 18:12:04 +09:00
Dean Herbert
39d95aa8cf Add automatic preloading of sample pools at a Playfield level 2022-03-14 17:19:48 +09:00
Dean Herbert
4523393208 Remove IsLayered from LegacyHitSampleInfo comparison
The equality of samples is generally used to compare the sample
equality, not its full properties. For instance, we don't compare
`Volume` in the base implementation.

Having `IsLayered` here breaks actual usages of equality, ie. for
pooling purposes.
2022-03-14 17:19:48 +09:00
Dean Herbert
8676a2587c Add the ability for HitObjects to specify auxiliary samples 2022-03-14 17:19:48 +09:00
Dan Balasescu
028750936c Apply review suggestions 2022-03-14 17:10:37 +09:00
Dan Balasescu
3fff7f4b7e Require ScoreProcessor to receive ruleset 2022-03-14 15:51:10 +09:00
Dan Balasescu
9cc7f70872 Nullable annotate classes 2022-03-14 15:38:00 +09:00
Dan Balasescu
4a3e3aba65 Restructure PerformanceCalculator to not require ScoreInfo argument 2022-03-14 14:25:28 +09:00
Dean Herbert
8d1ee28e67 Add settings modification UI to skin editor 2022-03-13 17:03:25 +09:00
Dean Herbert
db5c2c15dc
Merge pull request #17164 from smoogipoo/scoreprocessor-rework
Rework ScoreProcessor score calculation methods to fix various issues
2022-03-10 16:48:58 +09:00
Dan Balasescu
13a4058efd
Merge pull request #17191 from peppy/fix-mod-conversion-exceptions
Change `ToMod` to return an `UnknownMod` rather than throw if a mod isn't available
2022-03-10 16:20:50 +09:00
Dan Balasescu
cf91353009 Merge branch 'master' into scoreprocessor-rework 2022-03-10 16:14:28 +09:00
Dean Herbert
eaef27595c Also mark UnknownMod as not user-playable 2022-03-10 15:33:50 +09:00
Dan Balasescu
c36badab4b Add per-ruleset score multipliers for classic scoring 2022-03-10 10:26:09 +09:00
Dean Herbert
94ff6a338f
Merge branch 'master' into scoreprocessor-rework 2022-03-09 23:04:18 +09:00
Dean Herbert
02f44d7061 Merge branch 'master' into fix-mod-conversion-exceptions 2022-03-09 18:07:42 +09:00
Dean Herbert
0267aed846 Change ToMod to return an UnknownMod rather than throw if a mod isn't available
As seen by this kind of crash, having the `.ToMod` method throw can be
very problematic and also hidden (as it is used inside of models in
places where exceptions are not expected to occur).

Given there are tens of usages of this method, returning a placeholder
mod seems like a better idea than outright throwing.

```
 An unhandled has occurred.
 System.InvalidOperationException:
There is no mod in the ruleset (osu) matching the acronym AS.
 at osu.Game.Online.API.APIMod.ToMod(Ruleset ruleset) in /Users/dean/Projects/osu/osu.Game/Online/API/APIMod.cs:line 54
 at osu.Game.Scoring.ScoreInfo.<get_Mods>b__117_0(APIMod m) in /Users/dean/Projects/osu/osu.Game/Scoring/ScoreInfo.cs:line 193
 at System.Linq.Enumerable.SelectArrayIterator`2.ToArray()
 at osu.Game.Scoring.ScoreInfo.get_Mods() in /Users/dean/Projects/osu/osu.Game/Scoring/ScoreInfo.cs:line 193
 at osu.Game.Screens.Select.Leaderboards.BeatmapLeaderboard.<>c.<subscribeToLocalScores>b__40_2(ScoreInfo s) in /Users/dean/Projects/osu/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs:line 199
 at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
 at osu.Game.Database.RealmObjectExtensions.Detach[T](IEnumerable`1 items) in /Users/dean/Projects/osu/osu.Game/Database/RealmObjectExtensions.cs:line 180
 at osu.Game.Screens.Select.Leaderboards.BeatmapLeaderboard.<>c__DisplayClass40_0.<subscribeToLocalScores>g__localScoresChanged|1(IRealmCollection`1 sender, ChangeSet changes, Exception exception) in /Users/dean/Projects/osu/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs:line
209
 at Realms.RealmCollectionBase`1.Realms.INotifiable<Realms.NotifiableObjectHandleBase.CollectionChangeSet>.NotifyCallbacks(Nullable`1 changes, Nullable`1 exception)
 at Realms.NotifiableObjectHandleBase.NotifyObjectChanged(IntPtr managedHandle, IntPtr changes, IntPtr exception)
```
2022-03-09 17:57:55 +09:00
Dean Herbert
8bb07f83cd
Merge pull request #17054 from hlysine/mod-adaptive-speed
Implement Adaptive Speed mod
2022-03-09 17:56:34 +09:00
Dan Balasescu
6fd8b4d891 Safeguard method against invalid invocation 2022-03-08 22:30:44 +09:00
Dan Balasescu
f1c40bd9ed Rework GetScore() method signatures + implementations
Rename legacy-facing overload to mention as much
2022-03-08 22:30:44 +09:00
Dan Balasescu
a8e99f1a95 Calculate classic score using total basic hitobject count 2022-03-08 21:49:41 +09:00
Dan Balasescu
5b6b8d1fa9 Remove GetStandardisedScore() proxy method 2022-03-08 21:49:41 +09:00
Dan Balasescu
6654977a7b Add GetScore() overload with total hitobject count 2022-03-08 21:49:41 +09:00
Dan Balasescu
2c382bd1d9 Rename GetImmediateScore() as overload of GetScore() 2022-03-08 21:49:40 +09:00
Dan Balasescu
a352a140bc
Merge pull request #17157 from peppy/fix-statistics-json-serialisation
Fix incorrect serialisation of submitted scores
2022-03-08 20:20:31 +09:00
Dan Balasescu
a172fc6cb8 Add IsBasic() and IsTick() extensions on HitResult 2022-03-08 18:19:12 +09:00
Dean Herbert
589a40ca2d Add EnumMember naming to HitResult to allow for correct json serialisation 2022-03-08 17:58:37 +09:00
Henry Lin
8b8b54b58f Scale rate adjustments based on hit timing consistency and tweak some related numbers 2022-03-05 21:48:57 +08:00
Henry Lin
76d257fbe4
Merge branch 'master' into mod-adaptive-speed 2022-03-04 15:16:37 +08:00
Henry Lin
f72c9a1f41 Cap speed change per hit and apply a speed decrease on miss 2022-03-04 11:48:48 +08:00
Henry Lin
b66af7edf4 Rename approximatedRates to ratesForRewinding and update xmldoc 2022-03-04 11:03:57 +08:00
Bartłomiej Dach
fcefd3c725
Fix slightly wrong references in xmldocs 2022-03-03 17:39:55 +01:00
Bartłomiej Dach
3797871aa0
Add extended documentation of adaptive speed mod machinations 2022-03-03 17:25:49 +01:00
Bartłomiej Dach
ffaf5b729f
Move and reword docs of allowable rate range constants 2022-03-03 17:07:43 +01:00
Henry Lin
464be6e64c Only call IUpdatableByPlayfield.Update if the playfield isn't nested 2022-03-03 14:37:39 +08:00
Henry Lin
4ce2044e4c Reorder members 2022-03-03 13:09:41 +08:00
Henry Lin
9c2aa51194 Rename applyPitchAdjustment to adjustPitchChanged 2022-03-03 13:07:30 +08:00
Henry Lin
ae71dcceeb Convert comments to xmldoc 2022-03-03 13:03:53 +08:00
Henry Lin
09254407fe Interpolate speed change using IUpdatableByPlayfield 2022-03-03 12:09:36 +08:00
Henry Lin
51258dbab4 Use binary search in ApplyToBeatmap 2022-03-03 11:21:20 +08:00
Henry Lin
95a40c5dc5 Remove pointless comment 2022-03-03 10:43:30 +08:00
Henry Lin
ff7f65de27 Extract duplicated conditionals 2022-03-03 10:43:04 +08:00
Henry Lin
55737226a3 Use Enumerable.Repeat 2022-03-03 10:18:36 +08:00
Henry Lin
d335a2229f Tweak average_count 2022-03-02 21:07:57 +08:00
Henry Lin
17bc714297 Allow the mod to properly react to nested hit objects 2022-03-02 20:48:57 +08:00
Henry Lin
6caecf79a0 Use smooth speed change 2022-03-02 20:08:05 +08:00
Henry Lin
c6934b4bce Improve adaptive speed algorithm and add rewind support 2022-03-02 10:35:03 +08:00
Henry Lin
783f43ccfb Add initial rate setting 2022-03-02 09:57:52 +08:00
Henry Lin
c9b205afeb Add adaptive speed mod 2022-03-02 09:57:52 +08:00
Dean Herbert
7215f3f66b Fix CalculateAverageHitError throwing if there are zero HitEvents 2022-03-01 18:44:15 +09:00
Dean Herbert
159db38f8a Add missing xmldoc 2022-02-28 19:14:43 +09:00
Dean Herbert
a41e1c80f1 Show hit error on results screen
Leading up to implementation of "local offset", this feels like a good
thing to have visible first and foremost.
2022-02-28 19:11:06 +09:00
Dan Balasescu
3a03833912
Merge pull request #16890 from peppy/beatmap-decoder-ruleset-store
Fix `LegacyBeatmapDecoder` not populating correct rulesets
2022-02-25 19:03:43 +09:00
Bartłomiej Dach
d8fa443ea0
Extract default mod switch measurements to constants
For use later when specific sizes/scales of the mod switches are
desired.
2022-02-22 23:22:11 +01:00
Dan Balasescu
bedd07d2e4 Add remark about usage of CalculateAll() 2022-02-22 18:12:55 +09:00
Bartłomiej Dach
cfc41a0a36
Implement small mod switch 2022-02-22 00:26:35 +01:00
Bartłomiej Dach
5186693dad
Implement tiny mod switch 2022-02-22 00:26:35 +01:00
Dan Balasescu
c466d6df94 Ensure to not multiply by 0 2022-02-21 17:19:35 +09:00
Dan Balasescu
c3b365cf6b Scale classic score by hitobject count 2022-02-21 13:31:03 +09:00
Dan Balasescu
567da9214e Merge branch 'master' into osu-diff-calc-max-combo 2022-02-18 18:35:24 +09:00
Dan Balasescu
3945cd24eb wip 2022-02-17 21:14:49 +09:00
Dean Herbert
7307e68e9c Revert "Merge pull request #16889 from smoogipoo/remove-mod-multiplier"
This reverts commit 252b945d3b, reversing
changes made to a1b39a96cf.
2022-02-17 13:26:12 +09:00
Dean Herbert
23933fc881 Update xmldoc to mention that multipliers are not applied anywhere 2022-02-16 17:32:22 +09:00
Dean Herbert
5ffd3ff82a Add xmldoc and allow constructing an AssemblyRulesetStore with a directory path 2022-02-16 17:25:16 +09:00
Dean Herbert
d0efecfc9c Add RulesetStore for use where realm is not present (ie. other projects) 2022-02-16 17:13:54 +09:00
Dean Herbert
7a69de0060 Split out realm portion of RulesetStore 2022-02-16 17:13:31 +09:00
Dan Balasescu
4c1413e0c7 No longer require Mod implementation 2022-02-16 16:36:02 +09:00
Dan Balasescu
5dd9771c5f Remove mod multipliers from being applied to scores 2022-02-16 16:27:27 +09:00
Dan Balasescu
84e82ef5e4 Add XMLDocs to difficulty attribute properties 2022-02-16 14:09:19 +09:00
Salman Ahmed
0992bec2c8 Change "distance spacing" multipler type to double
Avoids losing precision on initial load, causing an unnecessary
hash change in `EditorChangeHandler`.

Resolves test failures in `TestSceneEditorChangeStates`
(https://github.com/ppy/osu/runs/5192493482?check_suite_focus=true).
2022-02-16 03:28:12 +03:00
Salman Ahmed
868dcd20f5 Remove e.ShiftPressed handling for now
Broken on macOS, will be handled differently later on as discussed.
2022-02-15 02:21:53 +03:00
Salman Ahmed
528dc03b8c Expose distance spacing in IPositionSnapProvider for updating distance grid
Alternate method is to expose a `SnapDistancesChanged` event in
`IPositionSnapProvider` instead, but I chose this way as an analogue to
`IBeatSnapProvider.BeatDivisor`, which might even make sense to be
exposed as `BindableBeatDivisor` instead of caching that separately.
2022-02-15 02:21:53 +03: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