#include "MiscLibrary.hpp" #include #include #include "../PkmnScriptHook.hpp" bool PkmnLib::Battling::MiscLibrary::IsCritical(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target, uint8_t hit) const { uint8_t critStage = 0; PKMN_HOOK(ModifyCriticalStage, attack, attack, target, hit, &critStage); Ensure(target->GetBattle().HasValue()); auto rand = target->GetBattle().GetValue()->GetRandom(); switch (critStage) { case 0: return rand->Get(24) == 0; case 1: return rand->Get(8) == 0; case 2: return rand->Get(2) == 0; default: return true; } } bool PkmnLib::Battling::MiscLibrary::CanFlee(CreatureLib::Battling::FleeTurnChoice* switchChoice) const { return CreatureLib::Battling::MiscLibrary::CanFlee(switchChoice); } CreatureLib::Battling::BaseTurnChoice* PkmnLib::Battling::MiscLibrary::ReplacementAttack(CreatureLib::Battling::Creature* user, CreatureLib::Battling::CreatureIndex target) const { return new CreatureLib::Battling::AttackTurnChoice(user, GetReplacementAttack(), target); }