namespace PkmnLib.Plugin.Gen7.Scripts.Battle;

[Script(ScriptCategory.Battle, "water_sport")]
public class WaterSportEffect : Script, IScriptChangeMoveDamage, IScriptOnSwitchOut
{
    public readonly HashSet<IPokemon> Placers = new();

    /// <inheritdoc />
    public void ChangeMoveDamage(IExecutingMove move, IPokemon target, byte hit, ref uint damage)
    {
        if (move.UseMove.MoveType.Name == "fire")
        {
            damage = damage / 2;
        }
    }

    /// <inheritdoc />
    public void OnSwitchOut(IPokemon oldPokemon, byte position)
    {
        if (!Placers.Contains(oldPokemon))
            return;
        Placers.Remove(oldPokemon);
        if (Placers.Count == 0)
        {
            RemoveSelf();
        }
    }
}