载入中...
搜索中...
未找到
RPG.h
浏览该文件的文档.
1#pragma once
2
15#include "common/Module.h"
16#include "rpg/RPGActor.h"
17#include "rpg/StatusTypes.h"
18#include "rpg/SkillTypes.h"
19
20#include <string>
21#include <vector>
22
23namespace eve::rpg {
24
25class SettlementContext;
26
28class RPG : public Module {
29public:
31 RPG() = default;
32 ~RPG() override = default;
33
36
38 int registerEffectsFromJson(const std::string &json);
41
43 int registerSkillsFromJson(const std::string &json);
46
48 void update(float dt);
49
51 int getTickEventCount() const;
52 RPGActor *getTickEventActor(int index) const;
53 int getTickEventInstanceId(int index) const;
54 std::string getTickEventEffectId(int index) const;
55 std::string getTickEventSource(int index) const;
56 int getTickEventStacks(int index) const;
57
59 int getStatusChangeEventCount() const;
60 RPGActor *getStatusChangeEventActor(int index) const;
61 int getStatusChangeEventInstanceId(int index) const;
62 std::string getStatusChangeEventEffectId(int index) const;
63 std::string getStatusChangeEventSource(int index) const;
64 std::string getStatusChangeEventAction(int index) const;
65 int getStatusChangeEventStacks(int index) const;
66 std::string getStatusChangeEventReason(int index) const;
67
69 int getCastEventCount() const;
70 RPGActor *getCastEventCaster(int index) const;
71 RPGActor *getCastEventTarget(int index) const;
72 std::string getCastEventSkillId(int index) const;
73
76 void runSettlement(const std::string &pipeline, SettlementContext *ctx);
77 int getSettlementStageCount(const std::string &pipeline);
78 bool hasSettlementStage(const std::string &pipeline, const std::string &stage);
79 bool setSettlementStageEnabled(const std::string &pipeline, const std::string &stage,
80 bool enabled);
81 bool setSettlementStagePriority(const std::string &pipeline, const std::string &stage,
82 int priority);
83 bool removeSettlementStage(const std::string &pipeline, const std::string &stage);
84 void clearSettlementPipeline(const std::string &pipeline);
85
86private:
87 std::vector<StatusTickEvent> ticks_;
88 std::vector<StatusChangeEvent> changes_;
89 std::vector<SkillCastEvent> casts_;
90};
91
92} // namespace eve::rpg
int priority
bool enabled
属性 / 状态 / 技能三表合一的 ECS 实体。
Definition RPGActor.h:28
RPG 模块(eve.RPG):Actor 工厂 + 定义注册 + 帧调度 + 事件缓存。
Definition RPG.h:28
int getEffectDefinitionCount()
Definition RPG.cpp:22
RPG()=default
bool hasSettlementStage(const std::string &pipeline, const std::string &stage)
Definition RPG.cpp:136
void clearSkillDefinitions()
Definition RPG.cpp:28
std::string getStatusChangeEventEffectId(int index) const
Definition RPG.cpp:83
bool setSettlementStageEnabled(const std::string &pipeline, const std::string &stage, bool enabled)
Definition RPG.cpp:140
RPGActor * getTickEventActor(int index) const
Definition RPG.cpp:46
void runSettlement(const std::string &pipeline, SettlementContext *ctx)
Definition RPG.cpp:127
int getSkillDefinitionCount()
Definition RPG.cpp:30
RPGActor * getStatusChangeEventActor(int index) const
Definition RPG.cpp:73
int registerSkillsFromJson(const std::string &json)
技能定义注册。
Definition RPG.cpp:24
int getTickEventInstanceId(int index) const
Definition RPG.cpp:51
bool setSettlementStagePriority(const std::string &pipeline, const std::string &stage, int priority)
Definition RPG.cpp:145
RPGActor * getCastEventTarget(int index) const
Definition RPG.cpp:115
int getStatusChangeEventInstanceId(int index) const
Definition RPG.cpp:78
int getSettlementStageCount(const std::string &pipeline)
Definition RPG.cpp:132
int registerEffectsFromJson(const std::string &json)
效果定义注册(数据驱动,进程级注册表)。
Definition RPG.cpp:16
std::string getStatusChangeEventAction(int index) const
Definition RPG.cpp:93
int getCastEventCount() const
技能释放结算事件。
Definition RPG.cpp:108
SettlementContext * newSettlementContext()
结算:新建上下文 / 运行流水线 / 配置阶段。
Definition RPG.cpp:125
~RPG() override=default
void clearSettlementPipeline(const std::string &pipeline)
Definition RPG.cpp:154
std::string getStatusChangeEventReason(int index) const
Definition RPG.cpp:103
std::string getStatusChangeEventSource(int index) const
Definition RPG.cpp:88
RPGActor * newActor()
创建一个空白 RPGActor。
Definition RPG.cpp:14
int getTickEventCount() const
周期状态 tick 事件(上一次 update() 产生的,供脚本轮询)。
Definition RPG.cpp:44
int getStatusChangeEventCount() const
状态生命周期变更事件(apply/refresh/extend/stack/remove/expire/reject)。
Definition RPG.cpp:71
int getTickEventStacks(int index) const
Definition RPG.cpp:66
std::string getTickEventSource(int index) const
Definition RPG.cpp:61
void clearEffectDefinitions()
Definition RPG.cpp:20
bool removeSettlementStage(const std::string &pipeline, const std::string &stage)
Definition RPG.cpp:150
RPGActor * getCastEventCaster(int index) const
Definition RPG.cpp:110
std::string getTickEventEffectId(int index) const
Definition RPG.cpp:56
int getStatusChangeEventStacks(int index) const
Definition RPG.cpp:98
std::string getCastEventSkillId(int index) const
Definition RPG.cpp:120
void update(float dt)
推进 StatusSystem / SkillSystem,并刷新本帧的 tick / change / cast 事件缓存。
Definition RPG.cpp:32
RPG 模块入口:属性 / 效果 / 状态 / 技能 / 结算五套系统的脚本绑定与帧调度点。
结算上下文:通用的读写数据袋,字段完全由调用方与各阶段自行约定。
Definition Settlement.h:33