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

605 Commits

Author SHA1 Message Date
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
Dean Herbert
ae8f522c20 Add support for persisting score's mods to realm 2022-01-12 17:49:10 +09:00
Dean Herbert
d8e75a9de4 Reimplmeent IsAvailableLocally as an abstract method 2022-01-12 17:49:10 +09:00
Dean Herbert
ba62d2c756 Fix ScoreInfo oversights causing automapper to fail
Parameter in ctor *has* to be named `realmUser` else automapper will try
to map to the `User` property.
2022-01-12 17:48:49 +09:00
Dean Herbert
83ccbc1d13 Mention safety failures of Beatmap/Score constructors 2022-01-12 17:00:17 +09:00
Dean Herbert
e74a5022c9 Fix multiple tests via null checks and changing ToLive to Detach
flow
2022-01-12 17:00:17 +09:00
Dean Herbert
13401a8846 Better handle Statistics to avoid losing data 2022-01-12 17:00:17 +09:00
Dean Herbert
aaefd72c69 Handle ignored mappings locally in Detach configuration 2022-01-12 17:00:17 +09:00
Dean Herbert
2b8706b6ce Detach and reattach scores to make work 2022-01-12 17:00:16 +09:00
Dean Herbert
fe8a5e867d Remove updated/removed flow method mapping 2022-01-12 17:00:16 +09:00
Dean Herbert
1f9318265e Update ToLive usages in line with recent changes 2022-01-12 17:00:16 +09:00
Dean Herbert
8d943b5709 Fix many shortcomings and compatibility issues with EF classes post-rename 2022-01-12 17:00:16 +09:00
Dean Herbert
00e3af3366 Update model manager and many related classes to get things compiling again 2022-01-12 17:00:00 +09:00
Dean Herbert
4f6a05ce3d Reimplement all query methods 2022-01-12 16:57:27 +09:00
Dean Herbert
53792811b2 more fixes (almost compiles, except ruleset and manager) 2022-01-12 16:57:27 +09:00
Dean Herbert
aac2aa341c Update some more incorrect types for primary key access/set 2022-01-12 16:57:27 +09:00
Dean Herbert
2a4bee61dd Update many score-related classes to move closer to being able to persist to realm 2022-01-12 16:57:27 +09:00
Dean Herbert
e44751c275 Add required properties for compatibility with existing code 2022-01-12 16:57:27 +09:00
Dean Herbert
638b3d9161 Add statistics storage to realm model 2022-01-12 16:57:27 +09:00
Dean Herbert
3da762e145 Replace EF ScoreInfo with realm version
May contain errors.
2022-01-12 16:57:27 +09:00
Dean Herbert
c5e401d678 Update usages to consume IRulesetStore 2022-01-12 16:57:27 +09:00
Dean Herbert
89d6ffa7f3 Use RealmContextFactory instead of EF 2022-01-12 16:39:36 +09:00
Dean Herbert
00177a3ae1 Update usages to new naming 2022-01-06 22:54:43 +09:00
Dean Herbert
3ea7588a91 Update continuation usages to use GetCompletedResult 2022-01-06 22:53:07 +09:00
Dean Herbert
73b40e6833 Replace usage of .Result with .WaitSafelyForResult 2022-01-04 11:51:41 +09:00
StanR
cca02a8016 Create PerformanceAttributes 2021-12-21 13:08:31 +03:00
Dean Herbert
f7c5a3f506 Use similar method of consuming OnlineID as done in beatmap classes 2021-12-10 18:34:31 +09:00
Dean Herbert
c9f6c5c673 Add MatchesOnlineID implementation for IScoreInfo 2021-12-10 18:34:31 +09:00
Dean Herbert
5f6e887be7 Remove OnlineID comparison from ScoreInfo.Equals
This matches the implementation we have for `BeatmapInfo` and
`BeatmapSetInfo`. All comparisons of `OnlineID` should be done directly
using them (ie. how it's done in `ScoreModelDownloader`).
2021-12-10 18:17:43 +09:00
Dean Herbert
c6d0d6451d Change IScoreInfo.User to an interface type 2021-12-10 16:11:49 +09:00
Dean Herbert
dbb08f7d46 Use OnlineID for set operations 2021-12-10 16:11:48 +09:00
Dean Herbert
7ac63485ef Add setter for ScoreInfo.OnlineID 2021-12-10 16:11:48 +09:00
Dean Herbert
bf1418bafc Use OnlineID instead of legacy IDs for equality and lookups 2021-12-10 16:11:48 +09:00
Dean Herbert
8d9c37a825 Merge branch 'master' into primary-key-consistency 2021-12-08 21:34:38 +09:00
Bartłomiej Dach
f051720fa1
Fix score encoder being dependent on current culture
As it turns out, on some cultures, the "negative integer" sign is not
encoded using the U+002D HYPHEN-MINUS codepoint. For instance, Swedish
uses U+2212 MINUS SIGN instead. This was confusing the legacy decoder,
since it is correctly depending on the serialisation being
culture-independent.

To fix, ensure that the special "end replay" frame, as well as the
replay MD5 hash, are generated in a culture-invariant manner.

Thankfully the replay MD5 hash is currently being discarded in
`LegacyScoreDecoder`, so it changing in future scores should not have
any negative effect on lazer operation.
2021-12-04 17:13:43 +01:00
Dan Balasescu
f712aeee01
Merge pull request #15795 from peppy/realm-integration/separate-download-flow
Split out download logic from main manager classes
2021-11-25 20:59:23 +09:00
Dan Balasescu
8baf00c023 Remove unused using 2021-11-25 19:36:06 +09:00
Dan Balasescu
d3a4890c31
Merge branch 'master' into realm-integration/stable-export-flow 2021-11-25 19:06:18 +09:00
Dean Herbert
eeccf836ec Remove unnecessary GameHost parameter 2021-11-25 17:42:41 +09:00
Dean Herbert
a2ab9f457d Move score download logic out of ScoreManager 2021-11-25 17:33:04 +09:00
Dean Herbert
cc1b91e4bd Split out legacy model export logic into LegacyModelExporter classes 2021-11-25 16:41:12 +09:00
Dean Herbert
7488ccd5fe Update all models to implement IHasNamedFiles 2021-11-25 16:41:12 +09:00
Dan Balasescu
6d60725b31
Merge branch 'master' into realm-integration/stable-import-flow 2021-11-25 16:36:02 +09:00
Dean Herbert
6cab7b877d Move stable import handling into its own class 2021-11-25 15:36:58 +09:00
Dean Herbert
60b207f20a Reduce interface exposure of ScoreManager 2021-11-25 14:34:13 +09:00
Dean Herbert
ddbd4f9473 Merge branch 'master' into remove-model-file-list-inits 2021-11-24 18:39:01 +09:00
Dean Herbert
bbd3ea5b77 Update all actual usages of RulesetInfo.ID to use OnlineID instead 2021-11-24 15:50:26 +09:00
Dean Herbert
99a139dc98 Initialise all file lists at construction time (and remove setter) 2021-11-24 13:56:21 +09:00
Dan Balasescu
a06b361fe2
Merge pull request #15705 from bdach/fix-difficulty-cache-caching-zeroes
Fix zero star difficulty values being cached when diffcalc was interrupted
2021-11-21 15:45:29 +09:00
Bartłomiej Dach
15feb17da8
Change difficulty cache storage type to nullable
The recent changes related to adding support for working beatmap load
cancellation exposed a flaw in the beatmap difficulty cache. With the
way the difficulty computation logic was written, any error in the
calculation process (including beatmap load timeout, or cancellation)
would result in a 0.00 star rating being permanently cached in memory
for the given beatmap.

To resolve, change the difficulty cache's return type to nullable.
In failure scenarios, `null` is returned, rather than
`default(StarDifficulty)` as done previously.
2021-11-20 17:00:50 +01:00
Dean Herbert
eecf6ad558 Add IsManaged helper method to EF classes to match realm implementation 2021-11-19 21:56:06 +09:00
Dean Herbert
59e763467f Move StoragePath implementation to an extension method 2021-11-19 16:08:38 +09:00
Dan Balasescu
9182eab486 Rename method + xmldoc 2021-11-17 20:45:48 +09:00
Dan Balasescu
08f129b4c8 Expose LegacyScoreDecoder.CalculateAccuracy() 2021-11-17 20:09:30 +09:00
Bartłomiej Dach
eba3cfc96e
Move ScoreInfo string representation to extension method 2021-11-09 13:23:57 +01:00
Dean Herbert
78aef9ce86
Merge branch 'master' into remove-stupid-weak-reference-bindable-events 2021-11-08 13:35:49 +09:00
Dean Herbert
0ecf5f201c Rename User to APIUser and move to correct namespace 2021-11-07 11:26:01 +09:00
Dean Herbert
89cc2523ef Fix incorrectly specified events 2021-11-06 22:31:49 +09:00
Dean Herbert
2881ce0f5a Merge branch 'master' into remove-stupid-weak-reference-bindable-events 2021-11-06 14:08:39 +09:00
Dean Herbert
54f72d68ca Revert weird event flow in model manager/importers 2021-11-05 19:12:49 +09:00
Dean Herbert
6c385ccd29 Move second generic to abstract model downloader rather than interface type 2021-11-05 17:37:05 +09:00
Dean Herbert
1fe9bca819 Change ModelDownloader's requirement to an IModelImporter rather than IModelManager 2021-11-05 16:47:18 +09:00
Dean Herbert
b90f44493c Remove importer inheritance from IModelManager
Now only exists in legacy implementations, to reduce inheritance
complexity of interfaces which are going to be used going forwards.
2021-11-05 16:45:38 +09:00
Dean Herbert
b98faf6159 Merge branch 'master' into score-refactor/isolated-serialisation 2021-11-01 15:49:25 +09:00
Dean Herbert
19feae4a8e
Merge branch 'master' into beatmap-refactor/download-tracker 2021-11-01 13:15:36 +09:00
Dean Herbert
b63a90966b
Remove misplaced access modifier in interface specification
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-10-31 23:49:26 +09:00
Bartłomiej Dach
e9ba1ea198
Mark IScoreInfo implementation with region 2021-10-30 15:08:45 +02:00
Bartłomiej Dach
8053b2c320
Merge branch 'master' into score-refactor/isolated-serialisation 2021-10-30 15:07:34 +02:00
Bartłomiej Dach
6e4f7af8d3
Mark IHasOnlineID implementation with region 2021-10-30 14:15:20 +02:00
Dean Herbert
cd7bd935f6 Remove Statistics from interface until we figure how to properly deserialise 2021-10-29 14:18:10 +09:00
Dean Herbert
54073d8a1e Isolate score submissions model and remove serialisation from ScoreInfo 2021-10-29 14:13:43 +09:00
Dean Herbert
1944c255a7 Implement score interfaces 2021-10-29 13:49:30 +09:00
Dean Herbert
49b5de64be Extract interface 2021-10-29 13:41:21 +09:00
Dean Herbert
34d4715220 Allow for long online IDs and implement in ScoreInfo 2021-10-29 11:48:36 +09:00
Dean Herbert
617e6febb6 Refactor ModelDownloader to allow for different OnlineID matching 2021-10-27 21:00:46 +09:00
Dean Herbert
9015ac6ba8 Implement new version of download tracker 2021-10-27 21:00:46 +09:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Dean Herbert
b3219bb592 Update usages of OnlineID 2021-10-18 16:16:36 +09:00
Dean Herbert
e9c3d09e0e Remove redundant specs 2021-10-15 16:27:16 +09:00
Dean Herbert
6d6de5b677 Remove redundant tuple naming 2021-10-10 16:50:55 +09:00
smoogipoo
4475697a9c Add score id key 2021-10-10 15:47:39 +09:00
smoogipoo
c49d0a5013 Rewrite query to be easier to understand 2021-10-10 15:43:24 +09:00
smoogipoo
b82ed3f167 Fix potential blocking operation on OrderByTotalScoreAsync()
In reality this wouldn't be a long process, but the blocking is really
noticeable if you add a Task.Delay(1000) in GetTotalScoreAsync().
2021-10-08 14:23:54 +09:00
Dan Balasescu
4bd1083388
Merge pull request #14903 from peppy/importer-returns-live
Add `ILive<T>` and use as return type of `Import` methods
2021-10-04 20:16:32 +09:00
Dean Herbert
853cf6feaa Rename last remaining BeatmapInfo Beatmap usage 2021-10-04 17:35:53 +09:00
Dean Herbert
63f0b0c932 Rename out of place interface name 2021-10-04 16:35:55 +09:00
Dean Herbert
a2e61883e3 Initial push to use ILive in import process 2021-09-30 22:55:25 +09:00
Dean Herbert
3e3b9bc963 Split out IModelDownloader and also split apart ScoreManager 2021-09-30 18:25:20 +09:00
Dean Herbert
5618c9933b Expose more pieces of ArchiveModelManager via interfaces 2021-09-30 16:44:39 +09:00
Dean Herbert
cf633973a9 Refactor exposed mod retrieval methods for better safety 2021-09-10 11:09:13 +09:00
Dean Herbert
2edb851008 Add ability to lookup mod from a type specification 2021-09-09 16:50:59 +09:00
Dean Herbert
3d8faea4b0 Simplify nesting of OrderByTotalScoreAsync 2021-09-07 18:52:25 +09:00
smoogipoo
df7480e68c Fix bindable implementation being synchronous 2021-09-01 20:56:23 +09:00
smoogipoo
ab538dc3dd Fix param not passed through 2021-09-01 20:30:26 +09:00
smoogipoo
88fc53200e Refactor 2021-09-01 15:41:52 +09:00
smoogipoo
fee94236de Fix update-thread pauses 2021-08-31 21:36:31 +09:00
smoogipoo
cfcf3d7507 Use synchronous total score retrieval for bindable 2021-08-31 20:43:50 +09:00
smoogipoo
d03950fb37 Move score calculation to ScoreManager 2021-08-30 19:33:09 +09:00
Salman Ahmed
3409bc6b27 Update mapper usages with LocalisableDescription 2021-07-31 01:47:14 +03:00
Lucas A
ff3d38de6f Localise accuracy display. 2021-07-23 22:37:08 +02:00
Dean Herbert
e507faef29 Add deep cloning support to Score/ScoreInfo/Replay 2021-07-19 14:14:28 +09:00
Bartłomiej Dach
fb5d25405e
Replace calls to obsoleted GetOrDefault() extension 2021-07-18 21:52:16 +02:00
Dean Herbert
ec71deec51 Remove some mentions of "lazer"
I am aware there are more throughout the codebase but intentionally left
the remaining mentioned for one reason or another. The intention here is
to mainly change user-facing versioning to change the positioning of the
"lazer" term (to be where we would expect "cuttingedge" or "beta" to
be).
2021-07-04 12:41:27 +09:00
Dean Herbert
e4ca6a4266 Serialise and send ruleset ID as part of score submission 2021-06-29 01:55:09 +09:00
Dean Herbert
d1f852d102 Make Populate abstract to avoid unnecessary base call async complexity 2021-06-27 14:29:02 +09:00
smoogipoo
37babbde6a Simplify score filter row 2021-06-16 19:09:11 +09:00
Dean Herbert
4ee7721c51 Extract first version out to constant 2021-06-08 18:38:47 +09:00
Dan Balasescu
d31e3e8f1c
Fix nullref 2021-06-08 18:23:03 +09:00
Dean Herbert
b287366c8b Remove forgotten classic mod addition 2021-06-08 18:09:57 +09:00
Dean Herbert
061e3d7f26 Move legacy ScoreInfo to be completely based on presence of classic mod 2021-06-08 18:00:09 +09:00
Dean Herbert
4d9fffc01b Update score encoder version to be higher than any existing stable version 2021-06-08 17:59:43 +09:00
PercyDan54
e716162ac2
Fix formatting 2021-04-29 17:19:25 +08:00
PercyDan54
4fe1497f63
Add comment & remove lastF 2021-04-28 20:39:06 +08:00
PercyDan54
126056c436
Fix precision loss on exporting legacy replays 2021-04-28 19:27:18 +08:00
smoogipoo
213ac88a8b Fix exported scores not being compatible with osu-stable 2021-04-26 20:52:20 +09:00
smoogipoo
6560dc2d1f Fix exported replays being wrapped in zip packages 2021-04-26 20:46:44 +09:00
smoogipoo
8a6267580a Fix nullref 2021-04-22 18:44:14 +09:00
Salman Ahmed
1a715b2926 Append "classic" mod to legacy scores 2021-04-21 09:16:28 +03:00
smoogipoo
e9a114a15c Rename property back 2021-04-12 20:50:18 +09:00
smoogipoo
8413b0a5d3 Don't map api mods to DB 2021-04-12 20:49:44 +09:00
smoogipoo
625484468e Fix DB serialisation 2021-04-12 20:49:37 +09:00
smoogipoo
982d8fa8b1 Fix incorrect reference 2021-04-12 20:49:26 +09:00
smoogipoo
d2d7f77430 Fix mods not being serialised correctly in ScoreInfo 2021-04-12 20:09:01 +09:00
Dean Herbert
630faa3b56 Add TODO marking incorrect EF core data type
As mentioned in the comment, we probably don't need to be storing this
in the database in the first place (as it should be able to be
calculated from the other statistics we have available to us). Something
to consider when we refactor the database backend.
2021-03-25 17:50:21 +09:00
Bartłomiej Dach
a16c0641b2 Revert EF Core to version 2.2
This reverts commit f3faad74d5, reversing
changes made to 712e7bc7bf.

Several issues arose after migrating to 5.0, including, but possibly not
limited to, performance regressions in song select, as well as failures
when attempting to save beatmaps after metadata changes in the editor.
2021-03-21 11:05:15 +01:00
smoogipoo
917717686a Expand explanatory comment 2021-03-18 19:26:29 +09:00
smoogipoo
b68dc686ee Fix converted mania scores not accounting for GREATs 2021-03-18 19:19:53 +09:00
Roman Kapustin
0a1e325fc7 Extract requerying of navigational properties from DbContext 2021-03-14 19:34:53 +03:00
Roman Kapustin
a60ff80c04 Use expression body in ModsJson get accessor 2021-03-12 00:02:29 +03:00
Roman Kapustin
d2f943395d Hotfix importing scores from stable 2021-03-11 22:12:47 +03:00
Roman Kapustin
c6c616f244 Actualize tests 2021-03-11 21:02:40 +03:00
Dean Herbert
b1cd01ceb8 Apply ConfigureAwait changes to game side 2021-03-08 14:36:35 +09:00
Dean Herbert
03771ce8ec Allow determining a BeatmapDifficultyCache's bindable return's completion state via nullability 2021-02-25 16:19:01 +09:00
Dean Herbert
5f23bd7259 Revert most of the changes to ArchiveModeManager by using better code 2021-02-12 12:48:32 +09:00
Lucas A
51d4da565c Fix ArchiveModelManagers lookup paths. 2021-01-24 22:25:49 +01:00
Lucas A
d71ac83428 Use StableStorage in ArchiveModelManager. 2021-01-24 19:46:10 +01:00
Dean Herbert
9bb32f0914 Merge branch 'master' into move-cache-logic-to-base-impl 2020-11-06 16:56:35 +09:00
Dan Balasescu
972fc54c2d
Merge pull request #10710 from peppy/user-id-as-int
Use int instead of long for user_id fields for now
2020-11-06 14:35:14 +09:00
Dean Herbert
a2606d31c7 Move lookup/storage/compute logic to base class (and consume in ScorePerformanceCache) 2020-11-06 13:51:41 +09:00
Dean Herbert
0103b12575 Add basic base class to begin to standardise function across caching components 2020-11-06 13:26:39 +09:00
Dean Herbert
14bb079feb Rename ScorePerformanceManager to ScorePerformanceCache 2020-11-06 13:15:33 +09:00
Dean Herbert
5113d4af8f Rename BeatmapDifficultyManager to BeatmapDifficultyCache 2020-11-06 13:14:29 +09:00
Dean Herbert
1e1569eb53 Use int instead of long for user_id fields for now 2020-11-06 12:59:46 +09:00
Dean Herbert
7b320a991f Add note about missing expiration logic 2020-11-02 14:53:32 +09:00
Dean Herbert
d46f7535c9 Add xmldoc for new component 2020-11-02 14:50:44 +09:00
Lucas A
a96c067bea Remove uncessary async-await state machine level. 2020-10-27 13:45:21 +01:00
Bartłomiej Dach
ba818e3ae0
Merge branch 'master' into results-dynamic-pp-calc 2020-10-19 21:41:07 +02:00
Dean Herbert
83482ca15c Fix one more missed occurrence 2020-10-16 13:21:47 +09:00
Bartłomiej Dach
d4ba9d2682 Simplify implementation of CalculatePerformanceAsync 2020-10-12 22:10:02 +02:00
Lucas A
a0e6226b7a Rename LocalId -> LocalScoreID 2020-10-10 19:19:24 +02:00
Lucas A
de522d53ea Make CalculatePerformanceAsync() nullable. 2020-10-10 19:16:21 +02:00
Lucas A
6459ce28a3 Don't calculate performance if difficulty attributes aren't locally computable. 2020-10-09 18:32:03 +02:00
Lucas A
fa201be2ad Simplify PerformanceCacheLookup 2020-10-08 18:31:29 +02:00
Lucas A
cd15f83f85 Update ScorePerformanceCalculator code path. 2020-10-07 14:10:25 +02:00
Lucas A
7f5cf04b2b Fix merge conflicts. 2020-10-07 13:28:49 +02:00
Dean Herbert
6ac70945f2 Show bonus judgements on expanded panel 2020-10-07 16:17:28 +09:00
Dean Herbert
d6d0bd90a3 Extract tuple into class 2020-10-07 15:34:03 +09:00
Dean Herbert
50eca202f4 User IEnumerable for HandledExtensions 2020-10-02 16:17:10 +09:00
Dean Herbert
a1b8ced46d
Merge branch 'master' into fix-score-recalc 2020-10-01 17:00:20 +09:00
Lucas A
2766cf73b4 Reuse BeatmapDifficultyManager cache for beatmap difficulty attributes. 2020-09-29 18:32:02 +02:00
Lucas A
35f7de2084 Apply review suggestions. 2020-09-29 18:08:21 +02:00
smoogipoo
297168ecc4 Fix scores sometimes not being re-standardised correctly 2020-09-29 19:06:09 +09:00
smoogipoo
f439c1afbc Make osu/taiko/catch use Ok+Great 2020-09-29 17:16:55 +09:00
smoogipoo
31fae045fa Update judgement processors with new hit results 2020-09-29 16:33:38 +09:00
Lucas A
6efc4c4250 Cache performance calculations to prevent recomputations. 2020-09-28 19:04:39 +02:00
Lucas A
ddede85704 Split performance calculation to its own class. 2020-09-27 12:44:29 +02:00
smoogipoo
a07597c369 Adjust displays to use new results/orderings 2020-09-25 20:22:59 +09:00
smoogipoo
5cdc8d2e7b Add cancellation support 2020-09-09 17:37:11 +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
117c7ec6b2 Merge branch 'master' into score-recalc 2020-09-09 14:38:36 +09:00
smoogipoo
ec2674e1ea Fix nullref with null beatmap 2020-08-28 22:51:39 +09:00
smoogipoo
d7bbb362bf Separate bindables 2020-08-28 22:51:19 +09:00
smoogipoo
8ffc4309fb Fix possible NaN values 2020-08-28 22:23:44 +09:00
smoogipoo
39f8b5eb85 Use async difficulty calculation 2020-08-28 21:45:27 +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
Bartłomiej Dach
af59e2c179 Use extension methods instead of reading directly 2020-08-27 18:18:32 +02:00
Bartłomiej Dach
fc51e9d81a Fix some legacy mania replays crashing on import 2020-08-27 18:16:20 +02:00
smoogipoo
b361761d86 Add position display in contracted score panels 2020-07-31 22:02:25 +09:00
smoogipoo
33fdd7466c Merge branch 'master' into results-screen-statistics-overlapping-transition 2020-06-22 15:38:48 +09:00
smoogipoo
eab00ec9d9 Move hit events to the ScoreProcessor 2020-06-19 19:58:35 +09:00
smoogipoo
20db5b33ab Rework score processor to provide more generic events 2020-06-18 22:11:03 +09:00
smoogipoo
900da88498 Populate hit offsets from score processor 2020-06-15 22:44:55 +09:00
Dean Herbert
90d69c1216 Allow legacy score to be constructed even if replay file is missing 2020-06-15 20:31:47 +09:00
Dean Herbert
c490dba7b3 Fix crash on local score display 2020-06-13 18:18:46 +09:00
smoogipoo
f3b5149648 Move some suggestions to warnings, resolve issues 2020-06-03 16:48:44 +09:00
smoogipoo
e91e4a73af Fix catch crashing when finishing maps 2020-05-07 12:22:07 +09:00
smoogipoo
ae210d567d Add temporary solution for tick hit/miss count 2020-04-16 18:16:08 +09:00
Dean Herbert
9602ab17b0 Fix replay imports failing for certain mod combinations 2020-03-31 17:13:42 +09:00
Dean Herbert
f75c082601 Fix osu!mania replays recording incorrectly when key mod applied 2020-03-27 15:50:11 +09:00
Dean Herbert
8a2aac5f83 Rename conversion methods for clarity 2020-03-25 20:21:34 +09:00
Dean Herbert
2feb66d423 Correctly handle missing positional data 2020-03-24 15:43:34 +09:00
Dean Herbert
02a3c7c025 Fix incorrect ruleset being recorded to file 2020-03-24 15:43:22 +09:00
Dean Herbert
022465f546 Add encoding and import support 2020-03-24 14:51:52 +09:00
Dean Herbert
546772192c Add helper method to convert to legacy mods enums 2020-03-24 13:07:51 +09:00
Dean Herbert
e5f4d8686e Rename decoder 2020-03-24 13:07:50 +09:00
TheWildTree
59cf2037d0 Introduce SortedStatistics 2020-02-07 21:11:58 +01:00
recapitalverb
a8ce50fadd Add FormatUtils.FormatAccuracy and usages 2020-02-04 11:17:23 +07:00
recapitalverb
ddf9317bec Replace :P2 with :0.00% 2020-02-04 08:25:01 +07:00
recapitalverb
257b4052e8 Add {ScoreInfo,UserStatistics}.Accuracy 2020-02-03 22:09:07 +07:00
Dean Herbert
d03723303d
Fix typo in comment 2020-01-30 16:29:15 +09:00
Dean Herbert
7b4a658264 Fix negative replay frames being played back incorrectly 2020-01-30 14:54:57 +09:00
Dean Herbert
b1533ae2a9 Fix score serialisation failing for unknown mod properties 2019-12-19 14:58:56 +09:00
Dean Herbert
886db8eb22
Merge branch 'master' into fix-local-score-availability 2019-12-18 01:15:20 +09:00
smoogipoo
946a202ee5 Fix online replays not being available locally 2019-12-17 15:47:08 +09:00
Huo Yaoyuan
caf3f774ba CA1309: compare strings correctly. 2019-12-17 13:00:15 +08:00
Dean Herbert
ca1f3417a3
Merge pull request #7046 from smoogipoo/fix-replay-button
Fix replay download button not working
2019-12-04 23:00:40 +09:00
Dean Herbert
1ce6a5ceb3 Rename class 2019-12-03 15:38:57 +09:00
Dean Herbert
f0d49d0cdf Decouple APILegacyScoreInfo from ScoreInfo 2019-12-03 15:31:11 +09:00
smoogipoo
aadbbb1af3 Fix replay download button not working 2019-12-03 13:33:42 +09:00
smoogipoo
6288e6da56 Add null check 2019-11-20 13:42:54 +09:00
smoogipoo
76ed573c56 Fix crash when loading results after gameplay 2019-11-20 12:21:49 +09:00
smoogipoo
c89c092b98 Allow undeleting scores if their beatmap exists 2019-09-20 19:55:59 +09:00
smoogipoo
dfc0928ebe Fix scores importing with deleted beatmap sets 2019-09-20 19:39:21 +09:00
Dean Herbert
624e5644a4 Change osu!catch key trigger to occur on frame before positional change 2019-09-13 23:06:35 +09:00
Dean Herbert
acdfeef1dc Improve how osu!catch stores and replays key actions 2019-09-12 18:33:46 +09:00
Dean Herbert
f925e781a9 Refactor HitWindows for legibility 2019-09-06 15:24:14 +09:00
Dean Herbert
ac01e9fbeb Fix legacy scores with no online ID being imported with a non-null ID 2019-07-29 18:36:07 +09:00
Dean Herbert
598b0d668b
Merge branch 'master' into import-stable-scores 2019-07-05 15:54:33 +09:00
Dean Herbert
87c8fd0035 Fix path specification not being cross-platform compliant 2019-07-05 14:15:29 +09:00
Dean Herbert
ba8df3ba92 Clean up stable lookup and mutate logic 2019-07-05 13:59:31 +09:00
iiSaLMaN
bff5ad22f4 Check if the locally available score has files 2019-07-05 05:16:40 +03:00
Dean Herbert
7575047db8
Merge branch 'master' into import-stable-scores 2019-07-04 01:00:42 +09:00
naoey
bc52f76556
Move replay button to score card 2019-06-29 10:55:30 +05:30
naoey
53d6d74537
Update to match upstream changes 2019-06-28 09:33:13 +05:30
naoey
ab0bb8b678
Implement replay downloading with ArchiveDownloadModelManager 2019-06-28 09:33:13 +05:30
HoLLy
802da225d4 Move responsibility for selecting paths to model managers 2019-06-21 17:32:47 +02:00
HoLLy
c1c19243cd Change FirstOrDefault back to First 2019-06-19 20:40:30 +02:00
HoLLy
8d62ce8967 Remove now unneeded check against file extension 2019-06-19 20:38:43 +02:00
HoLLy
15c75b4442 Add basic score import from stable 2019-06-19 18:33:51 +02:00
Arphox
07e17518e9 Fix all "Maintainability" CodeFactor issues 2019-06-11 10:28:16 +02:00
iiSaLMaN
a2b9dba92c
Remove ScoreRank.F 2019-06-08 19:35:29 +03:00
iiSaLMaN
383b937a7e
Rename F grade to D 2019-06-08 19:10:00 +03:00
Dean Herbert
24e64c1333 Add proper co-dependent beatmap/score deletion via events 2019-05-09 15:15:28 +09:00
Dan Balasescu
288b3deb94
Merge branch 'master' into fix-rank-display 2019-05-07 15:00:51 +09: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
Dean Herbert
6bdaca1e3b Fix mod equality checks not working as intended 2019-05-03 10:09:47 +09:00
Dean Herbert
30d4dd9355 Change + rank strings to be cleaner for the end-user 2019-04-21 21:38:12 +09:00
Dean Herbert
2060bad3bc Try applying minimal inspection fixes for latest Rider EAP 2019-04-01 13:28:14 +09:00
Dean Herbert
c39c37a18d Apply more missed cases 2019-04-01 12:44:46 +09:00
Dean Herbert
7d6a08d6da Fix a few new inspections in latest Rider EAP 2019-04-01 11:39:02 +09:00
smoogipoo
fb0bba9b37 Use Parsing helpers 2019-04-01 11:23:07 +09:00
smoogipoo
f453675838 Fix replays being parsed with incorrect cultures 2019-04-01 10:31:20 +09:00
smoogipoo
0066459968 Don't convert 100s/50s for catch 2019-03-28 12:55:56 +09:00
smoogipoo
977122d05f Fix ScoreInfo not getting set 2019-03-27 16:59:29 +09:00
smoogipoo
8fcb75809d Add LegacyScoreInfo for statistics preservation/conversion 2019-03-27 16:55:46 +09:00
smoogipoo
a5d5f469eb Populate more hit results for catch 2019-03-27 14:52:56 +09:00
Dan Balasescu
fd147dae21
Merge branch 'master' into fix-disabled-set-crash 2019-03-05 17:25:13 +09:00
Dean Herbert
1871e8bb2c
Merge branch 'master' into master 2019-03-01 21:22:34 +09:00
Dean Herbert
6bccdd50ef
Merge branch 'master' into UserIDDBStore 2019-03-01 11:07:30 +09:00
Dean Herbert
d4041d5d42 Automate includes of files in ArchiveModelManager use cases 2019-03-01 10:25:21 +09:00
David Zhao
9f9b2b1902 Remove redundant setters 2019-02-28 17:13:25 +09:00
Dean Herbert
26d53d06a9 Fix remaining issues 2019-02-28 13:31:40 +09:00
Dean Herbert
c8793911a8 Enable more stringent inspectcode style inspections 2019-02-27 21:25:40 +09:00
Dean Herbert
56697339b3
Merge branch 'master' into fix-disabled-set-crash 2019-02-27 11:14:42 +09:00