namespace PkmnLib.Plugin.Gen7.Scripts.Moves;

[Script(ScriptCategory.Move, "parabolic_charge")]
public class ParabolicCharge : Script, IScriptOnAfterMove
{
    /// <inheritdoc />
    public void OnAfterMove(IExecutingMove move)
    {
        if (move.User.IsFainted)
            return;
        var totalDamage = move.Hits.Sum(x => x.Damage);
        var halfDamage = totalDamage / 2;
        if (halfDamage == 0)
            return;
        if (halfDamage > uint.MaxValue)
            halfDamage = uint.MaxValue;

        move.User.Heal((uint)halfDamage);
    }
}