using PkmnLib.Plugin.Gen7.Scripts.Pokemon; namespace PkmnLib.Plugin.Gen7.Scripts.Moves; [Script(ScriptCategory.Move, "disable")] public class Disable : Script, IScriptOnSecondaryEffect { /// public void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit) { var battleData = move.User.BattleData; if (battleData == null) return; if (target.Volatile.Contains()) { move.GetHitData(target, hit).Fail(); return; } var lastMove = target.BattleData?.LastMoveChoice; if (lastMove == null) { move.GetHitData(target, hit).Fail(); return; } // If the last move was struggle, the move fails and no disable is applied. if (target.Library.MiscLibrary.IsReplacementChoice(lastMove)) { move.GetHitData(target, hit).Fail(); return; } var lastMoveName = lastMove.ChosenMove.MoveData.Name; target.Volatile.Add(new DisableEffect(lastMoveName)); } }