Commit Graph

88 Commits

Author SHA1 Message Date
8884091422 Merge pull request #15014 from joseph-ireland/remove-initial-strain
Change initial strain value in skills from 1 to 0
2021-10-10 15:56:20 +09:00
185bb9c122 change initial strain from 1 to 0 to allow simpler implementations 2021-10-07 09:30:18 +01:00
d50443fdf2 Merge branch 'master' into difficulty-move-to-beatmap 2021-10-07 16:50:10 +09:00
433e7cd403 Fix rate mods not working if pp counter is displayed 2021-10-06 21:26:30 +09:00
b339c149d8 Copy BaseDifficulty to Beatmap<T> and move all write operations across 2021-10-06 15:10:45 +09:00
599d82e383 Avoid returning a live IEnumerable 2021-10-05 17:01:07 +09:00
b6af93d434 Apply some code quality refactoring 2021-10-05 15:14:49 +09:00
a1f880a36a Split classes 2021-10-01 21:00:39 +09:00
5820a71652 Fix mania difficulty calculator crashing 2021-10-01 19:57:45 +09:00
84bddf0885 Initial PP counter implementation 2021-09-30 17:00:24 +09:00
1e2c0031d7 Remove unused usings 2021-08-17 13:34:44 +09:00
61045bd087 adjusted code comments 2021-08-16 22:36:14 +00:00
176b3e7533 changed decay system to allow for customizing the currentStrain 2021-08-16 22:14:29 +00:00
29a22bd11f added rhythm multiplier for strain sections 2021-08-15 20:48:00 +02:00
84fd59777c Merge branch 'master' into diffspike-balance 2021-07-20 19:39:41 +02:00
3c028ce05c Add IDeepCloneable interface and update existing CreateCopy methods to use it 2021-07-19 12:54:17 +09:00
be68950c30 refactoring 2021-06-16 03:34:46 +02:00
f1bef989b7 Refactor DifficultyAttributes to use auto properties over public fields 2021-06-08 19:43:59 +10:00
f51413ead9 Refactor to pass clockrate in constructor rather than deriving from mods 2021-06-03 16:09:42 +10:00
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