namespace PkmnLib.Plugin.Gen7.Scripts.Abilities;

/// <summary>
/// Leaf Guard is an ability that prevents status conditions in harsh sunlight.
///
/// <see href="https://bulbapedia.bulbagarden.net/wiki/Leaf_Guard_(Ability)">Bulbapedia - Leaf Guard</see>
/// </summary>
[Script(ScriptCategory.Ability, "leaf_guard")]
public class LeafGuard : Script, IScriptPreventStatusChange
{
    /// <inheritdoc />
    public void PreventStatusChange(IPokemon pokemon, StringKey status, bool selfInflicted, ref bool preventStatus)
    {
        if (pokemon.BattleData?.Battle.WeatherName != ScriptUtils.ResolveName<Weather.HarshSunlight>())
            return;
        if (selfInflicted)
            return;
        preventStatus = true;
    }
}