PkmnLib.NET/PkmnLib.Dynamic/Events/StatBoostEvent.cs

47 lines
1.2 KiB
C#

using PkmnLib.Dynamic.Models;
using PkmnLib.Static;
namespace PkmnLib.Dynamic.Events;
/// <summary>
/// Triggered when a Pokemon's stat boost is changed, either positively or negatively.
/// </summary>
public class StatBoostEvent : IEventData
{
/// <inheritdoc cref="StatBoostEvent" />
public StatBoostEvent(IPokemon pokemon, Statistic statistic, sbyte oldBoost, sbyte newBoost)
{
Pokemon = pokemon;
Statistic = statistic;
OldBoost = oldBoost;
NewBoost = newBoost;
}
/// <summary>
/// The Pokemon that had its stat boosted.
/// </summary>
public IPokemon Pokemon { get; }
/// <summary>
/// The statistic that was boosted.
/// </summary>
public Statistic Statistic { get; }
/// <summary>
/// The old boost value.
/// </summary>
public sbyte OldBoost { get; }
/// <summary>
/// The new boost value.
/// </summary>
public sbyte NewBoost { get; }
/// <summary>
/// The difference between the new and old boost values.
/// </summary>
public sbyte BoostDifference => (sbyte)(NewBoost - OldBoost);
/// <inheritdoc />
public EventBatchId BatchId { get; init; }
}