1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-24 02:47:37 +08:00
Commit Graph

4200 Commits

Author SHA1 Message Date
Bartłomiej Dach
bba7722837
Merge branch 'master' into improve-alternate-after-break 2022-05-02 10:52:48 +02:00
Dean Herbert
b911981d80
Merge pull request #18002 from Pasi4K5/add-target-incompatibilities
Make some mods incompatible with `OsuModTarget`
2022-04-29 23:18:31 +09:00
Salman Ahmed
a4ca8bfe75 Improve "Alternate" to reset before first hitobject after break 2022-04-29 06:41:21 +03:00
Bartłomiej Dach
96f6c918a8
Merge branch 'master' into first-run-behaviour-screen 2022-04-29 00:55:30 +02:00
Pasi4K5
e31fdc28dd Make Classic and Target compatible again 2022-04-28 22:31:48 +02:00
Pasi4K5
d5702e2955 Append incompatible mods to base.IncompatibleMods 2022-04-28 18:29:37 +02:00
Salman Ahmed
835898dd30 Introduce DistancedHitObjectComposer and supersede OsuToolboxComposite 2022-04-28 06:44:50 +03:00
Pasi4K5
d6395b14be Add incompatibilities 2022-04-28 05:15:04 +02:00
Salman Ahmed
59cf3ff50f Move distancing methods from IPositionSnapProvider to IDistanceSnapProvider 2022-04-28 05:48:45 +03:00
Salman Ahmed
66c730c382 Change distance spacing keybind to Ctrl+Alt 2022-04-27 17:11:23 +03:00
Salman Ahmed
fb6a112708 Mark OsuModTarget and OsuModSuddenDeath as mutually exclusive
`OsuModTarget` already fails on miss, so "Sudden Death" doesn't make
sense to be enabled and may only cause issues.
2022-04-26 23:27:03 +03:00
Dan Balasescu
ce095d6af6 Merge branch 'master' into fl-opacity 2022-04-26 18:34:53 +09:00
Dean Herbert
942f4e8ac2 Merge branch 'first-run-show-get-started' into first-run-behaviour-screen 2022-04-26 16:10:16 +09:00
Dean Herbert
b41e273086 Convert function weirdness to property + bool 2022-04-26 15:06:27 +09:00
Salman Ahmed
0738cd028f Give snapping toolbox enough hover delay for interaction with expand button
With 0 delay, if the `SettingsToolboxGroup` has been contracted via
button, there's no chance to be able to expand it via button again.

