namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; [Script(ScriptCategory.Ability, "aftermath")] public class Aftermath : Script { private IExecutingMove? _lastAttack; /// public override void OnIncomingHit(IExecutingMove move, IPokemon target, byte hit) { _lastAttack = move; } /// public override void OnFaint(IPokemon pokemon, DamageSource source) { if (source != DamageSource.MoveDamage) return; if (_lastAttack is null || !_lastAttack.UseMove.HasFlag("contact")) return; var user = _lastAttack.User; if (!user.IsUsable) return; if (user.BattleData is null) return; EventBatchId eventBatchId = new(); user.BattleData.Battle.EventHook.Invoke(new AbilityTriggerEvent(pokemon) { BatchId = eventBatchId, }); user.Damage(user.MaxHealth / 4, DamageSource.Misc, eventBatchId); } }