载入中...
搜索中...
未找到
RPGActor.cpp
浏览该文件的文档.
79std::string RPGActor::addAttributeModifier(const std::string &attribute, const std::string &source,
88bool RPGActor::removeAttributeModifier(const std::string &attribute, const std::string &modifierId) {
113bool RPGActor::removeStatus(int instanceId) { return StatusSystem::remove(this, instanceId).ok(); }
127bool RPGActor::hasEffect(const std::string &effectId) { return StatusSystem::hasEffect(this, effectId); }
139float RPGActor::getStatusRemaining(int index) { return StatusSystem::getActiveRemaining(this, index); }
141int RPGActor::getStatusInstanceId(int index) { return StatusSystem::getActiveInstanceId(this, index); }
143std::string RPGActor::getStatusSource(int index) { return StatusSystem::getActiveSource(this, index); }
199bool RPGActor::knowsSkill(const std::string &skillId) { return SkillSystem::knows(this, skillId); }
201bool RPGActor::forgetSkill(const std::string &skillId) { return SkillSystem::forget(this, skillId); }
290bool RPGActor::hasTrait(const std::string &traitId) { return TraitSystem::hasTrait(this, traitId); }
336bool RPGActor::setClass(const std::string &classId) { return ClassSystem::setClass(this, classId); }
RPG's thin compatibility facade over the attributes module.
职业系统:设定职业、施加职业基础特征、按等级自动学习技能。
角色成长:等级 / 经验 / 升级。
特征系统:施加/移除运行时特征,并提供耐性/特殊参数/攻击附加等查询。
当前资源(hp/mana...)的受伤 / 治疗 / 复活 / 死亡。
bool ok() const noexcept
Whether this result represents a non-failure outcome.
Definition Result.h:480
static void setBase(RPGActor *actor, const std::string &attribute, double value)
Set a base value; invalid actor or attribute is a compatibility no-op.
Definition AttributeSystem.cpp:33
static bool hasAttribute(RPGActor *actor, const std::string &attribute)
Query whether an attribute exists on the actor.
Definition AttributeSystem.cpp:45
static eve::Result< int > removeModifiersBySource(RPGActor *actor, const std::string &attribute, const std::string &source)
Remove source modifiers with a structured count result.
Definition AttributeSystem.cpp:92
static void modifyBase(RPGActor *actor, const std::string &attribute, double delta)
Add a delta to a base value.
Definition AttributeSystem.cpp:41
static double getBase(RPGActor *actor, const std::string &attribute)
Read a base value, returning zero for a missing actor/attribute.
Definition AttributeSystem.cpp:37
static int removeAllModifiersBySource(RPGActor *actor, const std::string &source)
Compatibility all-attribute source removal facade.
Definition AttributeSystem.cpp:98
static double getFinal(RPGActor *actor, const std::string &attribute)
Compute the final value through the canonical attributes engine.
Definition AttributeSystem.cpp:103
static eve::Result< ModifierId > addModifier(RPGActor *actor, AttributeModifier modifier)
Add one canonical modifier to an actor.
Definition AttributeSystem.cpp:49
static eve::Result< void > removeModifier(RPGActor *actor, const ModifierId &modifierId)
Remove by canonical modifier id with a structured result.
Definition AttributeSystem.cpp:81
static int getLearnLevelAt(RPGActor *actor, int index)
Returns the learn level at.
Definition ClassSystem.cpp:73
static bool hasClass(RPGActor *actor, const std::string &classId)
是否已设定指定职业。
Definition ClassSystem.cpp:36
static std::string getLearnSkillIdAt(RPGActor *actor, int index)
Returns the learn skill id at.
Definition ClassSystem.cpp:66
static bool setClass(RPGActor *actor, const std::string &classId)
设定职业并施加职业基础特征(compatibility facade (脚本兼容门面);成功返回 true)。
Definition ClassSystem.cpp:13
static eve::Result< void > restoreProgression(RPGActor *actor, int level, double xp, double xpToNext)
Atomically restore one validated progression checkpoint.
Definition LevelSystem.cpp:38
static bool gainXp(RPGActor *actor, double amount, double xpGrowth=1.2)
增加经验;每跨过阈值升一级并发出 LevelUpEvent(compatibility facade (脚本兼容门面))。
Definition LevelSystem.cpp:60
bool beginCastSkill(const std::string &skillId, RPGActor *target=nullptr)
开始读条释放;false 表示不满足条件。
Definition RPGActor.cpp:221
int removeTraitsByTrait(const std::string &traitId)
Definition RPGActor.cpp:286
double getBaseAttribute(const std::string &attribute)
Definition RPGActor.cpp:63
double heal(const std::string &resource, double amount)
Definition RPGActor.cpp:264
static const std::vector< RPGActor * > & liveActors()
返回所有通过 createActor() 创建、且当前仍存活的 actor。 StatusSystem::update / SkillSystem::update 用它遍历所有 actor 逐帧推进。 ...
Definition RPGActor.cpp:42
double getParamRate(const std::string ¶m)
Definition RPGActor.cpp:304
std::vector< std::string > getAttackElements()
Definition RPGActor.cpp:328
std::string canCastSkillReason(const std::string &skillId)
不能释放的原因("" = 可以)。
Definition RPGActor.cpp:215
int applyTrait(const std::string &traitId, const std::string &source="")
特征(TraitSystem 的薄转发)。
Definition RPGActor.cpp:276
double getElementRate(const std::string &element)
Definition RPGActor.cpp:308
std::string getStatusEffectId(int index)
Definition RPGActor.cpp:133
double takeDamage(const std::string &resource, double amount, const std::string &source="")
Definition RPGActor.cpp:259
double getCurrent(const std::string &resource)
生命等当前资源(VitalsSystem 的薄转发,max 取同名最终属性)。
Definition RPGActor.cpp:247
std::vector< std::string > getAttackStates()
Definition RPGActor.cpp:332
int getClassLearnLevelAt(int index)
Definition RPGActor.cpp:352
int removeAttributeModifiersBySource(const std::string &attribute, const std::string &source)
Definition RPGActor.cpp:92
eve::Result< void > restoreProgression(int level, double xp, double xpToNext)
Validate and atomically restore this actor's progression checkpoint.
Definition RPGActor.cpp:241
int removeAllAttributeModifiersBySource(const std::string &source)
Definition RPGActor.cpp:98
void revive(const std::string &resource, double amount=-1.0)
Definition RPGActor.cpp:268
static RPGActor * createActor()
创建一个空白 actor(三张表均为空,按需惰性写入),并纳入 liveActors() 跟踪。
Definition RPGActor.cpp:28
int removeStatusByTag(const std::string &tag)
Definition RPGActor.cpp:123
void setSkillCooldown(const std::string &skillId, float seconds)
Definition RPGActor.cpp:207
int removeStatusBySource(const std::string &source)
Definition RPGActor.cpp:119
eve::Result< ModifierId > addAttributeModifier(AttributeModifier modifier)
Canonical modifier insertion backed by AttributeSet.
Definition RPGActor.cpp:75
std::string getBuffEffectId(int index)
Definition RPGActor.cpp:176
bool hasAttribute(const std::string &attribute)
Definition RPGActor.cpp:71
bool forgetSkill(const std::string &skillId)
Definition RPGActor.cpp:201
double getExParam(const std::string &exParam)
Definition RPGActor.cpp:320
std::string getBuffProp(int instanceId, const std::string &key, const std::string &fallback={})
Definition RPGActor.cpp:186
int applyBuff(const std::string &effectId, const std::string &source="")
Buff 别名(与 Status API 等价,便于游戏侧按习惯命名)。
Definition RPGActor.cpp:154
std::string getTraitSourceAt(int index)
Definition RPGActor.cpp:300
bool gainXp(double amount)
增加经验并可能升级(compatibility facade (脚本兼容门面);返回是否升级)。
Definition RPGActor.cpp:245
int removeTraitsBySource(const std::string &source)
Definition RPGActor.cpp:282
bool canCastSkill(const std::string &skillId)
Definition RPGActor.cpp:211
void setBaseAttribute(const std::string &attribute, double value)
便捷成员方法(转发到 AttributeSystem / StatusSystem / SkillSystem)。 提供这一层薄封装主要是为了让脚本可以写 actor....
Definition RPGActor.cpp:59
void modifyBaseAttribute(const std::string &attribute, double delta)
Definition RPGActor.cpp:67
int getTraitInstanceIdAt(int index)
Definition RPGActor.cpp:294
bool knowsSkill(const std::string &skillId)
Definition RPGActor.cpp:199
int removeBuffByEffect(const std::string &effectId)
Definition RPGActor.cpp:160
bool hasStatusTag(const std::string &tag)
Definition RPGActor.cpp:129
int removeStatusByEffect(const std::string &effectId)
Definition RPGActor.cpp:115
int removeBuffBySource(const std::string &source)
Definition RPGActor.cpp:164
double getStateRate(const std::string &stateId)
Definition RPGActor.cpp:312
std::string getClassLearnSkillIdAt(int index)
Definition RPGActor.cpp:348
bool setBuffProp(int instanceId, const std::string &key, const std::string &value)
Definition RPGActor.cpp:191
int getStatusInstanceId(int index)
Definition RPGActor.cpp:141
bool setStatusProp(int instanceId, const std::string &key, const std::string &value)
Definition RPGActor.cpp:150
std::string getStatusSource(int index)
Definition RPGActor.cpp:143
bool isStateResist(const std::string &stateId)
Definition RPGActor.cpp:316
double getFinalAttribute(const std::string &attribute)
Definition RPGActor.cpp:102
bool removeTrait(int instanceId)
移除一个特征(compatibility facade (脚本兼容门面);成功返回 true)。
Definition RPGActor.cpp:280
std::string getStatusProp(int instanceId, const std::string &key, const std::string &fallback={})
Definition RPGActor.cpp:145
float getStatusRemaining(int index)
Definition RPGActor.cpp:139
int applyEffect(const std::string &effectId, const std::string &source="")
状态(buff/debuff)—— Statuses ECS 组件的薄封装。
Definition RPGActor.cpp:108
int removeBuffByTag(const std::string &tag)
Definition RPGActor.cpp:168
float getSkillCooldown(const std::string &skillId)
Definition RPGActor.cpp:203
eve::Result< void > removeAttributeModifier(const ModifierId &modifierId)
Canonical modifier removal backed by AttributeSet.
Definition RPGActor.cpp:84
void setCurrent(const std::string &resource, double value)
Definition RPGActor.cpp:255
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 float getCooldownRemaining(RPGActor *actor, const std::string &skillId)
Returns the cooldown remaining.
Definition SkillSystem.cpp:83
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 bool setProp(RPGActor *actor, int instanceId, const std::string &key, const std::string &value)
Sets the prop.
Definition StatusSystem.cpp:719
static std::string getActiveSource(RPGActor *actor, int index)
Returns the active source.
Definition StatusSystem.cpp:702
static eve::Result< void > remove(RPGActor *actor, int instanceId)
Removal of one status by its legacy adapter id.
Definition StatusSystem.cpp:573
static int getActiveStacks(RPGActor *actor, int index)
Returns the active stacks.
Definition StatusSystem.cpp:681
static int getActiveInstanceId(RPGActor *actor, int index)
Returns the active instance id.
Definition StatusSystem.cpp:696
static bool hasEffect(RPGActor *actor, const std::string &effectId)
True when effect.
Definition StatusSystem.cpp:660
static bool hasTag(RPGActor *actor, const std::string &tag)
是否存在任一效果定义带有该 tag 的活动实例。
Definition StatusSystem.cpp:664
static int removeBySource(RPGActor *actor, const std::string &source)
移除该 actor 身上所有 source 匹配的实例;返回移除数量。
Definition StatusSystem.cpp:646
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:708
static int removeByEffect(RPGActor *actor, const std::string &effectId)
移除该 actor 身上所有 effectId 匹配的实例;返回移除数量。
Definition StatusSystem.cpp:639
static int removeByTag(RPGActor *actor, const std::string &tag)
移除该 actor 身上所有 tag 匹配(效果定义带该 tag)的实例;返回移除数量。
Definition StatusSystem.cpp:653
static std::string getActiveEffectId(RPGActor *actor, int index)
Returns the active effect id.
Definition StatusSystem.cpp:675
static eve::Result< int > apply(RPGActor *actor, const std::string &effectId, const std::string &source="")
Status application backed by the generic EffectContainer.
Definition StatusSystem.cpp:315
static float getActiveRemaining(RPGActor *actor, int index)
Returns the active remaining.
Definition StatusSystem.cpp:690
static int removeBySource(RPGActor *actor, const std::string &source)
移除该 actor 上所有来自 source 的特征;返回移除数。
Definition TraitSystem.cpp:54
static bool hasTrait(RPGActor *actor, const std::string &traitId)
是否已施加某特征。
Definition TraitSystem.cpp:98
static double getElementRate(RPGActor *actor, const std::string &element)
元素耐性乘积(1 = 无修正,0.5 = 减半)。
Definition TraitSystem.cpp:138
static double getExParam(RPGActor *actor, const std::string &exParam)
特殊参数加值(hit/evasion/critRate/critEvade/magicEvade/magicReflect/...)。
Definition TraitSystem.cpp:176
static std::string getSourceAt(RPGActor *actor, int index)
Returns the source at.
Definition TraitSystem.cpp:120
static std::string getTraitIdAt(RPGActor *actor, int index)
Returns the trait id at.
Definition TraitSystem.cpp:115
static bool remove(RPGActor *actor, int instanceId)
按实例 id 移除(compatibility facade (脚本兼容门面);成功返回 true)。
Definition TraitSystem.cpp:41
static std::vector< std::string > getAttackStates(RPGActor *actor)
攻击附加状态列表。
Definition TraitSystem.cpp:205
static double getParamRate(RPGActor *actor, const std::string ¶m)
参数倍率乘积(如 attack → 1.5 表示 +50)。
Definition TraitSystem.cpp:125
static bool isStateResist(RPGActor *actor, const std::string &stateId)
是否免疫某状态(stateResist 命中;target 空 = 全部免疫)。
Definition TraitSystem.cpp:164
static int apply(RPGActor *actor, const std::string &traitId, const std::string &source="")
施加一个特征。
Definition TraitSystem.cpp:21
static std::vector< std::string > getAttackElements(RPGActor *actor)
攻击附加元素列表。
Definition TraitSystem.cpp:189
static int getInstanceIdAt(RPGActor *actor, int index)
Returns the instance id at.
Definition TraitSystem.cpp:110
static double getStateRate(RPGActor *actor, const std::string &stateId)
状态施加率乘积(1 = 正常)。
Definition TraitSystem.cpp:151
static int removeByTrait(RPGActor *actor, const std::string &traitId)
移除该 actor 上所有 traitId 匹配的特征;返回移除数。
Definition TraitSystem.cpp:71
static double getCurrent(RPGActor *actor, const std::string &resource)
当前值(无 vitals/资源时 0)。
Definition VitalsSystem.cpp:30
static double takeDamage(RPGActor *actor, const std::string &resource, double amount, const std::string &source="")
造成伤害:current -= amount,下限 0;归零时发 death 事件。
Definition VitalsSystem.cpp:46
static void revive(RPGActor *actor, const std::string &resource, double amount=-1.0)
复活:把资源设为 amount(默认当前上限),并清掉死亡状态。
Definition VitalsSystem.cpp:85
static void setCurrent(RPGActor *actor, const std::string &resource, double value)
直接设定当前值,夹在 [0, max]。
Definition VitalsSystem.cpp:40
static double heal(RPGActor *actor, const std::string &resource, double amount)
治疗:current += amount,上限 max。返回实际治疗量。
Definition VitalsSystem.cpp:62
static double getMax(RPGActor *actor, const std::string &resource)
上限:取 actor 同名最终属性(getFinalAttribute),无则 0。
Definition VitalsSystem.cpp:36
static bool isDead(RPGActor *actor, const std::string &resource)
是否死亡:max > 0 且 current <= 0。
Definition VitalsSystem.cpp:94
One canonical runtime modifier applied to one named attribute.
Definition AttributeSet.h:96