Gen7Data/Scripts/Abilities/BeastBoost.as

35 lines
2.1 KiB
ActionScript

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);
}
}
}