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