protected override void OnNewBeat(int beatIndex, TimingControlPoint timingPoint, EffectControlPoint effectPoint, TrackAmplitudes amplitudes) { base.OnNewBeat(beatIndex, timingPoint, effectPoint, amplitudes); if (!IsHovered) { return; } bool rightward = beatIndex % 2 == 1; double duration = timingPoint.BeatLength / 2; icon.RotateTo(rightward ? 10 : -10, duration * 2, EasingTypes.InOutSine); icon.MoveToY(-10, duration, EasingTypes.Out); icon.ScaleTo(Vector2.One, duration, EasingTypes.Out); using (icon.BeginDelayedSequence(duration)) { icon.MoveToY(0, duration, EasingTypes.In); icon.ScaleTo(new Vector2(1, 0.9f), duration, EasingTypes.In); } }