using PkmnLib.Dynamic.Models;
namespace PkmnLib.Dynamic.ScriptHandling;
// These interfaces are used for the AI to determine contextual information about the battle.
///
/// Script for getting the number of turns left on a script by the AI.
///
public interface IAIInfoScriptNumberTurnsLeft
{
///
/// This function returns the number of turns left on the script. This is used for scripts that have a
/// limited number of turns, such as Sleep or Confusion.
///
int TurnsLeft();
}
///
/// Script for getting the expected end of turn damage by the AI.
///
public interface IAIInfoScriptExpectedEndOfTurnDamage
{
///
/// This function returns the expected end of turn damage for the script. This is used for scripts that
/// have an end of turn effect, such as Poison or Burn.
///
void ExpectedEndOfTurnDamage(IPokemon pokemon, ref int damage);
}
///
/// Script for getting the expected entry damage by the AI.
///
public interface IAIInfoScriptExpectedEntryDamage
{
///
/// This function returns the expected entry damage for the script. This is used for scripts that have
/// an entry hazard effect, such as Spikes or Stealth Rock.
///
void ExpectedEntryDamage(IPokemon pokemon, ref uint damage);
}