namespace PkmnLib.Plugin.Gen7.Scripts.Pokemon; [Script(ScriptCategory.Pokemon, "protect")] public class ProtectionEffectScript : Script { /// public override void BlockIncomingHit(IExecutingMove executingMove, IPokemon target, byte hitIndex, ref bool block) { if (target.BattleData == null) return; if (!executingMove.UseMove.HasFlag("protect")) return; var bypass = false; var parameters = new Dictionary { { "target", target }, { "move", executingMove }, { "hitIndex", hitIndex }, { "bypass", bypass }, }; executingMove.User.RunScriptHook(x => x.CustomTrigger(CustomTriggers.BypassProtection, parameters)); bypass = parameters.GetValueOrDefault("bypass", false) as bool? ?? false; if (bypass) return; block = true; } }