Commit Graph

30 Commits

Author SHA1 Message Date
Dan Balasescu f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dan Balasescu 6d2a2ba7d6 Rename Position -> Index 2022-06-09 18:49:11 +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
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 fd3e5d333e Add xmldoc note about `Skill` potentially being memory expensive 2021-11-21 12:15:32 +09:00
Joseph Ireland 185bb9c122 change initial strain from 1 to 0 to allow simpler implementations 2021-10-07 09:30:18 +01: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 be68950c30 refactoring 2021-06-16 03:34:46 +02: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 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 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
smoogipoo 485a951281 Expose current strain and retrieval of peak strain 2020-10-09 21:42:43 +09:00
HoLLy 2a295545a7 Don't mutate strainPeaks 2019-05-29 11:25:25 +02: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 3784b673ae History -> LimitedCapacityStack + re-xmldoc 2019-02-19 13:51:19 +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