smoogipoo
a1f880a36a
Split classes
2021-10-01 21:00:39 +09:00
smoogipoo
5820a71652
Fix mania difficulty calculator crashing
2021-10-01 19:57:45 +09:00
smoogipoo
84bddf0885
Initial PP counter implementation
2021-09-30 17:00:24 +09:00
smoogipoo
1e2c0031d7
Remove unused usings
2021-08-17 13:34:44 +09:00
Xexxar
61045bd087
adjusted code comments
2021-08-16 22:36:14 +00:00
Xexxar
176b3e7533
changed decay system to allow for customizing the currentStrain
2021-08-16 22:14:29 +00:00
emu1337
29a22bd11f
added rhythm multiplier for strain sections
2021-08-15 20:48:00 +02:00
emu1337
84fd59777c
Merge branch 'master' into diffspike-balance
2021-07-20 19:39:41 +02:00
Dean Herbert
3c028ce05c
Add IDeepCloneable
interface and update existing CreateCopy
methods to use it
2021-07-19 12:54:17 +09:00
emu1337
be68950c30
refactoring
2021-06-16 03:34:46 +02:00
Samuel Cattini-Schultz
f1bef989b7
Refactor DifficultyAttributes to use auto properties over public fields
2021-06-08 19:43:59 +10:00
Samuel Cattini-Schultz
f51413ead9
Refactor to pass clockrate in constructor rather than deriving from mods
2021-06-03 16:09:42 +10:00
Samuel Cattini-Schultz
bfd3d0cce9
Implement custom enumerator for ReverseQueue to avoid allocations
2021-04-10 01:16:54 +10:00
smoogipoo
37e30b00bf
Refactor to keep a consistent API
2021-04-06 16:39:02 +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
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
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
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
smoogipoo
8438fce764
Merge branch 'master' into diffcalc/fix/clockrate-adjusted-decay
2021-03-26 11:47:38 +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
ef2e2894a2
Merge branch 'master' into fix-mania-diffcalc
2020-10-14 23:49:14 +09:00
smoogipoo
ed57b1363f
Remove unused usings
2020-10-14 20:08:46 +09:00
smoogipoo
c4fdd35223
Fix same-type incompatibility through multimod
2020-10-14 19:53:37 +09:00
smoogipoo
e9ebeedbe2
Refactor generation
2020-10-14 19:32:30 +09:00
smoogipoo
d7a52e97ff
Fix multimod difficulty combinations not generating correctly
2020-10-14 19:03:11 +09:00
smoogipoo
8f37d2290a
Expose sorting of hitobjects
2020-10-09 21:43:46 +09:00
smoogipoo
485a951281
Expose current strain and retrieval of peak strain
2020-10-09 21:42:43 +09:00
Lucas A
0163688a17
Remove IBeatmap from PerformanceCalculator.
2020-10-02 19:24:30 +02:00
Dean Herbert
7f2ce14f36
Merge pull request #9294 from smoogipoo/morth-taiko-changes
2020-09-15 16:11:17 +09:00
Bartłomiej Dach
a350802158
Fix wrong mono streak length handling in corner case
2020-09-10 20:50:26 +02:00
smoogipoo
1c1afa1c96
Move MaxCombo to base DifficultyAttributes
2020-08-28 19:16:20 +09:00
Bartłomiej Dach
6c759f31f1
Add and use limited capacity queue
2020-08-18 20:19:58 +02:00
Huo Yaoyuan
d5994ed484
CA2208: create exceptions correctly.
2019-12-17 13:00:10 +08:00
Huo Yaoyuan
d7b3578cc6
CA2201: throw correct exception type.
2019-12-17 13:00:02 +08:00
Dean Herbert
eb074b7058
Allow mods to apply to track, not clock
2019-12-09 17:44:45 +09:00
Huo Yaoyuan
ccc8aa6fa4
Apply brace style.
2019-11-11 20:13:13 +08:00
HoLLy
2a295545a7
Don't mutate strainPeaks
2019-05-29 11:25:25 +02:00
HoLLy
7e9f5a0939
Add Skills to DifficultyAttributes
2019-05-29 11:22:51 +02:00
smoogipoo
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
smoogipoo
0bd35ab7bb
Turn on warnings, resolve issues
2019-04-25 17:36:17 +09:00
smoogipoo
0222424aef
Make mods IReadOnlyList<Mod> gamewide
...
Prevents potential multiple evaluations of enumerable.
2019-04-10 17:20:36 +09:00
smoogipoo
c584967eb1
Remove mods from workingbeatmap
2019-04-09 12:59:32 +09:00
Dean Herbert
c39c37a18d
Apply more missed cases
2019-04-01 12:44:46 +09:00
smoogipoo
c510385aa8
Remove unnecessary allocations
2019-03-20 16:46:16 +09:00
smoogipoo
6df275c83a
Use fresh mods for each difficulty calculation iteration
2019-03-20 16:37:25 +09:00
Dean Herbert
26d53d06a9
Fix remaining issues
2019-02-28 13:31:40 +09:00
smoogipoo
7e41fbc29b
Remove LegacyDifficultyCalculator
2019-02-21 13:12:37 +09:00
smoogipoo
b7b1f0ef0c
Merge branch 'remove-populateattributes' into new-diffcalc-mania
2019-02-19 17:55:56 +09:00
smoogipoo
4dcf39846d
Pass beatmap to CreateSkills()
2019-02-19 17:52:59 +09:00
smoogipoo
1efc5179aa
Merge branch 'remove-populateattributes' into new-diffcalc-mania
2019-02-19 17:46:52 +09:00
smoogipoo
ca8b7f24b4
Remove PopulateAttributes()
2019-02-19 17:36:33 +09:00
smoogipoo
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
smoogipoo
7ed461aa8c
XMLDoc DifficultyHitObject
2019-02-19 14:30:59 +09:00
smoogipoo
93b7b51d0a
timeRate -> clockRate
2019-02-19 14:29:23 +09:00
smoogipoo
3784b673ae
History -> LimitedCapacityStack + re-xmldoc
2019-02-19 13:51:19 +09:00
smoogipoo
af0bb4d5e8
Remove mods from constructor
2019-02-19 13:40:39 +09:00
smoogipoo
9cce9ce97c
Consider aggregate peaks
2019-02-18 15:00:32 +09:00
smoogipoo
a8faa942a6
Implement new difficulty calculator structure
2019-02-18 14:49:43 +09:00
Dean Herbert
8617aaa2a7
Update licence header (and remove year)
2019-01-24 17:43:03 +09:00
Dean Herbert
be37f3c328
Rename NoModMod
2018-11-30 17:35:13 +09:00
Dean Herbert
831cd3ed59
ScoreInfo scoreInfo -> ScoreInfo score
2018-11-30 15:18:52 +09:00
smoogipoo
219929eb47
Score -> ScoreInfo
2018-11-28 18:33:01 +09:00
smoogipoo
09b79d736b
Remove unused usings
2018-11-28 16:33:42 +09:00
smoogipoo
5fd6e6ca77
Re-namespacing
2018-11-28 16:12:57 +09:00
Dean Herbert
9f933187e9
Apply review feedback
2018-07-17 16:33:08 +09:00
Dean Herbert
825941aff1
Use switch with type matching in place of if-else where possible
2018-07-17 14:35:09 +09:00
smoogipoo
8f7334874c
Fix up performance calculators
2018-06-14 16:04:48 +09:00
smoogipoo
b7a06b9594
Restructure of DifficultyCalculator to cleanup mod + attribute handling
2018-06-14 15:32:07 +09:00
smoogipoo
1431ee1867
Remove unused method
2018-06-14 14:46:25 +09:00
smoogipoo
83ff47ec80
Rewrite difficulty mod combinations
2018-06-06 16:20:17 +09:00
smoogipoo
de63a1b578
Remove construction of new ruleset
2018-05-16 01:43:58 +09:00
smoogipoo
995fda9b6f
Move base classes to osu.Game.Rulesets.Difficulty namespace
2018-05-15 17:38:08 +09:00