namespace PkmnLib.Plugin.Gen7.Scripts.Moves;

[Script(ScriptCategory.Move, "spectral_thief")]
public class SpectralThief : Script, IScriptOnBeforeHit
{
    /// <inheritdoc />
    public void OnBeforeHit(IExecutingMove move, IPokemon target, byte hitIndex)
    {
        var positiveStats = target.StatBoost.Where(x => x.value > 0).ToArray();
        if (positiveStats.Length > 0)
        {
            EventBatchId batchId = new();
            foreach (var positiveStat in positiveStats)
            {
                move.User.ChangeStatBoost(positiveStat.statistic, positiveStat.value, true, true, batchId);
                target.ChangeStatBoost(positiveStat.statistic, (sbyte)-positiveStat.value, true, true, batchId);
            }
        }
    }
}