smoogipoo
e2f7aaeb71
Fix 0 score with bonus-only maps
2021-09-02 17:00:13 +09:00
smoogipoo
31433c4b89
Apply @spaceman_atlas' quadratic factor
2021-09-02 16:26:17 +09:00
smoogipoo
bd0f385cdb
Make classic scoring a constant multiple of standardised scoring
2021-09-01 14:53:11 +09:00
Dean Herbert
e32933eb54
Avoid Enum.GetValues
in each score population pass
2021-08-26 13:37:53 +09:00
Dean Herbert
b3f60c8253
Fix date being updated on replays unexpectedly
2021-07-19 19:28:35 +09:00
Bartłomiej Dach
fb5d25405e
Replace calls to obsoleted GetOrDefault()
extension
2021-07-18 21:52:16 +02:00
smoogipoo
61b7dc1e06
Fix bonus-only maps having 700K base score
2021-04-28 03:42:29 +09:00
smoogipoo
1281993f1f
Fix bonus score not calculated from the correct statistics
2021-04-27 22:42:58 +09:00
smoogipoo
8293b06c0a
Remove obsolete code
2021-04-09 13:56:58 +09:00
Dean Herbert
701342e036
Remove accuracy rounding at a ScoreProcessor level
2021-03-25 17:43:51 +09:00
Dean Herbert
d66e218318
Source display accuracy from header and remove from ScoreProcessor function
2020-12-24 14:57:23 +09:00
Dean Herbert
be427a4ec0
Fix realtime leaderboard showing accuracy based on final base score, not rolling
2020-12-23 14:20:35 +09:00
Bartłomiej Dach
ee33c0be93
Extract combo & accuracy ratio calculation helpers
2020-12-19 19:08:29 +01:00
Dean Herbert
f13683dc90
Correctly account for max combo of the input, rather than the global
2020-12-17 16:05:41 +09:00
Dean Herbert
41d8b84bd7
Revert MaxBaseScore to being a private field (no longe required to be public)
2020-12-17 15:47:20 +09:00
Dean Herbert
2954218897
Add method to ScoreProcessor to calculate score and accuracy from statistics
2020-12-16 16:20:29 +09:00
Bartłomiej Dach
109abc0e29
Always store standardised score when populating ScoreInfo
2020-11-10 08:41:00 +01:00
Bartłomiej Dach
7109c3b6cd
Rename variable as suggested
2020-10-07 21:06:24 +02:00
Endrik Tombak
2b6e4e575e
Award max combo portion score if max achievable is 0
2020-10-07 17:04:55 +03:00
Endrik Tombak
74af7cc503
Rework ScoreProcessor
2020-10-07 17:00:00 +03:00
smoogipoo
31fae045fa
Update judgement processors with new hit results
2020-09-29 16:33:38 +09:00
smoogipoo
447fd07b4e
Fix maps with only bonus score having NaN scores
2020-09-11 01:13:55 +09:00
smoogipoo
37a659b2af
Refactor/add xmldocs
2020-09-09 17:36:47 +09:00
smoogipoo
e271408fca
Move max score calculation inside ScoreProcessor
2020-09-09 16:51:53 +09:00
smoogipoo
1e5e5cae0c
Add support for standardised -> classic changes
2020-08-28 21:34:34 +09:00
smoogipoo
4d15f0fe52
Implement basic score recalculation
2020-08-28 19:16:46 +09:00
smoogipoo
a4ad0bd174
Ensure 0 score from miss judgements, add test
2020-08-18 19:51:26 +09:00
smoogipoo
6b2b3f4d4d
Expose accuracy/combo portion adjustments
2020-07-16 14:10:44 +09:00
Dean Herbert
2bb0283a68
Clean up HitEvents after use to avoid near-permanent memory retention
2020-07-12 00:52:55 +09:00
smoogipoo
740b01c049
Add xmldoc
2020-06-19 22:05:58 +09:00
smoogipoo
25abdc2903
General cleanups
2020-06-19 21:41:48 +09:00
smoogipoo
eab00ec9d9
Move hit events to the ScoreProcessor
2020-06-19 19:58:35 +09:00
smoogipoo
e98f51923a
Add timing distribution to OsuScoreProcessor
2020-06-02 23:38:24 +09:00
Bartłomiej Dach
13c81db0cf
Fix incorrect classic score formula
...
Upon closer inspection the classic score formula was subtly wrong. The
version given in the wiki is:
Score = Hit Value + (Hit Value * ((Combo multiplier * Difficulty
multiplier * Mod multiplier) / 25))
The code previously used:
bonusScore + baseScore * ((1 + Math.Max(0, HighestCombo.Value - 1)
* scoreMultiplier) / 25);
which is not equivalent to the version on the wiki. The error is in the 1
factor, as in the above version it is being divided by 25, while it should
be outside the division to keep parity with the previous formula.
The tests attached in the previous commit demonstrate that this change
causes a single hit without combo to increase total score by its exact
numeric value.
2020-04-14 01:09:58 +02:00
unknown
a6124ae499
fix typo on ScoreProcessor xmldoc
2020-01-27 08:24:15 +08:00
smoogipoo
90cb9d9162
Simplify scoreprocesor/healthprocessor implementations
2019-12-26 14:59:49 +09:00
smoogipoo
50fa6c5f77
Update score on reverts
2019-12-19 20:18:23 +09:00
smoogipoo
04c3a6f8a4
Move more properties to the base class
2019-12-19 20:18:17 +09:00
smoogipoo
76f2fb378f
Separate score and health parts of ScoreProcessor
2019-12-19 20:03:14 +09:00
smoogipoo
1da8cc8690
Encapsulate common logic of ScoreProcessor
2019-12-19 19:03:27 +09:00
smoogipoo
48f1dad4aa
Remove abstract ScoreProcessor class
2019-12-11 17:25:06 +09:00
Dean Herbert
07fce8397b
Move reset call to ctor
2019-09-09 14:24:17 +09:00
iiSaLMaN
be803fa921
Reset score processor before starting the simulation
2019-09-07 18:15:49 +03:00
iiSaLMaN
55b2bc1ed5
Set Health default value to 1
2019-09-07 18:03:04 +03:00
Dean Herbert
b89fb5cdf7
Fix failing test
2019-09-06 16:51:30 +09:00
Dean Herbert
6ce36bd39e
Merge branch 'master' into stop-counting-to-score-after-fail
2019-09-06 16:12:53 +09:00
smoogipoo
0c73c5acf3
Expose full hitobject rather than hit windows
2019-09-02 17:14:40 +09:00
smoogipoo
f2bdf94a1d
Add HitWindows to JudgementResult to indicate timing errors
2019-09-02 16:28:14 +09:00
smoogipoo
2945fef62d
Expose HasCompleted from ScoreProcessor
2019-09-02 13:04:30 +09:00
iiSaLMaN
439d825dd1
Disallow adding bonus judgements' result to statistics
2019-08-20 18:39:29 +03:00