18#include <unordered_map>
27 std::string startPolicy =
"manual";
29 std::string completePolicy =
"auto";
34 std::vector<std::string>
tags;
35 std::unordered_map<std::string, std::string>
extra;
38 bool hasTag(
const std::string &
tag)
const;
40 std::string getExtra(
const std::string &
key,
const std::string &fallback = {})
const;
56 static bool remove(
const std::string &
id);
62 static std::vector<std::string>
ids();
64 static bool contains(
const std::string &
id);
67 static int loadFromJson(
const std::string &json, std::string *
error =
nullptr);
81 [[nodiscard]]
static eve::Result<int> replaceFromJsonStrict(
const std::string &json);
#define EVENGINE_API_PLATFORM
RPG 目标追踪器(任务/成就/教程)的纯数据类型。
Move-only, checked operation results for the common layer.
Move-only operation result carrying either a value or Status.
RPG 模块的基础实体:把属性 / 状态 / 技能三张表挂到一个 ECS 实体上。
std::vector< std::string > tags
std::unordered_map< std::string, std::string > extra
std::vector< std::string > requiresIds
本 Tracker 上须已 completed 的条目 id,全部 AND。
std::vector< QuestObjective > objectives
std::vector< RewardSpec > rewards