PkmnLib.NET/PkmnLib.Dynamic/ScriptHandling/ScriptAIInformationInterfaces.cs
Deukhoofd bf83b25238
All checks were successful
Build / Build (push) Successful in 58s
Implements AI Switching
2025-07-12 13:03:00 +02:00

41 lines
1.4 KiB
C#

using PkmnLib.Dynamic.Models;
namespace PkmnLib.Dynamic.ScriptHandling;
// These interfaces are used for the AI to determine contextual information about the battle.
/// <summary>
/// Script for getting the number of turns left on a script by the AI.
/// </summary>
public interface IAIInfoScriptNumberTurnsLeft
{
/// <summary>
/// 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.
/// </summary>
int TurnsLeft();
}
/// <summary>
/// Script for getting the expected end of turn damage by the AI.
/// </summary>
public interface IAIInfoScriptExpectedEndOfTurnDamage
{
/// <summary>
/// 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.
/// </summary>
void ExpectedEndOfTurnDamage(IPokemon pokemon, ref int damage);
}
/// <summary>
/// Script for getting the expected entry damage by the AI.
/// </summary>
public interface IAIInfoScriptExpectedEntryDamage
{
/// <summary>
/// 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.
/// </summary>
void ExpectedEntryDamage(IPokemon pokemon, ref uint damage);
}