载入中...
搜索中...
未找到

属性 / 状态 / 技能三表合一的 ECS 实体。 更多...

#include <RPGActor.h>

类 eve::rpg::RPGActor 继承关系图:

类

struct  Attributes
 属性组件:AttributeSet 是属性状态与计算的唯一权威真源。 更多...
 
struct  ClassInfo
 职业:当前职业 id + 已同步学技能的等级上限。 更多...
 
struct  Progression
 成长进度:等级 / 经验 / 升级所需经验。 更多...
 
struct  Skills
 已学会技能的冷却状态 + 当前读条状态。 更多...
 
struct  Statuses
 Status lifecycle component backed by the generic effects container. 更多...
 
struct  TraitInstance
 已施加的运行时特征实例。 更多...
 
struct  Traits
 该 actor 的活动特征列表(TraitSystem 读写)。 更多...
 
struct  Vitals
 当前资源(hp / mana ...):current 是运行时瞬时值,上限取同名最终属性。 max 由 attributes 推导(getFinalAttribute(resource)),本组件只存 current。 更多...
 

Public 成员函数

void release () override
 Entity.
 
void setBaseAttribute (const std::string &attribute, double value)
 便捷成员方法(转发到 AttributeSystem / StatusSystem / SkillSystem)。 提供这一层薄封装主要是为了让脚本可以写 actor.setBaseAttribute(...), 与引擎其他模块(TileLayer / ParticleEmitter 等)的绑定风格保持一致; C++ 侧仍然可以直接使用对应的 *System 静态类。
 
double getBaseAttribute (const std::string &attribute)
 
void modifyBaseAttribute (const std::string &attribute, double delta)
 
bool hasAttribute (const std::string &attribute)
 
eve::Result< ModifierId > addAttributeModifier (AttributeModifier modifier)
 Canonical modifier insertion backed by AttributeSet.
 
std::string addAttributeModifier (const std::string &attribute, const std::string &source, const std::string &op, double value, int priority=0)
 Legacy string modifier insertion facade.
 
eve::Result< void > removeAttributeModifier (const ModifierId &modifierId)
 Canonical modifier removal backed by AttributeSet.
 
bool removeAttributeModifier (const std::string &attribute, const std::string &modifierId)
 
int removeAttributeModifiersBySource (const std::string &attribute, const std::string &source)
 
int removeAllAttributeModifiersBySource (const std::string &source)
 
double getFinalAttribute (const std::string &attribute)
 
int applyEffect (const std::string &effectId, const std::string &source="")
 状态(buff/debuff)—— Statuses ECS 组件的薄封装。
 
bool removeStatus (int instanceId)
 
int removeStatusByEffect (const std::string &effectId)
 
int removeStatusBySource (const std::string &source)
 
int removeStatusByTag (const std::string &tag)
 
bool hasEffect (const std::string &effectId)
 
bool hasStatusTag (const std::string &tag)
 
int getStatusCount ()
 
std::string getStatusEffectId (int index)
 
int getStatusStacks (int index)
 
float getStatusRemaining (int index)
 
int getStatusInstanceId (int index)
 
std::string getStatusSource (int index)
 
std::string getStatusProp (int instanceId, const std::string &key, const std::string &fallback={})
 
bool setStatusProp (int instanceId, const std::string &key, const std::string &value)
 
int applyBuff (const std::string &effectId, const std::string &source="")
 Buff 别名(与 Status API 等价,便于游戏侧按习惯命名)。
 
bool removeBuff (int instanceId)
 
int removeBuffByEffect (const std::string &effectId)
 
int removeBuffBySource (const std::string &source)
 
int removeBuffByTag (const std::string &tag)
 
bool hasBuff (const std::string &effectId)
 
bool hasBuffTag (const std::string &tag)
 
int getBuffCount ()
 
std::string getBuffEffectId (int index)
 
int getBuffStacks (int index)
 
float getBuffRemaining (int index)
 
int getBuffInstanceId (int index)
 
std::string getBuffSource (int index)
 
std::string getBuffProp (int instanceId, const std::string &key, const std::string &fallback={})
 
bool setBuffProp (int instanceId, const std::string &key, const std::string &value)
 
void learnSkill (const std::string &skillId)
 技能:学习 / 查询 / 冷却。
 
bool knowsSkill (const std::string &skillId)
 
bool forgetSkill (const std::string &skillId)
 
float getSkillCooldown (const std::string &skillId)
 
void setSkillCooldown (const std::string &skillId, float seconds)
 
bool canCastSkill (const std::string &skillId)
 
std::string canCastSkillReason (const std::string &skillId)
 不能释放的原因("" = 可以)。
 
