Deterministic enemy intent source for arena vertical slices. 更多...
#include <CombatEnemyAI.h>
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()
|
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()
|
overridevirtual |
Emit at most one attack intent for the supplied tick.
实现了 eve::action::IAbilityIntentSource.
在文件 CombatEnemyAI.cpp 第 69 行定义.
引用了 eve::action::ActionRequest::actionId, eve::Diagnostic::error(), eve::action::AbilityIntent::grantId, eve::combat::Idle, key, eve::NotFound, eve::combat::Recover, eve::action::AbilityIntent::request, eve::combat::CombatTargetRuntime::state(), eve::combat::Telegraph , 以及 tick.
◆ 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.
◆ 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 | ||
| ) |
Set the action id copied into emitted intents.
在文件 CombatEnemyAI.cpp 第 57 行定义.
引用了 eve::Applied, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::LogicalId::format(), found, eve::InvalidArgument, eve::NotFound, subject, eve::Status::success() , 以及 eve::Result< T >::success().
◆ 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.
◆ setTargetRuntime()
|
inlinenoexcept |
Borrow lock-on state so the enemy attacks its current target.
在文件 CombatEnemyAI.h 第 64 行定义.
◆ unregisterEnemy()
| Result< void > eve::combat::CombatEnemyIntentSource::unregisterEnemy | ( | SubjectRef | subject | ) |
Remove one enemy.
在文件 CombatEnemyAI.cpp 第 41 行定义.
引用了 eve::Applied, eve::Diagnostic::error(), eve::Result< T >::failure(), eve::NotFound, subject, eve::Status::success() , 以及 eve::Result< T >::success().
该类的文档由以下文件生成:
- src/modules/combat/CombatEnemyAI.h
- src/modules/combat/CombatEnemyAI.cpp
Public 成员函数 继承自