namespace PkmnLib.Dynamic.Models;

/// <summary>
/// Where the damage comes from.
/// </summary>
public enum DamageSource
{
    /// <summary>
    /// The damage is done by a move.
    /// </summary>
    MoveDamage = 0,

    /// <summary>
    /// The damage is done by something else.
    /// </summary>
    Misc = 1,

    /// <summary>
    /// The damage is done because of struggling.
    /// </summary>
    Struggle = 2,

    /// <summary>
    /// The damage is done because of a form change.
    /// This happens when the form of a Pokemon changes, and it has less max HP than it had before.
    /// </summary>
    FormChange = 3,

    /// <summary>
    /// The damage is done because of the weather.
    /// </summary>
    Weather = 4,

    /// <summary>
    /// The damage is done because of a status condition.
    /// </summary>
    Status = 5,

    /// <summary>
    /// The damage is done due to the Pokémon being confused and hitting itself.
    /// </summary>
    Confusion = 6,
}