namespace PkmnLib.Plugin.Gen7.Scripts.Battle; [Script(ScriptCategory.Battle, "uproar_effect")] public class UproarEffect : Script, IScriptOnBeforeTurnStart { private IPokemon? _placer; private bool _hasUsedUproar; private int _turns = 3; public void SetPlacer(IPokemon placer) { _placer = placer; _hasUsedUproar = true; } /// public override void PreventStatusChange(IPokemon pokemon, StringKey status, bool selfInflicted, ref bool preventStatus) { if (status == ScriptUtils.ResolveName()) { preventStatus = true; } } /// public void OnBeforeTurnStart(ITurnChoice choice) { _hasUsedUproar = false; } /// public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit) { if (move.User == _placer && move.UseMove.Name == "uproar") _hasUsedUproar = true; } /// public override void OnEndTurn(IScriptSource owner, IBattle battle) { if (!_hasUsedUproar) { RemoveSelf(); } _turns--; if (_turns <= 0) { RemoveSelf(); } } }