using PkmnLib.Dynamic.Models;
using PkmnLib.Static;

namespace PkmnLib.Dynamic.ScriptHandling;

public abstract class PokeballScript : ItemScript
{
    /// <inheritdoc />
    protected PokeballScript(IItem item) : base(item)
    {
    }

    public abstract byte GetCatchRate(IPokemon target);
    
    /// <inheritdoc />
    public override void OnUseWithTarget(IPokemon target)
    {
        var battleData = target.BattleData;
        if (battleData == null)
            return;
        
        battleData.Battle.AttempCapture(battleData.SideIndex, battleData.Position, Item);
    }
}