using PkmnLib.Plugin.Gen7.Scripts.Status; namespace PkmnLib.Plugin.Gen7.Scripts.Moves; [Script(ScriptCategory.Move, "refresh")] public class Refresh : Script, IScriptOnSecondaryEffect { private static readonly StringKey[] CurableStatuses = [ ScriptUtils.ResolveName(), ScriptUtils.ResolveName(), ScriptUtils.ResolveName(), ScriptUtils.ResolveName(), ]; /// public void OnSecondaryEffect(IExecutingMove move, IBattlePokemon target, byte hit) { var userStatus = move.User.StatusScript; if (userStatus.Script is { } statusScript && CurableStatuses.Contains(statusScript.Name)) { move.User.ClearStatus(); } else { move.GetHitData(target, hit).Fail(); } } }