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

170 Commits

Author SHA1 Message Date
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
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
ekrctb
96f3e0dad8 Replace CatchHitObject.X usage to EffectiveX and OriginalX 2020-12-14 11:03:14 +09:00
ekrctb
ab7251d742 Move members to PalpableCatchHitObject 2020-11-24 19:57:37 +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
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
bastoo0
2b068298cc
Fix inconsistency between this and osu-performance
The bonus value for HD is given twice here (probably a merge issue). The correct bonus is currently used on stable: 736515a034/src/performance/catch/CatchScore.cpp (L68)
2020-07-24 12:01:23 +02:00
ekrctb
3278a1d7d8 Standardize osu!catch coordinate system
There were two coordinate systems used:
- 0..512 (used in osu!stable)
- 0..1 (relative coordinate)

This commit replaces the usage of
the relative coordinate system to
the coordinate system of 0..512.
2020-07-02 00:21:45 +09:00
smoogipoo
f3b5149648 Move some suggestions to warnings, resolve issues 2020-06-03 16:48:44 +09:00
Huo Yaoyuan
b43e978156 Unify to use double in CatchPerformanceCalculator. 2020-05-18 17:44:56 +08:00
smoogipoo
1865cd0762 Fix possible exceptions in performance calculators 2020-05-18 15:10:59 +09:00
smoogipoo
f42be7a6d7 Merge branch 'master' into sorcerer-catch-changes 2020-05-04 15:25:09 +09:00
Salman Ahmed
f841eb7e06
Replace constructing a whole Catcher with static calculation methods 2020-04-22 07:27:15 +03:00
smoogipoo
d7ea5432a8 Fix incorrect combo calculation 2020-04-16 18:15:52 +09:00
smoogipoo
c6aa6acc1b Apply performance calculator changes 2020-04-16 17:28:06 +09:00
smoogipoo
fd51bbb9ec Apply latest changes 2020-04-08 12:20:46 +09:00
smoogipoo
c5aae9b757 Fix post-merge errors 2020-04-08 12:19:09 +09:00
smoogipoo
4e55212638 Merge branch 'master' into sorcerer-catch-changes 2020-04-08 12:15:24 +09:00
Dean Herbert
03b90fe2db Remove local application of same margin in CatchDifficultyCalculator 2020-03-31 19:01:49 +09:00
Dean Herbert
1523c4c63f Merge branch 'master' into catcher-area-file-cleanup 2020-03-14 15:41:26 +09:00
Dean Herbert
1733519c3a Split out CatcherArea nested classes and reorder methods 2020-03-13 12:59:30 +09:00
smoogipoo
c8cdc5fda5 Expose half catcher width to movement skill 2020-03-13 12:43:01 +09:00
smoogipoo
cf12ffd27e Merge remote-tracking branch 'origin/master' into sorcerer-catch-changes
# Conflicts:
#	osu.Game.Rulesets.Catch/Difficulty/CatchPerformanceCalculator.cs
2020-02-13 17:18:32 +09:00
Dean Herbert
f0d49d0cdf Decouple APILegacyScoreInfo from ScoreInfo 2019-12-03 15:31:11 +09:00
Huo Yaoyuan
9425e80a5d Unify to use double in performance calculators. 2019-11-26 18:34:23 +08:00
Berkan Diler
fccdbffa93 Use MathF instead of Math- functions when possible
MathF-functions are faster than the Math-counterpart and it looks cleaner, so use MathF when we cast to float or int anyway.
2019-11-25 00:45:42 +01:00
Berkan Diler
6cab517b2d .NET Standard 2.1 implements Math.Clamp , use it instead of MathHelper.Clamp from osuTK. 2019-11-20 13:37:47 +01:00
HoLLy
7e9f5a0939 Add Skills to DifficultyAttributes 2019-05-29 11:22:51 +02:00
HoLLy
cb664dd183 Change OfType<> to Cast<> to be more clear 2019-05-12 22:08:47 +02:00
HoLLy
3981cf55fa Fix order of nested hitobjects on 2B Catch maps 2019-05-12 21:31:16 +02:00
smoogipoo
2824a32db6 Adjust circle-size bonus point 2019-04-03 11:39:13 +09:00
smoogipoo
5566c4881a Buff DT 2019-04-03 11:38:48 +09:00
smoogipoo
21e62c37d8 General fixes 2019-04-02 07:28:04 +09:00
Dean Herbert
612db31c38 Apply newline additions 2019-04-01 12:16:32 +09:00
smoogipoo
efee2fb283 Adjust antiflow calculations 2019-04-01 11:00:26 +09:00
smoogipoo
b2396b82a5 Change edge dashes to scale linearly once again 2019-04-01 10:58:26 +09:00
smoogipoo
b402981fc6 Buff CS > 5 2019-04-01 10:57:01 +09:00
smoogipoo
9d0d402336 Apply pp calculator changes
(Backported from https://github.com/ppy/osu-performance/compare/master...smoogipoo:sorcerer-catch-changes)
2019-03-27 17:22:07 +09:00
smoogipoo
7d102e9e8f Merge remote-tracking branch 'HollyHacker/ctb-pp' into sorcerer-catch-changes 2019-03-27 17:19:41 +09:00
smoogipoo
5c8e8a1697 Fix license header 2019-03-27 16:56:15 +09:00
smoogipoo
8fcb75809d Add LegacyScoreInfo for statistics preservation/conversion 2019-03-27 16:55:46 +09:00
smoogipoo
1a6c2022ea Fix up/adjust counts 2019-03-27 14:53:29 +09:00
smoogipoo
2dc5447928 Merge remote-tracking branch 'origin/master' into ctb-pp 2019-03-27 14:01:02 +09:00
smoogipoo
2705263145 Scale edge dash threshold with clock rate 2019-03-26 13:25:52 +09:00
smoogipoo
be5ffdbf22 Adjust edge bonuses to consider clock rate 2019-03-23 16:01:14 +09:00
smoogipoo
839dd7343f Revert "Use fresh mods for each difficulty calculation"
This reverts commit 24fb25f1cd.
2019-03-23 15:57:22 +09:00
smoogipoo
9f12a36598 Buff slower edge dashes, nerf faster ones 2019-03-20 12:14:53 +09:00
smoogipoo
9ae6cde837 Nerf back-and-forth hyperdash chains 2019-03-20 12:14:26 +09:00
smoogipoo
94340608d4 Merge remote-tracking branch 'origin/master' into sorcerer-diffcalc-changes 2019-03-19 17:29:19 +09:00
Dean Herbert
0fbc049f8d
Remove newline 2019-03-19 16:25:34 +09:00
smoogipoo
dd60e3f1c4 Fix halfCatchWidth not being reset between runs 2019-03-19 15:59:04 +09:00
smoogipoo
57727ac184 Remove preprocess until a later point in time 2019-03-19 15:53:27 +09:00
smoogipoo
5d9477e1e4 Fix difficulty calculation using the pre-mod catcher size 2019-03-19 15:35:14 +09:00
smoogipoo
f959a2ee37 Update antiflow bonus 2019-03-16 10:12:05 +09:00
smoogipoo
2bf01e876e Merge branch 'reinstantiate-mods' into sorcerer-diffcalc-changes 2019-03-14 23:42:11 +09:00
smoogipoo
24fb25f1cd Use fresh mods for each difficulty calculation 2019-03-14 23:41:52 +09:00
smoogipoo
412a3c0e82 Merge branch 'fix-catch-diffcalc-mods' into sorcerer-diffcalc-changes 2019-03-14 23:07:58 +09:00
smoogipoo
d13423fcdb Fix catch difficulty calculator not providing adjustment mods 2019-03-14 23:06:23 +09:00
smoogipoo
b51a457e5a Implement sorcerer's diffcalc changes 2019-03-06 14:36:30 +09:00
Dean Herbert
26d53d06a9 Fix remaining issues 2019-02-28 13:31:40 +09:00
smoogipoo
cab7a030f0 Merge remote-tracking branch 'origin/master' into ctb-diffcalc 2019-02-20 15:15:12 +09:00
smoogipoo
d25d10d8fc Fix position not being set for the first hitobject 2019-02-20 14:14:45 +09:00
smoogipoo
9192f7d717 Merge remote-tracking branch 'origin/master' into ctb-diffcalc
# Conflicts:
#	osu.Game.Rulesets.Catch/Difficulty/CatchDifficultyCalculator.cs
2019-02-20 12:22:32 +09:00
smoogipoo
ea281e8596 Add beatmap argument 2019-02-19 17:54:00 +09:00
smoogipoo
1a645b5115 Fix mods not being populated 2019-02-19 17:45:52 +09:00
smoogipoo
2765ffa190 Update with PopulateAttributes() removal 2019-02-19 17:42:24 +09:00
smoogipoo
3abb281ad5 Fix post-merge errors 2019-02-19 16:41:53 +09:00
smoogipoo
83cab2ba8a Fix incorrect hitobject being used as the last hitobject 2019-02-18 14:50:47 +09:00
smoogipoo
f6b13ca79d Rewrite catch diffcalc for readability + attempt to fix 2019-02-18 14:50:47 +09:00
smoogipoo
e02ae927b3 Fix nullrefs 2019-02-18 14:50:47 +09:00
smoogipoo
8eba94e8c9 Implement new difficulty calculator for Rulesets.Catch 2019-02-18 14:50:47 +09:00
smoogipoo
a8faa942a6 Implement new difficulty calculator structure 2019-02-18 14:49:43 +09:00
HoLLy
f6318d3670 Add comment explaining *= 0.8f 2019-02-01 13:06:36 +01:00
HoLLy
30292f44da Fix Catch diffcalc being off 2019-01-31 17:57:59 +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
Dan Balasescu
09f12fcd42
Removed TODO comment regarding Aim being StarRating
Co-Authored-By: HoLLy-HaCKeR <HoLLy-HaCKeR@users.noreply.github.com>
2019-01-10 22:47:28 +00:00
HoLLy
75a5691c5f Set license header year to 2018, remove old TODO comment 2019-01-09 00:51:49 +01:00
HoLLy
41d0bff243 Assume katu is part of HitResult.Miss 2019-01-09 00:20:15 +01:00
HoLLy
f83163e78e Attempt to implement Catch performance calculator 2019-01-08 22:28:48 +01:00
smoogipoo
f27bd3ef3e OpenTK -> osuTK 2018-11-20 17:14:59 +09:00
Dean Herbert
9f933187e9 Apply review feedback 2018-07-17 16:33:08 +09:00
Dean Herbert
825941aff1 Use switch with type matching in place of if-else where possible 2018-07-17 14:35:09 +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