using PkmnLib.Dynamic.Libraries;
using PkmnLib.Dynamic.Models;
using PkmnLib.Static;
using PkmnLib.Static.Moves;
using PkmnLib.Static.Utils;
namespace PkmnLib.Dynamic.AI;
public static class AIHelpers
{
public static uint CalculateDamageEstimation(IMoveData move, IPokemon user, IPokemon target,
IDynamicLibrary library)
{
var hitData = new CustomHitData
{
BasePower = move.BasePower,
Effectiveness = library.StaticLibrary.Types.GetEffectiveness(move.MoveType, target.Types),
Type = move.MoveType,
};
return library.DamageCalculator.GetDamage(null, move.Category, user, target, 1, 0, hitData);
}
private class CustomHitData : IHitData
{
///
public bool IsCritical => false;
///
public ushort BasePower { get; init; }
///
public float Effectiveness { get; init; }
///
public uint Damage => 0;
///
public TypeIdentifier? Type { get; init; }
///
public bool IsContact => false;
///
public bool HasFailed => false;
///
public void Fail()
{
}
///
public void SetFlag(StringKey flag)
{
}
///
public bool HasFlag(StringKey flag) => false;
}
}