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 SelectionBlueprint
s 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
Dean Herbert
f7e055dbfe
Move mania note height offset application to a much more suitable location
2022-05-12 16:19:07 +09:00
Dean Herbert
c0abce918f
Add enum
to snap method as alternative to mutliple nested invocations
2022-05-12 16:19:07 +09:00
Salman Ahmed
82b784ce5a
Change IApplicableToSample
to receive adjustable component instead
...
Done for consistency with `IApplicableToTrack`.
2022-05-10 18:06:03 +03:00
Salman Ahmed
4f5001704e
Change IApplicableToTrack
to receive adjustable component instead
2022-05-10 18:06:03 +03:00
Salman Ahmed
bbbecbb6b7
Apply time-ramping adjustment using clock instead of track
2022-05-10 18:06:03 +03:00
Dean Herbert
ab1d46b71c
Merge pull request #17270 from frenzibyte/multiplayer-disable-adaptive-speed
...
Disable mod "Adaptive Speed" in multiplayer
2022-05-09 17:31:47 +09:00
Salman Ahmed
144d33f0d2
Merge branch 'master' into distance-snapping-test
2022-05-06 17:29:27 +03:00
Dean Herbert
c6bc6be128
Fix toolbox expand being interrupted by gaps between groups
2022-05-06 19:06:40 +09:00
Dean Herbert
641584a049
Merge branch 'master' into multiplayer-disable-adaptive-speed
2022-05-06 14:00:44 +09:00
Dean Herbert
5029710de7
Merge branch 'master' into distance-snapping-test
2022-05-05 22:00:40 +09:00
Salman Ahmed
43c9058d09
Fix wrong obsolete message
2022-05-05 14:39:05 +03:00
Salman Ahmed
8501a41619
Bring back separate bool properties as non-cascading
2022-05-05 14:37:38 +03:00
Dan Balasescu
39d10487b9
Merge branch 'master' into snapping-tidy-distance
2022-05-05 19:55:55 +09:00
Dean Herbert
e83604a1fc
Merge branch 'master' into cache-at-interface
2022-05-05 18:54:24 +09:00
Dean Herbert
7b71fb860b
Expose DistanceSpacingMultiplier
for test usage
2022-05-05 18:49:12 +09:00
Dean Herbert
947a68006a
Add note about IDistanceSnapProvider
not multiplying DistanceSpacing
itself
2022-05-05 17:50:17 +09:00
Dean Herbert
c3d2648f85
Reword weird xmldoc
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-05-05 17:07:05 +09:00
Dean Herbert
4226583afd
Merge branch 'cache-at-interface'
2022-05-05 16:52:03 +09:00
Dean Herbert
19cf9dc20b
Merge branch 'snapping-tidy-distance'
2022-05-05 16:51:32 +09:00
Dean Herbert
5a1ac71d90
Remove unnecessary type specification in HitObjectComposer
's caching
2022-05-05 16:44:37 +09:00
Dean Herbert
1c6a233cc0
Move snap provider caching to interfaces
2022-05-05 16:44:37 +09:00
Dean Herbert
b411b59006
Move IPlacementHandler
caching to interface
2022-05-05 16:43:02 +09:00
Dean Herbert
977e6d8a80
Add xmldoc for IDistanceSnapProvider
and related properties
2022-05-05 16:25:45 +09:00
Dean Herbert
1fce0da331
Reword slightly, to allow better conformity with IDistanceSnapProvider
2022-05-05 16:04:34 +09:00
Dean Herbert
f6fc926f1a
Add xmldoc and rename methods in IPositionSnapProvider
for legibility
2022-05-05 15:58:21 +09:00
Salman Ahmed
8488a29e9e
Renew obsoletion date
2022-05-04 17:22:11 +03:00
Salman Ahmed
20e277d2e5
Apply proposed naming changes
2022-05-04 17:12:17 +03:00
Salman Ahmed
e9ecf26b6a
Merge branch 'master' into multiplayer-disable-adaptive-speed
2022-05-04 17:12:03 +03:00
Bartłomiej Dach
bf80dd864c
Merge branch 'master' into fix-editor-toolbox-click-through
2022-05-04 11:57:32 +02:00
Dean Herbert
4e0f899159
Rename value changed variable
2022-05-04 18:13:30 +09:00
Salman Ahmed
f5d4f02200
Use ToUpper
for key binding text
2022-05-04 11:59:29 +03:00
Salman Ahmed
0b8fd2e39f
Improve distance spacing toast inline with key binding changes
2022-05-04 11:43:19 +03:00
Dean Herbert
b325f0ee0b
Combine editor toolbox container implementation and fix input blocking
...
Until now, toolbox scroll areas would block input from arriving behind
them, even when no visible element was clicked.
In addition, clicking on a button inside a toolbox would still send a
`MouseDown` event to things behind it. Specifically, the editor's
`HitObjectComposer` would receive these events and also place objects
when the user does not expect them to be placed.
This fixes another regression that occurred due to `ScrollContainer`s no
longer blocking input theirselves.
2022-05-04 17:41:30 +09:00
Salman Ahmed
3d2072498e
Merge branch 'master' into distance-spacing-osd
2022-05-04 11:41:12 +03:00
Dean Herbert
a66743266f
Remove unused ScrollingToolboxGroup
class
2022-05-04 17:20:58 +09:00
Salman Ahmed
6f52a0b5eb
Merge branch 'master' into distance-spacing-osd
2022-05-04 11:10:18 +03:00
Dean Herbert
40f1ceca0a
Merge branch 'master' into distance-spacing-keybinding
2022-05-04 16:34:01 +09:00
Salman Ahmed
504ca5be31
Fix scrolling no longer adjusting distance spacing by amount
2022-05-04 09:52:33 +03:00
Salman Ahmed
813d6fed48
Split activation keybind to separate increase/decrease keybinds
2022-05-04 09:00:54 +03:00
Salman Ahmed
0dd2e1652c
Mark OnScreenDisplay
dependency as nullable
2022-05-03 11:15:28 +03:00
Salman Ahmed
b8287f3687
Display toast notification on editor distance spacing change
2022-05-03 10:30:32 +03:00
Salman Ahmed
521ec1a225
Add keybind for distance grid spacing activation
2022-05-03 10:15:24 +03:00
Dan Balasescu
637f817696
Ignore zero-sections on a per-case basis
2022-05-03 16:06:20 +09:00
Dan Balasescu
a555c47212
Reduce sorting complexity in worst-case of diffcalc
2022-05-03 15:02:57 +09:00
Dean Herbert
faeefc5e18
Merge pull request #16576 from frenzibyte/osu-distance-spacing
...
Add "distance spacing" support in editor for osu! ruleset
2022-05-03 12:15:18 +09:00
Salman Ahmed
fef94d49f4
Revert "Convert data type of DistanceSpacing
to float"
...
This reverts commit 7aaa88cac2
.
2022-04-29 08:02:07 +03:00
Salman Ahmed
abb88b0907
Move distance spacing application to DistanceSnapGrid
2022-04-28 10:54:38 +03:00
Salman Ahmed
7aaa88cac2
Convert data type of DistanceSpacing
to float
2022-04-28 10:24:36 +03:00
Salman Ahmed
2e8372fe90
Minor cleanup
...
Just from reading diff.
2022-04-28 07:14:43 +03:00
Salman Ahmed
bfc6bfc91b
Let CatchHitObjectComposer
inherit from DistancedHitObjectComposer
and hide control
2022-04-28 06:44:50 +03:00
Salman Ahmed
835898dd30
Introduce DistancedHitObjectComposer
and supersede OsuToolboxComposite
2022-04-28 06:44:50 +03:00
Salman Ahmed
59cf3ff50f
Move distancing methods from IPositionSnapProvider
to IDistanceSnapProvider
2022-04-28 05:48:45 +03: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
8ed39009fd
Encapsulate distance spacing control handling to a "distance toolbox composite"
...
Encapsulated in a way which can allow further extensibility for the
right-side area of toolboxes.
2022-04-24 08:33:03 +03:00
Salman Ahmed
70a93c0e7e
Move DistanceSpacingMultiplier
bindable to its own IDistanceSnapProvider
interface
2022-04-24 08:33:00 +03:00
Salman Ahmed
4f8f27a58b
Merge branch 'master' into osu-distance-spacing
2022-04-24 05:23:30 +03:00
Dean Herbert
9c68b3edc5
Merge branch 'master' into fix-spectator-seeks
2022-04-13 12:33:41 +09:00
Bartłomiej Dach
6630b38c08
Make all ModRateAdjust
implementations incompatible with each other
2022-04-07 22:38:46 +02:00
Dean Herbert
a3695c7e97
Merge branch 'master' into fix-spectator-seeks
2022-04-06 12:58:43 +09:00
Dan Balasescu
40b6f3ff0a
Rename method to CalculateAllLegacyCombinations()
2022-03-31 15:09:06 +09:00
Dan Balasescu
32e55e7d78
Merge branch 'master' into osu-diff-calc-max-combo
2022-03-31 15:08:08 +09:00
Dean Herbert
e0d434b89f
Remove unused using statement
2022-03-31 11:34:32 +09:00
Dean Herbert
0cac935939
Shorten class name of ModCreatedReplayUser
2022-03-31 11:34:23 +09:00
Dean Herbert
2c1ccc7d36
Update obsolete message to match targeted developers' use case
...
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-03-31 11:33:26 +09:00
Dean Herbert
234bec45cc
Remove unnecessary logging
2022-03-31 11:32:00 +09:00
Salman Ahmed
6874cdf0c8
Remove unnecessary public
prefix in interface method
2022-03-31 01:50:46 +03:00
Bartłomiej Dach
83bae81095
Fill out ICreateReplayData
xmldocs
2022-03-30 22:04:54 +02:00
Bartłomiej Dach
9621a7f9cb
Merge branch 'master' into fix-autoplay-mod-user-id
2022-03-30 21:41:45 +02:00
Salman Ahmed
8d4356f23b
Mark "autoplay" and "cinema" mods as mutually exclusive
2022-03-29 17:26:02 +03:00
Salman Ahmed
9a09c97457
Fix "Barrel Roll" tooltip not limiting decimal places for spin speed
2022-03-29 16:11:44 +03:00
Dean Herbert
ea9495eb74
Update all existing calls to extension method with correct fallback handling
2022-03-29 16:51:30 +09:00
Dean Herbert
7d716adf39
Create new ICreateReplayData
interface and obsolete ICreateReplay
2022-03-29 16:51:30 +09:00
Dean Herbert
3fc8c23fe4
Remove unnecessary SetReplayScore
call in ModCinema
2022-03-29 16:51:30 +09:00
Dean Herbert
327477d050
Remove unnecessary SetReplayScore
call in ModCinema
2022-03-29 16:50:05 +09:00
Dean Herbert
6f529cf7a4
Merge branch 'master' into fix-spectator-seeks
2022-03-24 14:24:20 +09:00
Salman Ahmed
6cd67928ab
Simplify documentation of ModUsage
2022-03-23 15:48:52 +03:00
Salman Ahmed
b218046fa2
Remove redundant line from mod usage
2022-03-23 15:38:48 +03:00
Dean Herbert
c079a9cd32
Add comment regarding equality check importance in LegacyHitSampleInfo
2022-03-23 20:18:44 +09:00
Dean Herbert
997c091a8d
Revert "Remove IsLayered
from LegacyHitSampleInfo
comparison"
...
This reverts commit 4523393208
.
2022-03-23 20:15:17 +09:00
Dean Herbert
2ea9e5245c
Revert "Remove IsLayered
from GetHasCode
implementation"
...
This reverts commit 16ee6b5fc7
.
2022-03-23 20:15:13 +09:00
Dan Balasescu
36772ec652
Merge pull request #17356 from apollo-dw/strict-tracking
...
Implement "Strict Tracking" mod in osu!
2022-03-22 07:32:36 +09:00
Salman Ahmed
5f878ed82b
Delegate IsPlayable
to the obsoleted UserPlayable
by default
...
Handles consumers who still haven't updated to use `IsPlayable` yet.
2022-03-20 16:07:09 +03:00
Salman Ahmed
add9f3ec91
Rename multiplayer mod usages to make more sense
2022-03-20 13:12:24 +03:00
Salman Ahmed
820a672940
Reword xmldoc to make more sense
2022-03-20 06:37:08 +03:00
Salman Ahmed
70e943fbcc
ModUsage.Solo
-> ModUsage.User
2022-03-20 06:36:51 +03:00
apollo-dw
149cfd338d
Use new mod-related object types for Strict Tracking
2022-03-19 18:29:44 +00: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
Dean Herbert
0988c2b0fa
Move DrawableRuleset
binding to LoadComplete
to avoid exceptions on InputManager
access
2022-03-18 15:28:48 +09:00
Salman Ahmed
f2248ecc08
Update usages to use IsPlayable
instead
2022-03-18 02:11:18 +03:00
Salman Ahmed
51e5dd7d0e
Introduce IsPlayable(...)
and obsolete UserPlayable
2022-03-18 02:08:30 +03:00
Salman Ahmed
d90f21e140
Reword mod documentation
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-03-18 00:13:40 +03:00
Salman Ahmed
b3ac544d65
Revert "Consider UnknownMod
to be "playable in multiplayer""
...
This reverts commit 07e9f3780a
.
2022-03-17 06:31:51 +03:00
Salman Ahmed
07e9f3780a
Consider UnknownMod
to be "playable in multiplayer"
2022-03-17 05:15:48 +03:00
Salman Ahmed
187059a37f
Replace hardcoded overrides with the newly introduced Mod
properties
2022-03-17 03:51:27 +03:00
Salman Ahmed
d90a334853
Introduce multiplayer playability and free mod validity in Mod
2022-03-17 03:48:56 +03:00
Dan Balasescu
d80830b415
Merge pull request #17226 from peppy/skin-component-settings
...
Allow skin components to have settings
2022-03-16 17:12:11 +09:00
Dean Herbert
1814a325d8
Move GetSettingUnderlyingValue
to a SettingSource
extension method
2022-03-15 14:54:00 +09:00
Dean Herbert
6fb06d69cc
Merge branch 'master' into pp-counter-alloc-reduction
2022-03-15 13:31:57 +09:00
Dean Herbert
deb4aeb4b2
Merge pull request #17242 from smoogipoo/performance-calculator-cleanup
...
Restructure PerformanceCalculator to not require ScoreInfo argument
2022-03-15 13:31:34 +09:00
Dan Balasescu
3a6d254d1f
Add safeguards around incorrect ruleset sources
2022-03-15 09:20:32 +09:00
Dan Balasescu
e79bed8fbe
Merge branch 'master' into skin-component-settings
2022-03-14 18:54:27 +09:00
Dean Herbert
16ee6b5fc7
Remove IsLayered
from GetHasCode
implementation
2022-03-14 18:12:04 +09:00
Dean Herbert
39d95aa8cf
Add automatic preloading of sample pools at a Playfield
level
2022-03-14 17:19:48 +09:00
Dean Herbert
4523393208
Remove IsLayered
from LegacyHitSampleInfo
comparison
...
The equality of samples is generally used to compare the sample
equality, not its full properties. For instance, we don't compare
`Volume` in the base implementation.
Having `IsLayered` here breaks actual usages of equality, ie. for
pooling purposes.
2022-03-14 17:19:48 +09:00
Dean Herbert
8676a2587c
Add the ability for HitObject
s to specify auxiliary samples
2022-03-14 17:19:48 +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
4a3e3aba65
Restructure PerformanceCalculator to not require ScoreInfo argument
2022-03-14 14:25:28 +09:00
Dean Herbert
8d1ee28e67
Add settings modification UI to skin editor
2022-03-13 17:03:25 +09:00
Dean Herbert
db5c2c15dc
Merge pull request #17164 from smoogipoo/scoreprocessor-rework
...
Rework ScoreProcessor score calculation methods to fix various issues
2022-03-10 16:48:58 +09:00
Dan Balasescu
13a4058efd
Merge pull request #17191 from peppy/fix-mod-conversion-exceptions
...
Change `ToMod` to return an `UnknownMod` rather than throw if a mod isn't available
2022-03-10 16:20:50 +09:00
Dan Balasescu
cf91353009
Merge branch 'master' into scoreprocessor-rework
2022-03-10 16:14:28 +09:00
Dean Herbert
eaef27595c
Also mark UnknownMod
as not user-playable
2022-03-10 15:33:50 +09:00
Dan Balasescu
c36badab4b
Add per-ruleset score multipliers for classic scoring
2022-03-10 10:26:09 +09:00
Dean Herbert
94ff6a338f
Merge branch 'master' into scoreprocessor-rework
2022-03-09 23:04:18 +09:00
Dean Herbert
02f44d7061
Merge branch 'master' into fix-mod-conversion-exceptions
2022-03-09 18:07:42 +09:00
Dean Herbert
0267aed846
Change ToMod
to return an UnknownMod
rather than throw if a mod isn't available
...
As seen by this kind of crash, having the `.ToMod` method throw can be
very problematic and also hidden (as it is used inside of models in
places where exceptions are not expected to occur).
Given there are tens of usages of this method, returning a placeholder
mod seems like a better idea than outright throwing.
```
An unhandled has occurred.
System.InvalidOperationException:
There is no mod in the ruleset (osu) matching the acronym AS.
at osu.Game.Online.API.APIMod.ToMod(Ruleset ruleset) in /Users/dean/Projects/osu/osu.Game/Online/API/APIMod.cs:line 54
at osu.Game.Scoring.ScoreInfo.<get_Mods>b__117_0(APIMod m) in /Users/dean/Projects/osu/osu.Game/Scoring/ScoreInfo.cs:line 193
at System.Linq.Enumerable.SelectArrayIterator`2.ToArray()
at osu.Game.Scoring.ScoreInfo.get_Mods() in /Users/dean/Projects/osu/osu.Game/Scoring/ScoreInfo.cs:line 193
at osu.Game.Screens.Select.Leaderboards.BeatmapLeaderboard.<>c.<subscribeToLocalScores>b__40_2(ScoreInfo s) in /Users/dean/Projects/osu/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs:line 199
at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
at osu.Game.Database.RealmObjectExtensions.Detach[T](IEnumerable`1 items) in /Users/dean/Projects/osu/osu.Game/Database/RealmObjectExtensions.cs:line 180
at osu.Game.Screens.Select.Leaderboards.BeatmapLeaderboard.<>c__DisplayClass40_0.<subscribeToLocalScores>g__localScoresChanged|1(IRealmCollection`1 sender, ChangeSet changes, Exception exception) in /Users/dean/Projects/osu/osu.Game/Screens/Select/Leaderboards/BeatmapLeaderboard.cs:line
209
at Realms.RealmCollectionBase`1.Realms.INotifiable<Realms.NotifiableObjectHandleBase.CollectionChangeSet>.NotifyCallbacks(Nullable`1 changes, Nullable`1 exception)
at Realms.NotifiableObjectHandleBase.NotifyObjectChanged(IntPtr managedHandle, IntPtr changes, IntPtr exception)
```
2022-03-09 17:57:55 +09:00
Dean Herbert
8bb07f83cd
Merge pull request #17054 from hlysine/mod-adaptive-speed
...
Implement Adaptive Speed mod
2022-03-09 17:56:34 +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
Henry Lin
8b8b54b58f
Scale rate adjustments based on hit timing consistency and tweak some related numbers
2022-03-05 21:48:57 +08:00
Henry Lin
76d257fbe4
Merge branch 'master' into mod-adaptive-speed
2022-03-04 15:16:37 +08:00
Henry Lin
f72c9a1f41
Cap speed change per hit and apply a speed decrease on miss
2022-03-04 11:48:48 +08:00
Henry Lin
b66af7edf4
Rename approximatedRates
to ratesForRewinding
and update xmldoc
2022-03-04 11:03:57 +08:00
Bartłomiej Dach
fcefd3c725
Fix slightly wrong references in xmldocs
2022-03-03 17:39:55 +01:00
Bartłomiej Dach
3797871aa0
Add extended documentation of adaptive speed mod machinations
2022-03-03 17:25:49 +01:00
Bartłomiej Dach
ffaf5b729f
Move and reword docs of allowable rate range constants
2022-03-03 17:07:43 +01:00