using PkmnLib.Dynamic.Models;
using PkmnLib.Static.Utils;
namespace PkmnLib.Dynamic.Events;
///
/// Represents an event that occurs when a Pokémon's status changes.
///
public record StatusChangeEvent : IEventData
{
///
public StatusChangeEvent(IPokemon pokemon, StringKey? previousStatus, StringKey? newStatus)
{
Pokemon = pokemon;
PreviousStatus = previousStatus;
NewStatus = newStatus;
}
///
/// The Pokémon whose status has changed.
///
public IPokemon Pokemon { get; }
///
/// The new status of the Pokémon after the change.
///
public StringKey? NewStatus { get; }
///
/// The previous status of the Pokémon before the change.
///
public StringKey? PreviousStatus { get; }
///
public EventBatchId BatchId { get; init; }
}