21#include <unordered_map>
29 std::string
op =
"add";
39 std::string durationPolicy =
"instant";
49 std::string stackPolicy =
"none";
55 std::vector<std::string>
tags;
58 std::unordered_map<std::string, std::string>
extra;
61 bool hasTag(
const std::string &
tag)
const;
63 std::string getExtra(
const std::string &
key,
const std::string &fallback = {})
const;
81 static bool remove(
const std::string &
id);
98 static int loadFromJson(
const std::string &json, std::string *
error =
nullptr);
101 static std::unordered_map<std::string, EffectDefinition> &
table();
#define EVENGINE_API_PLATFORM
全局效果定义表:进程级单例,供任意模块 / 脚本按 id 引用。
RPG 模块的基础实体:把属性 / 状态 / 技能三张表挂到一个 ECS 实体上。
std::unordered_map< std::string, SkillDefinition > & table()
EVENGINE_API_PLATFORM public API.
std::unordered_map< std::string, std::string > extra
游戏自定义附加数据(图标路径、特效名、脚本钩子……)。
std::vector< std::string > tags
std::vector< EffectModifierSpec > modifiers
durationPolicy 为 duration/infinite 且 period<=0 时,apply 会直接写入这些修改器。
效果里携带的一条属性修改规格(应用到 AttributeSystem::addModifier)。