using System; using PkmnLib.Static; namespace PkmnLib.Plugin.Gen7.Scripts.Moves; [Script(ScriptCategory.Move, "heart_swap")] public class HeartSwap : Script { /// public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit) { EventBatchId eventBatchId = new(); var userStats = move.User.StatBoost; var targetStats = target.StatBoost; foreach (Statistic stat in Enum.GetValues(typeof(Statistic))) { var userStat = userStats.GetStatistic(stat); var targetStat = targetStats.GetStatistic(stat); if (userStat == targetStat) continue; move.User.ChangeStatBoost(stat, (sbyte)(userStat - targetStat), true, eventBatchId); target.ChangeStatBoost(stat, (sbyte)(targetStat - userStat), false, eventBatchId); } } }