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

159 Commits

Author SHA1 Message Date
Dan Balasescu
815179f713 Use consts for attribute IDs 2021-11-17 20:31:18 +09:00
Dan Balasescu
abb333299b Document base class 2021-11-17 20:20:54 +09:00
Dean Herbert
0715d40ea0 Merge branch 'master' into beatmap-cancellation-token 2021-11-17 11:16:10 +09:00
Dean Herbert
6cca657a2d Standardise naming of CancellationToken parameters 2021-11-16 14:45:51 +09:00
Dan Balasescu
2c45a327bb Remove JsonIgnores, require opt-in properties 2021-11-15 19:54:35 +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
45382a8127 Ignore some properties 2021-11-15 16:32:25 +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
c58f21a115 Handle mods with overloaded method signature instead 2021-11-08 14:43:46 +09:00
Dean Herbert
5b5e3dc4a2 Revert incorrect mod nullable parameter specification 2021-11-08 14:33:15 +09:00
Tollii
d5f5d74a89 Rename CancellationToken variable 2021-11-07 13:41:54 +01:00
Tollii
cf0b757b16 Fix PR comments.
Nitpick, more cancellation token checks.
2021-11-06 16:03:53 +01:00
Tollii
eb7d04bc77 Add cancellation token support for beatmap difficulty calculation. 2021-11-06 00:21:29 +01:00
smoogipoo
81aaef719f Add xmldoc to CalculateTimed() 2021-11-02 17:55:00 +09:00
smoogipoo
168a7a588b Add xmldoc to ctor also 2021-11-02 17:19:14 +09:00
smoogipoo
efba7a9c4d Missed hyphen 2021-11-02 17:18:02 +09:00
smoogipoo
0cdd2898fe Expose non-adjusted time from CalculateTimed() 2021-11-02 17:17:14 +09:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Dan Balasescu
8884091422
Merge pull request #15014 from joseph-ireland/remove-initial-strain
Change initial strain value in skills from 1 to 0
2021-10-10 15:56:20 +09:00
Joseph Ireland
185bb9c122 change initial strain from 1 to 0 to allow simpler implementations 2021-10-07 09:30:18 +01:00
Dan Balasescu
d50443fdf2
Merge branch 'master' into difficulty-move-to-beatmap 2021-10-07 16:50:10 +09:00
Dean Herbert
433e7cd403 Fix rate mods not working if pp counter is displayed 2021-10-06 21:26:30 +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
599d82e383 Avoid returning a live IEnumerable 2021-10-05 17:01:07 +09:00
Dean Herbert
b6af93d434 Apply some code quality refactoring 2021-10-05 15:14:49 +09:00
smoogipoo
a1f880a36a Split classes 2021-10-01 21:00:39 +09:00
smoogipoo
5820a71652 Fix mania difficulty calculator crashing 2021-10-01 19:57:45 +09:00
smoogipoo
84bddf0885 Initial PP counter implementation 2021-09-30 17:00:24 +09:00
smoogipoo
1e2c0031d7 Remove unused usings 2021-08-17 13:34:44 +09:00
Xexxar
61045bd087 adjusted code comments 2021-08-16 22:36:14 +00:00
Xexxar
176b3e7533 changed decay system to allow for customizing the currentStrain 2021-08-16 22:14:29 +00:00
emu1337
29a22bd11f added rhythm multiplier for strain sections 2021-08-15 20:48:00 +02:00
emu1337
84fd59777c Merge branch 'master' into diffspike-balance 2021-07-20 19:39:41 +02:00
Dean Herbert
3c028ce05c Add IDeepCloneable interface and update existing CreateCopy methods to use it 2021-07-19 12:54:17 +09:00
emu1337
be68950c30 refactoring 2021-06-16 03:34:46 +02: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
bfd3d0cce9 Implement custom enumerator for ReverseQueue to avoid allocations 2021-04-10 01:16:54 +10:00
smoogipoo
37e30b00bf Refactor to keep a consistent API 2021-04-06 16:39:02 +09:00
Samuel Cattini-Schultz
5cd43b3a7f Set default history retention to 0 for Skill and override in StrainSkill
Some skills might not even require history retention, so why waste the allocations?
2021-04-06 11:53:31 +10:00
Samuel Cattini-Schultz
4f614a703e Merge branch 'master' into diffcalc/dynamic-history 2021-04-06 11:34:33 +10:00
Samuel Cattini-Schultz
65f93d6f9d Add more descriptive xmldoc for ReverseQueue 2021-04-06 11:30:58 +10:00
Samuel Cattini-Schultz
ffe7edc16a
Update xmldocs
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-04-06 11:06:10 +10:00
Samuel Cattini-Schultz
5bdd15f746 Refactor Skill.Process() to not require calling base.Process() 2021-04-05 22:14:59 +10:00
Samuel Cattini-Schultz
57983ae61f Fix whitespace 2021-04-05 22:14:59 +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
fe66b84bed Implement dynamic previous hitobject retention for Skill class
There is no reason we should be limiting skills to knowing only the previous 2 objects. This originally existed as an angle implementation detail of the original pp+ codebase which made its way here, but didn't get used in the same way.
2021-04-03 20:28:51 +11:00
smoogipoo
ecb66ad2e2 Fix up xmldoc 2021-03-29 15:33:54 +09:00
Samuel Cattini-Schultz
068f00d8a0 Add EndTime to DifficultyHitObject for future convenience 2021-03-27 18:38:43 +11:00
Samuel Cattini-Schultz
010db8968f Adjust wording of xmldoc 2021-03-27 18:38:23 +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
Dean Herbert
ef2e2894a2
Merge branch 'master' into fix-mania-diffcalc 2020-10-14 23:49:14 +09:00
smoogipoo
ed57b1363f Remove unused usings 2020-10-14 20:08:46 +09:00
smoogipoo
c4fdd35223 Fix same-type incompatibility through multimod 2020-10-14 19:53:37 +09:00
smoogipoo
e9ebeedbe2 Refactor generation 2020-10-14 19:32:30 +09:00
smoogipoo
d7a52e97ff Fix multimod difficulty combinations not generating correctly 2020-10-14 19:03:11 +09:00
smoogipoo
8f37d2290a Expose sorting of hitobjects 2020-10-09 21:43:46 +09:00
smoogipoo
485a951281 Expose current strain and retrieval of peak strain 2020-10-09 21:42:43 +09:00
Lucas A
0163688a17 Remove IBeatmap from PerformanceCalculator. 2020-10-02 19:24:30 +02: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
smoogipoo
1c1afa1c96 Move MaxCombo to base DifficultyAttributes 2020-08-28 19:16:20 +09:00
Bartłomiej Dach
6c759f31f1 Add and use limited capacity queue 2020-08-18 20:19:58 +02:00
Huo Yaoyuan
d5994ed484 CA2208: create exceptions correctly. 2019-12-17 13:00:10 +08:00
Huo Yaoyuan
d7b3578cc6 CA2201: throw correct exception type. 2019-12-17 13:00:02 +08:00
Dean Herbert
eb074b7058 Allow mods to apply to track, not clock 2019-12-09 17:44:45 +09:00
Huo Yaoyuan
ccc8aa6fa4 Apply brace style. 2019-11-11 20:13:13 +08:00
HoLLy
2a295545a7 Don't mutate strainPeaks 2019-05-29 11:25:25 +02:00
HoLLy
7e9f5a0939 Add Skills to DifficultyAttributes 2019-05-29 11:22:51 +02:00
smoogipoo
d7c09e7dbd Merge remote-tracking branch 'origin/master' into fix-new-inspections
# Conflicts:
#	osu.Game.Rulesets.Catch/Judgements/CatchDropletJudgement.cs
#	osu.Game.Rulesets.Catch/Judgements/CatchJudgement.cs
#	osu.Game.Rulesets.Mania/Scoring/ManiaScoreProcessor.cs
#	osu.Game.Rulesets.Osu/Replays/OsuAutoGenerator.cs
#	osu.Game.Rulesets.Osu/UI/Cursor/CursorTrail.cs
#	osu.Game.Tests/Visual/SongSelect/TestCaseBeatmapScoresContainer.cs
#	osu.Game/Graphics/OsuFont.cs
#	osu.Game/Online/API/Requests/Responses/APILegacyScoreInfo.cs
#	osu.Game/Overlays/Profile/Header/BadgeContainer.cs
#	osu.Game/Overlays/Profile/ProfileHeader.cs
#	osu.Game/Screens/Select/PlaySongSelect.cs
#	osu.Game/Skinning/LegacySkinDecoder.cs
2019-05-07 13:20:17 +09:00
smoogipoo
0bd35ab7bb Turn on warnings, resolve issues 2019-04-25 17:36:17 +09:00
smoogipoo
0222424aef Make mods IReadOnlyList<Mod> gamewide
Prevents potential multiple evaluations of enumerable.
2019-04-10 17:20:36 +09:00
smoogipoo
c584967eb1 Remove mods from workingbeatmap 2019-04-09 12:59:32 +09:00
Dean Herbert
c39c37a18d Apply more missed cases 2019-04-01 12:44:46 +09:00
smoogipoo
c510385aa8 Remove unnecessary allocations 2019-03-20 16:46:16 +09:00
smoogipoo
6df275c83a Use fresh mods for each difficulty calculation iteration 2019-03-20 16:37:25 +09:00
Dean Herbert
26d53d06a9 Fix remaining issues 2019-02-28 13:31:40 +09:00
smoogipoo
7e41fbc29b Remove LegacyDifficultyCalculator 2019-02-21 13:12:37 +09:00
smoogipoo
b7b1f0ef0c Merge branch 'remove-populateattributes' into new-diffcalc-mania 2019-02-19 17:55:56 +09:00
smoogipoo
4dcf39846d Pass beatmap to CreateSkills() 2019-02-19 17:52:59 +09:00
smoogipoo
1efc5179aa Merge branch 'remove-populateattributes' into new-diffcalc-mania 2019-02-19 17:46:52 +09:00
smoogipoo
ca8b7f24b4 Remove PopulateAttributes() 2019-02-19 17:36:33 +09:00
smoogipoo
8104c45c25 Merge remote-tracking branch 'origin/master' into new-diffcalc-mania
# Conflicts:
#	osu.Game.Rulesets.Mania/Difficulty/ManiaLegacyDifficultyCalculator.cs
2019-02-19 16:30:05 +09:00
smoogipoo
7ed461aa8c XMLDoc DifficultyHitObject 2019-02-19 14:30:59 +09:00
smoogipoo
93b7b51d0a timeRate -> clockRate 2019-02-19 14:29:23 +09:00
smoogipoo
3784b673ae History -> LimitedCapacityStack + re-xmldoc 2019-02-19 13:51:19 +09:00
smoogipoo
af0bb4d5e8 Remove mods from constructor 2019-02-19 13:40:39 +09:00
smoogipoo
9cce9ce97c Consider aggregate peaks 2019-02-18 15:00:32 +09:00
smoogipoo
a8faa942a6 Implement new difficulty calculator structure 2019-02-18 14:49:43 +09:00
Dean Herbert
8617aaa2a7 Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
Dean Herbert
be37f3c328 Rename NoModMod 2018-11-30 17:35:13 +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
09b79d736b Remove unused usings 2018-11-28 16:33:42 +09:00