TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
gunship_npc_AI Struct Reference

Public Member Functions

 gunship_npc_AI (Creature *creature)
 
void SetData (uint32 type, uint32 data) override
 
void EnterEvadeMode (EvadeReason) override
 
void JustDied (Unit *) override
 
void MovementInform (uint32 type, uint32 pointId) override
 
bool CanAIAttack (Unit const *target) const override
 
- Public Member Functions inherited from ScriptedAI
 ScriptedAI (Creature *creature)
 
virtual ~ScriptedAI ()
 
void AttackStartNoMove (Unit *target)
 
void DamageTaken (Unit *, uint32 &) override
 
virtual void UpdateAI (uint32 diff) override
 
void KilledUnit (Unit *) override
 
void JustSummoned (Creature *) override
 
void SummonedCreatureDespawn (Creature *) override
 
void SpellHit (Unit *, SpellInfo const *) override
 
void SpellHitTarget (Unit *, SpellInfo const *) override
 
void OnPossess (bool)
 
void Reset () override
 
void EnterCombat (Unit *) override
 
void AttackStart (Unit *) override
 
void DoStartMovement (Unit *target, float distance=0.0f, float angle=0.0f)
 
void DoStartNoMovement (Unit *target)
 
void DoStopAttack ()
 
void DoCastSpell (Unit *target, SpellInfo const *spellInfo, bool triggered=false)
 
void DoPlaySoundToSet (WorldObject *source, uint32 soundId)
 
void DoResetThreat ()
 
float DoGetThreat (Unit *unit)
 
void DoModifyThreatPercent (Unit *unit, int32 pct)
 
void DoTeleportTo (float x, float y, float z, uint32 time=0)
 
void DoTeleportTo (float const pos[4])
 
void DoTeleportPlayer (Unit *unit, float x, float y, float z, float o)
 
void DoTeleportAll (float x, float y, float z, float o)
 
UnitDoSelectLowestHpFriendly (float range, uint32 minHPDiff=1)
 
std::list< Creature * > DoFindFriendlyCC (float range)
 
std::list< Creature * > DoFindFriendlyMissingBuff (float range, uint32 spellId)
 
PlayerGetPlayerAtMinimumRange (float minRange)
 
CreatureDoSpawnCreature (uint32 entry, float offsetX, float offsetY, float offsetZ, float angle, uint32 type, uint32 despawntime)
 
bool HealthBelowPct (uint32 pct) const
 
bool HealthAbovePct (uint32 pct) const
 
SpellInfo constSelectSpell (Unit *target, uint32 school, uint32 mechanic, SelectTargetType targets, float rangeMin, float rangeMax, SelectEffect effect)
 
void SetEquipmentSlots (bool loadDefault, int32 mainHand=EQUIP_NO_CHANGE, int32 offHand=EQUIP_NO_CHANGE, int32 ranged=EQUIP_NO_CHANGE)
 
void SetCombatMovement (bool allowMovement)
 
bool IsCombatMovementAllowed () const
 
bool IsHeroic () const
 
Difficulty GetDifficulty () const
 
bool Is25ManRaid () const
 
template<class T >
const T & DUNGEON_MODE (const T &normal5, const T &heroic10) const
 
template<class T >
const T & RAID_MODE (const T &normal10, const T &normal25) const
 
template<class T >
const T & RAID_MODE (const T &normal10, const T &normal25, const T &heroic10, const T &heroic25) const
 
- Public Member Functions inherited from CreatureAI
void Talk (uint8 id, WorldObject const *whisperTarget=nullptr)
 
 CreatureAI (Creature *creature)
 
virtual ~CreatureAI ()
 
void MoveInLineOfSight_Safe (Unit *who)
 == Reactions At ================================= More...
 
void TriggerAlert (Unit const *who) const
 
virtual bool CanRespawn ()
 
virtual void IsSummonedBy (Unit *)
 
virtual void SummonedCreatureDies (Creature *, Unit *)
 
virtual void AttackedBy (Unit *)
 
virtual bool IsEscorted () const
 
virtual void JustRespawned ()
 
void OnCharmed (bool apply) override
 
virtual void JustReachedHome ()
 
