namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// /// Static is an ability that may paralyze attackers using contact moves. /// /// Bulbapedia - Static /// [Script(ScriptCategory.Ability, "static")] public class Static : Script { private const int ChanceToParalyze = 30; /// public override void OnIncomingHit(IExecutingMove move, IPokemon target, byte hit) { if (!move.GetHitData(target, hit).IsContact) return; if (move.Battle.Random.GetInt(0, 100) < ChanceToParalyze) { EventBatchId batchId = new(); if (target.SetStatus(ScriptUtils.ResolveName(), target, batchId)) { move.Battle.EventHook.Invoke(new AbilityTriggerEvent(target) { BatchId = batchId, }); } } } }