Implements new Effect Parameters in AngelScript/
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -6,7 +6,8 @@ void BasicScriptClass::Register(asIScriptEngine* engine) {
|
||||
// registry interface. As such, we just create it from string.
|
||||
[[maybe_unused]] int r = engine->GetModuleByIndex(0)->AddScriptSection("PkmnScript", R"(
|
||||
shared abstract class PkmnScript {
|
||||
// CreatureLib methods
|
||||
// CreatureLib methods
|
||||
void OnInitialize(const array<EffectParameter@> &in parameters){};
|
||||
void Stack(){};
|
||||
void OnRemove(){};
|
||||
void PreventAttack(ExecutingMove@ attack, bool& result){};
|
||||
@@ -33,10 +34,9 @@ shared abstract class PkmnScript {
|
||||
void ModifyDamageModifier(ExecutingMove@ attack, Pokemon@ target, uint8 hit, float& modifier){};
|
||||
void OverrideDamage(ExecutingMove@ attack, Pokemon@ target, uint8 hit, uint& damage){};
|
||||
|
||||
// PkmnLib methods
|
||||
// PkmnLib methods
|
||||
void ModifyCriticalStage(ExecutingMove@ attack, Pokemon@ target, uint8 hit, uint8& critStage){};
|
||||
}
|
||||
)");
|
||||
assert(r >= 0);
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
#include "RegisterEffectParameter.hpp"
|
||||
#include <Arbutils/Assert.hpp>
|
||||
#include <CreatureLib/Library/EffectParameter.hpp>
|
||||
|
||||
static CreatureLib::Library::EffectParameter* Ref_Factory() { return new CreatureLib::Library::EffectParameter(); }
|
||||
|
||||
static std::string AsString(const CreatureLib::Library::EffectParameter* p) { return p->AsString(); }
|
||||
|
||||
void RegisterEffectParameter::Register(asIScriptEngine* engine) {
|
||||
[[maybe_unused]] int r = engine->RegisterEnum("EffectParameterType");
|
||||
Assert(r >= 0);
|
||||
for (auto val : CreatureLib::Library::EffectParameterTypeHelper::GetValues()) {
|
||||
r = engine->RegisterEnumValue("EffectParameterType",
|
||||
CreatureLib::Library::EffectParameterTypeHelper::ToString(val), (int)val);
|
||||
Assert(r >= 0);
|
||||
}
|
||||
|
||||
r = engine->RegisterObjectType("EffectParameter", 0, asOBJ_REF | asOBJ_NOCOUNT);
|
||||
Assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectBehaviour("EffectParameter", asBEHAVE_FACTORY, "EffectParameter@ f()",
|
||||
asFUNCTION(Ref_Factory), asCALL_CDECL);
|
||||
Assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("EffectParameter", "EffectParameterType GetType() const",
|
||||
asMETHOD(CreatureLib::Library::EffectParameter, GetType), asCALL_THISCALL);
|
||||
Assert(r >= 0);
|
||||
|
||||
r = engine->RegisterObjectMethod("EffectParameter", "bool AsBool() const",
|
||||
asMETHOD(CreatureLib::Library::EffectParameter, AsBool), asCALL_THISCALL);
|
||||
Assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod("EffectParameter", "int64 AsInt() const",
|
||||
asMETHOD(CreatureLib::Library::EffectParameter, AsInt), asCALL_THISCALL);
|
||||
Assert(r >= 0);
|
||||
r = engine->RegisterObjectMethod(
|
||||
"EffectParameter", "string AsString() const",
|
||||
asFUNCTIONPR(AsString, (const CreatureLib::Library::EffectParameter*), std::string), asCALL_CDECL_OBJFIRST);
|
||||
Assert(r >= 0);
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
#ifndef PKMNLIB_REGISTEREFFECTPARAMETER_HPP
|
||||
#define PKMNLIB_REGISTEREFFECTPARAMETER_HPP
|
||||
|
||||
#include <angelscript.h>
|
||||
class RegisterEffectParameter {
|
||||
public:
|
||||
static void Register(asIScriptEngine* engine);
|
||||
};
|
||||
|
||||
#endif // PKMNLIB_REGISTEREFFECTPARAMETER_HPP
|
||||
Reference in New Issue
Block a user