public void Animate(HitExplosionEntry entry) { Colour = entry.ObjectColour; using (BeginAbsoluteSequence(entry.LifetimeStart)) { float halfCatchWidth = catcher.CatchWidth / 2; float explosionOffset = Math.Clamp(entry.Position, -halfCatchWidth + catch_margin * 3, halfCatchWidth - catch_margin * 3); if (!(entry.HitObject is Droplet)) { float scale = Math.Clamp(entry.JudgementResult.ComboAtJudgement / 200f, 0.35f, 1.125f); explosion1.Scale = new Vector2(1, 0.9f); explosion1.Position = new Vector2(explosionOffset, 0); explosion1.FadeOutFromOne(300); explosion1.ScaleTo(new Vector2(16 * scale, 1.1f), 160, Easing.Out); } explosion2.Scale = new Vector2(0.9f, 1); explosion2.Position = new Vector2(explosionOffset, 0); explosion2.FadeOutFromOne(700); explosion2.ScaleTo(new Vector2(0.9f, 1.3f), 500, Easing.Out); this.Delay(700).FadeOutFromOne(); } }
public void Animate(HitExplosionEntry entry) { X = entry.Position; Scale = new Vector2(entry.HitObject.Scale); setColour(entry.ObjectColour); using (BeginAbsoluteSequence(entry.LifetimeStart)) applyTransforms(entry.HitObject.RandomSeed); }