bool beginCastSkill (const std::string &skillId, RPGActor *target=nullptr)
 开始读条释放;false 表示不满足条件。
 
void cancelCastSkill ()
 取消读条。
 
bool isCastingSkill ()
 读条状态查询。
 
std::string getCastingSkillId ()
 
float getCastProgress ()
 
int getLevel ()
 成长进度(LevelSystem 的薄转发)。
 
double getXp ()
 
double getXpToNext ()
 
void setXpToNext (double value)
 
eve::Result< void > restoreProgression (int level, double xp, double xpToNext)
 Validate and atomically restore this actor's progression checkpoint.
 
bool gainXp (double amount)
 增加经验并可能升级(compatibility facade (脚本兼容门面);返回是否升级)。
 
double getCurrent (const std::string &resource)
 生命等当前资源(VitalsSystem 的薄转发,max 取同名最终属性)。
 
double getMax (const std::string &resource)
 
void setCurrent (const std::string &resource, double value)
 
double takeDamage (const std::string &resource, double amount, const std::string &source="")
 
double heal (const std::string &resource, double amount)
 
void revive (const std::string &resource, double amount=-1.0)
 
bool isDead (const std::string &resource)
 
int applyTrait (const std::string &traitId, const std::string &source="")
 特征(TraitSystem 的薄转发)。
 
bool removeTrait (int instanceId)
 移除一个特征(compatibility facade (脚本兼容门面);成功返回 true)。
 
int removeTraitsBySource (const std::string &source)
 
int removeTraitsByTrait (const std::string &traitId)
 
bool hasTrait (const std::string &traitId)
 
int getTraitCount ()
 
int getTraitInstanceIdAt (int index)
 
std::string getTraitIdAt (int index)
 
std::string getTraitSourceAt (int index)
 
double getParamRate (const std::string &param)
 
double getElementRate (const std::string &element)
 
double getStateRate (const std::string &stateId)
 
bool isStateResist (const std::string &stateId)
 
double getExParam (const std::string &exParam)
 
double getAttackSpeed ()
 
int getAttackTimesAdd ()
 
std::vector< std::string > getAttackElements ()
 
std::vector< std::string > getAttackStates ()
 
bool setClass (const std::string &classId)
 职业(ClassSystem 的薄转发)。
 
std::string getClassId ()
 
bool hasClass (const std::string &classId)
 
int checkLevelSkills ()
 
int getClassLearnCount ()
 
std::string getClassLearnSkillIdAt (int index)
 
int getClassLearnLevelAt (int index)
 
eve::Result< std::string > checkpointJson () const
 Capture this actor at a persistent safe checkpoint.
 
eve::Result< void > restoreCheckpointJson (std::string_view json)
 Validate and atomically restore a safe checkpoint into this preconfigured actor.
 

静态 Public 成员函数

static RPGActor * createActor ()
 创建一个空白 actor(三张表均为空,按需惰性写入),并纳入 liveActors() 跟踪。
 
static const std::vector< RPGActor * > & liveActors ()
 返回所有通过 createActor() 创建、且当前仍存活的 actor。 StatusSystem::update / SkillSystem::update 用它遍历所有 actor 逐帧推进。 直接调用继承自 ENTITY 宏的 RPGActor::create() 不会被跟踪——推荐总是用 createActor()。
 

友元

class RPGSaveSession
 
class Party
 

详细描述

属性 / 状态 / 技能三表合一的 ECS 实体。

在文件 RPGActor.h 第 34 行定义.

成员函数说明

◆ addAttributeModifier() [1/2]

eve::Result< ModifierId > eve::rpg::RPGActor::addAttributeModifier ( AttributeModifier  modifier)

Canonical modifier insertion backed by AttributeSet.

在文件 RPGActor.cpp 第 75 行定义.

引用了 eve::rpg::AttributeSystem::addModifier().

◆ addAttributeModifier() [2/2]

std::string eve::rpg::RPGActor::addAttributeModifier ( const std::string &  attribute,
const std::string &  source,
const std::string &  op,
double  value,
int  priority = 0 
)

Legacy string modifier insertion facade.

在文件 RPGActor.cpp 第 79 行定义.

引用了 eve::rpg::AttributeSystem::addModifier(), priority, source , 以及 value.

◆ applyBuff()

int eve::rpg::RPGActor::applyBuff ( const std::string &  effectId,
const std::string &  source = "" 
)

Buff 别名(与 Status API 等价,便于游戏侧按习惯命名)。

在文件 RPGActor.cpp 第 154 行定义.

引用了 applyEffect() , 以及 source.

