载入中...
搜索中...
未找到
AttributeSystem.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
14#include "common/Result.h"
15#include "rpg/AttributeTypes.h"
16
17#include <string>
18
19namespace eve::rpg {
20
21class RPGActor;
22
30public:
32 static AttributeOpTable& customOps();
33
35 static void setBase(RPGActor* actor, const std::string& attribute, double value);
37 static double getBase(RPGActor* actor, const std::string& attribute);
39 static void modifyBase(RPGActor* actor, const std::string& attribute, double delta);
41 static bool hasAttribute(RPGActor* actor, const std::string& attribute);
42
47 [[nodiscard]] static eve::Result<ModifierId> addModifier(RPGActor* actor, AttributeModifier modifier);
48
53 static std::string addModifier(RPGActor* actor, const std::string& attribute, const std::string& source,
54 const std::string& operation, double value, int priority = 0);
55
57 [[nodiscard]] static eve::Result<void> removeModifier(RPGActor* actor, const ModifierId& modifierId);
59 static bool removeModifier(RPGActor* actor, const std::string& attribute, const std::string& modifierId);
61 [[nodiscard]] static eve::Result<int> removeModifiersBySource(RPGActor* actor, const std::string& attribute,
62 const std::string& source);
64 static int removeAllModifiersBySource(RPGActor* actor, const std::string& source);
65
67 static double getFinal(RPGActor* actor, const std::string& attribute);
69 static void invalidate(RPGActor* actor, const std::string& attribute);
70};
71
72} // namespace eve::rpg
ActionParameterOperation operation
double value
RPG compatibility names for the canonical attributes data model.
int priority
#define EVENGINE_API_PLATFORM
Definition Export.h:107
Move-only, checked operation results for the common layer.
const UnitySourceAsset & source
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Registry for explicitly named custom attribute policies.
RPG-facing attribute operations backed by the canonical AttributeSet.
属性 / 状态 / 技能三表合一的 ECS 实体。
Definition RPGActor.h:34
RPG 模块的基础实体:把属性 / 状态 / 技能三张表挂到一个 ECS 实体上。
::eve::attributes::ModifierId ModifierId
One canonical runtime modifier applied to one named attribute.