PkmnLib.NET/Plugins/PkmnLib.Plugin.Gen7/Scripts/Moves/HealEachEndOfTurn.cs

38 lines
1.1 KiB
C#
Raw Normal View History

2025-01-10 09:34:11 +00:00
using System.Collections.Generic;
using PkmnLib.Plugin.Gen7.Scripts.Pokemon;
using PkmnLib.Static.Utils;
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
[Script(ScriptCategory.Move, "heal_each_end_of_turn")]
public class HealEachEndOfTurn : Script
{
private float _healPercentage;
/// <inheritdoc />
2025-01-10 10:11:50 +00:00
public override void OnInitialize(IReadOnlyDictionary<StringKey, object?>? parameters)
2025-01-10 09:34:11 +00:00
{
2025-01-10 10:11:50 +00:00
base.OnInitialize(parameters);
2025-01-10 09:34:11 +00:00
if (parameters == null || !parameters.TryGetValue("percent", out var healPercentageObj) ||
healPercentageObj is not float healPercentage)
{
_healPercentage = 6.25f;
}
else
{
_healPercentage = healPercentage!;
}
}
/// <inheritdoc />
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
{
var effectName = ScriptUtils.ResolveName<HealEachEndOfTurnEffect>();
if (target.Volatile.Contains(effectName))
{
move.GetHitData(target, hit).Fail();
return;
}
target.Volatile.Add(new HealEachEndOfTurnEffect(_healPercentage, target));
}
}