using System.Collections.Generic; using PkmnLib.Static; using PkmnLib.Static.Utils; namespace PkmnLib.Plugin.Gen7.Scripts.Battle; [Script(ScriptCategory.Battle, "gravity")] public class Gravity : Script { /// public override void ChangeTypesForIncomingMove(IExecutingMove executingMove, IPokemon target, byte hitIndex, IList types) { var typeLibrary = target.Library.StaticLibrary.Types; if (executingMove.UseMove.MoveType.Name != "ground") return; // Remove all types that are immune to ground moves types.RemoveAll(x => typeLibrary.GetSingleEffectiveness(executingMove.UseMove.MoveType, x) == 0); } /// public override void FailIncomingMove(IExecutingMove move, IPokemon target, ref bool fail) { if (move.UseMove.HasFlag("gravity")) fail = true; } }