using PkmnLib.Plugin.Gen7.Scripts.Pokemon;

namespace PkmnLib.Plugin.Gen7.Scripts.Moves;

[Script(ScriptCategory.Move, "shell_trap")]
public class ShellTrap : Script, IScriptOnBeforeMove, IScriptFailMove
{
    /// <inheritdoc />
    public void OnBeforeMove(IExecutingMove move)
    {
        move.User.Volatile.Add(new ShellTrapHelper());
    }

    /// <inheritdoc />
    public void FailMove(IExecutingMove move, ref bool fail)
    {
        var shellTrapHelper = move.User.Volatile.Get<ShellTrapHelper>();
        if (shellTrapHelper is not { HasHit: true })
        {
            fail = true;
        }
    }
}