EvEmu
0.8.4
11 September 2021
|
#include "SentryAI.h"
Public Member Functions | |
~SentryAI () | |
void | ClearTargets () |
void | DisableRepTimers () |
bool | IsIdle () |
bool | IsFighting () |
uint16 | GetOptimalRange () |
uint32 | GetFalloff () |
uint32 | GetAttackRange () |
double | GetTrackingSpeed () |
Protected Types | |
enum | State { Idle = 1, Engaged = 2, Signaling = 3 } |
Protected Attributes | |
State | m_state |
Private Attributes | |
bool | m_webber: 1 |
bool | m_warpScram: 1 |
bool | m_useSigRadius: 1 |
bool | m_useTargSwitching: 1 |
bool | m_useSecondTarget: 1 |
float | m_switchTargChance |
uint16 | m_preferedSigRadius |
uint16 | m_attackSpeed |
uint16 | m_targetRange |
uint16 | m_optimalRange |
uint16 | m_damageMultiplier |
uint32 | m_sigRadius |
uint32 | m_falloff |
uint32 | m_sightRange |
uint32 | m_maxAttackRange |
double | m_trackingSpeed |
Sentry * | m_npc |
TurretFormulas | m_formula |
Timer | m_processTimer |
Timer | m_mainAttackTimer |
Timer | m_beginFindTarget |
Timer | m_warpScramblerTimer |
Timer | m_webifierTimer |
SentryAI.h | |
Sentry AI class : Allan
| |
SentryAI (Sentry *who) | |
void | Process () |
void | Target (SystemEntity *by_who) |
void | Targeted (SystemEntity *by_who) |
void | TargetLost (SystemEntity *by_who) |
void | ClearAllTargets () |
void | SetIdle () |
void | Attack (SystemEntity *pTarget) |
void | SetEngaged (SystemEntity *pTarget) |
void | ClearTarget (SystemEntity *pTarget) |
void | AttackTarget (SystemEntity *pTarget) |
void | SetSignaling (SystemEntity *pTarget) |
void | CheckDistance (SystemEntity *pTarget) |
double | GetTargetTime () |
std::string | GetStateName (State name) |
Definition at line 19 of file SentryAI.h.
|
protected |
Enumerator | |
---|---|
Idle | |
Engaged | |
Signaling |
Definition at line 21 of file SentryAI.h.
SentryAI::SentryAI | ( | Sentry * | who | ) |
Definition at line 20 of file SentryAI.cpp.
References AttrAI_ChanceToNotTargetSwitch, AttrAI_PreferredSignatureRadius, AttrAI_ShouldUseSecondaryTarget, AttrAI_ShouldUseSignatureRadius, AttrAI_ShouldUseTargetSwitching, AttrDamageMultiplier, AttrEntityAttackRange, AttrFalloff, AttrMaxRange, AttrSignatureRadius, AttrSpeed, AttrTrackingSpeed, Timer::Disable(), EvilNumber::get_float(), EvilNumber::get_int(), InventoryItem::GetAttribute(), SystemEntity::GetSelf(), InventoryItem::HasAttribute(), m_attackSpeed, m_beginFindTarget, m_damageMultiplier, m_falloff, m_mainAttackTimer, m_maxAttackRange, m_optimalRange, m_preferedSigRadius, m_processTimer, m_sightRange, m_sigRadius, m_switchTargChance, m_trackingSpeed, m_useSecondTarget, m_useSigRadius, m_useTargSwitching, m_warpScram, m_warpScramblerTimer, m_webber, m_webifierTimer, and Timer::Start().
|
inline |
Definition at line 29 of file SentryAI.h.
|
protected |
Definition at line 272 of file SentryAI.cpp.
References _log, AttackTarget(), TargetManager::CanAttack(), Timer::Check(), ClearTarget(), SystemEntity::DestinyMgr(), SystemEntity::GetID(), SystemEntity::GetName(), SystemEntity::GetPosition(), SystemBubble::InBubble(), DestinyManager::IsCloaked(), m_mainAttackTimer, m_npc, SystemEntity::SysBubble(), and SystemEntity::TargetMgr().
Referenced by CheckDistance().
|
protected |
Definition at line 304 of file SentryAI.cpp.
References SystemEntity::ApplyDamage(), SystemEntity::DestinyMgr(), Sentry::GetEM(), Sentry::GetExplosive(), SystemEntity::GetID(), Sentry::GetKinetic(), SystemEntity::GetSelf(), TurretFormulas::GetSentryToHit(), Sentry::GetThermal(), InventoryItem::itemID(), m_attackSpeed, m_damageMultiplier, m_formula, m_npc, DestinyManager::SendSpecialEffect(), targetAttack, and InventoryItem::typeID().
Referenced by Attack().
|
protected |
Definition at line 177 of file SentryAI.cpp.
References _log, Attack(), ClearTarget(), Ga::GaVec3::distance(), Timer::Enabled(), SystemEntity::GetID(), SystemEntity::GetName(), SystemEntity::GetPosition(), PI::Pin::State::Idle, TargetManager::IsTargetedBy(), m_attackSpeed, m_mainAttackTimer, m_npc, m_sightRange, m_state, SetEngaged(), Timer::Start(), and SystemEntity::TargetMgr().
Referenced by Process(), and Target().
void SentryAI::ClearAllTargets | ( | ) |
Definition at line 208 of file SentryAI.cpp.
References TargetManager::ClearAllTargets(), m_npc, and SystemEntity::TargetMgr().
|
protected |
Definition at line 200 of file SentryAI.cpp.
References TargetManager::ClearTarget(), TargetManager::HasNoTargets(), m_npc, SetIdle(), and SystemEntity::TargetMgr().
Referenced by Attack(), CheckDistance(), and Process().
void SentryAI::ClearTargets | ( | ) |
void SentryAI::DisableRepTimers | ( | ) |
|
inline |
|
inline |
|
inline |
|
protected |
Definition at line 350 of file SentryAI.cpp.
References DroneAI::State::Engaged, PI::Pin::State::Idle, and NPCAI::State::Signaling.
Referenced by Process().
|
protected |
Definition at line 328 of file SentryAI.cpp.
References AttrRadius, AttrScanSpeed, EvilNumber::get_float(), EvilNumber::get_int(), InventoryItem::GetAttribute(), SystemEntity::GetSelf(), and m_npc.
Referenced by Target(), and Targeted().
|
inline |
|
inline |
Definition at line 44 of file SentryAI.h.
References PI::Pin::State::Idle, and m_state.
|
inline |
Definition at line 43 of file SentryAI.h.
References PI::Pin::State::Idle, and m_state.
void SentryAI::Process | ( | ) |
Definition at line 83 of file SentryAI.cpp.
References _log, Timer::Check(), CheckDistance(), ClearTarget(), Timer::Enabled(), DroneAI::State::Engaged, TargetManager::GetFirstTarget(), SystemEntity::GetID(), SystemEntity::GetName(), SystemBubble::GetPlayers(), GetStateName(), TargetManager::HasNoTargets(), SystemBubble::HasPlayers(), PI::Pin::State::Idle, m_attackSpeed, m_beginFindTarget, m_npc, m_processTimer, m_state, SetIdle(), NPCAI::State::Signaling, Timer::Start(), SystemEntity::SysBubble(), and SystemEntity::TargetMgr().
Referenced by Sentry::Process().
|
protected |
Definition at line 159 of file SentryAI.cpp.
References _log, DroneAI::State::Engaged, SystemEntity::GetID(), SystemEntity::GetName(), m_npc, and m_state.
Referenced by CheckDistance().
|
protected |
Definition at line 146 of file SentryAI.cpp.
References _log, Timer::Disable(), SystemEntity::GetID(), SystemEntity::GetName(), PI::Pin::State::Idle, m_beginFindTarget, m_mainAttackTimer, m_npc, m_state, m_warpScramblerTimer, and m_webifierTimer.
Referenced by ClearTarget(), Process(), Target(), Targeted(), and TargetLost().
|
protected |
Definition at line 168 of file SentryAI.cpp.
References _log, SystemEntity::GetID(), SystemEntity::GetName(), m_npc, m_state, and NPCAI::State::Signaling.
void SentryAI::Target | ( | SystemEntity * | by_who | ) |
Definition at line 213 of file SentryAI.cpp.
References _log, AttrMaxAttackTargets, CheckDistance(), Timer::Disable(), EvilNumber::get_int(), InventoryItem::GetAttribute(), SystemEntity::GetID(), SystemEntity::GetName(), SystemEntity::GetSelf(), GetTargetTime(), m_beginFindTarget, m_npc, m_sightRange, SetIdle(), TargetManager::StartTargeting(), and SystemEntity::TargetMgr().
void SentryAI::Targeted | ( | SystemEntity * | by_who | ) |
Definition at line 229 of file SentryAI.cpp.
References _log, AttrMaxAttackTargets, Timer::Disable(), DroneAI::State::Engaged, EvilNumber::get_int(), InventoryItem::GetAttribute(), SystemEntity::GetID(), SystemEntity::GetName(), SystemEntity::GetSelf(), GetTargetTime(), PI::Pin::State::Idle, m_beginFindTarget, m_npc, m_sightRange, m_state, SetIdle(), NPCAI::State::Signaling, TargetManager::StartTargeting(), and SystemEntity::TargetMgr().
Referenced by Sentry::TargetedAdd().
void SentryAI::TargetLost | ( | SystemEntity * | by_who | ) |
Definition at line 258 of file SentryAI.cpp.
References _log, DroneAI::State::Engaged, SystemEntity::GetID(), SystemEntity::GetName(), TargetManager::HasNoTargets(), m_npc, m_state, SetIdle(), and SystemEntity::TargetMgr().
Referenced by Sentry::TargetLost().
|
private |
Definition at line 74 of file SentryAI.h.
Referenced by AttackTarget(), CheckDistance(), Process(), and SentryAI().
|
private |
Definition at line 92 of file SentryAI.h.
Referenced by Process(), SentryAI(), SetIdle(), Target(), and Targeted().
|
private |
Definition at line 77 of file SentryAI.h.
Referenced by AttackTarget(), and SentryAI().
|
private |
Definition at line 80 of file SentryAI.h.
Referenced by GetFalloff(), and SentryAI().
|
private |
Definition at line 88 of file SentryAI.h.
Referenced by AttackTarget().
|
private |
Definition at line 91 of file SentryAI.h.
Referenced by Attack(), CheckDistance(), SentryAI(), and SetIdle().
|
private |
Definition at line 82 of file SentryAI.h.
Referenced by GetAttackRange(), and SentryAI().
|
private |
Definition at line 86 of file SentryAI.h.
Referenced by Attack(), AttackTarget(), CheckDistance(), ClearAllTargets(), ClearTarget(), GetTargetTime(), Process(), SetEngaged(), SetIdle(), SetSignaling(), Target(), Targeted(), and TargetLost().
|
private |
Definition at line 76 of file SentryAI.h.
Referenced by GetOptimalRange(), and SentryAI().
|
private |
Definition at line 72 of file SentryAI.h.
Referenced by SentryAI().
|
private |
Definition at line 90 of file SentryAI.h.
Referenced by Process(), and SentryAI().
|
private |
Definition at line 81 of file SentryAI.h.
Referenced by CheckDistance(), SentryAI(), Target(), and Targeted().
|
private |
Definition at line 79 of file SentryAI.h.
Referenced by SentryAI().
|
protected |
Definition at line 61 of file SentryAI.h.
Referenced by CheckDistance(), IsFighting(), IsIdle(), Process(), SetEngaged(), SetIdle(), SetSignaling(), Targeted(), and TargetLost().
|
private |
Definition at line 71 of file SentryAI.h.
Referenced by SentryAI().
|
private |
Definition at line 75 of file SentryAI.h.
|
private |
Definition at line 84 of file SentryAI.h.
Referenced by GetTrackingSpeed(), and SentryAI().
|
private |
Definition at line 70 of file SentryAI.h.
Referenced by SentryAI().
|
private |
Definition at line 68 of file SentryAI.h.
Referenced by SentryAI().
|
private |
Definition at line 69 of file SentryAI.h.
Referenced by SentryAI().
|
private |
Definition at line 67 of file SentryAI.h.
Referenced by SentryAI().
|
private |
Definition at line 93 of file SentryAI.h.
Referenced by SentryAI(), and SetIdle().
|
private |
Definition at line 66 of file SentryAI.h.
Referenced by SentryAI().
|
private |
Definition at line 94 of file SentryAI.h.
Referenced by SentryAI(), and SetIdle().