#include "AngelScriptItemUseScript.hpp" #include "AngelScriptFunctionCall.hpp" #include "AngelScriptResolver.hpp" #include "AngelscriptUserdata.hpp" NativeArray>* AngelScriptItemUseScript::GetEffectParameters(const ArbUt::List& ls) { return new NativeArray>(&ls); } void AngelScriptItemUseScript::OnInitialize(const ArbUt::List& parameters) { if (__OnInitialize.Exists) { AngelScriptUtils::AngelscriptFunctionCall( __OnInitialize.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) { auto* arr = GetEffectParameters(parameters); ctx->SetArgAddress(0, arr); }, [&]([[maybe_unused]] asIScriptContext* ctx) {}); } } bool AngelScriptItemUseScript::IsItemUsable() const { if (!__IsItemUsable.Exists) { return CreatureLib::Battling::ItemUseScript::IsItemUsable(); } bool res = false; AngelScriptUtils::AngelscriptFunctionCall( __IsItemUsable.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) {}, [&]([[maybe_unused]] asIScriptContext* ctx) { res = ctx->GetReturnByte() == 1; }); return res; } bool AngelScriptItemUseScript::IsCreatureUseItem() const { if (!__IsPokemonUseItem.Exists) { return CreatureLib::Battling::ItemUseScript::IsCreatureUseItem(); } bool res = false; AngelScriptUtils::AngelscriptFunctionCall( __IsPokemonUseItem.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) {}, [&]([[maybe_unused]] asIScriptContext* ctx) { res = ctx->GetReturnByte() == 1; }); return res; } bool AngelScriptItemUseScript::IsUseValidForCreature(CreatureLib::Battling::Creature* creature) const { if (!__IsUseValidForPokemon.Exists) { return CreatureLib::Battling::ItemUseScript::IsUseValidForCreature(creature); } bool res = false; AngelScriptUtils::AngelscriptFunctionCall( __IsUseValidForPokemon.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) { ctx->SetArgObject(0, (void*)creature); }, [&]([[maybe_unused]] asIScriptContext* ctx) { res = ctx->GetReturnByte() == 1; }); return res; } bool AngelScriptItemUseScript::IsHoldable() const { if (!__IsHoldable.Exists) { return CreatureLib::Battling::ItemUseScript::IsHoldable(); } bool res = false; AngelScriptUtils::AngelscriptFunctionCall( __IsHoldable.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) {}, [&]([[maybe_unused]] asIScriptContext* ctx) { res = ctx->GetReturnByte() == 1; }); return res; } void AngelScriptItemUseScript::OnUse(CreatureLib::Battling::Battle* battle) const { if (!__OnUse.Exists) { CreatureLib::Battling::ItemUseScript::OnUse(battle); } AngelScriptUtils::AngelscriptFunctionCall( __OnUse.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) { ctx->SetArgObject(0, battle); }, [&]([[maybe_unused]] asIScriptContext* ctx) {}); } void AngelScriptItemUseScript::OnCreatureUse(CreatureLib::Battling::Creature* creature, bool isBattle) const { if (!__OnPokemonUse.Exists) { CreatureLib::Battling::ItemUseScript::OnCreatureUse(creature, isBattle); } AngelScriptUtils::AngelscriptFunctionCall( __OnPokemonUse.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) { ctx->SetArgObject(0, (void*)creature); ctx->SetArgByte(1, isBattle); }, [&]([[maybe_unused]] asIScriptContext* ctx) {}); } void AngelScriptItemUseScript::ModifyPokeballCatchBonus(PkmnLib::Battling::Pokemon* pokemon, u8* catchBonus) const { if (!__ModifyPokeballCatchBonus.Exists) { return; } AngelScriptUtils::AngelscriptFunctionCall( __ModifyPokeballCatchBonus.Function, _resolver->GetContextPool(), _scriptObject, _resolver, ""_cnc, [&]([[maybe_unused]] asIScriptContext* ctx) { ctx->SetArgObject(0, (void*)pokemon); ctx->SetArgAddress(1, catchBonus); }, [&]([[maybe_unused]] asIScriptContext* ctx) {}); }