Dan Balasescu
9e64f8dab1
Fix loss of precision when computing accuracy
2022-12-05 19:08:50 +09:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
Dan Balasescu
d47c46d144
Compute raw score in-line
...
Saves on an allocation (though it seems to only be a ValueType so it
shouldn't be a big deal) and a tail-call.
2022-11-18 14:22:28 +09:00
maromalo
83a3f1b82e
Add computeRawScore()
2022-11-10 14:15:20 -03:00
maromalo
64e6276397
Fix score rounding issue
2022-11-08 01:10:21 -03:00
maromalo
b7ef9b176d
Make score type consistent
2022-11-06 19:59:27 -03:00
Dan Balasescu
27d4016ccb
Add ScoreProcessor.ComputeAccuracy()
2022-09-12 18:37:55 +09:00
Dean Herbert
c6521e4c72
Rename ordering helper method
2022-09-08 17:50:27 +09:00
Acid Chicken (硫酸鶏)
54f0bb797e
refactor(osu.Game): remove nullable optouts in HitResult.cs
2022-09-07 23:32:45 +09:00
Acid Chicken (硫酸鶏)
074d2a7a3a
chore(osu.Game): provide ordering index for HitResult
2022-09-05 02:01:44 +09:00
Dean Herbert
9b830d063f
Merge pull request #20010 from smoogipoo/scoreprocessor-no-rewrite-statistics
...
Don't include misses in failed score statistics
2022-08-29 17:07:13 +09:00
Dan Balasescu
81ac0daba8
Update xmldoc
2022-08-29 15:51:12 +09:00
Dan Balasescu
b2e80ca7f0
Don't include misses in failed score statistics
2022-08-29 15:27:19 +09:00
Dan Balasescu
c0b13c7e1f
Refactor ScoreProcessor ComputeScore() methods
2022-08-29 13:51:10 +09:00
Dan Balasescu
9bca7223f6
Adjust xmldoc to better explain score contribution
2022-08-25 17:16:30 +09:00
Dan Balasescu
e2e10a8f26
Add some explanatory comments to conditions
2022-08-25 17:14:53 +09:00
Salman Ahmed
eb57ea76ab
Merge branch 'master' into legacy-combo-increase
2022-08-25 09:46:12 +03:00
Dan Balasescu
e7cbb6c63d
Fix test failures/nullability
2022-08-24 19:53:16 +09:00
Dan Balasescu
c9ff39f8c3
Add HitResult.LegacyComboIncrease
2022-08-24 19:46:41 +09:00
Dan Balasescu
5ec95c9269
Update ScoreProcessor to make use of MaximumStatistics
2022-08-24 19:46:41 +09:00
Dan Balasescu
f70af779a4
Add maximum statistics to ScoreInfo/SoloScoreInfo
2022-08-24 17:28:41 +09:00
its5Q
abca3d1b2a
Prefix common strings for context
2022-08-10 00:35:19 +10:00
its5Q
5080d62e77
Add missing localisation for settings enums
2022-08-08 21:51:23 +10:00
Salman Ahmed
a97170a272
Keep Rank
bindable enabled on score fail
2022-07-21 08:16:17 +03:00
Salman Ahmed
9df49db45f
Include bonus/ignore judgements in statistics fill logic
2022-07-21 08:13:09 +03:00
Salman Ahmed
ad09e728fd
Move Passed
assignment inside FailScore
2022-07-21 08:12:06 +03:00
Salman Ahmed
c1bcbd9c8a
Fix fail score not handling bonus/tick-only beatmaps
2022-07-21 07:20:59 +03:00
Salman Ahmed
0f0b19da4a
Populate score with remaining "miss" statistics on fail/exit
2022-07-21 06:01:36 +03:00
Salman Ahmed
c4089b71bd
Store maximum score results from simulated autoplay
2022-07-21 06:00:41 +03:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Gabe Livengood
dc75d55f72
allow modfailcondition to arbitrarily trigger fail
2022-06-08 14:02:15 -04:00
Dan Balasescu
6351f652a2
Fix combo starting at 0 when spectating
2022-06-06 17:56:25 +09:00
Dan Balasescu
a638392e81
Rename member
2022-06-02 16:35:50 +09:00
Dan Balasescu
055845d4f5
Throw exception on access before ApplyBeatmap()
2022-06-02 16:34:45 +09:00
Dan Balasescu
e551e48697
Use ScoreInfo overload in more places
2022-06-02 11:01:46 +09:00
Dan Balasescu
425390e13b
Refactor to reduce nested conditions
2022-06-01 09:54:47 +09:00
Dan Balasescu
50c3dfca31
Apply code reviews
2022-06-01 09:54:47 +09:00
Dan Balasescu
1e0ee1b214
Expose MaximumScoringValues for user consumption
2022-05-31 19:49:37 +09:00
Dan Balasescu
93240073a6
Rename field + rewrite xmldoc a bit
2022-05-31 19:40:07 +09:00
Dan Balasescu
28d8799e11
Add overloads to + document + expose ExtractScoringValues
2022-05-31 19:40:07 +09:00
Dan Balasescu
d6d56ee22d
Fix unintentional truncation
2022-05-31 19:40:07 +09:00
Dan Balasescu
44ca350822
Reset minimal scoring values from frames
2022-05-31 19:40:07 +09:00
Dan Balasescu
20988be6bb
Fix incorrect value
2022-05-31 19:40:07 +09:00
Dan Balasescu
6ccdb61853
Use new ComputeScore() overload in more cases
2022-05-31 19:40:02 +09:00
Dan Balasescu
2289812801
Add method to compute score from ScoringValues
2022-05-31 19:39:53 +09:00
Dan Balasescu
a809a19eec
Remove getBonusScore()
2022-05-31 19:39:42 +09:00
Dan Balasescu
d0e3e50ca7
Extract score statistics directly into ScoringValues
2022-05-31 19:39:42 +09:00
Dan Balasescu
af0f934e1a
Move raw ScoreProcessor values into ScoringValues struct
2022-05-31 19:39:38 +09:00
Dan Balasescu
132c94c1b5
Remove Ruleset parameter from ResetFromReplayFrame()
2022-05-31 17:16:23 +09:00
Dan Balasescu
5ad9692467
Adjust minimum health targets to match osu-stable
2022-05-17 19:24:51 +09:00
Salman Ahmed
cccc9d7d39
Rename method to better reflect what it's doing
2022-04-27 00:03:48 +03:00
Salman Ahmed
31f64b1381
Fix HealthProcessor
fail conditions not handling multiple invocations
2022-04-26 23:27:03 +03:00
Salman Ahmed
7d32490198
Change score accuracy grading logic to be inclusive
2022-04-26 04:55:27 +03:00
Salman Ahmed
8078a8c1f8
Simplify IncreasesCombo
/BreaksCombo
helper method implementation
2022-03-18 17:18:42 +03:00
Salman Ahmed
5ec2d86c09
Update ScoreProcessor
to use new defined helper methods
2022-03-18 15:22:53 +03:00
Salman Ahmed
fc576b1369
Separate increase/break combo helper methods from AffectsCombo
2022-03-18 15:22:01 +03:00
Dan Balasescu
3a6d254d1f
Add safeguards around incorrect ruleset sources
2022-03-15 09:20:32 +09:00
Dan Balasescu
028750936c
Apply review suggestions
2022-03-14 17:10:37 +09:00
Dan Balasescu
3fff7f4b7e
Require ScoreProcessor to receive ruleset
2022-03-14 15:51:10 +09:00
Dan Balasescu
9cc7f70872
Nullable annotate classes
2022-03-14 15:38:00 +09:00
Dan Balasescu
cf91353009
Merge branch 'master' into scoreprocessor-rework
2022-03-10 16:14:28 +09:00
Dan Balasescu
c36badab4b
Add per-ruleset score multipliers for classic scoring
2022-03-10 10:26:09 +09:00
Dan Balasescu
6fd8b4d891
Safeguard method against invalid invocation
2022-03-08 22:30:44 +09:00
Dan Balasescu
f1c40bd9ed
Rework GetScore() method signatures + implementations
...
Rename legacy-facing overload to mention as much
2022-03-08 22:30:44 +09:00
Dan Balasescu
a8e99f1a95
Calculate classic score using total basic hitobject count
2022-03-08 21:49:41 +09:00
Dan Balasescu
5b6b8d1fa9
Remove GetStandardisedScore() proxy method
2022-03-08 21:49:41 +09:00
Dan Balasescu
6654977a7b
Add GetScore() overload with total hitobject count
2022-03-08 21:49:41 +09:00
Dan Balasescu
2c382bd1d9
Rename GetImmediateScore() as overload of GetScore()
2022-03-08 21:49:40 +09:00
Dan Balasescu
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
Dan Balasescu
a172fc6cb8
Add IsBasic() and IsTick() extensions on HitResult
2022-03-08 18:19:12 +09:00
Dean Herbert
589a40ca2d
Add EnumMember
naming to HitResult
to allow for correct json serialisation
2022-03-08 17:58:37 +09:00
Dean Herbert
7215f3f66b
Fix CalculateAverageHitError
throwing if there are zero HitEvent
s
2022-03-01 18:44:15 +09:00
Dean Herbert
159db38f8a
Add missing xmldoc
2022-02-28 19:14:43 +09:00
Dean Herbert
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
Dan Balasescu
c466d6df94
Ensure to not multiply by 0
2022-02-21 17:19:35 +09:00
Dan Balasescu
c3b365cf6b
Scale classic score by hitobject count
2022-02-21 13:31:03 +09:00
Dean Herbert
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
Dan Balasescu
5dd9771c5f
Remove mod multipliers from being applied to scores
2022-02-16 16:27:27 +09:00
Dean Herbert
0f83f77d2b
Add xmldoc for new ResetFromReplayFrame
method
2022-02-01 16:52:53 +09:00
Dan Balasescu
c50577e25f
Apply suggestion from review
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-02-01 10:48:41 +09:00
Dan Balasescu
4fb565e15f
Reset ScoreProcessor from statistics replay frames
2022-01-31 21:32:56 +09:00
Dan Balasescu
39e1d65976
Make ScoreProcessor write all judgement types
2022-01-31 18:53:47 +09:00
Dan Balasescu
4106ebf881
Fix mania requiring PERFECTs to maintain HP
2022-01-12 18:29:23 +09:00
Bartłomiej Dach
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
Bartłomiej Dach
40cffd1682
Expose HitEvents
publically from ScoreProcessor
2021-11-11 13:22:07 +01:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
Dean Herbert
b339c149d8
Copy BaseDifficulty
to Beatmap<T>
and move all write operations across
2021-10-06 15:10:45 +09:00
Dan Balasescu
4bbff2ebf7
Merge branch 'master' into new-interfaces
2021-10-06 11:38:17 +09:00
Dean Herbert
676df55a0e
Fade display out during rewind (as the value displayed is no longer valid)
2021-10-05 15:39:29 +09:00
Dean Herbert
05996cc2e9
Add changes that got forgotted in branch surgery
2021-10-01 17:04:53 +09:00
Dean Herbert
8595eb2d11
Switch BeatmapDifficulty
usages to use interface type
2021-10-01 16:55:50 +09:00
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
ekrctb
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