diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2025-04-24 11:18:45 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-24 11:18:45 +1000 |
commit | 607f604d947016a6539f9e2528e5d5aa9254e21e (patch) | |
tree | 204bc40b6a1e2223244e0bba9b0e00028564ccc4 | |
parent | 6ecf53828ed8c262a4fde826c704db1b43206e1b (diff) | |
parent | 7e515fd58c0ba9de814de62f2f732525f172d0d9 (diff) |
Merge pull request #229 from Emmaker/main
Minor Lua quest callback extension
-rwxr-xr-x[-rw-r--r--] | source/game/scripting/StarPlayerLuaBindings.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source/game/scripting/StarPlayerLuaBindings.cpp b/source/game/scripting/StarPlayerLuaBindings.cpp index 5af86d0..ea2bae5 100644..100755 --- a/source/game/scripting/StarPlayerLuaBindings.cpp +++ b/source/game/scripting/StarPlayerLuaBindings.cpp @@ -496,6 +496,10 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) { return QuestStateNames.getRight(player->questManager()->getQuest(questId)->state()); }); + callbacks.registerCallback("questObjectives", [player](String const& questId) -> Maybe<JsonArray> { + return player->questManager()->getQuest(questId)->objectiveList(); + }); + callbacks.registerCallback("callQuest", [player](String const& questId, String const& func, LuaVariadic<LuaValue> const& args) -> Maybe<LuaValue> { if (!player->questManager()->hasQuest(questId)) return {}; @@ -522,8 +526,11 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) { return player->questManager()->trackedQuestId(); }); - callbacks.registerCallback("setTrackedQuest", [player](Maybe<String> const& questId) { - return player->questManager()->setAsTracked(questId); + callbacks.registerCallback("setTrackedQuest", [player](String const& questId) { + if (!player->questManager()->isCurrent(questId)) + return player->questManager()->setAsTracked(questId); + else + return player->questManager()->setAsTracked({}); }); callbacks.registerCallback("canTurnInQuest", [player](String const& questId) { |