This is temporary at best just to keep things working somewhat, not sure
if the expansion logic will still be required in editor redesign, so
deciding to roll with it for now.
2022-04-24 08:53:11 +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
4f8f27a58b Merge branch 'master' into osu-distance-spacing 2022-04-24 05:23:30 +03:00
Salman Ahmed
61078910a6 Handle all skin component types explicitly 2022-04-23 03:34:05 +03:00
Dean Herbert
e0b9ab022d Add classic default values against setting controls 2022-04-22 18:05:24 +09:00
Dean Herbert
d43c66a3dd Merge branch 'master' into sample-positional-playback-screen-space 2022-04-21 16:57:20 +09:00
Joseph Madamba
5e5c8e78a6 Use existing web localisation for most hardcoded strings 2022-04-20 16:31:11 -07:00
Salman Ahmed
fd20c2bdcd Change circle/overlay sprite fields to protected for better test assertion 2022-04-20 00:24:28 +03:00
Salman Ahmed
a96664295b Fix nullability preprocessor placed over the copyright header 2022-04-19 19:48:44 +03:00
Salman Ahmed
033b556be5 Simplify texture lookup further 2022-04-19 19:44:35 +03:00
Dean Herbert
75a6e9fd7f Convert to use nullable and rearrange fields 2022-04-19 18:10:10 +09:00
Salman Ahmed
b067924ada Avoid applying state transforms when no object is present 2022-04-19 08:08:02 +03:00
Salman Ahmed
fd113953ac Rename prioritiyLookup and add xmldoc 2022-04-19 08:06:39 +03:00
Salman Ahmed
ec7bb876b5 Improve legacy circle texture lookup to match 1:1 with stable 2022-04-19 07:12:07 +03:00
Salman Ahmed
8d0dd3961e Add failing test cases 2022-04-19 07:12:07 +03:00
Salman Ahmed
3a00931e38 Update slider sliding samples balance calculation to use screen-space as well 2022-04-18 09:18:56 +03:00
Salman Ahmed
fcb48c69cf Calculate sample playback position using screen-space drawable rectangles 2022-04-18 07:57:31 +03:00
Henry Lin
e5e1960975 Add inline comments 2022-04-18 09:38:51 +08:00
Henry Lin
1d79266d42 Clarify in the xmldoc that angles are measured in radians 2022-04-17 10:40:43 +08:00
Henry Lin
610d2dc1a3 Use a bigger sample step to calculate slider center of mass 2022-04-17 10:34:48 +08:00
Henry Lin
72cb3d6ad6 USe MathF in all applicable places 2022-04-11 14:15:08 +08:00
Dan Balasescu
c48f8d7b9b
Merge pull request #17714 from bdach/mod-overlay/multimod-incompatibility
Ensure that mods grouped into multi mods are pairwise incompatible
2022-04-08 16:43:06 +09:00
Dean Herbert
879267862c Fix typo in DrawableOsuHitObject 2022-04-08 15:20:22 +09:00
Bartłomiej Dach
e99d0f9fae
Make all OsuModObjectScaleTween implementations incompatible with each other 2022-04-07 22:38:47 +02:00
Bartłomiej Dach
5e02ba353b
Make OsuMod{Blinds,Flashlight} incompatible 2022-04-07 22:38:46 +02:00
Dean Herbert
ee8451c8ca
Merge branch 'master' into osu-diff-calc-max-combo 2022-04-04 14:20:44 +09:00
Dean Herbert
de625125d6 Rename magnetised mod attraction strength property to match new naming 2022-04-01 13:03:48 +09:00
Henry Lin
3bebc88306 Consider spinners when calculating jump angles
Spinners are considered in `GeneratePositionInfos`, so they should also be considered in `RepositionHitObjects`
2022-04-01 11:59:24 +08:00
Henry Lin
ee65677884 Use height of playfield instead of width when randomizing the first object
This is the change discussed in #17194. The effect of this change is barely noticeable, but it makes more sense to generate the object within playfield from the start.
2022-04-01 11:57:45 +08:00
Henry Lin
031a977009 Calculate slider rotation using end point of path instead of EndPosition 2022-04-01 11:50:30 +08:00
Henry Lin
0015f627b0 Add xmldoc 2022-04-01 11:49:27 +08:00
Henry Lin
c0a78924aa Fix generation for zero-length sliders 2022-04-01 11:47:21 +08:00
Henry Lin
af3835083c Fix slider relative rotation calculation 2022-04-01 11:41:45 +08:00
Henry Lin
998df5a4fe Fix large slider clamping 2022-04-01 11:37:10 +08:00
Henry Lin
cabbc486e9 Rotate sliders in random mod 2022-04-01 11:36:20 +08:00
Dean Herbert
a987cda30d Rename "Aim Assist" to "Magnetised" to better suit the mod's behaviour
As proposed in https://github.com/ppy/osu/discussions/17375.
2022-04-01 12:15:52 +09:00
Dan Balasescu
32e55e7d78 Merge branch 'master' into osu-diff-calc-max-combo 2022-03-31 15:08:08 +09:00
Dan Balasescu
ff4745be59
Merge branch 'master' into extract-random-mod-logic-2 2022-03-31 13:42:47 +09:00
Dean Herbert
0cac935939 Shorten class name of ModCreatedReplayUser 2022-03-31 11:34:23 +09:00
Dean Herbert
4b2c01a8c1 Bring all mod implementations up-to-date 2022-03-29 16:59:03 +09:00
Dean Herbert
d2d88015e3 Update all cinema/autoplay mods to specify the system user ID 2022-03-28 22:22:56 +09:00
Henry Lin
e44db4e726 Revert unintentional behavior change of random mod
Actually, using OsuPlayfield.BASE_SIZE.Y makes a touch more sense since it is the short side of the playfield, but I guess it is better to preserve replays than to introduce pointless breaking changes.
2022-03-25 15:13:25 +08:00
Dan Balasescu
cd5907f8da Merge branch 'master' into extract-random-mod-logic-2 2022-03-25 14:25:43 +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
Dean Herbert
e4b2242719 Fix follow point animations not looping
Because they do in stable. I don't know why but let's go with it.