◆ applyEffect()

int eve::rpg::RPGActor::applyEffect ( const std::string &  effectId,
const std::string &  source = "" 
)

状态(buff/debuff)—— Statuses ECS 组件的薄封装。

在文件 RPGActor.cpp 第 108 行定义.

引用了 eve::rpg::StatusSystem::apply() , 以及 source.

被这些函数引用 applyBuff().

◆ applyTrait()

int eve::rpg::RPGActor::applyTrait ( const std::string &  traitId,
const std::string &  source = "" 
)

特征(TraitSystem 的薄转发)。

在文件 RPGActor.cpp 第 276 行定义.

引用了 eve::rpg::TraitSystem::apply() , 以及 source.

◆ beginCastSkill()

bool eve::rpg::RPGActor::beginCastSkill ( const std::string &  skillId,
RPGActor *  target = nullptr 
)

开始读条释放;false 表示不满足条件。

在文件 RPGActor.cpp 第 221 行定义.

引用了 eve::rpg::SkillSystem::beginCast() , 以及 target.

◆ canCastSkill()

bool eve::rpg::RPGActor::canCastSkill ( const std::string &  skillId)

在文件 RPGActor.cpp 第 211 行定义.

引用了 eve::rpg::SkillSystem::canCast().

◆ canCastSkillReason()

std::string eve::rpg::RPGActor::canCastSkillReason ( const std::string &  skillId)

不能释放的原因("" = 可以)。

在文件 RPGActor.cpp 第 215 行定义.

引用了 eve::rpg::SkillSystem::canCast().

◆ cancelCastSkill()

void eve::rpg::RPGActor::cancelCastSkill ( )

取消读条。

在文件 RPGActor.cpp 第 225 行定义.

引用了 eve::rpg::SkillSystem::cancelCast().

◆ checkLevelSkills()

int eve::rpg::RPGActor::checkLevelSkills ( )

在文件 RPGActor.cpp 第 344 行定义.

引用了 eve::rpg::ClassSystem::checkLevelSkills().

◆ checkpointJson()

eve::Result< std::string > eve::rpg::RPGActor::checkpointJson ( ) const

Capture this actor at a persistent safe checkpoint.

返回
Deterministic schema eve.rpg.actor-checkpoint version 1 JSON, or a structured failure.
备注
The checkpoint stores base attributes, progression, vitals, learned skill ids, class identity and trait identity. Active effects, casts, cooldowns, runtime events and raw targets are transient and excluded. Capture is rejected while an effect or cast is active. @thread Call on the actor's owning ECS simulation thread. @reentrancy No callbacks or registry mutations are performed.

在文件 RPGActorPersistence.cpp 第 20 行定义.

引用了 eve::Diagnostic::error(), index, name, eve::PreconditionViolation, root, eve::Value::toJson() , 以及 value.

被这些函数引用 eve::rpg::RPGSaveSession::snapshotJson().

◆ createActor()

RPGActor * eve::rpg::RPGActor::createActor ( )
static

创建一个空白 actor(三张表均为空,按需惰性写入),并纳入 liveActors() 跟踪。

返回
Borrowed nullable pointer to the ECS-owned actor; null means creation failed. @ownership The ECS world owns the actor; callers must release it through ECS and never delete it. @lifetime Valid until actor/world destruction; retain the generation-qualified EntityHandle across frames. @thread Call on the RPG ECS thread. @reentrancy The factory invokes no user callbacks; do not re-enter structural ECS mutation while using the result.

在文件 RPGActor.cpp 第 28 行定义.

被这些函数引用 eve::rpg::EncounterCatalogue::createMemberActor() , 以及 eve::rpg::RPG::newActor().

◆ forgetSkill()

bool eve::rpg::RPGActor::forgetSkill ( const std::string &  skillId)

在文件 RPGActor.cpp 第 201 行定义.

引用了 eve::rpg::SkillSystem::forget().

◆ gainXp()

bool eve::rpg::RPGActor::gainXp ( double  amount)

增加经验并可能升级(compatibility facade (脚本兼容门面);返回是否升级)。

在文件 RPGActor.cpp 第 245 行定义.

引用了 eve::rpg::LevelSystem::gainXp().

◆ getAttackElements()

std::vector< std::string > eve::rpg::RPGActor::getAttackElements ( )

在文件 RPGActor.cpp 第 328 行定义.

引用了 eve::rpg::TraitSystem::getAttackElements().

◆ getAttackSpeed()

double eve::rpg::RPGActor::getAttackSpeed ( )

在文件 RPGActor.cpp 第 324 行定义.

引用了 eve::rpg::TraitSystem::getAttackSpeed().

