54 lines
3.0 KiB
C++
54 lines
3.0 KiB
C++
#include "RegisterExecutingAttack.hpp"
|
|
#include <CreatureLib/Battling/Models/ExecutingAttack.hpp>
|
|
#include "../HelperFile.hpp"
|
|
|
|
void RegisterExecutingAttack::Register(asIScriptEngine* engine) {
|
|
RegisterHitData(engine);
|
|
RegisterExecutingAttackType(engine);
|
|
}
|
|
static CreatureLib::Battling::ExecutingAttack::HitData*
|
|
GetHitDataWrapper(CreatureLib::Battling::ExecutingAttack* obj, CreatureLib::Battling::Creature* c, uint8_t hit) {
|
|
return &obj->GetHitData(c, hit);
|
|
}
|
|
|
|
void RegisterExecutingAttack::RegisterHitData(asIScriptEngine* engine) {
|
|
[[maybe_unused]] int r = engine->RegisterObjectType("HitData", 0, asOBJ_REF | asOBJ_NOCOUNT);
|
|
Ensure(r >= 0);
|
|
|
|
REGISTER_GETTER("HitData", "bool get_IsCritical() const property", CreatureLib::Battling::ExecutingAttack::HitData,
|
|
IsCritical);
|
|
REGISTER_GETTER("HitData", "uint8 get_BasePower() const property", CreatureLib::Battling::ExecutingAttack::HitData,
|
|
GetBasePower);
|
|
REGISTER_GETTER("HitData", "float get_Effectiveness() const property",
|
|
CreatureLib::Battling::ExecutingAttack::HitData, GetEffectiveness);
|
|
REGISTER_GETTER("HitData", "uint get_Damage() const property", CreatureLib::Battling::ExecutingAttack::HitData,
|
|
GetDamage);
|
|
REGISTER_GETTER("HitData", "uint8 get_Type() const property", CreatureLib::Battling::ExecutingAttack::HitData,
|
|
GetType);
|
|
REGISTER_GETTER("HitData", "bool get_HasFailed() const property", CreatureLib::Battling::ExecutingAttack::HitData,
|
|
HasFailed);
|
|
|
|
r = engine->RegisterObjectMethod("HitData", "void Fail()",
|
|
asMETHOD(CreatureLib::Battling::ExecutingAttack::HitData, Fail), asCALL_THISCALL);
|
|
Ensure(r >= 0);
|
|
}
|
|
void RegisterExecutingAttack::RegisterExecutingAttackType(asIScriptEngine* engine) {
|
|
Ensure(engine->RegisterObjectType("ExecutingMove", 0, asOBJ_REF | asOBJ_NOCOUNT) >= 0);
|
|
REGISTER_GETTER("ExecutingMove", "Pokemon@ get_User() const property", CreatureLib::Battling::ExecutingAttack,
|
|
GetUser);
|
|
REGISTER_GETTER("ExecutingMove", "LearnedMove@ get_Move() const property", CreatureLib::Battling::ExecutingAttack,
|
|
GetAttack);
|
|
REGISTER_GETTER("ExecutingMove", "MoveData@ get_UseMove() const property", CreatureLib::Battling::ExecutingAttack,
|
|
GetUseAttack);
|
|
REGISTER_GETTER("ExecutingMove", "uint8 get_NumberOfHits() const property", CreatureLib::Battling::ExecutingAttack,
|
|
GetNumberOfHits);
|
|
|
|
auto r = engine->RegisterObjectMethod("ExecutingMove", "HitData@ GetHitData(Pokemon@ target, uint8 hit) const",
|
|
asFUNCTION(GetHitDataWrapper), asCALL_CDECL_OBJFIRST);
|
|
Ensure(r >= 0);
|
|
r = engine->RegisterObjectMethod("ExecutingMove", "bool IsPokemonTarget(Pokemon@ pkmn) const",
|
|
asMETHOD(CreatureLib::Battling::ExecutingAttack, IsCreatureTarget),
|
|
asCALL_THISCALL);
|
|
Ensure(r >= 0);
|
|
}
|