bfd3d0cce9
Implement custom enumerator for ReverseQueue to avoid allocations
2021-04-10 01:16:54 +10:00
37e30b00bf
Refactor to keep a consistent API
2021-04-06 16:39:02 +09:00
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
4f614a703e
Merge branch 'master' into diffcalc/dynamic-history
2021-04-06 11:34:33 +10:00
65f93d6f9d
Add more descriptive xmldoc for ReverseQueue
2021-04-06 11:30:58 +10:00
ffe7edc16a
Update xmldocs
...
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me >
2021-04-06 11:06:10 +10:00
5bdd15f746
Refactor Skill.Process() to not require calling base.Process()
2021-04-05 22:14:59 +10:00
57983ae61f
Fix whitespace
2021-04-05 22:14:59 +10:00
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
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
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
ecb66ad2e2
Fix up xmldoc
2021-03-29 15:33:54 +09:00
068f00d8a0
Add EndTime to DifficultyHitObject for future convenience
2021-03-27 18:38:43 +11:00
010db8968f
Adjust wording of xmldoc
2021-03-27 18:38:23 +11:00
8438fce764
Merge branch 'master' into diffcalc/fix/clockrate-adjusted-decay
2021-03-26 11:47:38 +09:00
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
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
ef2e2894a2
Merge branch 'master' into fix-mania-diffcalc
2020-10-14 23:49:14 +09:00
ed57b1363f
Remove unused usings
2020-10-14 20:08:46 +09:00
c4fdd35223
Fix same-type incompatibility through multimod
2020-10-14 19:53:37 +09:00
e9ebeedbe2
Refactor generation
2020-10-14 19:32:30 +09:00
d7a52e97ff
Fix multimod difficulty combinations not generating correctly
2020-10-14 19:03:11 +09:00
8f37d2290a
Expose sorting of hitobjects
2020-10-09 21:43:46 +09:00
485a951281
Expose current strain and retrieval of peak strain
2020-10-09 21:42:43 +09:00
0163688a17
Remove IBeatmap from PerformanceCalculator.
2020-10-02 19:24:30 +02:00
7f2ce14f36
Merge pull request #9294 from smoogipoo/morth-taiko-changes
2020-09-15 16:11:17 +09:00
a350802158
Fix wrong mono streak length handling in corner case
2020-09-10 20:50:26 +02:00
1c1afa1c96
Move MaxCombo to base DifficultyAttributes
2020-08-28 19:16:20 +09:00
6c759f31f1
Add and use limited capacity queue
2020-08-18 20:19:58 +02:00
d5994ed484
CA2208: create exceptions correctly.
2019-12-17 13:00:10 +08:00
d7b3578cc6
CA2201: throw correct exception type.
2019-12-17 13:00:02 +08:00
eb074b7058
Allow mods to apply to track, not clock
2019-12-09 17:44:45 +09:00
ccc8aa6fa4
Apply brace style.
2019-11-11 20:13:13 +08:00
2a295545a7
Don't mutate strainPeaks
2019-05-29 11:25:25 +02:00
7e9f5a0939
Add Skills to DifficultyAttributes
2019-05-29 11:22:51 +02:00
d7c09e7dbd
Merge remote-tracking branch 'origin/master' into fix-new-inspections
...
# Conflicts:
# osu.Game.Rulesets.Catch/Judgements/CatchDropletJudgement.cs
# osu.Game.Rulesets.Catch/Judgements/CatchJudgement.cs
# osu.Game.Rulesets.Mania/Scoring/ManiaScoreProcessor.cs
# osu.Game.Rulesets.Osu/Replays/OsuAutoGenerator.cs
# osu.Game.Rulesets.Osu/UI/Cursor/CursorTrail.cs
# osu.Game.Tests/Visual/SongSelect/TestCaseBeatmapScoresContainer.cs
# osu.Game/Graphics/OsuFont.cs
# osu.Game/Online/API/Requests/Responses/APILegacyScoreInfo.cs
# osu.Game/Overlays/Profile/Header/BadgeContainer.cs
# osu.Game/Overlays/Profile/ProfileHeader.cs
# osu.Game/Screens/Select/PlaySongSelect.cs
# osu.Game/Skinning/LegacySkinDecoder.cs
2019-05-07 13:20:17 +09:00
0bd35ab7bb
Turn on warnings, resolve issues
2019-04-25 17:36:17 +09:00
0222424aef
Make mods IReadOnlyList<Mod> gamewide
...
Prevents potential multiple evaluations of enumerable.
2019-04-10 17:20:36 +09:00
c584967eb1
Remove mods from workingbeatmap
2019-04-09 12:59:32 +09:00
c39c37a18d
Apply more missed cases
2019-04-01 12:44:46 +09:00
c510385aa8
Remove unnecessary allocations
2019-03-20 16:46:16 +09:00
6df275c83a
Use fresh mods for each difficulty calculation iteration
2019-03-20 16:37:25 +09:00
26d53d06a9
Fix remaining issues
2019-02-28 13:31:40 +09:00
7e41fbc29b
Remove LegacyDifficultyCalculator
2019-02-21 13:12:37 +09:00
b7b1f0ef0c
Merge branch 'remove-populateattributes' into new-diffcalc-mania
2019-02-19 17:55:56 +09:00
4dcf39846d
Pass beatmap to CreateSkills()
2019-02-19 17:52:59 +09:00
1efc5179aa
Merge branch 'remove-populateattributes' into new-diffcalc-mania
2019-02-19 17:46:52 +09:00
ca8b7f24b4
Remove PopulateAttributes()
2019-02-19 17:36:33 +09:00
8104c45c25
Merge remote-tracking branch 'origin/master' into new-diffcalc-mania
...
# Conflicts:
# osu.Game.Rulesets.Mania/Difficulty/ManiaLegacyDifficultyCalculator.cs
2019-02-19 16:30:05 +09:00
7ed461aa8c
XMLDoc DifficultyHitObject
2019-02-19 14:30:59 +09:00