◆ getAttackStates()

std::vector< std::string > eve::rpg::RPGActor::getAttackStates ( )

在文件 RPGActor.cpp 第 332 行定义.

引用了 eve::rpg::TraitSystem::getAttackStates().

◆ getAttackTimesAdd()

int eve::rpg::RPGActor::getAttackTimesAdd ( )

在文件 RPGActor.cpp 第 326 行定义.

引用了 eve::rpg::TraitSystem::getAttackTimesAdd().

◆ getBaseAttribute()

double eve::rpg::RPGActor::getBaseAttribute ( const std::string &  attribute)

在文件 RPGActor.cpp 第 63 行定义.

引用了 eve::rpg::AttributeSystem::getBase().

◆ getBuffCount()

int eve::rpg::RPGActor::getBuffCount ( )

在文件 RPGActor.cpp 第 174 行定义.

引用了 getStatusCount().

◆ getBuffEffectId()

std::string eve::rpg::RPGActor::getBuffEffectId ( int  index)

在文件 RPGActor.cpp 第 176 行定义.

引用了 getStatusEffectId() , 以及 index.

◆ getBuffInstanceId()

int eve::rpg::RPGActor::getBuffInstanceId ( int  index)

在文件 RPGActor.cpp 第 182 行定义.

引用了 getStatusInstanceId() , 以及 index.

◆ getBuffProp()

std::string eve::rpg::RPGActor::getBuffProp ( int  instanceId,
const std::string &  key,
const std::string &  fallback = {} 
)

在文件 RPGActor.cpp 第 186 行定义.

引用了 getStatusProp() , 以及 key.

◆ getBuffRemaining()

float eve::rpg::RPGActor::getBuffRemaining ( int  index)

在文件 RPGActor.cpp 第 180 行定义.

引用了 getStatusRemaining() , 以及 index.

◆ getBuffSource()

std::string eve::rpg::RPGActor::getBuffSource ( int  index)

在文件 RPGActor.cpp 第 184 行定义.

引用了 getStatusSource() , 以及 index.

◆ getBuffStacks()

int eve::rpg::RPGActor::getBuffStacks ( int  index)

在文件 RPGActor.cpp 第 178 行定义.

引用了 getStatusStacks() , 以及 index.

◆ getCastingSkillId()

std::string eve::rpg::RPGActor::getCastingSkillId ( )

在文件 RPGActor.cpp 第 229 行定义.

引用了 eve::rpg::SkillSystem::getCastingSkillId().

◆ getCastProgress()

float eve::rpg::RPGActor::getCastProgress ( )

在文件 RPGActor.cpp 第 231 行定义.

引用了 eve::rpg::SkillSystem::getCastProgress().

◆ getClassId()

std::string eve::rpg::RPGActor::getClassId ( )

在文件 RPGActor.cpp 第 338 行定义.

引用了 eve::rpg::ClassSystem::getClassId().

◆ getClassLearnCount()

int eve::rpg::RPGActor::getClassLearnCount ( )

在文件 RPGActor.cpp 第 346 行定义.

引用了 eve::rpg::ClassSystem::getLearnCount().

◆ getClassLearnLevelAt()

int eve::rpg::RPGActor::getClassLearnLevelAt ( int  index)

在文件 RPGActor.cpp 第 352 行定义.

引用了 eve::rpg::ClassSystem::getLearnLevelAt() , 以及 index.

◆ getClassLearnSkillIdAt()

std::string eve::rpg::RPGActor::getClassLearnSkillIdAt ( int  index)

在文件 RPGActor.cpp 第 348 行定义.

引用了 eve::rpg::ClassSystem::getLearnSkillIdAt() , 以及 index.

◆ getCurrent()

double eve::rpg::RPGActor::getCurrent ( const std::string &  resource)

生命等当前资源(VitalsSystem 的薄转发,max 取同名最终属性)。

在文件 RPGActor.cpp 第 247 行定义.

引用了 eve::rpg::VitalsSystem::getCurrent() , 以及 resource.

被这些函数引用 eve::rpg::BattleControl::observeGameplay().

◆ getElementRate()

double eve::rpg::RPGActor::getElementRate ( const std::string &  element)

在文件 RPGActor.cpp 第 308 行定义.

引用了 element , 以及 eve::rpg::TraitSystem::getElementRate().

◆ getExParam()

double eve::rpg::RPGActor::getExParam ( const std::string &  exParam)

在文件 RPGActor.cpp 第 320 行定义.

引用了 eve::rpg::TraitSystem::getExParam().

◆ getFinalAttribute()

