using PkmnLib.Dynamic.Models;
namespace PkmnLib.Dynamic.Events;
///
/// Event triggered when a Pokemon takes damage.
///
public record DamageEvent : IEventData
{
///
public DamageEvent(IPokemon pokemon, uint previousHealth, uint newHealth, DamageSource source)
{
Pokemon = pokemon;
PreviousHealth = previousHealth;
NewHealth = newHealth;
Source = source;
}
///
/// The Pokemon that took damage.
///
public IPokemon Pokemon { get; init; }
///
/// The previous health of the Pokemon.
///
public uint PreviousHealth { get; init; }
///
/// The new health of the Pokemon.
///
public uint NewHealth { get; init; }
///
/// The source of the damage.
///
public DamageSource Source { get; init; }
///
public EventBatchId BatchId { get; init; } = new();
}