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<Texture2D>(@$"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;
        }
    }
}