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

summaryrefslogtreecommitdiff
path: root/source/game/scripting/StarPlayerLuaBindings.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2024-10-15 16:16:57 +1100
committerKae <80987908+Novaenia@users.noreply.github.com>2024-10-15 16:16:57 +1100
commit8aedf51957689d37250f21279df8376d57414cee (patch)
tree40adf610c44a0a9ba0bbef0c1c8592335a7c75cf /source/game/scripting/StarPlayerLuaBindings.cpp
parentbe884c33b497ba6ca92f81f68465367969ff663a (diff)
add new quest Lua bindings to player
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 {};