namespace PkmnLib.Plugin.Gen7.Scripts.Pokemon;

/// <summary>
/// Attached script for <see cref="ProtectionEffectScript"/> to keep track of the consecutive turns of using Protect,
/// or protect-like moves.
/// </summary>
[Script(ScriptCategory.Pokemon, "protection_failure")]
public class ProtectionFailureScript : Script, IScriptOnBeforeTurnStart, IScriptOnEndTurn
{
    public int ProtectTurns { get; set; }
    public bool UsedProtect { get; set; }

    /// <inheritdoc />
    public void OnBeforeTurnStart(ITurnChoice choice)
    {
        UsedProtect = false;
    }

    /// <inheritdoc />
    public void OnEndTurn(IScriptSource owner, IBattle battle)
    {
        if (!UsedProtect)
        {
            RemoveSelf();
        }
    }
}