using PkmnLib.Plugin.Gen7.Scripts.Pokemon;
namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
[Script(ScriptCategory.Move, "swallow")]
public class Swallow : Script
{
///
public override void OnSecondaryEffect(IExecutingMove move, IPokemon target, byte hit)
{
var stockpileEffect = move.User.Volatile.Get();
if (stockpileEffect == null || stockpileEffect.StockpileCount == 0)
{
move.GetHitData(target, hit).Fail();
return;
}
var stockpileCount = stockpileEffect.StockpileCount;
var modifier = stockpileCount switch
{
1 => 0.25f,
2 => 0.5f,
_ => 1f,
};
var heal = move.User.MaxHealth * modifier;
move.User.Heal((uint)heal);
move.User.Volatile.Remove();
}
}