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