Resolves issue reported in https://github.com/ppy/osu/discussions/17072.
2022-03-21 18:29:13 +09:00
apollo-dw
d3742a91a8 Nest specific object classes within the mod 2022-03-20 15:56:41 +00:00
apollo-dw
35e2e6a4e7 Remove slider tick judgement flag 2022-03-20 15:41:46 +00:00
apollo-dw
52d6f083dc Only miss slider tail on untrack 2022-03-19 23:42:12 +00:00
apollo-dw
149cfd338d Use new mod-related object types for Strict Tracking 2022-03-19 18:29:44 +00:00
Noah M
78869c462a
Use .Concat() instead of chained Append
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-03-18 14:24:36 -05:00
Noah M
b4a8defe1a Make Relax and Aim assist mods incompatible 2022-03-18 14:12:36 -05: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
523f668c8c Remove unnecessary ctor argument 2022-03-15 12:37:39 +09:00
Dan Balasescu
daac933498 Remove unnecessary ctor arguments 2022-03-15 12:34:58 +09:00
Dan Balasescu
59d57a44d4 Prevent incorrect usages by hard-typing ctor type 2022-03-15 09:11:59 +09:00
Henry Lin
76021c7627 Remove extra parameters 2022-03-14 20:23:35 +08:00
Henry Lin
6657d93b29 Separate the two nested classes 2022-03-14 20:18:30 +08:00
Dean Herbert
1b8c632b87 Add TailSamples to auxiliary samples list 2022-03-14 17:19:48 +09:00
Dean Herbert
6d6f73e016 Add overrides in DrawableSliderTail to explain/warn that this class never plays its own samples 2022-03-14 17:19:48 +09:00
Dean Herbert
be99202188 Move spinner spin samples to auxiliary specification 2022-03-14 17:19:48 +09:00
Dean Herbert
90e34d7686 Move slider slide samples to auxiliary specification 2022-03-14 17:19:48 +09:00
Dan Balasescu
3fff7f4b7e Require ScoreProcessor to receive ruleset 2022-03-14 15:51:10 +09:00
Dan Balasescu
4a3e3aba65 Restructure PerformanceCalculator to not require ScoreInfo argument 2022-03-14 14:25:28 +09:00
Dean Herbert
f82687a2c6
Merge pull request #17150 from SiimPender/master
Fix crash during kiai section on specific map due to negative transform duration
2022-03-10 18:09:41 +09:00
Dean Herbert
a1b7bf3986
Use a minimum fade length for clamping rather than zero
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-03-10 16:47:02 +09:00
Henry Lin
5e36383258 Convert IObjectPositionInfo to a class 2022-03-10 12:02:25 +08:00
Henry Lin
3a71d81775 Convert the position modifier to stateless methods 2022-03-10 11:53:03 +08:00
Henry Lin
ede838c4b3 Use ObjectPositionInfo.HitObject 2022-03-10 11:23:52 +08:00
Dan Balasescu
c36badab4b Add per-ruleset score multipliers for classic scoring 2022-03-10 10:26:09 +09:00
Henry Lin
e8dbed738e Move OsuHitObjectPositionModifier to Utils/ 2022-03-09 21:52:15 +08:00
Henry Lin
8e12a067df Remove an unused property 2022-03-09 21:04:35 +08:00
Henry Lin
6a507ca11b Rename identifiers to remove references to random mod 2022-03-09 20:52:11 +08:00
Henry Lin
37328f8d24 Extract hit object positioning logic to a separate class
It is intentional to not rename the identifiers at this point to produce a cleaner diff.
2022-03-09 20:36:31 +08:00
Dan Balasescu
1646e9d64c
Merge pull request #17153 from hlysine/osu-random-mod-logic-changes
Separate randomization and object positioning logic in osu random mod
2022-03-09 20:52:33 +09:00
Dan Balasescu
353b251d38 Attempt to merge conditional expression
Hoping to fix CI error, caused by older R# version.
2022-03-09 17:46:42 +09:00
Dean Herbert
75c6a676b4 Apply nullable to OsuModRandom rather than using jetbrains annotations 2022-03-09 16:58:36 +09:00
Henry Lin
e3cf2c6acd Merge getAbsoluteAngle into computeRandomisedPosition 2022-03-09 13:27:33 +08:00
Henry Lin
3ced5e7904 Rename Distance to DistanceFromPrevious 2022-03-09 13:09:33 +08:00
apollo-dw
e2001148d5 Implement strict tracking mod 2022-03-08 21:47:54 +00:00
Henry Lin
ae1c65c38d Add xmldoc 2022-03-08 12:07:10 +08:00
Henry Lin
8cfeffc085 Extract a major part of ApplyToBeatmap to a new method 2022-03-08 11:50:30 +08:00
Henry Lin
ded84cab3f Separate randomisation and object positioning logic 2022-03-08 11:45:16 +08:00
Siim Pender
a02adfdbd4 Fix crash on super high bpm kiai sections 2022-03-07 20:36:09 +02:00
Henry Lin
c9b205afeb Add adaptive speed mod 2022-03-02 09:57:52 +08:00
Dean Herbert
a41e1c80f1 Show hit error on results screen
Leading up to implementation of "local offset", this feels like a good
thing to have visible first and foremost.
2022-02-28 19:11:06 +09:00
Dean Herbert
692ddd5f52 Merge branch 'master' into issues/16839-spun-out-rate 2022-02-22 14:04:45 +09:00
Dan Balasescu
567da9214e Merge branch 'master' into osu-diff-calc-max-combo 2022-02-18 18:35:24 +09:00
Dan Balasescu
84e82ef5e4 Add XMLDocs to difficulty attribute properties 2022-02-16 14:09:19 +09:00
Dan Balasescu
215da7e933 Reimplement as extension method on IBeatmap
Implementation has changed slightly to support arbitrary levels of
nested hitobjects.
2022-02-16 12:06:49 +09:00
Salman Ahmed
19ee05c232 Add "distance spacing" multiplier for osu! ruleset
While osu!catch also implements a distance snap grid, it doesn't rely on
`GetBeatSnapDistanceAt` (unlike osu!), therefore it can't have the
"distance spacing" multiplier yet.
2022-02-15 02:21:53 +03:00
Kaleb
df9535d195
Update RPM calculation for readability
Multiply the 1.01 factor to the resulting RPM, not to the duration.
2022-02-13 14:28:40 -05:00
Kaleb
585bd541f3
Add missing parentheses to RPM calculation 2022-02-13 02:38:49 -05:00
Kaleb
f1535b74be
Give Spun Out mod dynamic spin rate 2022-02-13 02:16:06 -05:00
PercyDan
639d813d06
Don't override previous value
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-02-12 11:15:03 +08:00
PercyDan54
053f41d755
Simplify code 2022-02-12 10:06:43 +08:00
PercyDan54
2ed3d58531
Ignore short spinners for relax mod 2022-02-12 09:28:50 +08:00
Henry Lin
ee6d4b2583 Move performance breakdown to the top to prevent re-ordering after watching replay 2022-02-05 21:39:01 +08:00
Henry Lin
0b1fef38af Use the playable beatmap provided in CreateStatisticsForScore 2022-02-05 21:36:34 +08:00
Henry Lin
2e1a9f1379 Add performance breakdown as statistic item in extended statistics panel 2022-02-05 21:13:16 +08:00
Henry Lin
f29301cd1e
Merge branch 'master' into display-performance-attributes 2022-02-05 16:59:46 +08:00
Dean Herbert
df9d99f5aa Merge branch 'master' into extended-statistics-without-replay 2022-02-03 18:59:48 +09:00
Dean Herbert
2731d8e3c2
Merge pull request #16701 from LeNitrous/mod-alternate-osu
Add "Alternate" mod for osu! ruleset
2022-02-03 10:41:23 +09:00
Dean Herbert
be9df2ca11
Merge pull request #5774 from MaxOhn/aimassist-mod
Add "Aim Assist" mod
2022-02-03 10:40:43 +09:00
Bartłomiej Dach
82f9ad63f5
Fix flashlight size multiplier printing with too many decimal digits 2022-02-02 20:41:25 +01:00
Bartłomiej Dach
7463744407
Fix osu! autoplay-like mods not declaring incompatibility with AimAssist 2022-02-02 19:17:33 +01:00
Dean Herbert
19eb9ad8a7 Reorder StatisticsItem constructor to make a touch more sense 2022-02-02 23:02:38 +09:00
Henry Lin
6a482827fe Fix weird line breaking 2022-02-02 17:23:03 +08:00
Dean Herbert
6e41a6e704 Tidy up code into a presentable state 2022-02-02 16:27:16 +09:00
Dean Herbert
2e46404fe5 Remove spinner support for now 2022-02-02 16:26:00 +09:00
Dean Herbert
f07502ac5f Use simple damp easing rather than transforms 2022-02-02 16:15:06 +09:00
Dean Herbert
334ed2c9c4 Fix sliders moving before they are actually hit 2022-02-02 15:36:09 +09:00
Dean Herbert
6b31e7e9db Merge branch 'master' into aimassist-mod 2022-02-02 15:18:48 +09:00
Dean Herbert
e7d72f1823 Revert recent changes 2022-02-02 15:18:44 +09:00
Dean Herbert
a2affefb0a Avoid checking gameplay clock time in Update method 2022-02-02 14:33:17 +09:00
Henry Lin
c5c4c85006 Lazily create content of StatisticItem 2022-02-02 13:29:18 +08:00
Dean Herbert
c7a192cc5f Only handle LeftButton and RightButton actions
There are definitely going to be other actions used in the future, which
would immediately cause this mod to fail. Limiting handling to
left/right buttons only is the correct way forward.
2022-02-02 14:04:12 +09:00
Dean Herbert
fed63abd83 Sanitise interceptor logic to now require two separate check paths 2022-02-02 14:02:48 +09:00
Dean Herbert
0036d0e26d Move alternate mod to "conversion" category 2022-02-02 13:58:13 +09:00
Bartłomiej Dach
9227211a44
Privatise shouldAlternate 2022-01-31 22:56:27 +01:00
Dan Balasescu
0458d408bb Add replay statistics frames to FramedReplayInputHandler 2022-01-31 18:53:47 +09:00
Nitrous
40f43344f1
remove unused using 2022-01-29 23:31:26 +08:00
Nitrous
535216a0d3
rename CanIntercept to ShouldAlternate 2022-01-29 23:20:31 +08:00
Nitrous
24f9ef4005
make xmldoc more verbose 2022-01-29 22:31:04 +08:00
Nitrous
98d8b26a9c
move ModAlternate to OsuModAlternate and check if intro has ended 2022-01-29 21:49:40 +08:00
Nitrous
2326c36836
remove unused method and fix description 2022-01-29 21:09:36 +08:00
Nitrous
aa582fb0e1
add Alternate Mod 2022-01-29 20:38:12 +08:00
Bartłomiej Dach
a227af75ed
Simplify flashlight parameter passing flow 2022-01-24 21:03:02 +01:00
Bartłomiej Dach
5874475dff
Extract DefaultFlashlightSize to base flashlight class 2022-01-24 21:03:02 +01:00
Bartłomiej Dach
a7c0d507ce
Rename flashlight settings to be more accurate 2022-01-24 21:03:02 +01:00
mk-56
948867898c ModeMultiplier rename 2022-01-24 11:38:52 +01:00
mk-56
161a2a321e Remove bindable from ModeMultiplier 2022-01-24 09:07:07 +01:00
mk-56
ed84ae0ac0 Adjust values to Bdach's refined taste 2022-01-24 00:42:43 +01:00
Henry Lin
74a55ead77 Simplify combo counting logic 2022-01-23 13:00:54 +08:00
Henry Lin
f53ce5aedf Fix max combo calculation in osu diffcalc 2022-01-23 11:11:12 +08:00
mk-56
955bab926f Separate the settings for each modes radiuses 2022-01-22 19:38:56 +01:00