using System.Linq; using PkmnLib.Plugin.Gen7.Scripts.Pokemon; namespace PkmnLib.Plugin.Gen7.Scripts.Moves; [Script(ScriptCategory.Move, "disable")] public class Disable : Script { /// public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit) { var battleData = move.User.BattleData; if (battleData == null) return; var choiceQueue = battleData.Battle.PreviousTurnChoices; var lastMove = choiceQueue .SelectMany(x => x) .OfType() .LastOrDefault(x => x.User == target); if (lastMove == null) { move.GetHitData(target, hit).Fail(); return; } var lastMoveName = lastMove.ChosenMove.MoveData.Name; target.Volatile.Add(new DisableEffect(lastMoveName)); } }