using PkmnLib.Plugin.Gen7.Scripts.Pokemon; namespace PkmnLib.Plugin.Gen7.Scripts.Moves; [Script(ScriptCategory.Move, "charge_move")] public class ChargeMove : Script { public override void PreventMove(IExecutingMove move, ref bool prevent) { var args = new CustomTriggers.BypassChargeMoveArgs(move, false); move.RunScriptHook(script => script.CustomTrigger(CustomTriggers.BypassChargeMove, args)); if (args.Bypass) return; var chargeMoveEffect = move.User.Volatile.Get(); if (chargeMoveEffect != null && chargeMoveEffect.MoveName == move.UseMove.Name) return; prevent = true; move.User.Volatile.Add(new ChargeMoveEffect(move.UseMove.Name, move.User, move.MoveChoice.TargetSide, move.MoveChoice.TargetPosition)); } }