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

summaryrefslogtreecommitdiff
path: root/source/game/scripting/StarPlayerLuaBindings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/game/scripting/StarPlayerLuaBindings.cpp')
-rw-r--r--source/game/scripting/StarPlayerLuaBindings.cpp34
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 {};