diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-10-21 20:05:07 +1100 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-10-21 20:05:07 +1100 |
commit | 73e9ab3b8e310b1fed87297a1876048d22a122ec (patch) | |
tree | 2b3275fc6b1cd7f6178c658e24a343287e701d86 /source/game/scripting/StarPlayerLuaBindings.cpp | |
parent | 250869e2155c1c7b0a5df106948e493ef054433e (diff) |
player.callQuest
Diffstat (limited to 'source/game/scripting/StarPlayerLuaBindings.cpp')
-rw-r--r-- | source/game/scripting/StarPlayerLuaBindings.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/source/game/scripting/StarPlayerLuaBindings.cpp b/source/game/scripting/StarPlayerLuaBindings.cpp index bf14c2c..7546567 100644 --- a/source/game/scripting/StarPlayerLuaBindings.cpp +++ b/source/game/scripting/StarPlayerLuaBindings.cpp @@ -478,10 +478,17 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) { }); callbacks.registerCallback("quest", [player](String const& questId) -> Json { - if (!player->questManager()->hasQuest(questId)) - return {}; + if (auto quest = player->questManager()->getQuest(questId)) + return quest->diskStore(); - return player->questManager()->getQuest(questId)->diskStore(); + return {}; + }); + + callbacks.registerCallback("callQuest", [player](String const& questId, String const& func, LuaVariadic<LuaValue> const& args) -> Maybe<LuaValue> { + if (auto quest = player->questManager()->getQuest(questId)) + return quest->callScript(func, args); + + return {}; }); callbacks.registerCallback("hasQuest", [player](String const& questId) { |