namespace PkmnLib.Plugin.Gen7.Scripts.Abilities;

/// <summary>
/// Infiltrator is an ability that allows the Pokémon's moves to ignore the opposing side's barriers and substitutes.
///
/// <see href="https://bulbapedia.bulbagarden.net/wiki/Infiltrator_(Ability)">Bulbapedia - Infiltrator</see>
/// </summary>
[Script(ScriptCategory.Ability, "infiltrator")]
public class Infiltrator : Script, IScriptCustomTrigger
{
    /// <inheritdoc />
    public void CustomTrigger(StringKey eventName, ICustomTriggerArgs args)
    {
        if (eventName == CustomTriggers.BypassSubstitute && args is CustomTriggers.BypassSubstituteArgs bypassArgs)
        {
            bypassArgs.Bypass = true;
        }
        else if (eventName == CustomTriggers.BypassProtection && args is CustomTriggers.BypassProtectionArgs customArgs)
        {
            customArgs.Bypass = true;
        }
    }
}