using PkmnLib.Plugin.Gen7.Scripts.Pokemon; namespace PkmnLib.Plugin.Gen7.Scripts.Moves; /// /// Implements the secondary effect of Phantom Force, which makes the user semi-invulnerable on the first turn /// and attacks on the second turn. /// [Script(ScriptCategory.Move, "phantom_force")] public class PhantomForce : Script { /// public override void PreventMove(IExecutingMove move, ref bool prevent) { if (move.User.Volatile.Contains()) return; move.User.Volatile.Add(new PhantomForceCharge(move.User)); move.User.BattleData?.Battle.EventHook.Invoke(new DialogEvent("phantom_force_charge", new Dictionary { { "user", move.User }, })); prevent = true; } /// public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit) { if (move.User.Volatile.Contains()) return; move.User.Volatile.Add(new PhantomForceCharge(move.User)); } }