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(); } }