载入中...
搜索中...
未找到
SkillSystem.cpp
浏览该文件的文档.
27 if (AttributeSystem::getFinal(actor, cost.resource.value()) < static_cast<double>(cost.amount.value()))
35 AttributeSystem::modifyBase(actor, cost.resource.value(), -static_cast<double>(cost.amount.value()));
90void SkillSystem::setCooldownRemaining(RPGActor *actor, const std::string &skillId, float seconds) {
113 if (!condition.passed()) return fail(decision::conditionReasonCodeName(condition.reasonCode()));
144bool SkillSystem::isCasting(RPGActor *actor) { return actor && actor->skills()->casting.active; }
RPG's thin compatibility facade over the attributes module.
RPG Skill adapter for the renderer-independent decision protocol.
static const std::vector< RPGActor * > & liveActors()
返回所有通过 createActor() 创建、且当前仍存活的 actor。 StatusSystem::update / SkillSystem::update 用它遍历所有 actor 逐帧推进。 ...
Definition RPGActor.cpp:42
static decision::ConditionResult evaluate(const RPGActor *actor, const SkillDefinition &definition, const decision::Condition &condition, SkillConditionQueries queries={})
Evaluate one skill condition against an actor and definition.
Definition SkillCondition.cpp:70
static const SkillDefinition * find(const std::string &id)
Find a registered skill definition by id.
Definition Skill.cpp:90
static void update(float dt)
遍历 RPGActor::liveActors():冷却倒计时 + 读条推进/结算。
Definition SkillSystem.cpp:158
static std::string getCastingSkillId(RPGActor *actor)
Returns the casting skill id.
Definition SkillSystem.cpp:146
static float getCastProgress(RPGActor *actor)
Returns the cast progress.
Definition SkillSystem.cpp:150
static void setCooldownRemaining(RPGActor *actor, const std::string &skillId, float seconds)
Sets the cooldown remaining.
Definition SkillSystem.cpp:90
static std::string getTargetType(RPGActor *actor, const std::string &skillId)
技能的目标类型字符串("" 表示未学会/未知)。
Definition SkillSystem.cpp:77
static void unregisterCastCondition(const std::string &name)
Unregisters cast condition.
Definition SkillSystem.cpp:57
static float getCooldownRemaining(RPGActor *actor, const std::string &skillId)
Returns the cooldown remaining.
Definition SkillSystem.cpp:83
std::function< bool(RPGActor *actor, const SkillDefinition &def, std::string &outReason)> CastCondition
返回 false 表示禁止释放;通过 outReason 说明原因。
Definition SkillSystem.h:28
static void registerCastCondition(const std::string &name, CastCondition fn)
Registers cast condition.
Definition SkillSystem.cpp:53
static bool canCast(RPGActor *actor, const std::string &skillId, std::string *reason=nullptr)
检查冷却/消耗/学会状态/自定义条件,不产生任何副作用。
Definition SkillSystem.cpp:95
static bool beginCast(RPGActor *actor, const std::string &skillId, RPGActor *target=nullptr, std::string *reason=nullptr)
尝试释放技能:通过 canCast 检查后立即扣除消耗并进入冷却; castTime<=0 时立即结算(授予效果 + 产生 SkillCastEvent), 否则进入读条状态,由 update() 在读...
Definition SkillSystem.cpp:117
static void pollCastEvents(std::vector< SkillCastEvent > &out)
Polls cast events.
Definition SkillSystem.cpp:175
const char * conditionReasonCodeName(ConditionReasonCode code) noexcept
Return the stable lowercase spelling of a condition reason code. @ownership Borrowed process-static t...
Definition Condition.cpp:82
eve::decision::Condition castCondition
Side-effect-free condition tree required before this skill can cast.
Definition Skill.h:38