1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-17 03:55:30 +08:00
Commit Graph

52 Commits

Author SHA1 Message Date
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
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
26dffbfd3b Replicate hit window calculation 2020-10-14 20:40:39 +09:00
smoogipoo
3e6ed6c9ff Add support for dual stages (keycoop) and score multiplier 2020-10-14 17:53:28 +09:00
smoogipoo
306d876d22 Replicate stable's unstable sort 2020-10-09 21:50:20 +09:00
smoogipoo
5017c92fe8 Combine mania skills 2020-10-09 21:47:34 +09:00
Lucas A
abd395a030 Remove unecessary using references. 2020-10-02 19:41:24 +02:00
Lucas A
0163688a17 Remove IBeatmap from PerformanceCalculator. 2020-10-02 19:24:30 +02:00
smoogipoo
85bda29b71 Add mania max combo attribute 2020-08-28 19:16:24 +09:00
smoogipoo
1865cd0762 Fix possible exceptions in performance calculators 2020-05-18 15:10:59 +09:00
Huo Yaoyuan
ddb2cfc46d Use GetEndTime in Taiko and Mania 2019-12-14 18:16:13 +08:00
Huo Yaoyuan
9ddfdab27a Remove meaningless Convert calls. 2019-12-03 20:47:00 +08:00
Dean Herbert
f925e781a9 Refactor HitWindows for legibility 2019-09-06 15:24:14 +09:00
smoogipoo
4c150839c0 Fix potential diffcalc hitwindow nullref 2019-09-02 17:38:58 +09:00
HoLLy
7e9f5a0939 Add Skills to DifficultyAttributes 2019-05-29 11:22:51 +02:00
Dean Herbert
26d53d06a9 Fix remaining issues 2019-02-28 13:31:40 +09:00
Dean Herbert
d6a2fe6891
Remove excess newline 2019-02-20 10:29:08 +09:00
smoogipoo
4efc03cdf0 Add beatmap argument + fix crashes 2019-02-19 17:56:38 +09:00
smoogipoo
5457097342 Update with PopulateAttributes() removal 2019-02-19 17:48:00 +09:00
smoogipoo
bf17826363 Fix post-merge errors 2019-02-19 16:30:29 +09:00
smoogipoo
9cce9ce97c Consider aggregate peaks 2019-02-18 15:00:32 +09:00
smoogipoo
68725dc005 Implement new difficulty calculator for Rulesets.Mania 2019-02-18 15:00:20 +09:00
smoogipoo
a8faa942a6 Implement new difficulty calculator structure 2019-02-18 14:49:43 +09:00
HoLLy
ae9d5f999c Use correct DifficultyAttributes where possible 2019-02-06 21:28:42 +01:00
Dean Herbert
8617aaa2a7 Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
Unknown
6eff79913b remove blank lines 2019-01-11 10:34:56 +01: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
5fd6e6ca77 Re-namespacing 2018-11-28 16:12:57 +09:00
smoogipoo
48989df6eb Make sure that 0 SR is returned when there are no hitobjects 2018-06-21 12:04:14 +09:00
Dan Balasescu
bf11a61d52
Merge branch 'master' into more-diffcalc-attributes 2018-06-21 09:26:50 +09:00
Dean Herbert
6fa72c510f Avoid listing the base mods twice 2018-06-18 00:48:35 +09:00
smoogipoo
0a99d21938 Use the passed-in ruleset 2018-06-17 18:01:28 +09:00
smoogipoo
08b9cf75e9 Don't compute keymod difficulties for mania-specific beatmaps
These don't affect the number of keys in the beatmap at all for mania-specific beatmaps.
2018-06-14 17:10:08 +09:00
smoogipoo
22add2abc5 Move mania difficulty attributes to ManiaDifficultyCalculator 2018-06-14 16:25:44 +09:00
smoogipoo
8f7334874c Fix up performance calculators 2018-06-14 16:04:48 +09:00
smoogipoo
966099fabc Adjust ManiaDifficultyCalculator in-line with changes 2018-06-14 15:54:05 +09:00
smoogipoo
83ff47ec80 Rewrite difficulty mod combinations 2018-06-06 16:20:17 +09:00
smoogipoo
d850e34003 Actually cast to int 2018-05-26 09:25:16 +09:00
smoogipoo
215cc9fba7 Change all performance calculators to use int hitwindows
Has a pretty large (>6) effect on pp for some maps.
2018-05-25 20:07:14 +09:00
smoogipoo
765a50d007 Remove 0.5 offsets
Checked up against DB values + server-side build versions, and these 0.5s don't seem to exist. Brings calculations more in-line with osu!stable.
2018-05-25 20:05:53 +09:00
Dean Herbert
6c00046835
Merge branch 'master' into mania-performance-calculator 2018-05-18 12:34:49 +09:00
smoogipoo
5aadc35a25 Stably-sort difficulty hitobjects to prevent future issues 2018-05-16 14:47:50 +09:00
smoogipoo
edbb3a5a57 Rename to use new hit result namings 2018-05-16 12:44:11 +09:00
smoogipoo
de63a1b578 Remove construction of new ruleset 2018-05-16 01:43:58 +09:00
smoogipoo
ed902d9325 Cleanup 2018-05-16 01:36:28 +09:00
smoogipoo
1fdc77d579 Update with the rebalance changes 2018-05-16 01:34:07 +09:00