using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; namespace AlienAttack.MonoGame.Things; public class MiniExplosion : MoveableSprite { protected int CurrentFrame { get; private set; } = 1; protected int MaxFrames => 9; protected int AnimationThreshold => 3; //5; protected int CurrentThreshold { get; private set; } = 5; public MiniExplosion(int x, int y, float xVel, float yVel) : base(x, y) { Origin = new(32.5f, 32); XVelocity = xVel; YVelocity = yVel; } public override void Draw(SpriteDrawArgs args) { Texture2D texture = args.Content.Load(@$"Sprites\Explosion01_Frame_0{CurrentFrame}_png_processed"); args.SpriteBatch.Draw(texture, Position, null, DrawColor, 0, Origin, .25f, SpriteEffects.None, 1); base.Draw(args); } public override void Update(SpriteUpdateContext context) { base.Update(context); //XPosition += xVel; //YPosition += yVel; if (CurrentThreshold > 0) { CurrentThreshold--; } else { if (CurrentFrame == MaxFrames) { IsDead = true; return; } CurrentFrame++; CurrentThreshold = AnimationThreshold; } } }