void DoZoneInCombat (Creature *creature=NULL, float maxRangeToNearestTarget=50.0f)
 
virtual void ReceiveEmote (Player *, uint32)
 
virtual void OwnerAttackedBy (Unit *)
 
virtual void OwnerAttacked (Unit *)
 
virtual void CorpseRemoved (uint32 &)
 == Triggered Actions Requested ================== More...
 
virtual void PassengerBoarded (Unit *, int8, bool)
 == Fields ======================================= More...
 
virtual void OnSpellClick (Unit *, bool &)
 
virtual bool CanSeeAlways (WorldObject const *)
 
int32 VisualizeBoundary (uint32 duration, Unit *owner=nullptr, bool fill=false) const
 
virtual bool CheckInRoom ()
 
CreatureBoundary constGetBoundary () const
 
- Public Member Functions inherited from UnitAI
 UnitAI (Unit *unit)
 
virtual ~UnitAI ()
 
virtual void InitializeAI ()
 
virtual void DoAction (int32)
 
virtual uint32 GetData (uint32) const
 
virtual void SetGUID (ObjectGuid, int32=0)
 
virtual ObjectGuid GetGUID (int32=0) const
 
UnitSelectTarget (SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
 
template<class PREDICATE >
UnitSelectTarget (SelectAggroTarget targetType, uint32 position, PREDICATE const &predicate)
 
void SelectTargetList (std::list< Unit * > &targetList, uint32 num, SelectAggroTarget targetType, float dist=0.0f, bool playerOnly=false, int32 aura=0)
 
template<class PREDICATE >
void SelectTargetList (std::list< Unit * > &targetList, PREDICATE const &predicate, uint32 maxTargets, SelectAggroTarget targetType)
 
virtual void DamageDealt (Unit *, uint32 &, DamageEffectType)
 
virtual void HealReceived (Unit *, uint32 &)
 
virtual void HealDone (Unit *, uint32 &)
 
virtual void SpellInterrupted (uint32, uint32)
 
void AttackStartCaster (Unit *victim, float dist)
 
void DoCast (uint32 spellId)
 
void DoCast (Unit *victim, uint32 spellId, bool triggered=false)
 
void DoCastVictim (uint32 spellId, bool triggered=false)
 
void DoCastAOE (uint32 spellId, bool triggered=false)
 
void DoMeleeAttackIfReady ()
 
bool DoSpellAttackIfReady (uint32 spellId)
 
virtual void sGossipHello (Player *)
 
virtual void sGossipSelect (Player *, uint32, uint32)
 
virtual void sGossipSelectCode (Player *, uint32, uint32, char const *)
 
virtual void sQuestAccept (Player *, Quest const *)
 
virtual void sQuestSelect (Player *, Quest const *)
 
virtual void sQuestReward (Player *, Quest const *, uint32)
 
virtual bool sOnDummyEffect (Unit *, uint32, SpellEffIndex)
 
virtual void sOnGameEvent (bool, uint16)
 

Protected Member Functions

void SetSlotInfo (uint32 index)
 
bool SelectVictim ()
 
void TriggerBurningPitch ()
 
- Protected Member Functions inherited from CreatureAI
bool UpdateVictim ()
 
bool UpdateVictimWithGaze ()
 
void SetGazeOn (Unit *target)
 
CreatureDoSummon (uint32 entry, Position const &pos, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
CreatureDoSummon (uint32 entry, WorldObject *obj, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
CreatureDoSummonFlyer (uint32 entry, WorldObject *obj, float flightZ, float radius=5.0f, uint32 despawnTime=30000, TempSummonType summonType=TEMPSUMMON_CORPSE_TIMED_DESPAWN)
 
bool CheckBoundary (Position const *who=nullptr) const
 
void SetBoundary (CreatureBoundary const *boundary)
 
virtual void MoveInLineOfSight (Unit *)
 
bool _EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
 

Protected Attributes

InstanceScriptInstance
 
SlotInfo constSlot
 
uint32 Index
 
uint32 BurningPitchId
 
- Protected Attributes inherited from CreatureAI
Creature *const me
 
CreatureBoundary const_boundary
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Additional Inherited Members

- Public Types inherited from CreatureAI
enum  EvadeReason { EVADE_REASON_NO_HOSTILES, EVADE_REASON_BOUNDARY, EVADE_REASON_SEQUENCE_BREAK, EVADE_REASON_OTHER }
 
- Static Public Member Functions inherited from UnitAI
static void FillAISpellInfo ()
 
- Public Attributes inherited from ScriptedAI
bool IsFleeing
 
- Static Public Attributes inherited from UnitAI
static AISpellInfoTypeAISpellInfo
 

Constructor & Destructor Documentation

gunship_npc_AI::gunship_npc_AI ( Creature creature)
inline
544  : ScriptedAI(creature),
545  Instance(creature->GetInstanceScript()), Slot(NULL), Index(uint32(-1))
546  {
548  me->setRegeneratingHealth(false);
549  }
ScriptedAI(Creature *creature)
Definition: ScriptedCreature.cpp:100
SlotInfo const * Slot
Definition: boss_icecrown_gunship_battle.cpp:657
uint32 Index
Definition: boss_icecrown_gunship_battle.cpp:658
uint32 BurningPitchId
Definition: boss_icecrown_gunship_battle.cpp:659
void setRegeneratingHealth(bool regenHealth)
Definition: Creature.h:663
InstanceScript * GetInstanceScript()
Definition: Object.cpp:1540
virtual uint32 GetData(uint32) const
Definition: ZoneScript.h:51
arena_t NULL
Definition: jemalloc_internal.h:624
Definition: forge_of_souls.h:33
Definition: boss_icecrown_gunship_battle.cpp:154
InstanceScript * Instance
Definition: boss_icecrown_gunship_battle.cpp:656
Creature *const me
Definition: CreatureAI.h:71
Definition: SharedDefines.h:999
Definition: boss_icecrown_gunship_battle.cpp:155
uint32_t uint32
Definition: g3dmath.h:168

+ Here is the call graph for this function:

Member Function Documentation

bool gunship_npc_AI::CanAIAttack ( Unit const target) const
inlineoverridevirtual

Reimplemented from UnitAI.

Reimplemented in npc_gunship_mage::npc_gunship_mageAI, and npc_gunship_boarding_addAI.

608  {
610  return false;
612  }
virtual uint32 GetData(uint32) const
Definition: ZoneScript.h:51
Definition: forge_of_souls.h:33
Definition: icecrown_citadel.h:77
InstanceScript * Instance
Definition: boss_icecrown_gunship_battle.cpp:656
Definition: boss_icecrown_gunship_battle.cpp:176
Definition: InstanceScript.h:59
Definition: SharedDefines.h:999
Definition: boss_icecrown_gunship_battle.cpp:177
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:227

+ Here is the call graph for this function:

void gunship_npc_AI::EnterEvadeMode ( EvadeReason  )
inlineoverridevirtual

Reimplemented from CreatureAI.

Reimplemented in npc_gunship_mage::npc_gunship_mageAI.

577  {
578  if (!me->IsAlive() || !me->IsInCombat())
579  return;
580 
581  me->DeleteThreatList();
582  me->CombatStop(true);
584  }
MotionMaster * GetMotionMaster()
Definition: Unit.h:2101
bool IsInCombat() const
Definition: Unit.h:1584
void MoveTargetedHome()
Definition: MotionMaster.cpp:201
Creature *const me
Definition: CreatureAI.h:71
bool IsAlive() const
Definition: Unit.h:1692
void DeleteThreatList()
Definition: Unit.cpp:10700
void CombatStop(bool includingCast=false)
Definition: Unit.cpp:7371

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gunship_npc_AI::JustDied ( Unit )
inlineoverridevirtual

Reimplemented from ScriptedAI.

587  {
588  if (Slot)
590  captain->AI()->SetData(ACTION_CLEAR_SLOT, Index);
591  }
SlotInfo const * Slot
Definition: boss_icecrown_gunship_battle.cpp:657
uint32 Index
Definition: boss_icecrown_gunship_battle.cpp:658
virtual uint32 GetData(uint32) const
Definition: ZoneScript.h:51
Definition: icecrown_citadel.h:184
Definition: forge_of_souls.h:33
Definition: Creature.h:467
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition: Object.cpp:2443
InstanceScript * Instance
Definition: boss_icecrown_gunship_battle.cpp:656
Creature *const me
Definition: CreatureAI.h:71
Definition: icecrown_citadel.h:185
Definition: boss_icecrown_gunship_battle.cpp:205
Definition: SharedDefines.h:999

+ Here is the call graph for this function:

void gunship_npc_AI::MovementInform ( uint32  type,
uint32  pointId 
)
inlineoverridevirtual

Reimplemented from CreatureAI.

Reimplemented in npc_gunship_mage::npc_gunship_mageAI, npc_gunship_rocketeer::npc_gunship_rocketeerAI, npc_gunship_gunner::npc_gunship_gunnerAI, and npc_gunship_boarding_addAI.

594  {
595  if (type != POINT_MOTION_TYPE)
596  return;
597 
598  if (pointId == EVENT_CHARGE_PREPATH && Slot)
599  {
604  }
605  }
EventProcessor m_Events
Definition: Unit.h:1948
Definition: Unit.h:1131
SlotInfo const * Slot
Definition: boss_icecrown_gunship_battle.cpp:657
void AddEvent(BasicEvent *Event, uint64 e_time, bool set_addtime=true)
Definition: EventProcessor.cpp:88
static uint32 const ExperiencedTimes[5]
Definition: boss_icecrown_gunship_battle.cpp:512
Definition: boss_icecrown_gunship_battle.cpp:508
Definition: SharedDefines.h:4419
Creature *const me
Definition: CreatureAI.h:71
float GetOrientation() const
Definition: Position.h:107
Definition: boss_icecrown_gunship_battle.cpp:139
uint64 CalculateTime(uint64 t_offset) const
Definition: EventProcessor.cpp:95
void DoCast(uint32 spellId)
Definition: UnitAI.cpp:101
void SetFacingTo(float ori)
Definition: Unit.cpp:15777
void SetReactState(ReactStates st)
Definition: Creature.h:502
Definition: MotionMaster.h:46
Position TargetPosition
Definition: boss_icecrown_gunship_battle.cpp:303

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool gunship_npc_AI::SelectVictim ( )
inlineprotected
622  {
624  {
626  return false;
627  }
628 
630  {
631  if (Unit* victim = me->SelectVictim())
632  AttackStart(victim);
633 
634  return me->GetVictim() != nullptr;
635  }
636  else if (me->getThreatManager().isThreatListEmpty())
637  {
639  return false;
640  }
641 
642  return true;
643  }
Definition: Unit.h:1129
void EnterEvadeMode(EvadeReason) override
Definition: boss_icecrown_gunship_battle.cpp:576
bool HasReactState(ReactStates state) const
Definition: Creature.h:504
Definition: icecrown_citadel.h:77
bool isThreatListEmpty() const
Definition: ThreatManager.h:220
InstanceScript * Instance
Definition: boss_icecrown_gunship_battle.cpp:656
Creature *const me
Definition: CreatureAI.h:71
Definition: CreatureAI.h:90
Definition: InstanceScript.h:59
Unit * GetVictim() const
Definition: Unit.h:1379
void AttackStart(Unit *) override
Definition: ScriptedCreature.cpp:117
Unit * SelectVictim()
Definition: Unit.cpp:10775
ThreatManager & getThreatManager()
Definition: Unit.h:1998
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:227
Definition: Unit.h:1305

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gunship_npc_AI::SetData ( uint32  type,
uint32  data 
)
inlineoverridevirtual

Reimplemented from UnitAI.

Reimplemented in npc_gunship_boarding_addAI.

552  {
553  if (type == ACTION_SET_SLOT && data < MAX_SLOTS)
554  {
555  SetSlotInfo(data);
556 
558 
559  float x, y, z, o;
560  Slot->TargetPosition.GetPosition(x, y, z, o);
561 
563  float hx = x, hy = y, hz = z, ho = o;
564  me->GetTransport()->CalculatePassengerPosition(hx, hy, hz, &ho);
565  me->SetHomePosition(hx, hy, hz, ho);
566 
568 
570  init.DisableTransportPathTransformations();
571  init.MoveTo(x, y, z, false);
572  init.Launch();
573  }
574  }
void SetTransportHomePosition(float x, float y, float z, float o)
Definition: Creature.h:675
SlotInfo const * Slot
Definition: boss_icecrown_gunship_battle.cpp:657
Definition: Unit.h:1129
void CalculatePassengerPosition(float &x, float &y, float &z, float *o=NULL) const override
This method transforms supplied transport offsets into global coordinates.
Definition: Transport.h:72
MotionMaster * GetMotionMaster()
Definition: Unit.h:2101
void SetHomePosition(float x, float y, float z, float o)
Definition: Creature.h:670
Definition: SharedDefines.h:4419
Creature *const me
Definition: CreatureAI.h:71
void MovePoint(uint32 id, Position const &pos, bool generatePath=true)
Definition: MotionMaster.h:172
G3D::int16 z
Definition: Vector3int16.h:46
void GetPosition(float &x, float &y) const
Definition: Position.h:109
Definition: boss_icecrown_gunship_battle.cpp:206
G3D::int16 y
Definition: Vector2int16.h:38
Transport * GetTransport() const
Definition: Object.h:602
G3D::int16 x
Definition: Vector2int16.h:37
Definition: MoveSplineInit.h:52
Definition: boss_icecrown_gunship_battle.cpp:297
void SetSlotInfo(uint32 index)
Definition: boss_icecrown_gunship_battle.cpp:615
void SetReactState(ReactStates st)
Definition: Creature.h:502
Position TargetPosition
Definition: boss_icecrown_gunship_battle.cpp:303

+ Here is the call graph for this function:

void gunship_npc_AI::SetSlotInfo ( uint32  index)
inlineprotected
616  {
617  Index = index;
619  }
SlotInfo const * Slot
Definition: boss_icecrown_gunship_battle.cpp:657
uint32 Index
Definition: boss_icecrown_gunship_battle.cpp:658
virtual uint32 GetData(uint32) const
Definition: ZoneScript.h:51
Definition: forge_of_souls.h:33
InstanceScript * Instance
Definition: boss_icecrown_gunship_battle.cpp:656
SlotInfo const OrgrimsHammerSlotInfo[MAX_SLOTS]
Definition: boss_icecrown_gunship_battle.cpp:341
Definition: SharedDefines.h:999
SlotInfo const SkybreakerSlotInfo[MAX_SLOTS]
Definition: boss_icecrown_gunship_battle.cpp:307

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void gunship_npc_AI::TriggerBurningPitch ( )
inlineprotected
646  {
650  {
651  DoCastAOE(BurningPitchId, true);
653  }
654  }
void DoCastAOE(uint32 spellId, bool triggered=false)
Definition: UnitAI.cpp:167
void AddCooldown(uint32 spellId, uint32 itemId, std::chrono::duration< Type, Period > cooldownDuration)
Definition: SpellHistory.h:95
Definition: Unit.h:565
Definition: Unit.h:1129
uint32 BurningPitchId
Definition: boss_icecrown_gunship_battle.cpp:659
bool HasReactState(ReactStates state) const
Definition: Creature.h:504
Definition: icecrown_citadel.h:77
InstanceScript * Instance
Definition: boss_icecrown_gunship_battle.cpp:656
Creature *const me
Definition: CreatureAI.h:71
SpellHistory * GetSpellHistory()
Definition: Unit.h:1926
Definition: InstanceScript.h:59
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:45
float milliseconds()
Definition: units.h:92
bool HasCooldown(SpellInfo const *spellInfo, uint32 itemId=0, bool ignoreCategoryCooldown=false) const
Definition: SpellHistory.cpp:591
bool HasUnitState(const uint32 f) const
Definition: Unit.h:1395
EncounterState GetBossState(uint32 id) const
Definition: InstanceScript.h:227

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

uint32 gunship_npc_AI::BurningPitchId
protected
uint32 gunship_npc_AI::Index
protected
InstanceScript* gunship_npc_AI::Instance
protected
SlotInfo const* gunship_npc_AI::Slot
protected

The documentation for this struct was generated from the following file: