Commit Graph

360 Commits

Author SHA1 Message Date
8078a8c1f8 Simplify IncreasesCombo/BreaksCombo helper method implementation 2022-03-18 17:18:42 +03:00
5ec2d86c09 Update ScoreProcessor to use new defined helper methods 2022-03-18 15:22:53 +03:00
fc576b1369 Separate increase/break combo helper methods from AffectsCombo 2022-03-18 15:22:01 +03:00
3a6d254d1f Add safeguards around incorrect ruleset sources 2022-03-15 09:20:32 +09:00
028750936c Apply review suggestions 2022-03-14 17:10:37 +09:00
3fff7f4b7e Require ScoreProcessor to receive ruleset 2022-03-14 15:51:10 +09:00
9cc7f70872 Nullable annotate classes 2022-03-14 15:38:00 +09:00
cf91353009 Merge branch 'master' into scoreprocessor-rework 2022-03-10 16:14:28 +09:00
c36badab4b Add per-ruleset score multipliers for classic scoring 2022-03-10 10:26:09 +09:00
6fd8b4d891 Safeguard method against invalid invocation 2022-03-08 22:30:44 +09:00
f1c40bd9ed Rework GetScore() method signatures + implementations
Rename legacy-facing overload to mention as much
2022-03-08 22:30:44 +09:00
a8e99f1a95 Calculate classic score using total basic hitobject count 2022-03-08 21:49:41 +09:00
5b6b8d1fa9 Remove GetStandardisedScore() proxy method 2022-03-08 21:49:41 +09:00
6654977a7b Add GetScore() overload with total hitobject count 2022-03-08 21:49:41 +09:00
2c382bd1d9 Rename GetImmediateScore() as overload of GetScore() 2022-03-08 21:49:40 +09:00
a352a140bc Merge pull request #17157 from peppy/fix-statistics-json-serialisation
Fix incorrect serialisation of submitted scores
2022-03-08 20:20:31 +09:00
a172fc6cb8 Add IsBasic() and IsTick() extensions on HitResult 2022-03-08 18:19:12 +09:00
589a40ca2d Add EnumMember naming to HitResult to allow for correct json serialisation 2022-03-08 17:58:37 +09:00
7215f3f66b Fix CalculateAverageHitError throwing if there are zero HitEvents 2022-03-01 18:44:15 +09:00
159db38f8a Add missing xmldoc 2022-02-28 19:14:43 +09:00
a41e1c80f1 Show hit error on results screen
Leading up to implementation of "local offset", this feels like a good
thing to have visible first and foremost.
2022-02-28 19:11:06 +09:00
c466d6df94 Ensure to not multiply by 0 2022-02-21 17:19:35 +09:00
c3b365cf6b Scale classic score by hitobject count 2022-02-21 13:31:03 +09:00
7307e68e9c Revert "Merge pull request #16889 from smoogipoo/remove-mod-multiplier"
This reverts commit 252b945d3b, reversing
changes made to a1b39a96cf.
2022-02-17 13:26:12 +09:00
5dd9771c5f Remove mod multipliers from being applied to scores 2022-02-16 16:27:27 +09:00
0f83f77d2b Add xmldoc for new ResetFromReplayFrame method 2022-02-01 16:52:53 +09:00
c50577e25f Apply suggestion from review
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-02-01 10:48:41 +09:00
4fb565e15f Reset ScoreProcessor from statistics replay frames 2022-01-31 21:32:56 +09:00
39e1d65976 Make ScoreProcessor write all judgement types 2022-01-31 18:53:47 +09:00
4106ebf881 Fix mania requiring PERFECTs to maintain HP 2022-01-12 18:29:23 +09:00
69809390d3 Fix HUD unstable rate counter not including judgements before load complete
Also unifies UR calculation logic with the results screen statistic item
to reduce duplication.
2021-11-11 13:36:05 +01:00
40cffd1682 Expose HitEvents publically from ScoreProcessor 2021-11-11 13:22:07 +01:00
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
b339c149d8 Copy BaseDifficulty to Beatmap<T> and move all write operations across 2021-10-06 15:10:45 +09:00
4bbff2ebf7 Merge branch 'master' into new-interfaces 2021-10-06 11:38:17 +09:00
676df55a0e Fade display out during rewind (as the value displayed is no longer valid) 2021-10-05 15:39:29 +09:00
05996cc2e9 Add changes that got forgotted in branch surgery 2021-10-01 17:04:53 +09:00
8595eb2d11 Switch BeatmapDifficulty usages to use interface type 2021-10-01 16:55:50 +09:00
e2f7aaeb71 Fix 0 score with bonus-only maps 2021-09-02 17:00:13 +09:00
31433c4b89 Apply @spaceman_atlas' quadratic factor 2021-09-02 16:26:17 +09:00
bd0f385cdb Make classic scoring a constant multiple of standardised scoring 2021-09-01 14:53:11 +09:00
e32933eb54 Avoid Enum.GetValues in each score population pass 2021-08-26 13:37:53 +09:00
b3f60c8253 Fix date being updated on replays unexpectedly 2021-07-19 19:28:35 +09:00
fb5d25405e Replace calls to obsoleted GetOrDefault() extension 2021-07-18 21:52:16 +02:00
61b7dc1e06 Fix bonus-only maps having 700K base score 2021-04-28 03:42:29 +09:00
1281993f1f Fix bonus score not calculated from the correct statistics 2021-04-27 22:42:58 +09:00
d0f30b7b42 Delay map completion one frame after the last judgment
This is a workaround of a timing issue.
KeyCounter is disabled while break time (`HasCompleted == true`).
When the last keypress is exactly at the same time the map ends, the last frame was considered in a break time while forward play but considered not in a break time while rewinding. This inconsistency made the last keypress not decremented in the key counter when a replay is rewound.
The situation regularly happens in osu!standard because the map ends right after the player hits the last hit circle. It was caught by `TestSceneGameplayRewinding`.

This commit makes the update of the map completion delayed one frame. The problematic keypress frame is now processed strictly before the map completion, and the map completion status is correctly rewound before the keypress frame.
2021-04-13 14:29:47 +09:00
b5954a55ad Remove empty <returns> xmldoc 2021-04-12 17:46:14 +09:00
8293b06c0a Remove obsolete code 2021-04-09 13:56:58 +09:00
701342e036 Remove accuracy rounding at a ScoreProcessor level 2021-03-25 17:43:51 +09:00