MERGE - #30
Closed
kwotaq wants to merge 1050 commits into
Closed
Conversation
- Closes ppy#35743 Matches playlists. Multiplayer seems to not have it, but I think that's expected (i.e. there's no past scores, so having the initial position be "-" and no initial green color seems right). | Before | After | | --- | --- | |  |  | |  |  |
Fix unobserved timeouts still showing to user
Add skin cycling with shortcuts for next and previous skin
This should buff raw speed plays like Ivaxa Violation, at the same time undoing part of the buff on the lower end scores like Save Me NM Moved part of the multiplier out of the Pow to be more intuitive (it multiplies the 20 by Pow(difficulty/4), so it's more clear that it would be equal to 1 on difficulty = 4) The scaling itself was adjusted to be more similar to live (so buffs/nerfs on 98% acc remains +- the same through the difficulty curve)
- Exiting while queueing will now background the search. - The "queue in background" button changed to "stop queueing". Exiting while in the "pending accept"/"waiting for players" states will exit from the queue. There is also a small period during the in-room state (where the matchmaking screen hasn't been pushed yet but "good luck" is displaying) where the user cannot exit from the screen. I've removed the exit confirmation dialogs to streamline the process and align with this. https://github.com/user-attachments/assets/8c172502-0624-42cd-ae0c-bb710068267c
This should be a pretty simple fix for doubles being systemically broken in aim. Doubles get essentially zero bonus from the aim eval itself - wide & acute bonuses are zero due to the lack of distance, and velocity is close to zero _again_ because of the lack of distance. However, the delta times of these notes mean that `highBpmBonus` is very kind and will buff the strain quite significantly. This change means that the 2nd note of a double should get next to no aim strain, which feels like correct behaviour. From testing, streams, stacks etc. are essentially unchanged by this due to the fact its using radius rather than diameter. https://pp.huismetbenen.nl/rankings/players/doubles-strain
Fixes ppy#36562 Currently there exists a bug where the mod preset hotkeys will wrap outside of the intended bounds. Fix is making sure the preset index is < 10 Before: <img width="486" height="358" alt="image" src="https://github.com/user-attachments/assets/77f1ca9e-4fd0-4b29-b9f5-f53e652db42d" /> After: <img width="1007" height="1295" alt="image" src="https://github.com/user-attachments/assets/ca81cc39-2f86-462c-a26b-002aceed77f4" />
It removes unnecessary function `DurationSpentInvisible` function that just rescaled preempt. Now it's just using preempt directly. I've made multiplier to be very close to the current one, so pp deltas should be minimal.
Fix revert to default button not resizing correctly after changing languages
…33649) - Adds sorting and display styles. - Saves sort/display modes to the config. - Improves performance, especially on the 2nd+ time opening the overlay. https://github.com/user-attachments/assets/e32b50d0-58a1-4eef-b18c-988fb497e545 --- Coming off some recent feedback in ppy#33426 (comment), I decided to take a bit of a detour and get a little bit more functionality in. Sorting by rank, although it should technically work, doesn't work right now. This is because the osu!web API doesn't return user rank on `/user/` lookups - it's only returned for the friends request. I'm leaving this open as a discussion topic. - We can make osu!web return the rank and osu! will require no further changes to work correctly, or - We can try to implement additional paths through `osu-server-spectator` which would blow this PR out of proportion and is best left for a task of its own. For simplicity, I've re-implemented this display mostly as its own component for now, lifting code from `FriendDisplay` which was recently overhauled. These implementations should eventually be combined somehow but that's dependent on: 1. Figuring out the styling - friends can display offline users for which it makes no sense to display the "spectate" button. 2. Figuring out how to handle the different users/presence pathways. It's mostly a code complexity issue. --------- Co-authored-by: Dean Herbert <pe@ppy.sh> Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
…SINGLE_SPACING_THRESHOLD` (ppy#36573) Slightly reducing aim/speedaim doubledipping, but mostly just done for consistency and ease of understanding of existing relation between both
This does a couple of things: - Adds slider->circle effective ratio adjustment - Removes same polarity nerf for single delta count islands (which are pretty much THE most unpredictable) - Makes polarity nerf check actual deltas and not just the count - Excludes spinners from ratio calculation https://pp.huismetbenen.nl/rankings/players/minor-rhythm-improvements --------- Co-authored-by: James Wilson <tsunyoku@gmail.com>
…entering song select (ppy#36601)
…ly (ppy#36564) my attempt at ppy#36452: changes difficulty range slider in song select V2 to use the new star difficulty text gradient colors from ppy#36292. closes ppy#36405 https://github.com/user-attachments/assets/134ace54-a8f8-4024-a32e-f1604c868232 to match star rating more closely for sr <= 7.5 (where i don't think the colors are so intense that they break harmony with the rest of the design), i removed the Lighten by 0.4f on color update also improved the transition from 7.9 to 8.0 which is quite abrupt in the current version ppy#33425 (comment) is relevant here
…missions to do what it claims to do (ppy#36602)
# Conflicts: # osu.Game.Rulesets.Osu/Difficulty/OsuDifficultyCalculator.cs # osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs # osu.Game.Rulesets.Osu/Difficulty/Skills/Aim.cs # osu.Game.Rulesets.Osu/Difficulty/Skills/Speed.cs
…coefficients, and fix minor bug with miss penalty
) Grouped notifications for more than 1 person were added in ppy#36180 but it looks like they forgot to add the Transient and IsImportant flags, which means the grouped notifications would still stay in the notification list/flash the taskbar. Before: https://github.com/user-attachments/assets/8a34bbc0-2b5c-4086-b2ee-1daa6d1e6e10 After: https://github.com/user-attachments/assets/03c25ba6-7c8e-464c-bbb1-688ab9da6bb6
…y#36616) - Closes ppy#35389 Same as: https://github.com/ppy/osu/blob/2efe0c95e63817f312f5fb12cc60dd56bee0023b/osu.Game/Screens/Edit/Editor.cs#L1173-L1180 There's also seeking hit objects and sample points, but the seeks are relatively close to each other and probably useless when playing(?). If we want to make those cases not stuck at the same point in time, I believe the leniency should be lower than 1000 ms. With the above, that is why I just copy-pasted the code, as we may want to have different leniencies. Edit: forgot the automated label thing, will not label next time
It's been a while. Notes: - `SharpCompress` usages changed a bit. Manually adjusted these, mostly just renames or adjusted parameters. - nUnit 3 -> 4 migrated using https://gist.github.com/peppy/07994386d793a117350cb5f24b156585. there's a mode in this script to update to the newer `Assert.That` syntax but it requires fixes and couldn't really be bothered. - DeepEqual nuked as the only usage was on a disabled test. The reason it's disabled has been merged upstream, but it's failing for other (realm) reasons which I don't think is worthwhile to investigate for now. - This bumps Moq. I think the author is back in a sensible headspace and the new version has the stupid shit removed, so probably okay? Nice to be on a level playing field with packages for once in a long time. - Automapper is silly, but we've discussed this elsewhere. - `TestRealmKeyBindingStore` failures are a wildcard, but fixed by using a more standardised testing method. Dunno why, don't care. --------- Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
Contains: - A small bug fix from initial separation merge. Snap aim only applies this bonus when slider travel distance is passed, so it should be the same for flow. Cannot find any cases where values are affected, but in theory the only difference this can make is slider factor calculations. - Apply overlapping note factor to the acute bonus, so that direction changes that overlap are awarded less. A small speed multiplier increase is included to offset this - Move angular velocity calculation out of ODHO into the flow evaluator, and fix it referencing the wrong angle (2 objects back instead of the previous object) - 2 tiny code refactors --------- Co-authored-by: StanR <8269193+stanriders@users.noreply.github.com>
…py#36806) It barely affects values at this point --------- Co-authored-by: James Wilson <tsunyoku@gmail.com>
Generally deflationary on the top end and roughly the same at low end. Likely needs a more comprehensive solution, but this at least ensures that even if we don't do it the values will be sane. Co-authored-by: James Wilson <tsunyoku@gmail.com>
This change removes `clockRate` precalculation from `DifficultyCalculator`. The idea is that clock rate should be calculated in-place (ideally for every object) since we store and access it using DHOs. This also prevents anyone from accidentally passing clock rate to skills Unfortunately osu uses clock rate to calculate OD for the whole map in `CreateDifficultyAttributes` so we can't make it completely DHO-based, but I think one single in-place call to `ModUtils.CalculateRateWithMods` in `CreateDifficultyAttributes` is fine --------- Co-authored-by: James Wilson <tsunyoku@gmail.com>
This slightly buffs aim on above ~7.5 stars maps and slightly nerfs it below that --------- Co-authored-by: James Wilson <tsunyoku@gmail.com>
# Conflicts: # osu.Game.Rulesets.Osu/Difficulty/OsuDifficultyCalculator.cs # osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs # osu.Game.Rulesets.Osu/Difficulty/Skills/Aim.cs
https://www.desmos.com/calculator/naggvbcz0a This change makes first ~3 misses have harsher miss penalty, while 9+ misses get lighter penalty. 4-9 misscounts stay close to unchanged.
# Conflicts: # osu.Game.Rulesets.Osu/Difficulty/OsuPerformanceCalculator.cs
Now that agility isn't "speedaim" that covers both snap and flow we can restore it back into it's original scaling. Arguably it should be _more_ than d/t^2 but that's a thing to explore separately
At this point maybe having a shared small circle bonus in ODHO isn't even worth it since we have different d/t scalings in all evaluators. Bonus was made for snap (~d/t^1.65), here it's adjusted to be higher on agility (~d/t^2) and lower on flow (~d/t). Practically affects like [1 map](https://osu.ppy.sh/beatmapsets/2191876#osu/5192354)
This buffs longer jump sections and slightly nerfs short jump spikes. Mostly a way to slightly restore non-aimslop DT aim maps since they got hit with all the nerfs a bit too hard --------- Co-authored-by: James Wilson <tsunyoku@gmail.com>
This rework target is C-type nerf, as this map gets absurd amount of reading pp, because angles are considered very unrepetitive. What results in this score being worth absurd 1.4k pp. This PR is up to heavy discussion because it can be made much more general, touching more maps. So I wait on pp committee opinion on what of the parts can be removed. Current checks for angle to be nerfed: - The smaller angle has to be very sharp: <20 degrees, full power on <5 degrees - The larger angle has to be wide: >60 degrees, full power on >120 degrees If pattern meets all the criteria - it would be considered repetitive. For now practically no map meets this criteria to significant amount except C-type.
- Closes ppy#25254 Solves chunking-related issues by starting a new chunk for every object, and allowing chunks to be different lengths. This is retrofitted to existing calculations, and doesn't have other ramifications in the way something like tr3s's continuous strains do. The effect of this can be seen in the video below. In live pp, the map would lose sr when increasing the rate at certain points, but in the video, the sr rises consistently as expected. https://github.com/user-attachments/assets/2d58946a-9e0c-4f6b-912a-71dfe75c0f8a A multiplier has been added inside `DifficultyValue()` to account for SR being slightly lower from more granular summation. When testing this rework in PerformanceCalculatorGUI, I recommend using [this fork](https://github.com/Finadoggie/osu-tools/tree/variable-length-strains). I can't guarantee that the visuals it shows are correct, but they are definitely more correct than not. Edit: Use [this fork](https://github.com/Finadoggie/osu-tools/tree/unsynced-variable-length-strains) for testing now. Old one is now for testing SynchronizedVariableLengthStrainSkill --------- Co-authored-by: tsunyoku <tsunyoku@gmail.com> Co-authored-by: StanR <8269193+stanriders@users.noreply.github.com>
This doesn't affect values as per the original refactor. Co-authored-by: StanR <8269193+stanriders@users.noreply.github.com>
…calculation (ppy#37184) Adjusting difficulty before we calculate the flow probability is technically wrong. This makes flow adjustment on RX actually work as it should instead of trying to lower the snap to achieve similar results. TD flow buff was removed because here it actually made some maps _very_ buffed. Values are mostly the same otherwise
This PR moves the addition of the bonuses closer to their declaration and also renames some variables and functions to more closely resemble the way they're used. The names can be discussed for I'm not sold on them either. --------- Co-authored-by: James Wilson <tsunyoku@gmail.com>
Classic blunder.
Currently all low spaced (<radius) aim is evaluated as low difficulty snap. After we separated snap, flow and agility we don't actually need snap aim to be reduced for low distance - this is something that flow aim should cover instead as low spacing is guaranteed to be either flowed or not aimed at all. By extension this fixes the need for the flow velocity bonus to be extremely high as it no longer clashes with snap when the changes happen between low and high spacing.
# Conflicts: # osu.Game.Rulesets.Osu/Difficulty/Skills/Aim.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
this is ur pp dev sir