Per the request of spaceman_atlas, the No Release mod is rewritten to
avoid modifications to DrawableHoldNoteTail. The approach is based
on that of the Strict Tracking mod for the osu!(standard) ruleset,
injecting the mod behavior by replacing the normal hold note with
the mod's variant. The variant inherits most bevaior from the normal
hold note, but when creating nested hitobjects, it creates its own
hold note tail variant instead, which in turn is used to instantiate
the mod's variant of DrawableHoldNoteTail with a new behavior.
The time a judgement is awarded is changed from the end of its
Perfect window to the time of the tail itself.
The new test scene is essentially a copy of TestSceneHoldNoteInput,
modified to test the judgement changes applied by the new mod. A base
class might need to be abstracted out for them.
This commit adds a new osu!mania mod No Release that relaxes tail
judgements. The current implementation automatically awards Perfect
(or Meh if the hold note is broken midway) for a hold note tail at
the end of its Perfect window, as long as it is held by then.
Tests are pending for the next commit.
cda9440a29 inadvertently fixes this in the
most frequent case by inverting the `TickDistanceMultiplier` from being
not-1 to 1 on beatmap versions above v8.
This can still potentially go wrong if a beatmap from a version below v8
is edited, because upon save it will be reencoded at the latest version,
meaning that the multiplier will change from not-1 to 1 - but this can
be handled separately.