From 8aedf51957689d37250f21279df8376d57414cee Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Tue, 15 Oct 2024 16:16:57 +1100 Subject: add new quest Lua bindings to player --- source/game/scripting/StarPlayerLuaBindings.cpp | 34 +++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) (limited to 'source/game/scripting/StarPlayerLuaBindings.cpp') 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 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 { auto maybeQuest = player->questManager()->currentQuest(); if (maybeQuest) { - auto quest = *maybeQuest; - if (auto worldId = quest->worldId()) + if (auto worldId = (*maybeQuest)->worldId()) return printWorldId(*worldId); } return {}; -- cgit v1.2.3