Dan Balasescu
ddd870e843
Make LegacyTotalScore nullable
2023-06-29 17:19:10 +09:00
Dan Balasescu
1ca4e39fc3
Allow legacy scores to be displayed in "classic" scoring mode
2023-06-28 16:30:50 +09:00
Dan Balasescu
09bc8e45de
Refactoring
2023-06-28 16:14:32 +09:00
Dan Balasescu
e291dff5ad
Fix imported scores not getting LegacyTotalScore
2023-06-28 14:50:16 +09:00
Dan Balasescu
6e2369e651
Add xmldoc on LegacyTotalScore
2023-06-27 17:18:32 +09:00
Dan Balasescu
0c5c09597c
Store old total score as LegacyTotalScore
2023-06-27 14:59:40 +09:00
Dan Balasescu
a9c65d200a
Initial conversion of scores
2023-06-26 22:19:01 +09:00
Dan Balasescu
8e79510793
Add migration for total score conversion
2023-06-26 21:53:21 +09:00
Bartłomiej Dach
66ef199fa4
Revert nullability enable in Score
(and related changes)
...
Causes several knock-on inspections in `OsuGame` et al. Probably best
addressed in a separate pass, because treatment is mixed at best (some
places nullcheck, some expect non-null).
2023-06-24 15:35:07 +02:00
Dean Herbert
df5b389629
Manual fixes to reduce warnings to zero
2023-06-24 01:52:53 +09:00
Dean Herbert
0ab0c52ad5
Automated pass
2023-06-24 01:00:03 +09:00
Dean Herbert
362aa4b376
Also move GetMaxAchievableCombo
2023-06-16 15:26:13 +09:00
Dean Herbert
ce41ef6e5d
Move OrderByTotalScore()
to an extension method
2023-06-16 15:24:30 +09:00
Bartłomiej Dach
51b5a0863f
Apply migration to new standardised score on normal reimport too
2023-06-15 21:53:15 +02:00
Dean Herbert
659a042065
Merge pull request #23844 from peppy/memory-caching-nrt
...
Apply NRT to `MemoryCachingComponent` classes
2023-06-09 23:28:21 +09:00
Bartłomiej Dach
52412c673d
Bump replay version in encoder after Score V2 changes
...
One release too late, but this may help in the future if we need to
discern replays set with Score V2 from older lazer replays.
2023-06-09 14:49:49 +02:00
Bartłomiej Dach
11694f35fe
Apply NRT in MemoryCachingComponent
subclasses too
2023-06-09 13:47:35 +02:00
Dean Herbert
c5e77e13de
Add a very simple user cache to ScoreImporter
2023-06-09 19:03:28 +09:00
Dan Balasescu
76df11c398
Don't scale stable scores with the classic scoring mode
2023-06-08 21:38:10 +09:00
Dan Balasescu
facf7de053
Parse ScoreInfo.IsLegacyScore from replays
2023-06-08 21:38:10 +09:00
Dean Herbert
4e0f40bee5
Split out multiplier retrieval into a function and use a default multiplier for all rulesets
2023-05-30 14:20:26 +09:00
Dan Balasescu
f3591f83a2
Remove ScoreManager.GetTotalScore()
2023-05-18 20:08:49 +09:00
Dan Balasescu
510b8e4c78
Remove ScoreManager.Mode, handle per-use
2023-05-18 20:08:49 +09:00
Dan Balasescu
f2483a1cf8
Add some helper methods, fix precision differences
...
Introduces some error at all times, but if we're to store scores everywhere as
`long`, then the same precision should be applied to the "during
gameplay" path as well.
2023-05-18 17:44:31 +09:00
Dan Balasescu
a7b623f52a
Reimplement classic scoring mode
2023-05-09 20:21:38 +09:00
Dan Balasescu
3c3c812ed6
Initial implementation of ScoreV2
2023-05-09 19:33:33 +09:00
Dan Balasescu
d2380bd840
Remove usages of [ExcludeFromDynamicCompile]
2023-05-08 18:12:56 +09:00
Dean Herbert
0d095c4bb7
Remove non-Live
pathway
2023-05-06 23:10:18 +09:00
cdwcgt
ce6a87b4a3
Merge remote-tracking branch 'upstream/master' into export
2023-04-09 15:02:47 +09:00
cdwcgt
de21b4a2f7
use Live<TModel>
...
Use RealmAccess only when needed
2023-04-09 22:21:15 +09:00
Cootz
54f864463c
Merge branch 'master' into BitmapUpdatesOnScore
2023-03-16 13:54:47 +03:00
Dean Herbert
cb9b14b30f
Revert "Merge pull request #22741 from cdwcgt/do-not-fetch-deletePending"
...
This reverts commit 15c44a2817
, reversing
changes made to de2ab05e78
.
2023-03-16 19:48:36 +09:00
Cootz
556964eae0
Merge branch 'master' into BitmapUpdatesOnScore
2023-03-16 12:16:42 +03:00
cdwcgt
a705698ab6
beatmapset that already deletePending should not be fetched
2023-02-26 21:13:05 +09:00
cdwcgt
e84e011d5d
Merge branch 'master' into export
2023-02-17 22:15:19 +09:00
Dean Herbert
4fdba880b1
Fix xmldoc reference fail at CI
2023-02-08 15:39:18 +09:00
Dean Herbert
5c113ddb03
Reword xmldoc to read better
2023-02-08 14:20:58 +09:00
Cootz
086b3eb542
Fix minor formating issues
2023-02-08 05:50:52 +03:00
Cootz
ab7c9a200b
Fix a typo
2023-02-08 05:42:06 +03:00
Cootz
6bf56aff73
Add warning for ScoreInfo
2023-02-08 05:40:20 +03:00
Cootz
391af2791b
Fix CSharpWarnings::CS1574,CS1584,CS1581,CS1580
2023-02-08 05:23:42 +03:00
PC
7e127dafe2
Update reference
2023-02-07 11:52:47 +03:00
Cootz
957c9e7e27
Update osu.Game/Scoring/ScoreInfo.cs
...
Co-authored-by: Dean Herbert <pe@ppy.sh>
2023-02-07 11:23:39 +03:00
Cootz
723f13af25
Add summary for OriginalBeatmapHash
2023-02-07 02:43:27 +03:00
Cootz
b00848e742
Fix realm error. Apply OriginalBeatmapHash
on import
2023-02-06 13:58:41 +03:00
Cootz
4598112586
Add OriginalBeatmapHash to ScoreInfo. Update db schema_version, migration
2023-02-05 21:46:38 +03:00
StanR
24ed84aad0
Add tiered level badge colouring
2023-01-18 16:25:11 +03:00
Salman Ahmed
c6b6d0dcfe
Remove verbose log from notifications feed
2023-01-10 13:31:29 +03:00
Salman Ahmed
e6479b73de
Remove one more unused using directive
2023-01-09 23:43:35 +03:00
Salman Ahmed
20ed337ea8
Remove unused using directive
2023-01-09 23:25:52 +03:00
Salman Ahmed
f216d7264b
Improve missing beatmap failure logging on score import
2023-01-09 23:06:59 +03:00
Dean Herbert
811a562608
Don't use bindables to avoid potential cross-usage contamination
2023-01-10 01:10:20 +09:00
Dean Herbert
62ffb4fe78
Pause imports during active gameplay
2023-01-09 18:54:11 +09:00
Berkan Diler
08d2fbeb8e
Use new ArgumentNullException.ThrowIfNull throw-helper API
2022-12-22 21:27:59 +01:00
Dean Herbert
4a7d7c6ed9
Use MaxBy
in all locations that can and update inspection level to match dotnet-build
2022-12-19 16:47:10 +09:00
Dean Herbert
ba54551313
Merge branch 'master' into guard-url-protocols
2022-12-16 18:23:16 +09:00
Dean Herbert
27c497145f
Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0
2022-12-16 18:16:26 +09:00
Dean Herbert
232f590ba3
Merge pull request #21628 from peppy/go-hard-file-writes
...
Use hard links on windows when importing beatmaps from a legacy osu! install
2022-12-16 14:52:57 +09:00
cdwcgt
3d6d3b4025
fix weird async logic
2022-12-15 20:59:11 +09:00
Dan Balasescu
fb85eaee95
Add description for lazer score version 30000001
2022-12-14 18:30:33 +09:00
Dean Herbert
cb16d62700
Hook up ImportParameter
flow with IModelImporter
caller methods
2022-12-13 21:29:32 +09:00
Dean Herbert
cf2719d4c0
Convert batchImport
parameter to parameters class to allow further import configuration
2022-12-13 19:55:18 +09:00
Dan Balasescu
ad7554cc7d
Allow keeping stream open after encoding scores
2022-12-13 16:15:14 +09:00
Dean Herbert
5800734589
Merge pull request #21587 from smoogipoo/spectatorstate-maximum-statistics
...
Store maximum statistics to spectator state
2022-12-12 20:00:52 +09:00
Dean Herbert
df94af4495
Inline ScoringValues
and make some more methods private
inside ScoreProcessor
2022-12-12 19:22:09 +09:00
cdwcgt
e02b8cb199
Group export methods into their respective managers
2022-12-11 18:30:24 +09:00
Dean Herbert
0372e38f57
Add nullability assertion to appease CI
2022-12-11 13:00:12 +09:00
Dan Balasescu
e00c075482
Fix incorrectly modified first lazer version
2022-12-08 11:30:18 +09:00
Dan Balasescu
df181acffe
Append lazer score data to .osr files
2022-12-07 12:12:32 +09:00
Dan Balasescu
7bc8908ca9
Partial everything
2022-11-27 00:00:27 +09:00
Dean Herbert
93a189603a
Hide spinner ticks / bonus from results screen when not applicable to score
2022-11-21 14:20:36 +09:00
maromalo
b7ef9b176d
Make score type consistent
2022-11-06 19:59:27 -03:00
Dean Herbert
0a625bd879
Fix mods potentially keeping reference to runtime gameplay elements
...
As noticed by smoogipoo during multiplayer match on the weekend.
2022-09-19 12:18:46 +09:00
Dean Herbert
28b15e232d
Remove all EF models
2022-09-15 16:59:36 +09:00
Dean Herbert
bc07513c3c
Fix local scores potentially not being stable-sorted for leaderboard display
2022-09-14 14:19:53 +09:00
Dan Balasescu
08d0c08750
Fix async exception by using difficulty calculator directly
2022-09-09 13:57:01 +09:00
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