Pool catcher trail sprite
- A banana cannot be hyper
Pulps are lazily allocated but never deallocated for a DrawableFruit
But Fruit in-place update is still incomplete, as child drawables are recreated when reused.
if
We cannot just apply the transforms because DHO clears transforms when state is updated
- The repeated `Remove` call was quadratic complexity. Now it is linear time.
It is now more clear that the expression of distance checking is probably unintended (a bug)
It is not needed anymore because some code in DCHO is moved from `load` to constructor.
Make HitSampleInfo immutable
Initial implementation of hit object pooling in osu!catch ruleset