using PkmnLib.Static.Utils;
namespace PkmnLib.Plugin.Gen7.Scripts.Abilities;
[Script(ScriptCategory.Ability, "prevent_stat_lowering")]
public class PreventStatLowering : Script
{
private Statistic _statistic;
///
public override void OnInitialize(IReadOnlyDictionary? parameters)
{
if (parameters is null)
throw new ArgumentNullException(nameof(parameters), "Parameters cannot be null.");
if (!parameters.TryGetValue("stat", out var statObj) || statObj is not string statStr)
throw new ArgumentException("Parameter 'stat' is required and must be a string.", nameof(parameters));
if (!Enum.TryParse(statStr, true, out Statistic stat))
throw new ArgumentException($"Invalid statistic '{statStr}' provided.", nameof(statStr));
_statistic = stat;
}
///
public override void PreventStatBoostChange(IPokemon target, Statistic stat, sbyte amount, bool selfInflicted,
ref bool prevent)
{
if (!selfInflicted)
prevent = false;
}
}