double eve::rpg::RPGActor::getFinalAttribute ( const std::string &  attribute)

在文件 RPGActor.cpp 第 102 行定义.

引用了 eve::rpg::AttributeSystem::getFinal().

◆ getLevel()

int eve::rpg::RPGActor::getLevel ( )

成长进度(LevelSystem 的薄转发)。

在文件 RPGActor.cpp 第 233 行定义.

引用了 eve::rpg::LevelSystem::getLevel().

◆ getMax()

double eve::rpg::RPGActor::getMax ( const std::string &  resource)

◆ getParamRate()

double eve::rpg::RPGActor::getParamRate ( const std::string &  param)

在文件 RPGActor.cpp 第 304 行定义.

引用了 eve::rpg::TraitSystem::getParamRate().

◆ getSkillCooldown()

float eve::rpg::RPGActor::getSkillCooldown ( const std::string &  skillId)

在文件 RPGActor.cpp 第 203 行定义.

引用了 eve::rpg::SkillSystem::getCooldownRemaining().

◆ getStateRate()

double eve::rpg::RPGActor::getStateRate ( const std::string &  stateId)

在文件 RPGActor.cpp 第 312 行定义.

引用了 eve::rpg::TraitSystem::getStateRate().

◆ getStatusCount()

int eve::rpg::RPGActor::getStatusCount ( )

在文件 RPGActor.cpp 第 131 行定义.

引用了 eve::rpg::StatusSystem::getActiveCount().

被这些函数引用 getBuffCount().

◆ getStatusEffectId()

std::string eve::rpg::RPGActor::getStatusEffectId ( int  index)

在文件 RPGActor.cpp 第 133 行定义.

引用了 eve::rpg::StatusSystem::getActiveEffectId() , 以及 index.

被这些函数引用 getBuffEffectId().

◆ getStatusInstanceId()

int eve::rpg::RPGActor::getStatusInstanceId ( int  index)

在文件 RPGActor.cpp 第 141 行定义.

引用了 eve::rpg::StatusSystem::getActiveInstanceId() , 以及 index.

被这些函数引用 getBuffInstanceId().

◆ getStatusProp()

std::string eve::rpg::RPGActor::getStatusProp ( int  instanceId,
const std::string &  key,
const std::string &  fallback = {} 
)

在文件 RPGActor.cpp 第 145 行定义.

引用了 eve::rpg::StatusSystem::getProp() , 以及 key.

被这些函数引用 getBuffProp().

◆ getStatusRemaining()

float eve::rpg::RPGActor::getStatusRemaining ( int  index)

在文件 RPGActor.cpp 第 139 行定义.

引用了 eve::rpg::StatusSystem::getActiveRemaining() , 以及 index.

被这些函数引用 getBuffRemaining().

◆ getStatusSource()

std::string eve::rpg::RPGActor::getStatusSource ( int  index)

在文件 RPGActor.cpp 第 143 行定义.

引用了 eve::rpg::StatusSystem::getActiveSource() , 以及 index.

被这些函数引用 getBuffSource().

◆ getStatusStacks()

int eve::rpg::RPGActor::getStatusStacks ( int  index)

在文件 RPGActor.cpp 第 137 行定义.

引用了 eve::rpg::StatusSystem::getActiveStacks() , 以及 index.

被这些函数引用 getBuffStacks().

◆ getTraitCount()

int eve::rpg::RPGActor::getTraitCount ( )

在文件 RPGActor.cpp 第 292 行定义.

引用了 eve::rpg::TraitSystem::getCount().

◆ getTraitIdAt()

std::string eve::rpg::RPGActor::getTraitIdAt ( int  index)

在文件 RPGActor.cpp 第 298 行定义.

引用了 eve::rpg::TraitSystem::getTraitIdAt() , 以及 index.

◆ getTraitInstanceIdAt()

int eve::rpg::RPGActor::getTraitInstanceIdAt ( int  index)

在文件 RPGActor.cpp 第 294 行定义.

引用了 eve::rpg::TraitSystem::getInstanceIdAt() , 以及 index.

◆ getTraitSourceAt()

std::string eve::rpg::RPGActor::getTraitSourceAt ( int  index)

在文件 RPGActor.cpp 第 300 行定义.

引用了 eve::rpg::TraitSystem::getSourceAt() , 以及 index.

◆ getXp()

double eve::rpg::RPGActor::getXp ( )

在文件 RPGActor.cpp 第 235 行定义.

引用了 eve::rpg::LevelSystem::getXp().

◆ getXpToNext()

double eve::rpg::RPGActor::getXpToNext ( )

在文件 RPGActor.cpp 第 237 行定义.

