PkmnLib/src/Battling/Library/MiscLibrary.cpp
Deukhoofd bbb2691b91
All checks were successful
continuous-integration/drone/push Build is passing
Update to latest Arbutils.
2020-12-13 12:32:52 +01:00

29 lines
1.3 KiB
C++

#include "MiscLibrary.hpp"
#include <CreatureLib/Battling/Models/Battle.hpp>
#include <CreatureLib/Battling/TurnChoices/AttackTurnChoice.hpp>
#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);
}