1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-14 23:12:56 +08:00
Commit Graph

155 Commits

Author SHA1 Message Date
Dan Balasescu
da2a4681d9 Add method to retrieve legacy score multiplier 2023-10-02 16:52:01 +09:00
Dan Balasescu
2334be1987 Split legacy scoring attributes into a separate object 2023-09-07 21:10:38 +09:00
Dean Herbert
1629024111 ILegacyScoreProcessor -> ILegacyScoreSimulator 2023-07-04 17:32:54 +09:00
Dan Balasescu
09bc8e45de Refactoring 2023-06-28 16:14:32 +09:00
Dan Balasescu
5f350aa66f Fix float division
Firstly, this is intended to be a float division.

Secondly, dividing integers by 0 results in an exception, but dividing
non-zero floats by 0 results in +/- infinity which will be clamped to
the upper range.
In particular, this occurs when the beatmap has 1 hitobject (0 drain
length).
2023-06-27 17:14:35 +09:00
Dan Balasescu
a9c65d200a Initial conversion of scores 2023-06-26 22:19:01 +09:00
Dan Balasescu
06565871d6 Add flag to disable computing legacy scoring values 2023-06-24 01:03:18 +09:00
Dan Balasescu
87447f41d0 Fix incorrect calculation of difficulty 2023-06-24 00:58:45 +09:00
Dan Balasescu
bfa449e47a Adjust attribute data 2023-06-19 21:38:13 +09:00
Dan Balasescu
3ec97121e1 Add ScoreV1 calculation for CatchRuleset 2023-06-13 19:41:39 +09:00
Dan Balasescu
e402c6d2b4 Write max combo attribute from base class 2023-06-02 21:53:25 +09:00
ekrctb
3ab3f556ae Remove #nullable disable from Catch.Difficulty 2023-01-15 17:29:32 +09:00
Dean Herbert
aca19a005e Add versioning to difficulty calculators 2022-07-21 18:15:25 +09:00
Dan Balasescu
0fd2c010e5 Remove NRT disables from attributes classes 2022-06-27 16:07:15 +09:00
Dan Balasescu
0579780bb8 Add IBeatmapOnlineInfo parameter and use to extract more data 2022-06-27 16:07:15 +09:00
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
66a6467403 Pass object position to the object 2022-05-26 19:26:14 +01:00
apollo-dw
30b9e0e7ab Use object list size for object position 2022-05-24 16:30:25 +01:00
apollo-dw
26985ca8af Store hitobject history in the hitobject 2022-05-22 16:26:22 +01:00
Dan Balasescu
523f668c8c Remove unnecessary ctor argument 2022-03-15 12:37:39 +09:00
Dan Balasescu
4a3e3aba65 Restructure PerformanceCalculator to not require ScoreInfo argument 2022-03-14 14:25:28 +09:00
Dan Balasescu
84e82ef5e4 Add XMLDocs to difficulty attribute properties 2022-02-16 14:09:19 +09:00
StanR
40b3ce0ade Clean up comments 2021-12-21 14:03:24 +03:00
StanR
cca02a8016 Create PerformanceAttributes 2021-12-21 13:08:31 +03:00
StanR
2f2006715e Slightly refactor difficulty and pp calculators 2021-12-17 23:40:23 +03:00
Dean Herbert
9f688f6291 Stop persisting Skills in DifficultyAttributes 2021-11-21 12:15:32 +09:00
Dean Herbert
fd0cae2bfb
Merge branch 'master' into difficulty-attribute-helpers 2021-11-17 20:49:31 +09:00
Dan Balasescu
815179f713 Use consts for attribute IDs 2021-11-17 20:31:18 +09:00
Dean Herbert
369b4ba789 Update DifficultyCalculator to take an IRulesetInfo 2021-11-15 19:16:48 +09:00
Dean Herbert
62d670a3ca Update DifficultyCalculator to take an IWorkingBeatmap 2021-11-15 19:16:48 +09:00
Dan Balasescu
c8a01c35f7 Remove extra members from FromDatabaseAttributes 2021-11-15 18:11:07 +09:00
Dan Balasescu
0cfd6fdf04 Add to/from database mapping functions to difficulty attributes 2021-11-15 16:06:50 +09:00
Dan Balasescu
907499f73a Add json properties to difficulty attributes 2021-11-15 16:06:29 +09:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Dean Herbert
b339c149d8 Copy BaseDifficulty to Beatmap<T> and move all write operations across 2021-10-06 15:10:45 +09:00
Dean Herbert
05996cc2e9 Add changes that got forgotted in branch surgery 2021-10-01 17:04:53 +09:00
Dean Herbert
16e60eed56 Reduce NestedHitObject enumerator overhead
This was especially bad due to it allocating on any and every start time
change, even the first (see usage in `HitObject.ctor`).
2021-09-20 15:09:27 +09:00
Xexxar
176b3e7533 changed decay system to allow for customizing the currentStrain 2021-08-16 22:14:29 +00:00
Bartłomiej Dach
fb5d25405e
Replace calls to obsoleted GetOrDefault() extension 2021-07-18 21:52:16 +02:00
Dan Balasescu
35d5632355
Merge pull request #13378 from Syriiin/diffcalc/refactor/auto-properties
Refactor DifficultyAttributes to use auto properties over public fields
2021-06-10 18:42:11 +09:00
Dean Herbert
85abee5fc7 Remove difficulty calculator exceptions
I don't think there's any reason difficulty calculators shouldn't be
able to calculate for autoplays.
2021-06-09 14:33:35 +09:00
Dean Herbert
d0e9f8ef90 Replace and obsolete Ranked flag with IsUserPlayable 2021-06-09 14:17:03 +09: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
7cdef5cb0a Merge branch 'master' into diffcalc/refactor/catch-clockrate-effects 2021-06-03 15:51:03 +10:00
Samuel Cattini-Schultz
94701b77cb Add TODO for variable clockrate support in catch difficulty calculator 2021-06-03 15:44:28 +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
323e4ac26b Refactor catch Movement skill to not require explicit clockrate usage
In catch, rate adjustment mods do not only affect the timings of hitobjects, but also the speed of the player's catcher.

This catcher speed change has an impact on difficulty which is currently accounted for by using the clockrate directly in calculations.

Semantically this is a bad idea because clockrate adjustments are supposed to be fully accounted for in DifficultyHitObjects, but passing clockrate here for the purpose of being used as catcher speed doesn't make much sense, especially since it is copied in every DifficultyHitObject despite being the same value.

It makes more sense to account for this catch specific impact by handling rate adjustment mods in a catch specific way, or more specifically in a Movement skill specific way.
2021-02-21 18:24:30 +11:00