Files
PkmnLib.NET/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/Refresh.cs

27 lines
838 B
C#

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<Paralyzed>(), ScriptUtils.ResolveName<Burned>(),
ScriptUtils.ResolveName<Poisoned>(), ScriptUtils.ResolveName<BadlyPoisoned>(),
];
/// <inheritdoc />
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();
}
}
}