Dan Balasescu
731d3f3b63
Add MaximumStatistics upgrade for databased scores
2022-09-09 09:56:08 +09:00
Dan Balasescu
7c0e99c5a8
Decode Geki/Katu from legacy taiko scores into LargeBonus
2022-09-07 00:12:34 +09:00
Dean Herbert
928bce8fcd
Fix crash when attempting to watch a replay when the storage file doesn't exist
2022-08-30 18:18:46 +09:00
Dan Balasescu
07b502f69a
Simplify OrderByTotalScore implementation
2022-08-29 17:58:57 +09:00
Dan Balasescu
d75543ad68
Simplify GetMaximumAchievableCombo further
2022-08-29 15:36:10 +09:00
Dan Balasescu
423f6f90f2
Remove async calls from ScoreManager
2022-08-29 15:34:08 +09:00
Dan Balasescu
c0b13c7e1f
Refactor ScoreProcessor ComputeScore() methods
2022-08-29 13:51:10 +09:00
Dan Balasescu
17029f0b92
Ensure clones don't reference to MaximumStatistics
2022-08-25 13:58:58 +09:00
Dan Balasescu
cc648a90bc
Actually save maximum statistics
2022-08-24 17:28:41 +09:00
Dan Balasescu
f70af779a4
Add maximum statistics to ScoreInfo/SoloScoreInfo
2022-08-24 17:28:41 +09:00
naoei
45e9eda9e7
Localise hit result name
2022-08-14 14:57:02 -04:00
naoei
1e356f6137
Revert localisation for GetDisplayNameForHitResult
...
Came across an issue where `LeaderboardScoreTooltip` attempts to capitalize all letters for the `displayName`.
Unsure if I should completely ignore it and localise it anyway.
2022-08-10 16:03:59 -04:00
naoei
8cb2e11766
Change most ruleset-accessible string types to Localisable strings
2022-08-10 15:51:11 -04:00
Dean Herbert
c35da62224
Add flow for bypassing local cache lookups when refreshing beatmap metadata
2022-07-28 16:33:51 +09:00
Dean Herbert
8370ca9765
Add ImportAsUpdate
method to IModelImporter
to avoid otehr changes
2022-07-26 15:49:04 +09:00
Salman Ahmed
678acabf7e
Merge branch 'master' into log-diffcalc-failure
2022-07-25 11:16:31 +03:00
Salman Ahmed
91d1c9686c
Separate unprocessed PP placeholder to own class
2022-07-25 09:07:51 +03:00
Dan Balasescu
3d97b74813
Log beatmap difficulty retrieval failures during score calculation
2022-07-25 13:03:47 +09:00
Dean Herbert
6357223341
Fix incorrect DI fetch and apply nullability to ModelDownloader
2022-07-19 20:06:34 +09:00
Dean Herbert
51f91fe62e
Update naming
2022-07-18 16:17:20 +09:00
Salman Ahmed
d0fe4fe15a
Fix user population logic not including country
2022-07-16 06:39:05 +03:00
Salman Ahmed
4e7156cee8
Store user country on databased scores
2022-07-16 06:39:05 +03:00
Dean Herbert
c8c79d2185
Standardise HasReplay
implementation (and remove from persisting to realm)
2022-07-15 16:14:21 +09:00
Dean Herbert
6122d2a525
Add "F" ScoreRank
to handle old scores which have this specified
...
Not sure on the future of this, but given it is used in the
save-failed-reply pull request (#18785 ) I think it's fine to add back
for now.
Without this, JSON parsing of older scores in server-side storage will
fail on missing enum type.
2022-07-15 15:58:54 +09:00
Salman Ahmed
4f009419b8
Simplify population logic and match code style
2022-07-11 21:51:09 +03:00
Andrew Hong
10d6027c89
Assign missing UserID to RealmUser
2022-07-11 02:36:51 -04:00
andy840119
8c2f4b48fc
Use debug.assert for better readable.
2022-07-03 19:27:56 +08:00
andy840119
0a1543c6e8
Use AsNonNull()
instead.
2022-07-02 19:48:32 +08:00
andy840119
c6d0f0f81b
pretend that the beatmap property will not be null.
...
Not really throw exception will be the better way?
2022-07-02 13:20:46 +08:00
Bartłomiej Dach
577a87bcad
Merge branch 'master' into importer-post-import-rename
2022-06-20 13:37:16 +02:00
Dean Herbert
dbae4c6f5a
PostImport
-> PresentImport
2022-06-20 18:36:29 +09:00
Dean Herbert
ebcee21f6f
Remove necessity to provide BeatmapDifficultyCache
as a function to ScoreManager
2022-06-20 17:52:42 +09:00
Dean Herbert
92f1a2958c
Rename Import(TModel)
to ImportModel
to differentiate from other import methods
2022-06-20 15:18:07 +09:00
Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Dean Herbert
e66ccfd980
Add back missing notification flow
2022-06-16 19:48:18 +09:00
Dean Herbert
ce3d3a967c
Reimplement missing methods
2022-06-16 19:05:25 +09:00
Dean Herbert
72c5b9009d
Remove local realm
fields in manager classes
2022-06-16 18:56:53 +09:00
Dean Herbert
f3984d98e6
Remove RealmArchiveModelManager
from hierarchy
2022-06-16 18:53:13 +09:00
Dean Herbert
4d9e3d1982
Rename Score/Skin ModelManager
classes to Importer
for now
2022-06-16 18:11:50 +09:00
Dean Herbert
f23ddfe6cc
Move remaining realm classes out of Stores
namespace
2022-06-15 21:56:00 +09:00
Dean Herbert
88d5e074a8
Rename lowPriority
to batchImport
2022-06-15 00:46:00 +09:00
Dean Herbert
2f8290831a
Skip quick import clause when importing a single item
...
Closes https://github.com/ppy/osu/issues/18600 .
2022-06-15 00:26:34 +09:00
Dean Herbert
9f599a5ab4
Remove unused lowPriority
flag from one Import
method
2022-06-14 19:52:30 +09:00
Dean Herbert
ca0765a932
Tidy up various delegation implementations
2022-06-14 19:46:59 +09:00
Dan Balasescu
773ba97117
Add xmldoc to ScoringValues
2022-06-02 16:39:51 +09:00
Dan Balasescu
a638392e81
Rename member
2022-06-02 16:35:50 +09:00
Dan Balasescu
af0f934e1a
Move raw ScoreProcessor values into ScoringValues struct
2022-05-31 19:39:38 +09:00
Dan Balasescu
4df63a4900
Prevent scores being calculated twice
2022-03-30 13:15:41 +09:00
Dan Balasescu
bd9c0076df
Fix scores sometimes shown with incorrect scoring mode
2022-03-30 13:03:12 +09:00
Dean Herbert
a7554dcdf7
Use a constant for the early version timing offset
2022-03-24 16:43:41 +09:00
Dean Herbert
a7d5f2281c
Apply beatmap offsets to legacy replay frame handling
2022-03-24 16:16:40 +09:00
Salman Ahmed
b9859f9f21
Obsolete BeatmapInfo.MaxCombo
and suppress in usages
2022-03-20 16:30:29 +03:00
Salman Ahmed
aef40da8d4
Add note about null return value
2022-03-20 16:24:30 +03:00
Salman Ahmed
2a78042038
GetBeatmapMaximumComboAsync
-> GetMaximumAchievableComboAsync
2022-03-20 16:18:53 +03:00
Salman Ahmed
d36f32a9c9
Introduce method for computing maximum achievable combo properly
2022-03-20 05:38:14 +03:00
Dan Balasescu
4a3e3aba65
Restructure PerformanceCalculator to not require ScoreInfo argument
2022-03-14 14:25:28 +09:00
Dean Herbert
94ff6a338f
Merge branch 'master' into scoreprocessor-rework
2022-03-09 23:04:18 +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
f5cd967635
Fix scores not being recalculated in beatmap listing
2022-03-08 19:07:39 +09:00
Bartłomiej Dach
36263b4dbf
Replace remaining manual online ID check with extension method
2022-03-03 23:09:56 +01:00
Dean Herbert
eb75a29b20
Use constant for maximum legacy ruleset id
2022-03-01 12:07:03 +09:00
Dean Herbert
52e50db6b9
Enable nullable
for LegacyScoreEncoder
2022-02-28 18:42:23 +09:00
Dean Herbert
723e96309a
Only convert non-legacy frames (and throw on conversion failure)
2022-02-28 18:42:23 +09:00
Dean Herbert
2e96f74c94
Allow LegacyScoreEncoder
to be used without a beatmap if frames are already legacy frames
2022-02-28 18:42:23 +09:00
Dan Balasescu
c3b365cf6b
Scale classic score by hitobject count
2022-02-21 13:31:03 +09:00
Henry Lin
f29301cd1e
Merge branch 'master' into display-performance-attributes
2022-02-05 16:59:46 +08:00
Bartłomiej Dach
16e0cc6a2b
Remove IIpcHost
param from ScoreManager
...
No longer used since 3e3b9bc963
.
2022-02-01 21:35:40 +01:00
Dean Herbert
0d3ac4fd9c
Fix delete local scores crashing the game
2022-01-28 15:54:53 +09:00
Dean Herbert
5288eedd31
Update all usages of RulesetID
and Ruleset.ID
to use Ruleset.OnlineID
2022-01-27 15:38:03 +09:00
Dean Herbert
378173cc66
Fix some score imports failing due to null string attempted to be parsed as json
2022-01-26 22:46:29 +09:00
Dan Balasescu
4a51bab9ac
Merge pull request #16622 from peppy/fix-results-score-switch-crash
...
Fix crash at results screen when viewing another score panel after playing
2022-01-26 16:59:39 +09:00
Dean Herbert
3491b77c8c
Fix ScoreInfo.RealmUser
not getting deep cloned correctly
...
I'm still not at all happy with the play-to-results flow (with multiple
clones), but this will have to do for now.
2022-01-26 14:27:48 +09:00
Dean Herbert
cd71ec0edd
Remove ILive<>
interface (and use abstract Live<>
instead)
2022-01-26 13:38:56 +09:00
Dean Herbert
778d2a71b4
Remove Task
from the inner-most Import
method in RealmArchiveModelImporter
...
One of my pending work items for post-realm merge.
The lowest-level import task is no longer asynchronous, as we don't want
it to span multiple threads to allow easier interaction with realm.
Removing the `Task` spec simplifies a heap of usages.
Individual usages should decide whether they want to run the import
asynchronously, by either using an alternative override or spooling up a
thread themselves.
2022-01-25 15:30:29 +09:00
Dean Herbert
e23b10e6a5
Update remaining cases of clashing variable name in realm.Run(realm..
2022-01-25 13:04:05 +09:00
Dean Herbert
3e5c9e8436
Fix cases of Access
instead of Realm
2022-01-25 12:58:15 +09:00
Dean Herbert
6eb2c28e41
Rename RealmContextFactory
to RealmAccess
2022-01-24 20:38:07 +09:00
Bartłomiej Dach
1ce0b18003
Merge branch 'master' into display-performance-attributes
2022-01-22 14:12:57 +01:00
Dean Herbert
114c9e8c1f
Update all usages of CreateContext
to use either Run
or Write
2022-01-21 17:27:08 +09:00
Dean Herbert
a5d2047f05
Fix various cases of creating realm contexts from update thread when not necessary
2022-01-21 01:44:56 +09:00
Dean Herbert
3c852e6d02
Avoid constructor overhead for realm ScoreInfo
parameterless constructor
2022-01-20 16:47:27 +09:00
Dean Herbert
18886f5d2e
Use empty string instead of empty array for ModsJson
when no mods are present
...
Not really correct, but this is how most scores have been stored until
now so let's do this for consistency.
2022-01-19 14:34:27 +09:00
Dean Herbert
664b4fdaf0
Fix legacy score imports not correctly getting classic mod assigned
2022-01-19 14:34:27 +09:00
Dean Herbert
3bc091fe6d
Add ignore rules on more helper properties
2022-01-19 09:46:45 +09:00
Dean Herbert
a5862ca00d
Improve reliability of mod deserialisation
2022-01-18 15:46:27 +09:00
Dean Herbert
9a43ed742b
Update automapper spec in line with v11
...
See https://docs.automapper.org/en/latest/11.0-Upgrade-Guide.html for
more details.
2022-01-18 15:23:28 +09:00
Dean Herbert
ebc9d3a613
Fix playlist aggregate scores not displaying (again)
2022-01-18 11:57:38 +09:00
Henry Lin
511a607599
Display performance breakdown in a tooltip
2022-01-17 18:28:17 +08:00
Dean Herbert
a0e2106468
Guard against null values getting inserted into database during score/beatmap imports
2022-01-17 14:05:08 +09:00
Dean Herbert
744084b418
Initialise all parameters is paramaterless constructor for now for added safety
2022-01-17 13:51:30 +09:00
Dean Herbert
d27ee2c9fb
Remove incorrect IsManaged
check in ScoreManager
2022-01-17 13:37:42 +09:00
Dean Herbert
a3806f44a5
Add back null
beatmap allowance to GetTotalScore
flow to fix playlist aggregate scores
2022-01-17 13:11:43 +09:00
Dean Herbert
9b33fbbee5
Ensure detached when performing model Clone
operations on BeatmapInfo
/ScoreInfo
2022-01-14 13:08:20 +09:00
Dean Herbert
c61419dfe5
Fix scores not using correct filename/display strings
...
I've updated all cases where we should have been using
`GetDisplayString()` anyway, but left the `ToString()` implementations
in place for safety. They should probably be removed in the future.
2022-01-13 16:56:11 +09:00
Dean Herbert
bdb2979b2e
Remove async
from Populate
method
2022-01-13 16:36:54 +09:00
Dean Herbert
65dd80e6f6
Sanitise mods / statistics cache logic in ScoreInfo
2022-01-13 12:59:16 +09:00
Dean Herbert
4c79145c11
Fix potential mod nullref in APIUserScoreAggregate
's CreateScoreInfo
implementation
2022-01-13 00:28:16 +09:00
Dean Herbert
eb70a1eeb7
Replace compatibility properties with direct references
2022-01-12 18:13:14 +09:00
Dean Herbert
a4de0f93fa
Move manager Update
methods to be explicit to where they are still used by legacy code
...
Also fixes skin hash repopulation being completely broken.
2022-01-12 17:49:11 +09:00
Dean Herbert
f451560203
Update null allowances across beatmaps and scores
2022-01-12 17:49:11 +09:00