引用了 eve::rpg::LevelSystem::getXpToNext().

◆ hasAttribute()

bool eve::rpg::RPGActor::hasAttribute ( const std::string &  attribute)

在文件 RPGActor.cpp 第 71 行定义.

引用了 eve::rpg::AttributeSystem::hasAttribute().

◆ hasBuff()

bool eve::rpg::RPGActor::hasBuff ( const std::string &  effectId)

在文件 RPGActor.cpp 第 170 行定义.

引用了 hasEffect().

◆ hasBuffTag()

bool eve::rpg::RPGActor::hasBuffTag ( const std::string &  tag)

在文件 RPGActor.cpp 第 172 行定义.

引用了 hasStatusTag() , 以及 tag.

◆ hasClass()

bool eve::rpg::RPGActor::hasClass ( const std::string &  classId)

在文件 RPGActor.cpp 第 340 行定义.

引用了 classId , 以及 eve::rpg::ClassSystem::hasClass().

◆ hasEffect()

bool eve::rpg::RPGActor::hasEffect ( const std::string &  effectId)

在文件 RPGActor.cpp 第 127 行定义.

引用了 eve::rpg::StatusSystem::hasEffect().

被这些函数引用 hasBuff().

◆ hasStatusTag()

bool eve::rpg::RPGActor::hasStatusTag ( const std::string &  tag)

在文件 RPGActor.cpp 第 129 行定义.

引用了 eve::rpg::StatusSystem::hasTag() , 以及 tag.

被这些函数引用 hasBuffTag().

◆ hasTrait()

bool eve::rpg::RPGActor::hasTrait ( const std::string &  traitId)

在文件 RPGActor.cpp 第 290 行定义.

引用了 eve::rpg::TraitSystem::hasTrait().

◆ heal()

double eve::rpg::RPGActor::heal ( const std::string &  resource,
double  amount 
)

在文件 RPGActor.cpp 第 264 行定义.

引用了 eve::rpg::VitalsSystem::heal() , 以及 resource.

◆ isCastingSkill()

bool eve::rpg::RPGActor::isCastingSkill ( )

读条状态查询。

在文件 RPGActor.cpp 第 227 行定义.

引用了 eve::rpg::SkillSystem::isCasting().

◆ isDead()

bool eve::rpg::RPGActor::isDead ( const std::string &  resource)

在文件 RPGActor.cpp 第 272 行定义.

引用了 eve::rpg::VitalsSystem::isDead() , 以及 resource.

◆ isStateResist()

bool eve::rpg::RPGActor::isStateResist ( const std::string &  stateId)

在文件 RPGActor.cpp 第 316 行定义.

引用了 eve::rpg::TraitSystem::isStateResist().

◆ knowsSkill()

bool eve::rpg::RPGActor::knowsSkill ( const std::string &  skillId)

在文件 RPGActor.cpp 第 199 行定义.

引用了 eve::rpg::SkillSystem::knows().

被这些函数引用 eve::rpg::Battle::setActionChecked().

◆ learnSkill()

void eve::rpg::RPGActor::learnSkill ( const std::string &  skillId)

技能:学习 / 查询 / 冷却。

在文件 RPGActor.cpp 第 197 行定义.

引用了 eve::rpg::SkillSystem::learn().

被这些函数引用 eve::rpg::EncounterCatalogue::createMemberActor().

◆ liveActors()

const std::vector< RPGActor * > & eve::rpg::RPGActor::liveActors ( )
static

返回所有通过 createActor() 创建、且当前仍存活的 actor。 StatusSystem::update / SkillSystem::update 用它遍历所有 actor 逐帧推进。 直接调用继承自 ENTITY 宏的 RPGActor::create() 不会被跟踪——推荐总是用 createActor()。

实现细节:内部按 ecs::EntityHandle(而非裸指针)跟踪,每次调用通过 ecs::try_get 按 (id, generation) 校验是否仍是同一个存活实体—— 这样当一个 actor 被销毁、其 id 槽位被新 actor 复用时,不会把新实体 误判为旧的已销毁实体(裸指针 + is_entity_visible 无法区分这种复用)。

在文件 RPGActor.cpp 第 42 行定义.

引用了 h.

被这些函数引用 eve::rpg::captureRpgState(), eve::rpg::resetRpgState(), eve::rpg::restoreRpgState(), eve::rpg::StatusSystem::update() , 以及 eve::rpg::SkillSystem::update().

◆ modifyBaseAttribute()

void eve::rpg::RPGActor::modifyBaseAttribute ( const std::string &  attribute,
double  delta 
)

在文件 RPGActor.cpp 第 67 行定义.

