using PkmnLib.Dynamic.Models; namespace PkmnLib.Dynamic.Libraries; /// <summary> /// A damage library holds the functions related to the calculation of damage. /// </summary> public interface IDamageCalculator { /// <summary> /// Calculate the damage for a given hit on a Pokemon. /// </summary> uint GetDamage(IExecutingMove executingMove, IPokemon target, byte hitNumber, IHitData hitData); /// <summary> /// Calculate the base power for a given hit on a Pokemon. /// </summary> byte GetBasePower(IExecutingMove executingMove, IPokemon target, byte hitNumber, IHitData hitData); /// <summary> /// Returns whether a specified hit should be critical or not. /// </summary> bool IsCritical(IBattle battle, IExecutingMove executingMove, IPokemon target, byte hitNumber); }