using System; using System.Collections.Generic; using PkmnLib.Static.Utils; namespace PkmnLib.Plugin.Gen7.Scripts.Moves; [Script(ScriptCategory.Move, "set_status")] public class SetStatus : Script { private string? _status; /// public override void OnInitialize(IReadOnlyDictionary? parameters) { if (parameters?.TryGetValue("status", out var s) != true) throw new Exception("Missing required parameter 'status'"); _status = s as string ?? throw new Exception("Missing required parameter 'status'"); } /// public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit) { if (_status == null) throw new Exception("Missing required parameter 'status'"); target.SetStatus(_status); } }