using PkmnLib.Plugin.Gen7.Scripts.Pokemon;

namespace PkmnLib.Plugin.Gen7.Scripts.Abilities;

/// <summary>
/// Stench is an ability that may cause the target to flinch when hit by a damaging move.
///
/// <see href="https://bulbapedia.bulbagarden.net/wiki/Stench_(Ability)">Bulbapedia - Stench</see>
/// </summary>
[Script(ScriptCategory.Ability, "stench")]
public class Stench : Script, IScriptOnSecondaryEffect
{
    /// <inheritdoc />
    public void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
    {
        if (move.Battle.Random.GetInt(100) >= 10)
            return;
        move.Battle.EventHook.Invoke(new AbilityTriggerEvent(move.User));
        target.Volatile.Add(new FlinchEffect());
    }
}