载入中...
搜索中...
未找到
eve::combat::CombatEnemyIntentSource类 参考final

Deterministic enemy intent source for arena vertical slices. 更多...

#include <CombatEnemyAI.h>

类 eve::combat::CombatEnemyIntentSource 继承关系图:
eve::action::IAbilityIntentSource

Public 成员函数

Result< void > registerEnemy (CombatEnemyDefinition definition)
 Register or replace one enemy definition after validation.
 
Result< void > unregisterEnemy (SubjectRef subject)
 Remove one enemy.
 
void setTargetRuntime (CombatTargetRuntime &targets) noexcept
 Borrow lock-on state so the enemy attacks its current target.
 
void clearTargetRuntime () noexcept
 Clears target runtime.
 
Result< void > setPosition (SubjectRef subject, double x, double y, double z)
 Provide world positions for band checks (enemies and their targets).
 
Result< void > setLightAction (SubjectRef subject, LogicalId actionId)
 Set the action id copied into emitted intents.
 
Result< std::optional< action::AbilityIntent > > nextIntent (SimulationTick tick) override
 Emit at most one attack intent for the supplied tick.
 
Result< std::vector< CombatEnemySteering > > nextSteering (SimulationTick tick) const
 Emit approach steering for Mid/Far enemies that are Idle (not punishing).
 
CombatEnemyBand band (SubjectRef subject) const
 Current band for debugging; Far when unknown.
 
CombatEnemyPhase phase (SubjectRef subject) const
 Current move-set phase; Idle when the subject is unknown.
 
bool isPunishable (SubjectRef subject) const
 True while the enemy is in Telegraph or Recover.
 
- Public 成员函数 继承自 eve::action::IAbilityIntentSource
virtual ~IAbilityIntentSource ()=default
 Releases IAbilityIntentSource resources.
 

详细描述

Deterministic enemy intent source for arena vertical slices.

When the locked target is inside the near band and the cooldown elapsed, the brain enters Telegraph (if authored), then emits one light-attack intent, then Recover. Telegraph and Recover are punishable. Zero telegraph/recover ticks keep the original immediate-attack contract.

在文件 CombatEnemyAI.h 第 57 行定义.

成员函数说明

◆ band()

CombatEnemyBand eve::combat::CombatEnemyIntentSource::band ( SubjectRef  subject) const

Current band for debugging; Far when unknown.

在文件 CombatEnemyAI.cpp 第 153 行定义.

引用了 eve::combat::Far, found, eve::combat::Mid, eve::combat::Near, second, eve::combat::CombatTargetRuntime::state() , 以及 subject.

◆ clearTargetRuntime()

void eve::combat::CombatEnemyIntentSource::clearTargetRuntime ( )
inlinenoexcept

Clears target runtime.

在文件 CombatEnemyAI.h 第 66 行定义.

◆ isPunishable()

bool eve::combat::CombatEnemyIntentSource::isPunishable ( SubjectRef  subject) const

True while the enemy is in Telegraph or Recover.

在文件 CombatEnemyAI.cpp 第 175 行定义.

引用了 current, phase, eve::combat::Recover, subject , 以及 eve::combat::Telegraph.

◆ nextIntent()

Result< std::optional< action::AbilityIntent > > eve::combat::CombatEnemyIntentSource::nextIntent ( SimulationTick  tick)
overridevirtual

◆ nextSteering()

Result< std::vector< CombatEnemySteering > > eve::combat::CombatEnemyIntentSource::nextSteering ( SimulationTick  tick) const

Emit approach steering for Mid/Far enemies that are Idle (not punishing).

备注
Near band and Telegraph/Recover return no steering for that enemy.

在文件 CombatEnemyAI.cpp 第 122 行定义.

引用了 eve::Applied, eve::Diagnostic::error(), eve::combat::Idle, key, eve::combat::CombatEnemySteering::moveDirection, eve::NotFound, eve::combat::CombatEnemySteering::speedFraction, eve::combat::CombatTargetRuntime::state(), eve::combat::CombatEnemySteering::subject, eve::Status::success() , 以及 eve::combat::CombatVector3::x.

被这些函数引用 eve::combat::CombatLoopRuntime::advance().

◆ phase()

CombatEnemyPhase eve::combat::CombatEnemyIntentSource::phase ( SubjectRef  subject) const

Current move-set phase; Idle when the subject is unknown.

在文件 CombatEnemyAI.cpp 第 169 行定义.

引用了 found, eve::combat::Idle , 以及 subject.

◆ registerEnemy()

Result< void > eve::combat::CombatEnemyIntentSource::registerEnemy ( CombatEnemyDefinition  definition)

Register or replace one enemy definition after validation.

在文件 CombatEnemyAI.cpp 第 32 行定义.

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

◆ setLightAction()

Result< void > eve::combat::CombatEnemyIntentSource::setLightAction ( SubjectRef  subject,
LogicalId  actionId 
)

◆ setPosition()

Result< void > eve::combat::CombatEnemyIntentSource::setPosition ( SubjectRef  subject,
double  x,
double  y,
double  z 
)

Provide world positions for band checks (enemies and their targets).

在文件 CombatEnemyAI.cpp 第 48 行定义.

引用了 eve::Applied, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::InvalidArgument, subject, eve::Status::success(), eve::Result< T >::success(), x, y , 以及 z.

被这些函数引用 eve::combat::CombatLoopRuntime::advance().

◆ setTargetRuntime()

void eve::combat::CombatEnemyIntentSource::setTargetRuntime ( CombatTargetRuntime &  targets)
inlinenoexcept

Borrow lock-on state so the enemy attacks its current target.

在文件 CombatEnemyAI.h 第 64 行定义.

◆ unregisterEnemy()

Result< void > eve::combat::CombatEnemyIntentSource::unregisterEnemy ( SubjectRef  subject)

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