载入中...
搜索中...
未找到
StatusSystem.h
浏览该文件的文档.
Definition StatusSystem.h:24
static bool setProp(RPGActor *actor, int instanceId, const std::string &key, const std::string &value)
Definition StatusSystem.cpp:423
static void clearStackPolicies()
Definition StatusSystem.cpp:87
static std::string getActiveSource(RPGActor *actor, int index)
Definition StatusSystem.cpp:408
static void unregisterLifecycleHook(const std::string &name)
Definition StatusSystem.cpp:93
static int apply(RPGActor *actor, const std::string &effectId, const std::string &source="")
施加一个效果。返回值: -1 — 失败(actor 为空 / 效果不存在 / 条件拒绝 / stackPolicy 拒绝重复) 0 — durationPolicy=="instant":已立即生效,无...
Definition StatusSystem.cpp:118
std::function< bool(RPGActor *actor, const EffectDefinition &def, const std::string &source, std::string &outReason)> ApplyCondition
施加前条件:返回 false 表示拒绝施加。 全部已注册条件按注册表遍历(AND);任一失败则 apply 返回 -1 并产生 action="reject" 事件。
Definition StatusSystem.h:31
std::function< int(RPGActor *actor, StatusInstance &existing, const EffectDefinition &def, const std::string &source)> StackPolicyFn
自定义叠加策略:当已存在同 effectId 实例且 stackPolicy 名命中本注册表时调用。 返回值约定与 apply() 相同(-1 拒绝 / >0 实例 id)。策略内部可改写 stacks...
Definition StatusSystem.h:40
static void update(float dt)
遍历 RPGActor::liveActors():倒计时长、到期移除、周期效果产生 tick 事件。
Definition StatusSystem.cpp:431
static int getActiveStacks(RPGActor *actor, int index)
Definition StatusSystem.cpp:387
static bool hasApplyCondition(const std::string &name)
Definition StatusSystem.cpp:71
static bool hasStackPolicy(const std::string &name)
Definition StatusSystem.cpp:83
static void pollChanges(std::vector< StatusChangeEvent > &out)
取出并清空自上次调用以来累积的生命周期变更事件。
Definition StatusSystem.cpp:481
static bool hasLifecycleHook(const std::string &name)
Definition StatusSystem.cpp:97
static int getActiveInstanceId(RPGActor *actor, int index)
Definition StatusSystem.cpp:401
static bool hasEffect(RPGActor *actor, const std::string &effectId)
Definition StatusSystem.cpp:358
static void unregisterApplyCondition(const std::string &name)
Definition StatusSystem.cpp:67
static void clearLifecycleHooks()
Definition StatusSystem.cpp:101
static void pollTicks(std::vector< StatusTickEvent > &out)
取出并清空自上次调用以来累积的周期 tick 事件(push/poll 风格,见 event 模块)。
Definition StatusSystem.cpp:475
static bool hasTag(RPGActor *actor, const std::string &tag)
是否存在任一效果定义带有该 tag 的活动实例。
Definition StatusSystem.cpp:366
static int removeBySource(RPGActor *actor, const std::string &source)
移除该 actor 身上所有 source 匹配的实例;返回移除数量。
Definition StatusSystem.cpp:309
static bool remove(RPGActor *actor, int instanceId)
按实例 id 精确移除(撤销其属性修改器);返回是否命中。
Definition StatusSystem.cpp:264
static void registerApplyCondition(const std::string &name, ApplyCondition fn)
Definition StatusSystem.cpp:63
static void registerStackPolicy(const std::string &name, StackPolicyFn fn)
Definition StatusSystem.cpp:77
static int getActiveCount(RPGActor *actor)
Definition StatusSystem.cpp:375
static std::string getProp(RPGActor *actor, int instanceId, const std::string &key, const std::string &fallback={})
按实例 id 读写 props;找不到实例时 get 返回 fallback,set 返回 false。
Definition StatusSystem.cpp:415
static void registerLifecycleHook(const std::string &name, LifecycleHook fn)
Definition StatusSystem.cpp:89
static int removeByEffect(RPGActor *actor, const std::string &effectId)
移除该 actor 身上所有 effectId 匹配的实例;返回移除数量。
Definition StatusSystem.cpp:285
static void unregisterStackPolicy(const std::string &name)
Definition StatusSystem.cpp:81
static void clearApplyConditions()
Definition StatusSystem.cpp:75
std::function< void(const StatusChangeEvent &ev)> LifecycleHook
生命周期钩子:每次产生 StatusChangeEvent 时同步回调(在事件入队之后)。
Definition StatusSystem.h:43
static int removeByTag(RPGActor *actor, const std::string &tag)
移除该 actor 身上所有 tag 匹配(效果定义带该 tag)的实例;返回移除数量。
Definition StatusSystem.cpp:333
static std::string getActiveEffectId(RPGActor *actor, int index)
Definition StatusSystem.cpp:380
static float getActiveRemaining(RPGActor *actor, int index)
Definition StatusSystem.cpp:394
Definition Effect.h:32
状态生命周期变更事件(施加 / 刷新 / 叠层 / 延长 / 移除 / 到期 / 拒绝)。 与 StatusTickEvent 分开:tick 是周期性数值触发,change 是实例结构变化。
Definition StatusTypes.h:59