namespace PkmnLib.Plugin.Gen7.Scripts.Abilities; /// /// Beast Boost is an ability that raises the user's highest stat by one stage when it knocks out another Pokémon. /// If multiple stats are tied for the highest, the stat that is raised is chosen in this order: Attack, Defense, Special Attack, Special Defense, Speed. /// /// Bulbapedia - Beast Boost /// [Script(ScriptCategory.Ability, "beast_boost")] public class BeastBoost : Script, IScriptOnOpponentFaints { /// public void OnOpponentFaints(IExecutingMove move, IPokemon target, byte hit) { var highestStat = move.User.BoostedStats.OrderByDescending(x => x.value).First().statistic; EventBatchId batchId = new(); move.User.BattleData?.Battle.EventHook.Invoke(new AbilityTriggerEvent(move.User) { BatchId = batchId, }); move.User.ChangeStatBoost(highestStat, 1, true, false, batchId); } }