1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-18 22:52:57 +08:00
Commit Graph

4232 Commits

Author SHA1 Message Date
Dean Herbert
ec61a94dc9 Merge branch 'master' into no-gameplay-clock-gameplay-offset 2022-08-23 17:36:06 +09:00
Dean Herbert
758a554180 Add basic check for correct ruleset API version 2022-08-22 16:35:08 +09:00
Dean Herbert
f5710d8000 Add ruleset API versioning 2022-08-22 16:35:08 +09:00
Dan Balasescu
3fb3a18e68
Merge pull request #19906 from peppy/fix-editor-crash-mobile
Fix editor crashing on mobile releases
2022-08-22 16:31:19 +09:00
Dean Herbert
058d67f8e8
Merge pull request #19695 from naoei/ruleset-localization
Change most ruleset-accessible string types to Localisable strings
2022-08-22 16:13:23 +09:00
Dean Herbert
19bba143ee Fix editor crashing on mobile releases 2022-08-22 15:57:24 +09:00
Dean Herbert
d199b3b100 Update GetVariantName to also support localisation 2022-08-22 14:51:00 +09:00
Dean Herbert
9d31f61ca9 Don't throw when a ruleset type is completely missing 2022-08-22 14:35:44 +09:00
Nao
189a407cb1
Merge branch 'master' into ruleset-localization 2022-08-20 21:39:10 -04:00
Dean Herbert
da407aa827
Merge branch 'master' into kps 2022-08-20 15:24:58 +09:00
Dean Herbert
2c6fd1ec6e Fix `GameplayClockContainer potentially resetting external seeks 2022-08-18 18:54:10 +09:00
Dean Herbert
b0a740071e Centralise logging of failed ruleset loads 2022-08-18 16:14:38 +09:00
Dean Herbert
e0edaf996f Test ruleset compatibility during initial startup to avoid runtime errors
As we continue to break the ruleset API, it makes more sense to
proactively check known changes and bail early during ruleset loading to
avoid a user experiencing a crash at a random point during execution.

This is a RFC and needs to be tested against known broken rulesets.
There might be some other calls we want to add in addition to the ones
I've listed.
2022-08-18 16:03:38 +09:00
Dean Herbert
43442dbf65 Merge branch 'even-less-gameplay-clock' into even-nicer-frame-stability-clock 2022-08-15 20:22:30 +09:00
Dean Herbert
87760bbc06 Fix IsCatchingUp not being in correct state 2022-08-15 20:17:48 +09:00
Dean Herbert
1fc3d005c0 Seal FrameStabilityContainer
No one should ever derive from this class. It is already too complex.
2022-08-15 19:31:02 +09:00
Dean Herbert
fff2b57905 Tidy up and document FrameStabilityContainer 2022-08-15 19:28:12 +09:00
Dean Herbert
9bc2e91de0 Fix incorrect handling of reference clocks when no parent IGameplayClock is available 2022-08-15 19:19:19 +09:00
Dean Herbert
828b6f2c30 Remove unnecessary setClock shenanigans 2022-08-15 19:19:19 +09:00
Dean Herbert
27569e2ed5 Remove FrameStableClock (and redirect usages to FrameStabilityContainer) 2022-08-15 19:19:19 +09:00
Dean Herbert
c8764cb333 Move all usage of GameplayClock to IGameplayClock 2022-08-15 18:30:53 +09:00
Dean Herbert
95c1b488a7 Add non-null assertion to FrameStabilityContainer 2022-08-15 18:08:49 +09:00
Nao
c940f5abcb
Merge branch 'master' into ruleset-localization 2022-08-14 15:17:44 -04:00
naoei
45e9eda9e7 Localise hit result name 2022-08-14 14:57:02 -04:00
Ryuki
2aa3a1b50d
Rename all "KeysPerSecond" usages to "ClicksPerSecond" 2022-08-14 20:12:11 +02:00
Ryuki
9dc806506e
Make ActionListener and KeysPerSecondCalculator not rely on events to add timestamps 2022-08-14 19:31:14 +02:00
Dan Balasescu
9d1b0b5836 Revert sealing 2022-08-12 22:32:27 +09:00
Dean Herbert
e5e9841652 Apply multiple other mod debuffs as decided in pull request discussion 2022-08-12 18:58:09 +09:00
Dean Herbert
ac4213ecee Adjust relax mod multiplayer to 0.5x
Has previously been discussed internally. Probably good to get this out
before the next full reprocess of scores server-side.

The multiplier here was @smoogipoo's suggested value. I'd be willing to
go lower if this is seen at too high, but it should be a round number to
make it easy for users to understand the max score available to them.
2022-08-12 12:30:13 +09:00
Ryuki
9b252b1d81
Make KeysPerSecondCalculator dependency in HUDOverlay nullable 2022-08-11 11:58:30 +02:00
Ryuki
3c6461b9e4
Remove KPS acronym usage 2022-08-11 10:01:39 +02: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
60dae70a18 Change mod description type to LocalisableString 2022-08-10 15:54:48 -04:00
naoei
8cb2e11766 Change most ruleset-accessible string types to Localisable strings 2022-08-10 15:51:11 -04:00
Dan Balasescu
f9c6dc314b
Merge pull request #19678 from peppy/fix-file-comparisons-many-places
Fix audio track not correctly advancing when changing between certain beatmaps
2022-08-10 20:38:14 +09:00
Dean Herbert
ac99c1ad69 Migrate the majority of existing file lookups to use new extension methods 2022-08-10 16:01:16 +09:00
its5Q
abca3d1b2a Prefix common strings for context 2022-08-10 00:35:19 +10:00
Ryuki
b52a07c16a
Use DI to provide dependencies for KPS Calculator and improve input
gathering

KPS Calculator now uses DI to retrieve the clocks. Using `HUDOverlay` it
is now cached for `KeysPerSecondCounter`s to resolve it. This also
allows to make an "Attach" flow like `KeyCounter`.
2022-08-08 21:54:06 +02:00
its5Q
5080d62e77 Add missing localisation for settings enums 2022-08-08 21:51:23 +10:00
Dan Balasescu
802dc90cb1 Adjust using directives for vertices 2022-08-05 20:37:33 +09:00
Dan Balasescu
b4e55f7309 Apply IRenderer changes 2022-08-02 19:50:57 +09:00
Dan Balasescu
dc49862466 Merge branch 'irenderer-shaders' into irenderer-textures 2022-08-02 19:25:24 +09:00
Dan Balasescu
a2a913ab52 Merge branch 'irenderer-batches' into irenderer-textures 2022-08-02 19:25:08 +09:00
Bartłomiej Dach
cbabc4886c
Convert ModPreset to realm object 2022-07-31 22:10:15 +02:00
Dan Balasescu
e06f39a69f Apply IRenderer shader changes 2022-07-30 01:29:11 +09:00
Dan Balasescu
09979d44aa Apply DrawNode batching changes 2022-07-29 23:32:09 +09:00
Dan Balasescu
155dac55d0 Apply DrawNode parameter changes 2022-07-29 22:33:34 +09:00
Dan Balasescu
ce694123eb Move spectator begin/end playing to SubmittingPlayer 2022-07-28 20:44:04 +09:00
Dean Herbert
ef10145d6f Rename MenuCursorContainer and clean up code 2022-07-26 14:11:52 +09:00
Bartłomiej Dach
d0e15d04cc
Merge branch 'master' into mod-overlay/preset-panel 2022-07-22 19:23:09 +02:00
Dan Balasescu
d9105c9785
Merge pull request #19272 from peppy/beatmap-background-reprocessing
Add background beatmap processing
2022-07-22 20:33:26 +09:00
Bartłomiej Dach
de0a076eb6
Add model class for mod presets 2022-07-21 23:29:21 +02:00
Dean Herbert
68f28ff660 Add last applied version to RulesetInfo 2022-07-21 18:15:25 +09:00
Dean Herbert
aca19a005e Add versioning to difficulty calculators 2022-07-21 18:15:25 +09: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
Salman Ahmed
6ce6f6f7df
Merge branch 'master' into remove-score-multiplier-on-custom-mod-settings 2022-07-20 08:57:43 +03:00
Dan Balasescu
ebb9861377
Merge branch 'master' into remove-nullable-disable-in-the-mods 2022-07-20 13:28:28 +09:00
Salman Ahmed
4210ec6502 Merge branch 'master' into remove-score-multiplier-on-custom-mod-settings 2022-07-19 19:21:26 +03:00
為什麼
317558f876 Mark the shader as non-nullable because shader should always has the value.
And initialize the breaks to avoid get the null instance.
2022-07-19 20:39:41 +08:00
為什麼
3af093cb27 Remove the null check because bindable should always have the value. 2022-07-19 20:39:41 +08:00
為什麼
ce1bb206c8 Initialize some bindables for prevent get the null instance. 2022-07-19 20:39:41 +08:00
andy840119
1f9f2b413e Remove the nullable disable annotation.
Also, mark as nullable for some properties.
2022-07-19 20:39:41 +08:00
Salman Ahmed
8f80a22ef9 Fix osu! and catch hitobjects no longer scaled to 1 by default 2022-07-19 07:00:13 +03:00
Salman Ahmed
5ddb5a3d74 Introduce HitObjectProperty<T> 2022-07-19 05:39:10 +03:00
Dean Herbert
51f91fe62e Update naming 2022-07-18 16:17:20 +09:00
Dean Herbert
eddf106f7c
Merge branch 'master' into score-country-storage 2022-07-18 16:12:40 +09:00
Salman Ahmed
6bfa5e53e0 Add property for whether mod uses default configuration 2022-07-18 07:29:03 +03:00
NotGumballer91
028653eb97
Update ModAdaptiveSpeed.cs 2022-07-18 00:10:49 +08:00
NotGumballer91
1caab78bdc
Update ModAutoplay.cs 2022-07-18 00:09:31 +08:00
Salman Ahmed
4e7156cee8 Store user country on databased scores 2022-07-16 06:39:05 +03:00
Dean Herbert
8dbe24fd7c Simplify colour assigning logic and remove system mod colour for now 2022-07-12 14:36:50 +09:00
為什麼
8e1ed1c621 Mark CreateHitObjectComposer() accept null.
And add the null check in the test case.
2022-07-10 10:15:27 +08:00
為什麼
57c6763556 Mark the CreateBeatmapProcessor() as nullable.
Also, should add the null check in the working beatmap.
2022-07-10 10:15:27 +08:00
為什麼
d39f53f1f0 Mark CreateConfig() return type as nullable because it's not required all ruleset to implement.
Also, remove nullable disable annotation for all using classes.

Setting store can be nullable because `RulesetConfigManager()` can accept null setting store.
2022-07-10 10:15:27 +08:00
為什麼
857377e145 Move CreateConvertibleReplayFrame() into legacy ruleset interface because technically only legacy ruleset use it to convert the legacy frame.
But seems some of the customized ruleset use it for save the replay frame.
2022-07-10 10:15:27 +08:00
為什麼
e67cb4c905 Mark create beatmap verifier as nullable because seems it's not requirement to be implemented. 2022-07-10 10:10:43 +08:00
為什麼
4a503bab0a Remove unnecessary attribute. 2022-07-10 10:10:43 +08:00
為什麼
855debd5f6 Remove nullable disable annotation and mark some return value as nullable. 2022-07-10 09:29:17 +08:00
Adam Baker
7ced84b7ef Replace switch statement with ForModType
In order to make `highlightedColour` dependent on the mod type color, the color is converted to an `osu.Framework.Graphics.Colour4` and calls `Lighten`.
2022-07-08 03:23:58 -05:00
Adam Baker
89f1c75f7a Update mod icon colors 2022-07-07 21:57:18 -05:00
andy840119
59e3d4b9e5 Remove the nullable disable annotation in the Ruleset.Filter namespace. 2022-07-03 21:00:54 +08:00
andy840119
ea573f314e Remove the nullable disable annotation in the Rulesets.Replays namespace in the osu.game project. 2022-07-02 13:08:25 +08:00
Dan Balasescu
edc4ace17e Attach DT with NC, SD with PF, and Cinema with Autoplay 2022-06-30 11:52:30 +09:00
Dean Herbert
6c64cea057 Catch a second location 2022-06-29 18:56:15 +09:00
Dean Herbert
b092e6937a Guard against ruleset icon creation failures to avoid whole game death 2022-06-29 18:51:07 +09:00
Dan Balasescu
2989803b71 Merge branch 'master' into speed-acc-scaling 2022-06-29 16:15:20 +09:00
Joseph Madamba
aacded0ecf Fix difficulty adjust settings having more padding on sliders 2022-06-28 07:33:05 -07:00
Dan Balasescu
0fd2c010e5 Remove NRT disables from attributes classes 2022-06-27 16:07:15 +09:00
Dan Balasescu
0579780bb8 Add IBeatmapOnlineInfo parameter and use to extract more data 2022-06-27 16:07:15 +09:00
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Dean Herbert
30eebf3511 Merge branch 'master' into c-sharp-10 2022-06-24 21:22:33 +09:00
Bartłomiej Dach
26c5b59f6d
Replace usages of string.To{Lower,Upper}() 2022-06-24 11:57:45 +02:00
Dean Herbert
f71f6302fd Remove unnecessary null casts 2022-06-24 14:50:11 +09:00
Dan Balasescu
a7de43ade6 Add attribute ID 2022-06-21 19:31:45 +09:00
Dan Balasescu
e0c82d11ab Convert == usages to ReferenceEquals 2022-06-20 16:56:19 +09:00
Dean Herbert
bd5037fcad Fix new hitobject placements not taking on the existing sample settings
Similar to velocity / difficulty points, a user expectation is that
volume and sample settings will be transferred to newly placed objects
from the most recent one.

Closes https://github.com/ppy/osu/issues/18742.
2022-06-18 13:49:59 +09:00
Dan Balasescu
fd9902e816 Manual #nullable processing 2022-06-17 16:38:35 +09:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Dan Balasescu
ea191da496
Merge pull request #18728 from peppy/fix-unsafe-sample-playback
Fix unsafe sample playback in `GameplaySampleTriggerSource`
2022-06-17 12:26:46 +09:00
Dean Herbert
ec53d87c30 Fix unsafe sample playback in GameplaySampleTriggerSource
Resolves https://github.com/ppy/osu/issues/18727.

Added delay from `Schedule` should be minimal as it is always called
from the `Update` thread (input propagation) anyway.
2022-06-16 16:04:57 +09:00
Bartłomiej Dach
30382b0445
Fill out GetModsFor() xmldoc and annotate items as non-null 2022-06-15 17:40:15 +02:00
Dan Balasescu
6d2a2ba7d6 Rename Position -> Index 2022-06-09 18:49:11 +09:00
Dan Balasescu
f0ef2e610e Merge branch 'master' into dho 2022-06-09 18:29:14 +09: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
Bartłomiej Dach
e511c1dfff
Merge branch 'master' into use-normalised-precise-scrolling 2022-05-27 16:55:13 +02:00
apollo-dw
66a6467403 Pass object position to the object 2022-05-26 19:26:14 +01:00
apollo
bf35ded871
Correct operation
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-05-24 17:06:11 +01:00
apollo-dw
1ef711de41 Return null for out of range objects 2022-05-24 16:40:24 +01:00
apollo-dw
30b9e0e7ab Use object list size for object position 2022-05-24 16:30:25 +01:00
Dean Herbert
17206bbebf Update screen padding and colouring to better match new designs 2022-05-24 18:43:22 +09:00
Dan Balasescu
9259aa94f1 Fix Catmull slider parsing with duplicate initial point 2022-05-24 11:47:42 +09:00
Susko3
88217e0c98 Adjust ScrollDelta usages to account for normalised IsPrecise values 2022-05-23 20:22:27 +02:00
apollo-dw
903c4f7b3d Merge remote-tracking branch 'master/master' into dho 2022-05-23 13:39:04 +01:00
apollo-dw
d054e404da Set object list to read-only 2022-05-23 13:10:42 +01:00
Dean Herbert
87947c6ef0
Merge pull request #18340 from smoogipoo/hp-ratio-improvements
Adjust HP drain and recoveries to closer match osu-stable
2022-05-23 15:19:42 +09:00
apollo-dw
40f560d7d0 Remove internal process method 2022-05-22 21:45:27 +01:00
apollo-dw
26985ca8af Store hitobject history in the hitobject 2022-05-22 16:26:22 +01:00
Dean Herbert
eabf578282 Use interface to convey beat sync information 2022-05-22 22:44:54 +09:00
Dan Balasescu
b29172ea45 Increase HP lost for misses 2022-05-20 17:53:14 +09:00
Dean Herbert
2e21d75b10 Move metronome into own class and rename to avoid conflict with mod sounds 2022-05-20 17:30:04 +09:00
Dan Balasescu
3fdff7bbcb Make Meh judgements not drain HP 2022-05-20 15:36:30 +09:00
Dan Balasescu
64a371638e
Merge pull request #18236 from peppy/snap-unification
Add `enum` to snap method as alternative to multiple nested invocations
2022-05-20 11:35:05 +09:00
Dean Herbert
b3d6f76cfa Add "None" snap type to fix flags not working correctly 2022-05-19 15:57:17 +09:00
Dan Balasescu
731f0960ec Don't merge adjacent legacy Catmull segments 2022-05-18 17:16:24 +09:00
Dan Balasescu
5ad9692467 Adjust minimum health targets to match osu-stable 2022-05-17 19:24:51 +09:00
Dean Herbert
51744e428f Merge branch 'master' into editor-readability 2022-05-12 22:56:55 +09:00
Dean Herbert
c63e65c677 Don't hide SelectionBlueprints themselves, only their children 2022-05-12 19:26:13 +09:00
Dean Herbert
10e41d018a Fix toggling hit animations on the editor not applying immediately 2022-05-12 17:36:35 +09:00