namespace PkmnLib.Plugin.Gen7.Scripts.Pokemon;

[Script(ScriptCategory.Pokemon, "lock_on")]
public class LockOnEffect : Script, IScriptOnEndTurn, IScriptChangeAccuracy
{
    private readonly IPokemon _placer;

    public LockOnEffect(IPokemon placer)
    {
        _placer = placer;
    }

    /// <inheritdoc />
    public void ChangeAccuracy(IExecutingMove executingMove, IPokemon target, byte hitIndex, ref int modifiedAccuracy)
    {
        if (_placer != target)
            return;
        modifiedAccuracy = 255;
    }

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