namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// /// Berserk is an ability that raises the user's Special Attack by one stage when its HP drops below half due to damage. /// This effect only activates if the HP drops below half as a result of damage, not from other effects. /// /// Bulbapedia - Berserk /// [Script(ScriptCategory.Ability, "berserk")] public class Berserk : Script { /// public override void OnDamage(IPokemon pokemon, DamageSource source, uint oldHealth, uint newHealth) { if (source is not DamageSource.MoveDamage) return; if (oldHealth > pokemon.MaxHealth / 2 || newHealth > pokemon.MaxHealth / 2) return; EventBatchId batchId = new(); pokemon.BattleData?.Battle.EventHook.Invoke(new AbilityTriggerEvent(pokemon) { BatchId = batchId, }); pokemon.ChangeStatBoost(Statistic.SpecialAttack, 1, true, false, batchId); } }