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

6 Commits

  • Support mania-specific hit window quirks
    The quirks in question being that lazer's hit windows in mania preceding
    this change are used in stable *if and only if* Score V2 is active. If
    Score V2 is *not* active, stable has two disparate other sets of hit
    window ranges, dependent on whether the beatmap is a convert or not.
    
    With this commit, those hit windows are used in lazer when the Classic
    mod is active.
    
    Open points for discussion would be:
    
    - What does this mean for plays already set on lazer using the Classic
      mod? Are there even enough of them to care about? Also, on `master`
      the Classic mod does precisely nothing, so maybe such scores should
      just have Classic mod stripped from them?
    
    - What does this mean for the mod multiplier of Classic in mania? (I don't
      expect an answer to this one.)
  • Mark ModScoreV2 as invalid for multiplayer
    Doesn't do much for the client; mostly a safety for osu-web's sake,
    as without the change it could theoretically fail to validate the mod
    properly in multiplayer contexts.
  • Seal ModScoreV2
    Nobody should ever need to extend it.
  • Mark "Score V2" mod as not user-playable
    The mod generally will only be present on scores imported from stable.
    As such, it's probably ok to mark it as such.
    
    The primary reason for this change is to address #24436 (Score V2 being
    visible on beatmap overlay leaderboard mod selector).
    
    There is one possibly-unintended consequence of this change, namely that
    the results screen uses `UserPlayable` to determine as to whether
    animations should be played back, with the intention of turning off the
    animation playback for autoplay scores specifically. Therefore, turning
    off this flag will mean that the results screen animations will not play
    out for Score V2 scores - but I tend to consider this as either largely
    unimportant, or something that should be fixed in some other way
    (possibly by checking against the autoplay mod directly).
    
    Other usages of `UserPlayable` are either innocuous, or straight-up good
    safeties going forward in the context of Score V2 (guards against
    selection in mod select overlays, against score submission with
    the mod).