引用了 eve::rpg::AttributeSystem::modifyBase().

◆ release()

void eve::rpg::RPGActor::release ( )
inlineoverride

Entity.

Release.

在文件 RPGActor.h 第 40 行定义.

◆ removeAllAttributeModifiersBySource()

int eve::rpg::RPGActor::removeAllAttributeModifiersBySource ( const std::string &  source)

在文件 RPGActor.cpp 第 98 行定义.

引用了 eve::rpg::AttributeSystem::removeAllModifiersBySource() , 以及 source.

◆ removeAttributeModifier() [1/2]

eve::Result< void > eve::rpg::RPGActor::removeAttributeModifier ( const ModifierId &  modifierId)

Canonical modifier removal backed by AttributeSet.

在文件 RPGActor.cpp 第 84 行定义.

引用了 eve::rpg::AttributeSystem::removeModifier().

◆ removeAttributeModifier() [2/2]

bool eve::rpg::RPGActor::removeAttributeModifier ( const std::string &  attribute,
const std::string &  modifierId 
)

在文件 RPGActor.cpp 第 88 行定义.

引用了 eve::rpg::AttributeSystem::removeModifier().

◆ removeAttributeModifiersBySource()

int eve::rpg::RPGActor::removeAttributeModifiersBySource ( const std::string &  attribute,
const std::string &  source 
)

在文件 RPGActor.cpp 第 92 行定义.

引用了 eve::rpg::AttributeSystem::removeModifiersBySource() , 以及 source.

◆ removeBuff()

bool eve::rpg::RPGActor::removeBuff ( int  instanceId)

在文件 RPGActor.cpp 第 158 行定义.

引用了 removeStatus().

◆ removeBuffByEffect()

int eve::rpg::RPGActor::removeBuffByEffect ( const std::string &  effectId)

在文件 RPGActor.cpp 第 160 行定义.

引用了 removeStatusByEffect().

◆ removeBuffBySource()

int eve::rpg::RPGActor::removeBuffBySource ( const std::string &  source)

在文件 RPGActor.cpp 第 164 行定义.

引用了 removeStatusBySource() , 以及 source.

◆ removeBuffByTag()

int eve::rpg::RPGActor::removeBuffByTag ( const std::string &  tag)

在文件 RPGActor.cpp 第 168 行定义.

引用了 removeStatusByTag() , 以及 tag.

◆ removeStatus()

bool eve::rpg::RPGActor::removeStatus ( int  instanceId)

在文件 RPGActor.cpp 第 113 行定义.

引用了 eve::Result< void >::ok() , 以及 eve::rpg::StatusSystem::remove().

被这些函数引用 removeBuff().

◆ removeStatusByEffect()

int eve::rpg::RPGActor::removeStatusByEffect ( const std::string &  effectId)

在文件 RPGActor.cpp 第 115 行定义.

引用了 eve::rpg::StatusSystem::removeByEffect().

被这些函数引用 removeBuffByEffect().

◆ removeStatusBySource()

int eve::rpg::RPGActor::removeStatusBySource ( const std::string &  source)

在文件 RPGActor.cpp 第 119 行定义.

引用了 eve::rpg::StatusSystem::removeBySource() , 以及 source.

被这些函数引用 removeBuffBySource().

◆ removeStatusByTag()

int eve::rpg::RPGActor::removeStatusByTag ( const std::string &  tag)

在文件 RPGActor.cpp 第 123 行定义.

引用了 eve::rpg::StatusSystem::removeByTag() , 以及 tag.

被这些函数引用 removeBuffByTag().

◆ removeTrait()

bool eve::rpg::RPGActor::removeTrait ( int  instanceId)

移除一个特征(compatibility facade (脚本兼容门面);成功返回 true)。

在文件 RPGActor.cpp 第 280 行定义.

引用了 eve::rpg::TraitSystem::remove().

◆ removeTraitsBySource()

int eve::rpg::RPGActor::removeTraitsBySource ( const std::string &  source)

在文件 RPGActor.cpp 第 282 行定义.

引用了 eve::rpg::TraitSystem::removeBySource() , 以及 source.

◆ removeTraitsByTrait()

int eve::rpg::RPGActor::removeTraitsByTrait ( const std::string &  traitId)

在文件 RPGActor.cpp 第 286 行定义.

引用了 eve::rpg::TraitSystem::removeByTrait().

◆ restoreCheckpointJson()

eve::Result< void > eve::rpg::RPGActor::restoreCheckpointJson ( std::string_view  json)

Validate and atomically restore a safe checkpoint into this preconfigured actor.

