namespace PkmnLib.Plugin.Gen7.Scripts.Moves;

[Script(ScriptCategory.Move, "power_trip")]
public class PowerTrip : Script, IScriptChangeMoveDamage
{
    /// <inheritdoc />
    public void ChangeMoveDamage(IExecutingMove move, IPokemon target, byte hit, ref uint damage)
    {
        var modifier = 1;
        foreach (Statistic stat in Enum.GetValues(typeof(Statistic)))
        {
            if (stat is Statistic.Accuracy or Statistic.Evasion)
                continue;
            var statChange = move.User.StatBoost.GetStatistic(stat);
            if (statChange > 0)
                modifier += statChange;
        }

        damage = damage.MultiplyOrMax(modifier);
    }
}