载入中...
搜索中...
未找到
Class.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
13#include <string>
14#include <unordered_map>
15#include <vector>
16
17namespace eve::rpg {
18
21 std::string skillId;
22 int level = 1;
23};
24
27 std::string id;
28 std::string displayName;
29 std::vector<ClassLearnSkill> learnSkills;
30 std::vector<std::string> traits;
31 std::vector<std::string> tags;
32 std::unordered_map<std::string, std::string> extra;
33
35 bool hasTag(const std::string &tag) const;
37 std::string getExtra(const std::string &key, const std::string &fallback = {}) const;
38};
39
42public:
44 static void registerClass(const ClassDefinition &def);
51 static const ClassDefinition *find(const std::string &id);
53 static bool remove(const std::string &id);
55 static void clear();
57 static int count();
58
64 static int loadFromJson(const std::string &json, std::string *error = nullptr);
65};
66
67} // namespace eve::rpg
#define EVENGINE_API_PLATFORM
Definition Export.h:107
std::uint32_t key
const std::string * tag
std::string error
Definition Package.cpp:60
std::uint32_t count
进程级职业定义注册表。
Definition Class.h:41
RPG 模块的基础实体:把属性 / 状态 / 技能三张表挂到一个 ECS 实体上。
数据驱动的职业模板。
Definition Class.h:26
std::vector< std::string > traits
职业基础特征 id(施加于 actor)
Definition Class.h:30
std::vector< std::string > tags
Definition Class.h:31
std::unordered_map< std::string, std::string > extra
Definition Class.h:32
std::vector< ClassLearnSkill > learnSkills
Definition Class.h:29
std::string displayName
Definition Class.h:28
一条"升到 level 级可学 skillId"的规格。
Definition Class.h:20
std::string skillId
Definition Class.h:21