namespace Gen7 { [Ability effect=BeastBoost] class BeastBoost : PkmnScript { void OnFaintingOpponent(ExecutingMove@ move, Pokemon@, uint8) override { Statistic increaseStat = Statistic::HP; auto user = move.User; if (user.GetFlatStat(Statistic::Attack) > user.GetFlatStat(Statistic::HP) && user.GetFlatStat(Statistic::Attack) > user.GetFlatStat(Statistic::Defense) && user.GetFlatStat(Statistic::Attack) > user.GetFlatStat(Statistic::SpecialAttack) && user.GetFlatStat(Statistic::Attack) > user.GetFlatStat(Statistic::SpecialDefense) && user.GetFlatStat(Statistic::Attack) > user.GetFlatStat(Statistic::Speed)) { increaseStat = Statistic::Attack; } if (user.GetFlatStat(Statistic::Defense) > user.GetFlatStat(Statistic::HP) && user.GetFlatStat(Statistic::Defense) > user.GetFlatStat(Statistic::SpecialAttack) && user.GetFlatStat(Statistic::Defense) > user.GetFlatStat(Statistic::SpecialDefense) && user.GetFlatStat(Statistic::Defense) > user.GetFlatStat(Statistic::Speed)) { increaseStat = Statistic::Defense; } if (user.GetFlatStat(Statistic::SpecialAttack) > user.GetFlatStat(Statistic::HP) && user.GetFlatStat(Statistic::SpecialAttack) > user.GetFlatStat(Statistic::SpecialDefense) && user.GetFlatStat(Statistic::SpecialAttack) > user.GetFlatStat(Statistic::Speed)) { increaseStat = Statistic::SpecialAttack; } if (user.GetFlatStat(Statistic::SpecialDefense) > user.GetFlatStat(Statistic::HP) && user.GetFlatStat(Statistic::SpecialDefense) > user.GetFlatStat(Statistic::Speed)) { increaseStat = Statistic::SpecialDefense; } if (user.GetFlatStat(Statistic::Speed) > user.GetFlatStat(Statistic::HP)) { increaseStat = Statistic::Speed; } user.ChangeStatBoost(increaseStat, 1, true); } } }