Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/game/StarQuestManager.cpp8
-rw-r--r--source/game/StarQuestManager.hpp2
-rw-r--r--source/game/scripting/StarPlayerLuaBindings.cpp8
3 files changed, 18 insertions, 0 deletions
diff --git a/source/game/StarQuestManager.cpp b/source/game/StarQuestManager.cpp
index 876f0b8..df8a19a 100644
--- a/source/game/StarQuestManager.cpp
+++ b/source/game/StarQuestManager.cpp
@@ -273,6 +273,10 @@ List<QuestPtr> QuestManager::listFailedQuests() const {
return result;
}
+Maybe<String> QuestManager::currentQuestId() const {
+ return m_trackedQuestId;
+}
+
Maybe<QuestPtr> QuestManager::currentQuest() const {
auto questId = m_onWorldQuestId.orMaybe(m_trackedQuestId);
if (questId && isActive(*questId)) {
@@ -283,6 +287,10 @@ Maybe<QuestPtr> QuestManager::currentQuest() const {
return {};
}
+Maybe<String> QuestManager::trackedQuestId() const {
+ return m_trackedQuestId;
+}
+
Maybe<QuestPtr> QuestManager::trackedQuest() const {
if (m_trackedQuestId && isActive(*m_trackedQuestId)) {
auto current = getQuest(*m_trackedQuestId);
diff --git a/source/game/StarQuestManager.hpp b/source/game/StarQuestManager.hpp
index 3d7ee22..549f13b 100644
--- a/source/game/StarQuestManager.hpp
+++ b/source/game/StarQuestManager.hpp
@@ -52,7 +52,9 @@ public:
List<QuestPtr> listCompletedQuests() const;
List<QuestPtr> listFailedQuests() const;
+ Maybe<String> currentQuestId() const;
Maybe<QuestPtr> currentQuest() const;
+ Maybe<String> trackedQuestId() const;
Maybe<QuestPtr> trackedQuest() const;
Maybe<QuestIndicator> getQuestIndicator(EntityPtr const& entity) const;
diff --git a/source/game/scripting/StarPlayerLuaBindings.cpp b/source/game/scripting/StarPlayerLuaBindings.cpp
index f8e1f2e..bf14c2c 100644
--- a/source/game/scripting/StarPlayerLuaBindings.cpp
+++ b/source/game/scripting/StarPlayerLuaBindings.cpp
@@ -500,6 +500,10 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) {
return player->questManager()->hasCompleted(questId);
});
+ callbacks.registerCallback("trackedQuestId", [player]() {
+ return player->questManager()->trackedQuestId();
+ });
+
callbacks.registerCallback("setTrackedQuest", [player](Maybe<String> const& questId) {
return player->questManager()->setAsTracked(questId);
});
@@ -508,6 +512,10 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) {
return player->questManager()->canTurnIn(questId);
});
+ callbacks.registerCallback("currentQuestId", [player]() {
+ return player->questManager()->currentQuestId();
+ });
+
callbacks.registerCallback("currentQuest", [player]() -> Json {
auto maybeQuest = player->questManager()->currentQuest();
if (maybeQuest) {