Naxess
b30e41b805
Fix comment; mode -> ruleset
2021-04-10 13:02:36 +02:00
Naxess
d1007ff26a
Move components to more appropriate spot
2021-04-10 13:02:22 +02:00
Dan Balasescu
9aa30fb323
Merge pull request #11688 from Syriiin/diffcalc/dynamic-history
...
Implement dynamic previous hitobject retention for Skill class
2021-04-10 01:25:07 +09:00
Samuel Cattini-Schultz
bfd3d0cce9
Implement custom enumerator for ReverseQueue to avoid allocations
2021-04-10 01:16:54 +10:00
smoogipoo
76981f2547
Remove unused using
2021-04-09 13:58:24 +09:00
smoogipoo
8293b06c0a
Remove obsolete code
2021-04-09 13:56:58 +09:00
Dean Herbert
a8839792fd
Merge branch 'master' into circular-arc-freeze
2021-04-08 14:33:03 +09:00
Naxess
0343ef7f14
Add ruleset-specific checker
2021-04-07 14:36:43 +02:00
Naxess
b24ce66a0d
Add check/issue classes
2021-04-07 14:35:33 +02:00
smoogipoo
37e30b00bf
Refactor to keep a consistent API
2021-04-06 16:39:02 +09:00
Dean Herbert
784552022f
Merge pull request #12303 from smoogipoo/fix-last-control-point-segmenting
...
Make last control point not able to make an implicit segment
2021-04-06 13:35:55 +09:00
Samuel Cattini-Schultz
5cd43b3a7f
Set default history retention to 0 for Skill and override in StrainSkill
...
Some skills might not even require history retention, so why waste the allocations?
2021-04-06 11:53:31 +10:00
Samuel Cattini-Schultz
4f614a703e
Merge branch 'master' into diffcalc/dynamic-history
2021-04-06 11:34:33 +10:00
Samuel Cattini-Schultz
65f93d6f9d
Add more descriptive xmldoc for ReverseQueue
2021-04-06 11:30:58 +10:00
Samuel Cattini-Schultz
ffe7edc16a
Update xmldocs
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-04-06 11:06:10 +10:00
Dan Balasescu
9d8a26f373
Merge branch 'master' into diffcalc/refactor-strain-skill
2021-04-06 08:21:38 +09:00
Samuel Cattini-Schultz
5bdd15f746
Refactor Skill.Process() to not require calling base.Process()
2021-04-05 22:14:59 +10:00
Samuel Cattini-Schultz
57983ae61f
Fix whitespace
2021-04-05 22:14:59 +10:00
smoogipoo
4b29d0ebe2
Fix last control point starting new segment
2021-04-05 17:49:36 +09:00
Dean Herbert
6bcbef9f25
Merge pull request #12294 from smoogipoo/mania-scoring-adjustments
...
Adjust scoring values to better fit osu!mania expectations
2021-04-05 17:19:28 +09:00
smoogipoo
3acc612a67
Adjust scoring values to better fit osu!mania
2021-04-05 13:28:46 +09:00
Samuel Cattini-Schultz
85d2b1232a
Refactor to abstract out strain logic into StrainSkill class
...
While it is the case for the existing official Skills, Skill implementations shouldn't be required to conform to a strain based approach.
There are other valid approaches to calculating skill difficulty that can be supported by abstracting the strain logic into its own StrainSkill class.
2021-04-03 20:52:39 +11:00
Samuel Cattini-Schultz
5b2dcea8a8
Refactor to encapsulate strain logic into Skill class
...
As strains are an implementation detail of the current Skill calculations, it makes sense that strain related logic should be encapsulated within the Skill class.
2021-04-03 20:47:43 +11:00
Samuel Cattini-Schultz
fe66b84bed
Implement dynamic previous hitobject retention for Skill class
...
There is no reason we should be limiting skills to knowing only the previous 2 objects. This originally existed as an angle implementation detail of the original pp+ codebase which made its way here, but didn't get used in the same way.
2021-04-03 20:28:51 +11:00
Dan Balasescu
345779b19a
Merge branch 'master' into diffcalc/fix/clockrate-adjusted-decay
2021-04-02 20:58:29 +09:00
Salman Ahmed
5b1dc7d2b4
Remove unused using directive
2021-04-02 02:45:26 +03:00
Salman Ahmed
fcd56dba44
Guard against same ruleset file with loaded assembly filenames instead
2021-04-02 02:12:25 +03:00
Naxess
7e47922fb7
Merge branch 'master' into circular-arc-freeze
2021-04-01 17:09:45 +02:00
Naxess
7b684339ed
Undo public -> internal for PathControlPoint.Changed
...
No longer used.
2021-03-31 20:32:49 +02:00
Dean Herbert
690debe507
Merge pull request #12030 from LeNitrous/editor-platform-clipboard-copy
2021-03-29 19:31:16 +09:00
Nathan Alo
9a02f3868c
return a string instead
2021-03-29 17:29:05 +08:00
smoogipoo
ecb66ad2e2
Fix up xmldoc
2021-03-29 15:33:54 +09:00
Samuel Cattini-Schultz
068f00d8a0
Add EndTime to DifficultyHitObject for future convenience
2021-03-27 18:38:43 +11:00
Samuel Cattini-Schultz
010db8968f
Adjust wording of xmldoc
2021-03-27 18:38:23 +11:00
Nathan Alo
b8b7eb4c4b
refactor logic to its own component and handle hit object to string conversion to its ruleset-specific composers
2021-03-26 15:25:20 +08:00
Nathan Alo
2bea69456e
remove implementations
2021-03-26 15:24:33 +08:00
smoogipoo
8438fce764
Merge branch 'master' into diffcalc/fix/clockrate-adjusted-decay
2021-03-26 11:47:38 +09:00
Dean Herbert
701342e036
Remove accuracy rounding at a ScoreProcessor level
2021-03-25 17:43:51 +09:00
Naxess
4ae3eaaac6
Move path type correction
...
This is better because `PathControlPointVisualizer` is local to the editor, meaning there is no chance that this could affect gameplay.
2021-03-24 03:02:19 +01:00
Naxess
e922e67c98
Fix inverted return statement
...
Forgot to run tests, all passing now.
2021-03-22 19:48:21 +01:00
Naxess
3fa5852e00
Add method documentation
2021-03-22 19:42:27 +01:00
Naxess
b11fd7972a
Separate condition logic from math logic
2021-03-22 19:41:48 +01:00
Naxess
92f713a30e
Improve fallback conditions
...
It's possible to create a `PerfectCurve` type path with more than 3 points currently, so this accounts for that.
2021-03-22 19:10:56 +01:00
Naxess
80e7c3aba7
Invert if statement
2021-03-22 19:09:28 +01:00
Naxess
6911a1b415
Fix missing newline
2021-03-22 19:03:55 +01:00
Naxess
a7076c329c
Fix null checks
2021-03-22 17:32:55 +01:00
Naxess
323b875cea
Fix newlines/spaces
2021-03-22 17:32:40 +01:00
Naxess
c82218627f
Add path type update logic
...
Only attempts to change points to bezier if points in the slider are modified.
2021-03-22 15:57:57 +01:00
Naxess
7a2cb526e4
Add PointsInSegment method
2021-03-22 15:55:30 +01:00
Naxess
bee2f55d00
Undo subpath limiting
2021-03-22 15:54:33 +01:00
Naxess
fcd1f4930f
Fix freeze due to large circular arc radius
...
Seems to stem from the osu!framework's PathApproximator not catching a few edge cases wherein the radius approaches infinity.
2021-03-21 06:34:55 +01:00
Bartłomiej Dach
aec859b4d1
Merge branch 'master' into fix-unsafe-skinnable-sample-play
2021-03-18 19:51:46 +01:00
Nathan Alo
51e0304c54
properly format strings per ruleset
2021-03-17 18:31:09 +08:00
Dean Herbert
9b5d11f2a5
Merge pull request #11958 from bdach/ruleset-filter-v3
...
Allow rulesets to specify custom song select filtering criteria
2021-03-08 23:23:24 +09:00
Bartłomiej Dach
06e42b4b4c
Fix taiko leaving behind empty judgements on legacy skins
2021-03-06 16:02:20 +01:00
Bartłomiej Dach
f00089846b
Merge branch 'master' into ruleset-filter-v3
2021-03-06 12:14:53 +01:00
Dan Balasescu
5b6018295d
Merge branch 'master' into diffcalc/skill-mods
2021-03-04 13:06:26 +09:00
Bartłomiej Dach
f733d1ec1f
Expose and document query parser and helpers
2021-03-03 22:03:01 +01:00
Bartłomiej Dach
14e249a134
Add ruleset interface for extending filter criteria
2021-03-02 20:07:11 +01:00
Dean Herbert
c4ba045df1
Add note about finalizers required for audio store clean-up
2021-03-02 16:07:51 +09:00
smoogipoo
dff1d80f39
Update HasFlag usages to HasFlagFast
2021-02-25 15:38:56 +09:00
Dean Herbert
67773c42ef
Merge pull request #11888 from H2n9/modtimeramp-new-behaviour
2021-02-25 14:01:57 +09:00
Bartłomiej Dach
421b7877d4
Avoid mixing precision across time ramp bindables
...
Bears no functional difference, it's just a bit less of an eyesore.
2021-02-24 19:16:10 +01:00
Ronnie Moir
73d6a3687e
Change rate correction logic to be more explicit
2021-02-24 14:40:56 +00:00
smoogipoo
0b44d2483b
Make some properties virtual
...
I think they were intended to be this way from the beginning.
2021-02-24 15:03:41 +09:00
smoogipoo
14160b897e
Fix references to ModSuddenDeath
2021-02-24 14:44:53 +09:00
smoogipoo
30a58691f0
Make SD and PF incompatible with each other
2021-02-24 14:34:37 +09:00
Ronnie Moir
f6d3cd6413
Change SamplePlaybackWithRateMods to use rate calulated from the sample
...
Replace hardcoded numbers
2021-02-23 21:25:59 +00:00
Ronnie Moir
7394c62cc8
Make ModTimeRamp and ModRateAdjust incompatible
2021-02-23 18:10:03 +00:00
Ronnie Moir
a6e840634b
Adjust scrubbing behaviour to allow dragging through rate values
2021-02-23 15:52:53 +00:00
Ronnie Moir
f45cedeb85
Adjust initial and final rate ranges and prevent them from overlapping
2021-02-23 15:38:09 +00:00
Dean Herbert
ec4b770cba
Remove unused using statement
2021-02-23 14:56:03 +09:00
Dean Herbert
672fd3f9d2
When disable mouse buttons during gameplay is selected, disable more globally
...
Until now the disable setting would only apply to left/right buttons,
and only in gameplay. This change will cause any global actions bound to
mouse buttons to also not work during gameplay.
Closes #11879 .
2021-02-23 14:37:46 +09:00
smoogipoo
ee6a94273d
Merge branch 'master' into fix-unsafe-skinnable-sample-play
2021-02-22 18:31:27 +09:00
Dean Herbert
63dd55c92c
Add missing methods from updated audio component interface implementation
2021-02-22 14:18:52 +09:00
Samuel Cattini-Schultz
66643a97b0
Add a list of mods to Skill class
...
Although this isn't necessary for existing official rulesets and calculators, custom calculators can have use cases for accessing mods in difficulty calculation.
For example, accounting for the effects of visual mods.
2021-02-20 20:37:44 +11:00
Samuel Cattini-Schultz
442347df8e
Fix clockrate adjusted difficulty calculations bug in strain decay
...
When starting a new section, the starting strain value was calculated using the unadjusted timing value, meaning decay curves were essentially being stretched or squashed according to the clockrate.
This caused incorrect strain peaks for any section where the peak occurs at the start of the section (none of the objects in the section added enough strain after decay to exceed the starting strain).
This bug caused star ratings with clockrates above 1 to be lower than they should and below 1 to be higher than they should.
2021-02-20 20:23:49 +11:00
Dean Herbert
487a39eea9
Update interface implementations with framework changes
2021-02-18 18:52:34 +09:00
Dean Herbert
143e145670
Update implementation of AdjustableAudioComponents
2021-02-18 15:44:23 +09:00
smoogipoo
d3f0c0730d
Merge branch 'master' into non-concurrent-sample-playback
2021-02-12 17:22:15 +09:00
Dan Balasescu
cb4d119f23
Merge pull request #11740 from peppy/editor-fix-slider-samples-new-placement
...
Fix newly placed sliders in the editor not playing hitsounds
2021-02-12 13:31:00 +09:00
Dean Herbert
f84ea30637
Expose Mods in DrawableRuleset to avoid using external DI
2021-02-11 17:47:29 +09:00
Dean Herbert
aaa0362b12
Merge branch 'master' into autoplay-rate-independence
2021-02-11 17:39:45 +09:00
Dean Herbert
e9730d4782
Move default sample addition to inside PlacementBlueprint
...
This isn't actually required to fix the behaviour but it does feel like
a better place to put this logic.
2021-02-11 17:16:18 +09:00
smoogipoo
be9b07a4cf
Merge branch 'master' into difficulty-adjustment-extension
2021-02-10 20:42:08 +09:00
Dean Herbert
4e3bb27cd5
Merge branch 'master' into fix-mod-settings-fuckery
2021-02-09 16:47:39 +09:00
Dean Herbert
1cb51fa8d2
Merge branch 'master' into autoplay-rate-independence
2021-02-09 16:05:34 +09:00
Dean Herbert
8204d360a8
Always reset local user settings when a mod is deselected in ModSelectOverlay
2021-02-09 13:44:42 +09:00
Dean Herbert
be379e0e3c
Change CopyFrom to always overwrite all settings with incoming values
2021-02-09 13:44:11 +09:00
smoogipoo
f4a31287bf
Add/use IHitObjectContainer interface instead of IEnumerables
2021-02-08 20:11:06 +09:00
Bartłomiej Dach
0229851c9c
Apply rounding to ModTimeRamp to improve SPM consistency
2021-02-07 19:02:09 +01:00
Bartłomiej Dach
7daeacaff2
Add and implement IApplicableToRate interface
2021-02-07 18:35:34 +01:00
Bartłomiej Dach
68c20a2a37
Allow autoplay score generation to access mod list
2021-02-07 18:35:34 +01:00
Dean Herbert
06a3a72e43
Merge pull request #11670 from smoogipoo/mania-constant-speed-mod
...
Implement mania constant speed mod
2021-02-05 00:26:04 +09:00
smoogipoo
8295fb9081
Implement mania constant speed mod
2021-02-03 16:28:22 +09:00
smoogipoo
921f008217
Fix ModIcon not updating background colour correctly
2021-02-02 21:35:08 +09:00
Bartłomiej Dach
a0de1cbfd0
Handle no-duration single-object edge case
2021-01-31 21:09:41 +01:00
Bartłomiej Dach
547b3d8bed
Fix speed change calculation in time ramp mods
2021-01-31 20:34:56 +01:00
Bartłomiej Dach
81b052b866
Add failing test cases
2021-01-31 20:34:22 +01:00
Bartłomiej Dach
2c08ce05fa
Remove game-local enum [Order] attribute
...
In favour of the newly-added framework one.
2021-01-27 22:29:52 +01:00
Dan Balasescu
7d06af916c
Merge branch 'master' into add-messagepack
2021-01-27 13:00:46 +09:00
Dean Herbert
a5f3418e56
Avoid tooltip display
2021-01-26 19:11:19 +09:00
Dean Herbert
9537090d28
Setup all spectator model classes for MessagePack
2021-01-26 16:39:35 +09:00
Dean Herbert
dee0d3c33a
Merge branch 'master' into apply-sv-to-taiko-hr-ez
2021-01-25 14:28:06 +09:00
Dan Balasescu
04095cd5b9
Merge branch 'master' into fix-editor-scroll-interruption
2021-01-21 17:46:18 +09:00
Bartłomiej Dach
1d9aaac2c2
Fix HOC not propagating DHO results applied on kill
...
`DrawableHitObject.OnKilled()` calls `UpdateResult()` to clean up a
hitobject's state definitively with regards to the judgement result
before returning the DHO back to the pool.
As it turns out, if a consumer was relying on this code path (as taiko
was in the case of nested strong hit objects), it would not work
properly with pooling, due to `HitObjectContainer` unsubscribing from
`On{New,Revert}Result` *before* calling the DHO's `OnKilled()`.
This in turn would lead to users potentially getting stuck in gameplay,
due to `ScoreProcessor` not receiving all results via that event path.
To resolve, change the call ordering to allow hit result changes applied
in `OnKilled()` to propagate normally.
2021-01-21 00:05:37 +01:00
smoogipoo
de9d075f94
Initial sample + samplechannel rework
2021-01-19 17:11:40 +09:00
Dean Herbert
ced7a36788
Update namespaces
2021-01-18 21:24:10 +09:00
Dean Herbert
04fa32bc34
Rename and add xmldoc for smooth seeking method
2021-01-15 16:14:21 +09:00
smoogipoo
d5878db615
Fix default judgement text mispositioned for one frame
2021-01-14 12:33:33 +09:00
Bartłomiej Dach
4b4adc927c
Rename param to match method body
2021-01-10 15:35:53 +01:00
Salman Ahmed
0aad0c7c6c
Target logic at this
and adjust variables
2021-01-09 00:31:18 +03:00
Salman Ahmed
375ecf92ed
Merge remote-tracking branch 'upstream/master' into fix-mod-buttons-not-copying-settings
2021-01-09 00:26:18 +03:00
Dean Herbert
05ba5d4c31
Merge pull request #11438 from bdach/difficulty-adjust-defaults
...
Fix difficulty adjust mod treating default values as user overrides
2021-01-09 01:18:34 +09:00
Bartłomiej Dach
303cc62ee7
Transfer flags indicating if settings were changed
2021-01-06 22:46:46 +01:00
Bartłomiej Dach
68352782db
Change .StartsWith() to .Equals()
...
In line with planned-but-delayed breaking change.
2021-01-06 18:38:24 +01:00
Bartłomiej Dach
9cc63e8dce
Remove obsoleted IHasEndTime
2021-01-06 18:38:24 +01:00
Bartłomiej Dach
539785e422
Remove obsoleted IHasCurve
2021-01-06 18:38:24 +01:00
Bartłomiej Dach
09742998cd
Fix mistaken obsoletion notice
...
It was added in c9f38f7bb6
, which
specified 2021 in another place (and was committed in October of 2020
anyway). Update the year so that it doesn't get culled prematurely.
2021-01-06 18:38:24 +01:00
Dean Herbert
b3f08b29ca
Ensure that all changes to screen backgrounds are on the correct thread
2021-01-05 15:22:50 +09:00
Bartłomiej Dach
9e4a925ab1
Clarify & cleanup comments some
2021-01-03 13:44:29 +01:00
Bartłomiej Dach
a3e29b9154
Rename parameters for readability
2021-01-03 13:25:44 +01:00
Dean Herbert
2501707d7d
Copy values using Bind to also copy defaults
2021-01-03 20:45:03 +09:00
Dean Herbert
29dbb1cc0d
Add internal pathway for ensuring correct application of bindable mods
2021-01-03 15:48:28 +09:00
Dean Herbert
23e216fa0b
Simplify some default value checks (we are sure the return is an IBindable)
2021-01-03 15:47:15 +09:00
Salman Ahmed
c1a1e3acc5
Revert drive-by changes
2021-01-01 15:40:40 +03:00
Salman Ahmed
a031c8e0b6
Apply documentation suggestions
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-01 15:34:09 +03:00
Salman Ahmed
b4df2d6d43
Add method for copying properties from another mod
2021-01-01 03:46:09 +03:00
Firmatorenio
013b9b62a1
add SV multipliers to taiko difficulty mods
2020-12-29 20:22:56 +06:00
Salman Ahmed
41b79d938b
Fix wrong checks..
2020-12-28 15:30:52 +03:00
Salman Ahmed
5efcdbd431
Fix IMod now using reference equality as well
2020-12-28 15:19:28 +03:00
Salman Ahmed
43f8f3638a
Fix mod using reference equality unless casted to IMod
2020-12-27 02:42:13 +03:00
Dean Herbert
d66e218318
Source display accuracy from header and remove from ScoreProcessor function
2020-12-24 14:57:23 +09:00
Bartłomiej Dach
64095307de
Merge branch 'master' into realtime-leaderboard
2020-12-23 09:56:47 +01:00
Dean Herbert
be427a4ec0
Fix realtime leaderboard showing accuracy based on final base score, not rolling
2020-12-23 14:20:35 +09:00
Dean Herbert
d229fbba6e
Merge branch 'master' into present-recommended
2020-12-22 13:52:29 +09:00
Bartłomiej Dach
f96d2f4ba4
Merge branch 'master' into fix-texture-loader-usages
2020-12-21 18:35:34 +01:00
Dean Herbert
bc212b2538
Merge branch 'master' into fix-texture-loader-usages
2020-12-21 13:51:55 +09:00
Dean Herbert
a8569fe15c
Fix a couple of simple cases of incorrect TextureLoaderStore initialisation
2020-12-21 13:35:46 +09:00
Bartłomiej Dach
a31e8d137f
Add guard when clearing samples
2020-12-20 15:42:24 +01:00
Bartłomiej Dach
ee33c0be93
Extract combo & accuracy ratio calculation helpers
2020-12-19 19:08:29 +01:00
Dean Herbert
f13683dc90
Correctly account for max combo of the input, rather than the global
2020-12-17 16:05:41 +09:00
Dean Herbert
41d8b84bd7
Revert MaxBaseScore to being a private field (no longe required to be public)
2020-12-17 15:47:20 +09:00
Dean Herbert
2954218897
Add method to ScoreProcessor to calculate score and accuracy from statistics
2020-12-16 16:20:29 +09:00
Dean Herbert
64a2526678
Add header class and basic flow for propagating data updates
2020-12-14 17:33:23 +09:00
Dean Herbert
1793385e96
Pass a score to the replay recorder to allow reading more general scoring data
2020-12-14 16:52:14 +09:00
Dean Herbert
51e8a05f18
Seal SetRecordTarget method to simplify modification
2020-12-14 16:44:29 +09:00
smoogipoo
ac91f0e270
Add extended limits to difficulty adjustment mod
2020-12-10 00:37:19 +09:00
ekrctb
a548269c34
Fix scrolling hit object displayed in wrong position for one frame
2020-12-07 17:26:12 +09:00
Dean Herbert
a0f92628ac
Merge branch 'master' into fix-sample-expire
2020-12-04 13:49:08 +09:00