using PkmnLib.Dynamic.Models; using PkmnLib.Static; namespace PkmnLib.Dynamic.Libraries; /// /// A battle stat calculator is used to calculate stats for a Pokemon. /// public interface IBattleStatCalculator { /// /// Calculate all the flat stats of a Pokemon, disregarding stat boosts. /// void CalculateFlatStats(IPokemon pokemon, StatisticSet stats); /// /// Calculate a single flat stat of a Pokemon, disregarding stat boosts. /// uint CalculateFlatStat(IPokemon pokemon, Statistic stat); /// /// Calculate all the boosted stats of a Pokemon, including stat boosts. /// void CalculateBoostedStats(IPokemon pokemon, StatisticSet stats); /// /// Calculate a single boosted stat of a Pokemon, including stat boosts. /// uint CalculateBoostedStat(IPokemon pokemon, Statistic stat); /// /// Calculates the accuracy for a move, taking into account any accuracy modifiers. /// byte CalculateModifiedAccuracy(IExecutingMove executingMove, IPokemon target, byte hitIndex, byte moveAccuracy); }