参数
jsonUTF-8 JSON produced by checkpointJson().
返回
Applied state, or a structured failure without mutation.
备注
The destination must have no active effect/cast and must use the same class, trait identities and attribute layout. Skill ids must exist in the current registry. Cooldowns and casting restore to defaults. Unknown version-1 fields are ignored. @thread Call on the actor's owning ECS simulation thread. @reentrancy No callbacks or gameplay events are emitted.

在文件 RPGActorPersistence.cpp 第 204 行定义.

引用了 eve::Applied, eve::Result< T >::failure(), eve::Status::success() , 以及 eve::Result< T >::success().

◆ restoreProgression()

eve::Result< void > eve::rpg::RPGActor::restoreProgression ( int  level,
double  xp,
double  xpToNext 
)

Validate and atomically restore this actor's progression checkpoint.

参数
levelPositive level.
xpFinite, non-negative progress below xpToNext.
xpToNextFinite positive threshold for the current level.
返回
Applied state, or a structured failure without mutation.
备注
The actor retains ownership of its progression component and no level-up event or callback is emitted by restoration. @thread Call on the actor's owning ECS simulation thread. @reentrancy No callbacks are invoked.

在文件 RPGActor.cpp 第 241 行定义.

引用了 level , 以及 eve::rpg::LevelSystem::restoreProgression().

◆ revive()

void eve::rpg::RPGActor::revive ( const std::string &  resource,
double  amount = -1.0 
)

在文件 RPGActor.cpp 第 268 行定义.

引用了 resource , 以及 eve::rpg::VitalsSystem::revive().

◆ setBaseAttribute()

void eve::rpg::RPGActor::setBaseAttribute ( const std::string &  attribute,
double  value 
)

便捷成员方法(转发到 AttributeSystem / StatusSystem / SkillSystem)。 提供这一层薄封装主要是为了让脚本可以写 actor.setBaseAttribute(...), 与引擎其他模块(TileLayer / ParticleEmitter 等)的绑定风格保持一致; C++ 侧仍然可以直接使用对应的 *System 静态类。

属性访问。

在文件 RPGActor.cpp 第 59 行定义.

引用了 eve::rpg::AttributeSystem::setBase() , 以及 value.

被这些函数引用 eve::rpg::EncounterCatalogue::createMemberActor().

◆ setBuffProp()

bool eve::rpg::RPGActor::setBuffProp ( int  instanceId,
const std::string &  key,
const std::string &  value 
)

在文件 RPGActor.cpp 第 191 行定义.

引用了 key, setStatusProp() , 以及 value.

◆ setClass()

bool eve::rpg::RPGActor::setClass ( const std::string &  classId)

职业(ClassSystem 的薄转发)。

设定职业(compatibility facade (脚本兼容门面);成功返回 true)。

在文件 RPGActor.cpp 第 336 行定义.

引用了 classId , 以及 eve::rpg::ClassSystem::setClass().

◆ setCurrent()

void eve::rpg::RPGActor::setCurrent ( const std::string &  resource,
double  value 
)

在文件 RPGActor.cpp 第 255 行定义.

引用了 resource, eve::rpg::VitalsSystem::setCurrent() , 以及 value.

被这些函数引用 eve::rpg::EncounterCatalogue::createMemberActor().

◆ setSkillCooldown()

void eve::rpg::RPGActor::setSkillCooldown ( const std::string &  skillId,
float  seconds 
)

在文件 RPGActor.cpp 第 207 行定义.

引用了 eve::rpg::SkillSystem::setCooldownRemaining().

◆ setStatusProp()

bool eve::rpg::RPGActor::setStatusProp ( int  instanceId,
const std::string &  key,
const std::string &  value 
)

在文件 RPGActor.cpp 第 150 行定义.

引用了 key, eve::rpg::StatusSystem::setProp() , 以及 value.

被这些函数引用 setBuffProp().

◆ setXpToNext()

void eve::rpg::RPGActor::setXpToNext ( double  value)

在文件 RPGActor.cpp 第 239 行定义.

引用了 eve::rpg::LevelSystem::setXpToNext() , 以及 value.

◆ takeDamage()

double eve::rpg::RPGActor::takeDamage ( const std::string &  resource,
double  amount,
const std::string &  source = "" 
)

在文件 RPGActor.cpp 第 259 行定义.

引用了 resource, source , 以及 eve::rpg::VitalsSystem::takeDamage().

友元及相关函数文档

◆ Party

friend class Party
friend

在文件 RPGActor.h 第 310 行定义.

◆ RPGSaveSession

friend class RPGSaveSession
friend

在文件 RPGActor.h 第 309 行定义.


该类的文档由以下文件生成: