1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-16 15:43:04 +08:00
Commit Graph

3 Commits

  • Refactor beatmap attribute methods
    This change refactors `GetAdjustedDisplayDifficulty()` and
    `GetBeatmapAttributesToDisplay()` in two ways:
    
    - Both methods now accept `IBeatmapInfo` instead of
      `IBeatmapDifficultyInfo`. This is done in order to make mania key
      count display to work, wherein `IBeatmapDifficultyInfo` is not enough
      to calculate the final key count.
    
    - `GetAdjustedDisplayDifficulty()` now applies all
      `IApplicableToDifficulty` mods itself. I did this after noticing that
      every real consumer of this method had to do that themselves for very
      little reason.
  • Attempt to properly quantify the impact of mania Hard Rock / Easy mod application on overall difficulty
    In stable mania, Hard Rock and Easy mods do not work the same way as
    they do on all of the rulesets. The difference is that mania HR and EZ,
    rather than apply a multiplier to the map's original Overall Difficulty,
    apply multipliers to *the durations of hit windows themselves*.
    
    Prior to the last release, lazer was oblivious to this reality and just
    treated mania HR / EZ as it did every other ruleset. Last release, for
    the sake for gameplay parity across rulesets, the mods in question were
    adjusted to match stable, but in the process, it started looking like HR
    / EZ did not change OD anymore.
    
    The problem is that they do, but applying a multiplier to the map's OD
    and applying a multiplier to the hit window duration is not the same
    thing. The second thing is actually *much harsher* in magnitude, to the
    point where applying HR to any map is almost guaranteed to exceed "the
    effective OD" of 10, and applying EZ to any map is almost guaranteed to
    result in "negative effective OD".
    
    This change attempts to convey that reality by displaying "effective
    OD", similar to what's already done in other rulesets when rate-changing
    mods are active. Note that the values this will display *do not match*
    stable *and that is correct*, because stable song select *lies* about
    the actual impact on OD by just assuming it can treat all rulesets in
    the same way.
    
    ---
    
    Would close https://github.com/ppy/osu/issues/34150 I guess.
    
    And yes I would like *all of the above* to land on the changelog if
    possible if this is merged.
    
    For further convincing that this makes any semblance of sense please see
    the following: https://www.desmos.com/calculator/yigt7jycdv