namespace PkmnLib.Plugin.Gen7.Scripts.Pokemon; [Script(ScriptCategory.Pokemon, "bind")] public class BindEffect : Script { private readonly IPokemon? _owner; private int _turns; private readonly float _percentOfMaxHealth; private BindEffect(float percentOfMaxHealth) { _percentOfMaxHealth = percentOfMaxHealth; } public BindEffect(IPokemon owner, int turns, float percentOfMaxHealth) { _owner = owner; _turns = turns; _percentOfMaxHealth = percentOfMaxHealth; } /// public override void OnEndTurn(IBattle battle) { if (_owner == null) return; if (_turns > 0) { _turns--; _owner.Damage((uint)(_owner.MaxHealth * _percentOfMaxHealth), DamageSource.Misc); } if (_turns <= 0) RemoveSelf(); } /// public override void PreventSelfSwitch(ISwitchChoice choice, ref bool prevent) => prevent = _turns > 0; /// public override void PreventSelfRunAway(IFleeChoice choice, ref bool prevent) => prevent = _turns > 0; }