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
smoogipoo
e30e5bd214
Remove int casts in other calculators
2021-10-10 16:23:35 +09:00
Dean Herbert
b339c149d8
Copy BaseDifficulty
to Beatmap<T>
and move all write operations across
2021-10-06 15:10:45 +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
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
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
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
f439c1afbc
Make osu/taiko/catch use Ok+Great
2020-09-29 17:16:55 +09:00
smoogipoo
847ec8c248
Fix n^2 characteristic in taiko diffcalc
2020-09-19 14:52:05 +09: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
Bartłomiej Dach
6e5c5ab901
Fix invalid initial value of currentMonoLength
2020-09-10 18:22:49 +02:00
smoogipoo
74eea8900b
Remove unnecessary check for negative durations
2020-09-10 20:00:57 +09:00
smoogipoo
1c1afa1c96
Move MaxCombo to base DifficultyAttributes
2020-08-28 19:16:20 +09:00
Bartłomiej Dach
7c9fae55ad
Hopefully fix off-by-one errors
2020-08-22 22:50:58 +02:00
Bartłomiej Dach
5afe9b73d2
Fix invalid cref
2020-08-22 21:27:08 +02:00
Bartłomiej Dach
a080774799
Add xmldoc to taiko difficulty calculation code
2020-08-22 19:44:58 +02:00
Bartłomiej Dach
8ace7df0fd
Reorder members for better readability
2020-08-22 19:34:49 +02:00
Bartłomiej Dach
7e2bef3b9f
Split conditional for readability
2020-08-22 19:34:49 +02:00
Bartłomiej Dach
bcf3cd5657
Remove unnecessary yield iteration
2020-08-22 19:34:49 +02:00
Bartłomiej Dach
cb3fef7616
Inline same parity penalty
2020-08-22 19:34:49 +02:00
Bartłomiej Dach
ec99fcd7ab
Avoid passing down rhythm list every time
2020-08-22 19:34:49 +02:00
Bartłomiej Dach
27f97973ee
Add more proper typing to skills
2020-08-18 20:19:58 +02:00
Bartłomiej Dach
cb5ea6aa9a
Generalise p-norm function
2020-08-18 20:19:58 +02:00
Bartłomiej Dach
51d41515ef
Simplify expression with ternary
2020-08-18 20:19:58 +02:00
Bartłomiej Dach
c827e21506
Extract helper method to reset rhythm strain
2020-08-18 20:19:58 +02:00
Bartłomiej Dach
80e4c15727
Use Math.Clamp
2020-08-18 20:19:58 +02:00
Bartłomiej Dach
ce0e5cf9a1
Slightly optimise and de-branch rhythm pattern recognition
2020-08-18 20:19:58 +02:00
Bartłomiej Dach
d7ff3d77eb
Slightly optimise and de-branch repetition pattern recognition
2020-08-18 20:19:58 +02:00
Bartłomiej Dach
00ae456f08
Remove unnecessary null check
2020-08-18 20:19:58 +02:00
Bartłomiej Dach
c6a640db55
Remove superfluous IsRepeat field
2020-08-18 20:19:58 +02:00
Bartłomiej Dach
f22050c975
Remove unnecessary initialiser
2020-08-18 20:19:58 +02:00
Bartłomiej Dach
ff44437706
Extract method for marking cheese
2020-08-18 20:19:58 +02:00
Bartłomiej Dach
292d38362c
De-nest cheese detection logic
2020-08-18 20:19:58 +02:00
Bartłomiej Dach
6c759f31f1
Add and use limited capacity queue
2020-08-18 20:19:58 +02:00
Bartłomiej Dach
9fb494d5d3
Eliminate unnecessary loop
2020-08-18 17:36:23 +02:00
Bartłomiej Dach
cd2280b5bf
Fix cheese indexing bug
2020-08-18 17:36:21 +02:00
smoogipoo
8ded5925ff
Xmldoc colour strain
2020-08-13 13:47:35 +09:00
smoogipoo
5010d2044a
Replace IsKat with HitType
2020-08-13 01:35:56 +09:00
smoogipoo
d2a03f1146
Refactor TaikoDifficultyHitObject
2020-08-13 00:59:22 +09:00
smoogipoo
4c00c11541
Remove unnecessary change
2020-07-29 20:53:14 +09:00
smoogipoo
c44ac9104f
Fix post-merge error
2020-07-17 14:19:43 +09:00
smoogipoo
98accf2777
Merge branch 'master' into morth-taiko-changes
2020-07-17 14:19:32 +09:00
smoogipoo
87713215dc
Remove redundant parens
2020-07-16 14:30:17 +09:00
smoogipoo
352f59942e
Fix incorrect time delta in taiko strain
2020-07-13 16:50:54 +09:00
smoogipoo
68027fcc2c
Update with latest changes
2020-06-08 16:30:26 +09:00
smoogipoo
5852a37eb7
Update with latest changes
2020-05-24 11:48:56 +09:00
smoogipoo
9461097b00
Update with latest changes
2020-05-22 20:50:21 +09:00
smoogipoo
d04da46522
Merge branch 'master' into morth-taiko-changes
2020-05-22 20:48:04 +09:00
smoogipoo
1865cd0762
Fix possible exceptions in performance calculators
2020-05-18 15:10:59 +09:00
smoogipoo
b0ed39f32b
Do not use statics
2020-05-11 14:57:47 +09:00
smoogipoo
779af48802
Resolve errors + auto-format
2020-05-11 14:53:42 +09:00
smoogipoo
d613888803
Add initial changes
2020-05-11 14:50:02 +09:00
smoogipoo
5106d275ca
Remove CentreHit/RimHit hitobject abstraction
2020-03-23 12:08:15 +09:00
Huo Yaoyuan
6a58509f41
Fix format.
2019-12-03 20:59:42 +08:00
Huo Yaoyuan
9ddfdab27a
Remove meaningless Convert calls.
2019-12-03 20:47:00 +08:00
Huo Yaoyuan
9425e80a5d
Unify to use double in performance calculators.
2019-11-26 18:34:23 +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
smoogipoo
5ff890434c
Add beatmap argument
2019-02-19 17:57:29 +09:00
smoogipoo
c264a9cc74
Fix mods not being populated
2019-02-19 17:46:40 +09:00
smoogipoo
0ef15f5bd5
Update with PopulateAttributes() removal
2019-02-19 17:45:16 +09:00
smoogipoo
7ba0d090fc
Fix post-merge errors
2019-02-19 16:40:52 +09:00
smoogipoo
7f4643a83d
Adjust naming
2019-02-18 14:55:39 +09:00
smoogipoo
46b979a412
Fix colour changes not being reset
2019-02-18 14:55:20 +09:00
smoogipoo
cb17cbcdc4
Fix taiko nullrefing
2019-02-18 14:54:35 +09:00
smoogipoo
25d85b6eb4
Implement new difficulty calculator for Rulesets.Taiko
2019-02-18 14:54:21 +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
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
jorolf
f0f7b15edc
remove unused using
2018-11-15 00:45:27 +01:00
jorolf
023924396d
Move flashlight code from OsuModFlashlight to ModFlashlight and implement other modes and break time
2018-11-11 18:38:12 +01:00
smoogipoo
48989df6eb
Make sure that 0 SR is returned when there are no hitobjects
2018-06-21 12:04:14 +09:00
smoogipoo
01dd2d7919
Move taiko difficulty attributes to TaikoDifficultyCalculator
2018-06-14 16:26:51 +09:00
smoogipoo
8f7334874c
Fix up performance calculators
2018-06-14 16:04:48 +09:00
smoogipoo
33c7ce1bec
Adjust TaikoDifficultyCalculator in-line with changes
2018-06-14 15:47:42 +09:00
smoogipoo
83ff47ec80
Rewrite difficulty mod combinations
2018-06-06 16:20:17 +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
smoogipoo
3091d3a014
Implement the taiko performance calculator
2018-05-17 17:56:44 +09:00
smoogipoo
450d54eea9
Fix taiko difficulty calculator never considering mods
2018-05-17 17:56:37 +09:00
smoogipoo
803200ff6a
Apply similar changes to other rulesets
2018-05-15 17:40:19 +09:00