protected virtual void ApplyCustomState(DrawableHitObject drawable, ArmedState state) { var h = (OsuHitObject)drawable.HitObject; // apply grow effect switch (drawable) { case DrawableSliderHead _: case DrawableSliderTail _: // special cases we should *not* be scaling. break; case DrawableSlider _: case DrawableHitCircle _: { using (drawable.BeginAbsoluteSequence(h.StartTime - h.TimePreempt)) drawable.ScaleTo(StartScale).Then().ScaleTo(EndScale, h.TimePreempt, Easing.OutSine); break; } } // remove approach circles switch (drawable) { case DrawableHitCircle circle: // we don't want to see the approach circle using (circle.BeginAbsoluteSequence(h.StartTime - h.TimePreempt)) circle.ApproachCircle.Hide(); break; } }
private void dropOffScreen(DrawableHitObject obj, double failTime, float randomRotation, Vector2 originalScale, Vector2 originalPosition) { using (obj.BeginAbsoluteSequence(failTime)) { obj.RotateTo(randomRotation, duration); obj.ScaleTo(originalScale * 0.5f, duration); obj.MoveTo(originalPosition + new Vector2(0, 400), duration); } }
protected virtual void ApplyCustomState(DrawableHitObject drawable, ArmedState state) { var h = (OsuHitObject)drawable.HitObject; // apply grow effect switch (drawable) { case DrawableSliderHead _: case DrawableSliderTail _: // special cases we should *not* be scaling. break; case DrawableSlider _: case DrawableHitCircle _: { //using (drawable.BeginAbsoluteSequence(h.StartTime - h.TimePreempt, true)) drawable.ScaleTo(radiusScaleFactor); //.Then().ScaleTo(2.0f, h.TimePreempt, Easing.OutExpo); break; } } }