using System.Collections.Generic; using System.Linq; using PkmnLib.Static; using PkmnLib.Static.Libraries; using PkmnLib.Static.Utils; namespace PkmnLib.Plugin.Gen7.Scripts.Pokemon; [Script(ScriptCategory.Pokemon, "foresight")] public class ForesightEffect : Script { private readonly IReadOnlyTypeLibrary _typeLibrary; private readonly TypeIdentifier _normalType; private readonly TypeIdentifier _fightingType; private readonly TypeIdentifier _ghostType; public ForesightEffect(IReadOnlyTypeLibrary typeLibrary) { _typeLibrary = typeLibrary; typeLibrary.TryGetTypeIdentifier("normal", out _normalType); typeLibrary.TryGetTypeIdentifier("fighting", out _fightingType); typeLibrary.TryGetTypeIdentifier("ghost", out _ghostType); } /// public override void PreventStatBoostChange(IPokemon target, Statistic stat, sbyte amount, bool selfInflicted, ref bool prevent) { if (stat == Statistic.Evasion) prevent = true; } /// public override void ChangeTypesForIncomingMove(IExecutingMove executingMove, IPokemon target, byte hitIndex, IList types) { if (executingMove.UseMove.MoveType == _normalType || executingMove.UseMove.MoveType == _fightingType) { types.RemoveAll(x => x == _ghostType); } } }