Note that this does not handle sizing/scaling changes applied directly
to `Playfield`, but it handles any changes within the layers inside
`PlayfieldAdjustmentContainer`.
Closes https://github.com/ppy/osu/issues/33444.
The issue here is that for a set of required mods to make sense in the
context of a freestyle playlist item, it must be consistently either
valid or invalid *as a combination* across all four default rulesets,
because freestyle also permits changing ruleset. There are two
pertinent cases here:
- Flashlight and Hidden are compatible in osu!, taiko, and catch, but
not compatible in mania. In this case I've disallowed both mods
because of symmetry, basically - I don't see one "better mod" to
disallow here.
- Accuracy Challenge and Easy are incompatible in osu!, catch, and mania
(because the mod gives extra lives) there, but *compatible* in taiko,
where it does not. In this case I've disallowed Accuracy Challenge
only, because I find its value in being forced on a freestyle room
to be much smaller than Easy's.
In the large scale of things I don't see this being very important
because my view is that 99% of the use case of required mods in
freestyle is going to be changing the track speed. So I don't think
anyone is going to care about this going away - but we can reassess if
I'm proven wrong.
Closes https://github.com/ppy/osu/issues/27522.
Concerns mostly taiko and catch.
Not much of a proper fix rather than a workaround but it is what it is.
I tried a few other things, including setting `MaskingSmoothness = 0` on
the scaling container itself, to no avail.
Because if scaling is ever actually non-proportional then this should be
somewhat loud.
Also use the absolute value to prevent funny things happening if/when
someone does negative scale.
When the playfield is shrunk with mods such as BarrelRoll, flashlight does not account for this, making it significantly easier to play. This makes it scale along with the playfield.
This reverts commit beef3b418a.
Revert "Use linq expression for handling breaks"
This reverts commit 8464a1941b.
Revert "renames variables to make more logical sense"
This reverts commit 3b87ecf56c.
Revert "Removes overhead when not combo based size"
This reverts commit ac4229e3d4.