载入中...
搜索中...
未找到
Trait.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
14#include <string>
15#include <unordered_map>
16#include <vector>
17
18namespace eve::rpg {
19
21struct TraitSpec {
24 std::string kind;
26 std::string target;
28 double value = 0.0;
29};
30
33 std::string id;
34 std::vector<TraitSpec> traits;
35 std::vector<std::string> tags;
36 std::unordered_map<std::string, std::string> extra;
37
39 bool hasTag(const std::string &tag) const;
41 std::string getExtra(const std::string &key, const std::string &fallback = {}) const;
42};
43
46public:
48 static void registerTrait(const TraitDefinition &def);
55 static const TraitDefinition *find(const std::string &id);
57 static bool remove(const std::string &id);
59 static void clear();
61 static int count();
62
68 static int loadFromJson(const std::string &json, std::string *error = nullptr);
69};
70
71} // 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 Trait.h:45
RPG 模块的基础实体:把属性 / 状态 / 技能三张表挂到一个 ECS 实体上。
数据驱动的特征模板。
Definition Trait.h:32
std::unordered_map< std::string, std::string > extra
Definition Trait.h:36
std::vector< TraitSpec > traits
Definition Trait.h:34
std::vector< std::string > tags
Definition Trait.h:35
特征承载的一条能力规格。
Definition Trait.h:21
std::string kind
"paramRate" | "elementRate" | "stateRate" | "stateResist" | "exParam" | "attackElement" | "attackStat...
Definition Trait.h:24
std::string target
目标名(参数/元素/状态/exParam 名);部分 kind 可空。
Definition Trait.h:26
double value
倍率或加值;攻击次数为整数加值,其它多为倍率。
Definition Trait.h:28