Support for specific PkmnLib functions in Scripts, added ModifyCriticalStage function.

This commit is contained in:
2020-02-20 13:28:31 +01:00
parent 83a49eee6c
commit 19cfcc9e32
7 changed files with 106 additions and 18 deletions

View File

@@ -0,0 +1,20 @@
#include "MiscLibrary.hpp"
#include <CreatureLib/Battling/Models/Battle.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);
auto rand = target->GetBattle()->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);
}

View File

@@ -0,0 +1,15 @@
#ifndef PKMNLIB_MISCLIBRARY_HPP
#define PKMNLIB_MISCLIBRARY_HPP
#include <CreatureLib/Battling/Library/MiscLibrary.hpp>
namespace PkmnLib::Battling{
class MiscLibrary : CreatureLib::Battling::MiscLibrary {
~MiscLibrary() override = default;
bool IsCritical(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target,
uint8_t hit) const override;
bool CanFlee(CreatureLib::Battling::FleeTurnChoice* switchChoice) const override;
};
}
#endif // PKMNLIB_MISCLIBRARY_HPP