Reworks OnInitialize to have battlelibrary as parameter
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2022-02-12 17:27:39 +01:00
parent 48da191dfb
commit e1d5a12ce0
7 changed files with 13 additions and 10 deletions

View File

@@ -50,7 +50,7 @@ private:
#define ITEM_USE_SCRIPT_HOOK_FUNCTION(name, decl) FunctionInfo __##name = Initialize(decl);
ITEM_USE_SCRIPT_HOOK_FUNCTION(OnInitialize, "void OnInitialize(const narray<EffectParameter@>@ parameters)");
ITEM_USE_SCRIPT_HOOK_FUNCTION(OnInitialize, "void OnInitialize(const BattleLibrary@ library, const narray<EffectParameter@>@ parameters)");
ITEM_USE_SCRIPT_HOOK_FUNCTION(IsItemUsable, "bool IsItemUsable()");
ITEM_USE_SCRIPT_HOOK_FUNCTION(IsPokemonUseItem, "bool IsPokemonUseItem()");
ITEM_USE_SCRIPT_HOOK_FUNCTION(IsUseValidForPokemon, "bool IsUseValidForPokemon(Pokemon@ target)");

View File

@@ -36,10 +36,12 @@ CScriptHandle* AngelScriptScript::GetAngelscriptOwner() {
return handle;
}
void AngelScriptScript::OnInitialize(const ArbUt::List<CreatureLib::Library::EffectParameter*>& parameters) {
void AngelScriptScript::OnInitialize(const CreatureLib::Battling::BattleLibrary* library,
const ArbUt::List<CreatureLib::Library::EffectParameter*>& parameters) {
CALL_HOOK(OnInitialize, {
auto arr = GetEffectParameters(parameters);
ctx->SetArgAddress(0, arr);
ctx->SetArgObject(0, (void*)library);
ctx->SetArgAddress(1, arr);
})
}
void AngelScriptScript::Stack() { CALL_HOOK(Stack, ); }
@@ -420,7 +422,6 @@ void AngelScriptScript::ModifyOffensiveStatValue(CreatureLib::Battling::Executin
ctx->SetArgByte(2, hitIndex);
ctx->SetArgAddress(3, modifier);
})
}
void AngelScriptScript::ModifyDefensiveStatValue(CreatureLib::Battling::ExecutingAttack* attack,
CreatureLib::Battling::Creature* target, u8 hitIndex,

View File

@@ -47,7 +47,8 @@ public:
ContextPool* GetContextPool() { return _ctxPool; }
CScriptHandle* GetAngelscriptOwner();
void OnInitialize(const ArbUt::List<CreatureLib::Library::EffectParameter*>& parameters) override;
void OnInitialize(const CreatureLib::Battling::BattleLibrary*,
const ArbUt::List<CreatureLib::Library::EffectParameter*>& parameters) override;
void Stack() override;
void OnRemove() override;

View File

@@ -90,7 +90,8 @@ private:
public:
const FunctionInfo& GetGetOwner() const { return __GetOwner; }
SCRIPT_HOOK_FUNCTION(OnInitialize, "void OnInitialize(const narray<EffectParameter@>@ parameters)");
SCRIPT_HOOK_FUNCTION(OnInitialize,
"void OnInitialize(const BattleLibrary@ library, const narray<EffectParameter@>@ parameters)");
SCRIPT_HOOK_FUNCTION(Stack, "void Stack()");
SCRIPT_HOOK_FUNCTION(OnRemove, "void OnRemove()");
SCRIPT_HOOK_FUNCTION(OnBeforeTurn, "void OnBeforeTurn(BaseTurnChoice@ choice)");

View File

@@ -11,7 +11,7 @@ shared abstract class PkmnScript {
protected ref@& GetOwner() { return __owner; };
// CreatureLib methods
void OnInitialize(const narray<EffectParameter@>@ parameters){};
void OnInitialize(const BattleLibrary@ library, const narray<EffectParameter@>@ parameters){};
void Stack(){};
void OnRemove(){};
void OnBeforeTurn(BaseTurnChoice@ choice){};