1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 01:52:55 +08:00
Commit Graph

435 Commits

Author SHA1 Message Date
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
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
Bartłomiej Dach
1ba586a683 Revert overlooked AR<8 speed buff
Pull request #11107 introduced changes in osu! performance calculation,
related to a scaling coefficient applied to the speed and aim skills.
The coefficient in question was dependent on the approach rate of
a map. During a post-merge review of that PR, it was spotted that
the scaling coefficient for speed also had a 10x buff applied for AR<8,
which could reach magnitudes as large as 80% on AR0, which seems quite
exorbitant. This change was not discussed or mentioned anywhere in the
review process.

Revert back to the old multiplier of 0.01 rather than 0.1 for AR<8. The
negative slope through AR0 to 8 is retained in its previous form.
2021-01-13 17:59:29 +01:00
Dean Herbert
76ffe31855
Merge pull request #11138 from smoogipoo/stanr-nf-multiplier
Port StanR's NF multiplier changes
2020-12-17 18:59:46 +09:00
Dan Balasescu
8bdef0ff55
Code quality fix
Co-authored-by: Dean Herbert <pe@ppy.sh>
2020-12-15 13:18:41 +09:00
Xexxar
54827d4e96 fixed low 50s count still penalizing high obj count maps 2020-12-14 12:41:24 -06:00
Xexxar
1dce446c52 Merge branch 'miss-penalty-curve' 2020-12-11 10:49:31 -06:00
Xexxar
b7872a54b8 small factor rebalance 2020-12-11 10:48:53 -06:00
Xexxar
a5a66e71f9 Merge branch 'miss-penalty-curve' 2020-12-11 10:22:04 -06:00
Xexxar
abc8a2982c swapped ^.75 buff onto speed instead of aim 2020-12-11 08:20:56 -06:00
Xexxar
c20117f0fb Merge branch 'miss-penalty-curve' 2020-12-11 08:02:39 -06:00
Xexxar
544160798b cleaned up mistakes and made quality changes 2020-12-11 08:01:45 -06:00
Xexxar
fd0d793c69 changed the comment to reflect the change 2020-12-10 18:51:54 -06:00
Xexxar
e45417d4fe Merge branch 'lowacc-nerf' 2020-12-10 14:24:42 -06:00
Xexxar
1f2946d64c changed miss penalty curve to scale with totalhits 2020-12-10 14:21:06 -06:00
Xexxar
cc5639d2b4 added unneeded whitespace 2020-12-10 09:48:40 -06:00
smoogipoo
7c2f506b79 Port StanR's NF multiplier changes 2020-12-10 17:10:29 +09:00
Xexxar
54abc3bd4d revert aim curve and add new 50s nerf 2020-12-09 20:07:52 -06:00
Xexxar
149651dec1 Merge branch 'lowacc-nerf' of https://github.com/Xexxar/osu into lowacc-nerf 2020-12-09 13:05:11 -06:00
Xexxar
d604c51cbd capped scaling at OD 8 to prevent overscaling 2020-12-09 13:04:14 -06:00
Xexxar
a2bd8ece10
Merge branch 'master' into lowacc-nerf 2020-12-09 12:06:33 -06:00
Xexxar
05ad9aae8d changed curve to linear OD + acc based curve 2020-12-09 11:57:01 -06:00
Xexxar
cfc34a63bd realized i accidently deleted the OD scaling 2020-12-09 11:21:03 -06:00
Xexxar
7e3fcfe437 fixed issue with comment 2020-12-09 10:35:48 -06:00
Xexxar
748035e80a changes to acc scaling curve for speed and aim pp 2020-12-08 16:53:52 -06:00
smoogipoo
168ba62500 Port StanR's dynamic SO pp changes 2020-12-08 22:09:48 +09:00
smoogipoo
57b7ef88e2 Fix spacing 2020-12-08 12:12:53 +09:00
Xexxar
cf3fbe0b0b osuDifficulty ar11 nerf 2020-12-06 18:06:36 -06:00
Lucas A
27cc6c5046 Rename HitCirclesCount -> HitCircleCount. 2020-10-03 16:52:33 +02:00
Lucas A
abd395a030 Remove unecessary using references. 2020-10-02 19:41:24 +02:00
Lucas A
cb2f695fdd Calculate hit circle count in OsuPerformanceCalculator. 2020-10-02 19:34:41 +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
1c1afa1c96 Move MaxCombo to base DifficultyAttributes 2020-08-28 19:16:20 +09:00
Huo Yaoyuan
c20902f249 Fix double in accuracy calculation in OsuPerformanceCalculator. 2020-05-18 18:22:03 +08:00
Huo Yaoyuan
373aae0610 Use int for total hits in OsuPerformanceCalculator. 2020-05-18 17:45:32 +08:00
smoogipoo
1865cd0762 Fix possible exceptions in performance calculators 2020-05-18 15:10:59 +09:00
Huo Yaoyuan
9ddfdab27a Remove meaningless Convert calls. 2019-12-03 20:47:00 +08:00
Dan Balasescu
c6a85a11bd
Merge branch 'master' into sharpen 2019-11-27 17:09:11 +09:00
Huo Yaoyuan
9425e80a5d Unify to use double in performance calculators. 2019-11-26 18:34:23 +08:00
Huo Yaoyuan
7d7b9e36b2 Use compound assignment. 2019-11-12 19:53:50 +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
612db31c38 Apply newline additions 2019-04-01 12:16:32 +09:00
Dean Herbert
2dbf7d122c
Merge branch 'master' into use-pattern-matching 2019-02-28 14:53:07 +09:00
Dean Herbert
e2c6a8bc07 Use pattern matching wherever possible 2019-02-28 14:35:00 +09:00
Dean Herbert
26d53d06a9 Fix remaining issues 2019-02-28 13:31:40 +09:00
smoogipoo
0380293098 Add beatmap argument 2019-02-19 17:58:02 +09:00
smoogipoo
21f9c813b2 Fix mods not being populated 2019-02-19 17:46:18 +09:00
smoogipoo
8459cf6ed0 Missed argument 2019-02-19 17:43:12 +09:00
smoogipoo
f19a52b960 Rename argument 2019-02-19 17:40:35 +09:00
smoogipoo
37f9ac6eca Populate mods too 2019-02-19 17:39:30 +09:00
smoogipoo
847f7d8658 Adjust with PopulateAttributes() removal 2019-02-19 17:38:33 +09:00
smoogipoo
ade5763160 Fix post-merge errors 2019-02-19 14:34:02 +09:00
smoogipoo
659ec267b6 Fix spinners increasing strain 2019-02-18 14:58:33 +09:00
smoogipoo
c930cc5fb5 Fix incorrect OsuDifficultyHitObject instantiation 2019-02-18 14:58:13 +09:00
smoogipoo
fd70269021 Implement new difficulty calculator for Rulesets.Osu 2019-02-18 14:58:03 +09:00
smoogipoo
a8faa942a6 Implement new difficulty calculator structure 2019-02-18 14:49:43 +09:00
Kyle Chang
cf91b882c8 Fix slider tail evaluation in osu difficulty calculator
The slider tail circle was already included as a nested hit object and is judged before the end of the slider's actual duration, so using the slider end time leads to an inaccurate travel distance and end position.
2019-02-03 23:49:05 -05:00
smoogipoo
e9ddf232f0 Add touchdevice mod to performance calculation 2019-01-31 11:51:40 +09:00
Dean Herbert
8d4232af45 Formatting and minor optimisations 2019-01-29 16:35:20 +09:00
Dean Herbert
18512458e8
Merge branch 'master' into xexxar-angles 2019-01-29 15:59:04 +09:00
Dean Herbert
8617aaa2a7 Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
smoogipoo
baae53d784 Merge branch 'diffcalc-fixes' into xexxar-angles 2019-01-20 22:19:50 +09:00
smoogipoo
3db23898df Merge remote-tracking branch 'origin/master' into diffcalc-fixes 2019-01-20 13:27:42 +09:00
smoogipoo
a8e9adafdb Fix final section not being saved 2019-01-17 12:51:49 +09:00
smoogipoo
117c514479 Fix lazy slider calculation inaccuracy
What were we doing... On /b/1221540 stable's repeat points happen 90% through the length of each span! We should use lazer's more accurate calculations.
2019-01-15 19:07:25 +09:00
VINXIS
a09615144e
Kill White Space 2019-01-09 01:47:39 -07:00
VINXIS
dfe35f850c
Add rebalances to lazer performance calc 2019-01-09 01:42:48 -07:00
smoogipoo
722210d8bb Merge remote-tracking branch 'origin/master' into xexxar-angles 2019-01-04 23:52:23 +09:00
smoogipoo
77e6f4ab92 Rebalance 2018-12-27 18:41:42 +09:00
VINXIS
227c63dd1c
numtotalhits -> totalHits 2018-12-23 22:23:43 -07:00
VINXIS
8020ac26fb
MBMasher's FL change 2018-12-23 22:14:28 -07:00
smoogipoo
5f0ab0ed7f Update with vinxis' latest code 2018-12-24 12:41:04 +09:00
smoogipoo
c43c15a557 Multiply previous travel distance by 8 2018-12-23 16:28:19 +09:00
smoogipoo
9fcc727e0d Fix TravelDistance not being calculated 2018-12-23 16:26:23 +09:00
smoogipoo
c848c83d0d Refactor for readability + performance 2018-12-22 09:56:33 +09:00
smoogipoo
8546fedd4f Implement vinxis/xexxar's adjustments 2018-12-22 09:31:30 +09:00
smoogipoo
be476c58d7 Adjust with latest rebalancings 2018-12-21 22:52:27 +09:00
smoogipoo
5bd16f9a7c Add scaling factor 2018-12-21 15:16:00 +09:00
smoogipoo
38441759a7 Use angle projections 2018-12-21 14:52:43 +09:00
smoogipoo
3acbf75beb Adjust threshold 2018-12-21 13:48:10 +09:00
smoogipoo
1c44e19066 Adjust scaling factor 2018-12-19 13:53:47 +09:00
smoogipoo
0fee76c95c Fix merge error 2018-12-19 13:45:33 +09:00
smoogipoo
1972f1f279 Fix incorrect angle being used (at object vs into object) 2018-12-19 13:45:33 +09:00
smoogipoo
162774ce27 Make angles unsigned 2018-12-19 13:45:33 +09:00
smoogipoo
434d7d1809 Replace piecewise linear function + rebalance 2018-12-19 13:45:33 +09:00
smoogipoo
9ad7970167 Adjust computations to return sane values 2018-12-19 13:45:33 +09:00
smoogipoo
f4eabacd15 Implement angle assessment 2018-12-19 13:45:33 +09:00
smoogipoo
e7da5b0400 Add the [200 .. 300] bpm speed bonus 2018-12-19 13:45:33 +09:00
smoogipoo
00a4d60e89 Make sure distance is clamped to sane values 2018-12-19 13:45:33 +09:00
smoogipoo
47721f7a07 Adjust base value 2018-12-19 13:45:33 +09:00
smoogipoo
d74652a4f7 Replace piecewise linear function 2018-12-19 13:45:33 +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
smoogipoo
f27bd3ef3e OpenTK -> osuTK 2018-11-20 17:14:59 +09:00
Dean Herbert
bb2f8deb18 ControlPoint -> PathControlPoint
Also Curve -> Path.
2018-11-01 03:56:51 +09:00
smoogipoo
1cf6cd10bb Fix slider travel distances sometimes not being considered 2018-10-18 11:29:50 +09:00
smoogipoo
ec9f23ab73 Make IBeatmap.HitObjects an IReadOnlyList 2018-10-11 19:53:07 +09:00
smoogipoo
7d20efed2c Fix missing stack position 2018-10-11 13:53:29 +09:00
smoogipoo
f675c93935 Stably-sort hitobjects 2018-10-10 23:11:28 +09:00
smoogipoo
4e37b5c4a7 50ms cap shouldn't be included in the strain decay 2018-10-10 18:53:54 +09:00
smoogipoo
d8f77feddd Fix using the wrong slider's travel distance 2018-10-10 18:52:57 +09:00
smoogipoo
03a9511399 Apparently stable does use stacking 2018-10-10 18:08:46 +09:00
smoogipoo
d6784c818e Fix jump/travel distances in some scenarios 2018-10-10 11:49:54 +09:00
smoogipoo
0a3be0d253 Adjust comments slightly 2018-10-09 12:03:47 +09:00
smoogipoo
9facf707be Add diffcalc beatmap decoder 2018-10-09 11:49:24 +09:00
smoogipoo
f8eaccddda Stable doesn't use stacked positions 2018-10-08 18:37:49 +09:00
smoogipoo
0116db95d0 Fix progress calculation 2018-10-08 18:37:30 +09:00
smoogipoo
35f45e74dc Calculate scaled positions prior to square-rooting 2018-10-08 17:39:10 +09:00
smoogipoo
1ad5090ad6 Separate travel distance from jump distance 2018-10-08 17:38:12 +09:00
smoogipoo
61e7ada977 Use ints + fix position calculation 2018-10-08 17:36:06 +09:00
smoogipoo
da97600076 Fix inaccurate section lengths for first hitobject 2018-10-08 16:46:58 +09:00
Dean Herbert
1d6609d9f3 Add common custom words to dotsettings dictionary
Also fixes some typos and reduces spelling suggestions to hints.
2018-07-05 15:54:41 +09:00
smoogipoo
48989df6eb Make sure that 0 SR is returned when there are no hitobjects 2018-06-21 12:04:14 +09:00
smoogipoo
41abd5990c Move osu! difficulty attributes to OsuDifficultyCalculator 2018-06-14 16:27:05 +09:00
smoogipoo
af218b3d8d No need to use properties 2018-06-14 16:13:21 +09:00
smoogipoo
8f7334874c Fix up performance calculators 2018-06-14 16:04:48 +09:00
smoogipoo
47fc18d7c4 Adjust OsuDifficultyCalculator in-line with changes 2018-06-14 15:45:16 +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
smoogipoo
1f37dca7b7 Fix HR / EZ being applied twice to AR 2018-05-19 14:47:06 +09:00
smoogipoo
eba1d309b6 Fix incorrect namespace of OsuPerformanceCalculator 2018-05-17 16:58:22 +09:00
smoogipoo
cf08293be1 Remove extra newline 2018-05-15 21:49:44 +09:00
smoogipoo
4101b8ddde Merge remote-tracking branch 'origin/master' into more-diffcalc-improvements 2018-05-15 21:31:58 +09:00
smoogipoo
995fda9b6f Move base classes to osu.Game.Rulesets.Difficulty namespace 2018-05-15 17:38:08 +09:00
smoogipoo
9fd972e0a3 Rename OsuDifficulty -> Difficulty 2018-05-15 17:36:29 +09:00