diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-10-15 16:16:57 +1100 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-10-15 16:16:57 +1100 |
commit | 8aedf51957689d37250f21279df8376d57414cee (patch) | |
tree | 40adf610c44a0a9ba0bbef0c1c8592335a7c75cf /source/game/scripting/StarPlayerLuaBindings.cpp | |
parent | be884c33b497ba6ca92f81f68465367969ff663a (diff) |
add new quest Lua bindings to player
Diffstat (limited to 'source/game/scripting/StarPlayerLuaBindings.cpp')
-rw-r--r-- | source/game/scripting/StarPlayerLuaBindings.cpp | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/source/game/scripting/StarPlayerLuaBindings.cpp b/source/game/scripting/StarPlayerLuaBindings.cpp index a6da4cc..7952f30 100644 --- a/source/game/scripting/StarPlayerLuaBindings.cpp +++ b/source/game/scripting/StarPlayerLuaBindings.cpp @@ -453,6 +453,21 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) { return followUp->questId(); }); + callbacks.registerCallback("questIds", [player]() { + return player->questManager()->quests().keys(); + }); + + callbacks.registerCallback("serverQuestIds", [player]() { + return player->questManager()->serverQuests().keys(); + }); + + callbacks.registerCallback("quest", [player](String const& questId) -> Json { + if (!player->questManager()->hasQuest(questId)) + return {}; + + return player->questManager()->getQuest(questId)->diskStore(); + }); + callbacks.registerCallback("hasQuest", [player](String const& questId) { return player->questManager()->hasQuest(questId); }); @@ -469,11 +484,26 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) { return player->questManager()->hasCompleted(questId); }); + callbacks.registerCallback("setTrackedQuest", [player](Maybe<String> const& questId) { + return player->questManager()->setAsTracked(questId); + }); + + callbacks.registerCallback("canTurnInQuest", [player](String const& questId) { + return player->questManager()->canTurnIn(questId); + }); + + callbacks.registerCallback("currentQuest", [player]() -> Json { + auto maybeQuest = player->questManager()->currentQuest(); + if (maybeQuest) { + return (*maybeQuest)->diskStore(); + } + return {}; + }); + callbacks.registerCallback("currentQuestWorld", [player]() -> Maybe<String> { auto maybeQuest = player->questManager()->currentQuest(); if (maybeQuest) { - auto quest = *maybeQuest; - if (auto worldId = quest->worldId()) + if (auto worldId = (*maybeQuest)->worldId()) return printWorldId(*worldId); } return {}; |