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

Public Member Functions

 boss_high_astromancer_solarianAI (Creature *creature)
 
void Initialize ()
 
void Reset () override
 
void KilledUnit (Unit *) override
 
void JustDied (Unit *) override
 
void EnterCombat (Unit *) override
 
void SummonMinion (uint32 entry, float x, float y, float z)
 
float Portal_X (float radius)
 
float Portal_Y (float x, float radius)
 
void UpdateAI (uint32 diff) override
 
- Public Member Functions inherited from BossAI
 BossAI (Creature *creature, uint32 bossId)
 
virtual ~BossAI ()
 
void JustSummoned (Creature *summon) override
 
void SummonedCreatureDespawn (Creature *summon) override
 
virtual void ExecuteEvent (uint32)
 
virtual void ScheduleTasks ()
 
void JustReachedHome () 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
 
void SpellHit (Unit *, SpellInfo const *) override
 
void SpellHitTarget (Unit *, SpellInfo const *) override
 
void OnPossess (bool)
 
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 EnterEvadeMode (EvadeReason why=EVADE_REASON_OTHER)
 
virtual void IsSummonedBy (Unit *)
 
virtual void SummonedCreatureDies (Creature *, Unit *)
 
virtual void AttackedBy (Unit *)
 
virtual bool IsEscorted () const
 
virtual void JustRespawned ()
 
virtual void MovementInform (uint32, uint32)
 
void OnCharmed (bool apply) override
 
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 SetData (uint32, uint32)
 
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)
 

Public Attributes

uint8 Phase
 
uint32 ArcaneMissiles_Timer
 
uint32 m_uiWrathOfTheAstromancer_Timer
 
uint32 BlindingLight_Timer
 
uint32 Fear_Timer
 
uint32 VoidBolt_Timer
 
uint32 Phase1_Timer
 
uint32 Phase2_Timer
 
uint32 Phase3_Timer
 
uint32 AppearDelay_Timer
 
uint32 defaultarmor
 
uint32 Wrath_Timer
 
float defaultsize
 
float Portals [3][3]
 
bool AppearDelay
 
bool BlindingLight
 
- Public Attributes inherited from BossAI
InstanceScript *const instance
 
- Public Attributes inherited from ScriptedAI
bool IsFleeing
 

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 ()
 
- Static Public Attributes inherited from UnitAI
static AISpellInfoTypeAISpellInfo
 
- Protected Member Functions inherited from BossAI
void _Reset ()
 
void _EnterCombat ()
 
void _JustDied ()
 
void _JustReachedHome ()
 
void _DespawnAtEvade ()
 
void TeleportCheaters ()
 
- 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 inherited from BossAI
EventMap events
 
SummonList summons
 
TaskScheduler scheduler
 
- Protected Attributes inherited from CreatureAI
Creature *const me
 
CreatureBoundary const_boundary
 
- Protected Attributes inherited from UnitAI
Unit *const me
 

Constructor & Destructor Documentation

boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::boss_high_astromancer_solarianAI ( Creature creature)
inline
100  {
101  Initialize();
102 
103  defaultarmor = creature->GetArmor();
104  defaultsize = creature->GetObjectScale();
105  memset(Portals, 0, sizeof(Portals));
106  }
void Initialize()
Definition: boss_astromancer.cpp:108
Definition: the_eye.h:31
uint32 GetArmor() const
Definition: Unit.h:1419
uint32 defaultarmor
Definition: boss_astromancer.cpp:136
float Portals[3][3]
Definition: boss_astromancer.cpp:140
BossAI(Creature *creature, uint32 bossId)
Definition: ScriptedCreature.cpp:444
float GetObjectScale() const
Definition: Object.h:110
float defaultsize
Definition: boss_astromancer.cpp:139

+ Here is the call graph for this function:

Member Function Documentation

void boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::EnterCombat ( Unit )
inlineoverridevirtual

Reimplemented from BossAI.

171  {
172  Talk(SAY_AGGRO);
173  _EnterCombat();
174  }
void _EnterCombat()
Definition: ScriptedCreature.cpp:480
Definition: boss_astromancer.cpp:35
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42

+ Here is the call graph for this function:

void boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::Initialize ( void  )
inline
109  {
110  ArcaneMissiles_Timer = 2000;
112  BlindingLight_Timer = 41000;
113  Fear_Timer = 20000;
114  VoidBolt_Timer = 10000;
115  Phase1_Timer = 50000;
116  Phase2_Timer = 10000;
117  Phase3_Timer = 15000;
118  AppearDelay_Timer = 2000;
119  BlindingLight = false;
120  AppearDelay = false;
121  Wrath_Timer = 20000 + rand32() % 5000;//twice in phase one
122  Phase = 1;
123  }
uint32 Phase1_Timer
Definition: boss_astromancer.cpp:132
uint32 VoidBolt_Timer
Definition: boss_astromancer.cpp:131
uint32 AppearDelay_Timer
Definition: boss_astromancer.cpp:135
uint32 Wrath_Timer
Definition: boss_astromancer.cpp:137
bool AppearDelay
Definition: boss_astromancer.cpp:142
uint32 Phase3_Timer
Definition: boss_astromancer.cpp:134
uint32 ArcaneMissiles_Timer
Definition: boss_astromancer.cpp:127
bool BlindingLight
Definition: boss_astromancer.cpp:143
uint32 rand32()
Definition: Random.cpp:64
uint32 Fear_Timer
Definition: boss_astromancer.cpp:130
uint32 BlindingLight_Timer
Definition: boss_astromancer.cpp:129
uint32 m_uiWrathOfTheAstromancer_Timer
Definition: boss_astromancer.cpp:128
uint32 Phase2_Timer
Definition: boss_astromancer.cpp:133
Phase
Definition: boss_kiljaeden.cpp:153

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::JustDied ( Unit )
inlineoverridevirtual

Reimplemented from BossAI.

163  {
166  Talk(SAY_DEATH);
167  _JustDied();
168  }
Definition: boss_astromancer.cpp:39
void _JustDied()
Definition: ScriptedCreature.cpp:471
void SetObjectScale(float scale) override
Definition: Creature.cpp:2653
Creature *const me
Definition: CreatureAI.h:71
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
Definition: boss_astromancer.cpp:70
void SetDisplayId(uint32 modelId) override
Definition: Creature.cpp:2664
float defaultsize
Definition: boss_astromancer.cpp:139

+ Here is the call graph for this function:

void boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::KilledUnit ( Unit )
inlineoverridevirtual

Reimplemented from ScriptedAI.

158  {
159  Talk(SAY_KILL);
160  }
Definition: boss_astromancer.cpp:38
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42

+ Here is the call graph for this function:

float boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::Portal_X ( float  radius)
inline
189  {
190  if (urand(0, 1))
191  radius = -radius;
192 
193  return radius * (float)(rand32() % 100) / 100.0f + CENTER_X;
194  }
const float CENTER_X
Definition: boss_astromancer.cpp:79
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:45
uint32 rand32()
Definition: Random.cpp:64

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

float boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::Portal_Y ( float  x,
float  radius 
)
inline
197  {
198  float z = RAND(1.0f, -1.0f);
199 
200  return (z*std::sqrt(radius*radius - (x - CENTER_X)*(x - CENTER_X)) + CENTER_Y);
201  }
const float CENTER_X
Definition: boss_astromancer.cpp:79
const float CENTER_Y
Definition: boss_astromancer.cpp:80
static First const & RAND(First const &first, Second const &second, Rest const &...rest)
Definition: CreatureAIImpl.h:30
G3D::int16 z
Definition: Vector3int16.h:46
G3D::int16 x
Definition: Vector2int16.h:37

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::Reset ( )
inlineoverridevirtual

Reimplemented from BossAI.

146  {
147  Initialize();
148  _Reset();
151  me->SetVisible(true);
154 
155  }
void Initialize()
Definition: boss_astromancer.cpp:108
void SetObjectScale(float scale) override
Definition: Creature.cpp:2653
Creature *const me
Definition: CreatureAI.h:71
void SetArmor(int32 val)
Definition: Unit.h:1420
void SetVisible(bool x)
Definition: Unit.cpp:10368
void _Reset()
Definition: ScriptedCreature.cpp:457
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition: Object.cpp:1214
uint32 defaultarmor
Definition: boss_astromancer.cpp:136
Definition: boss_astromancer.cpp:70
void SetDisplayId(uint32 modelId) override
Definition: Creature.cpp:2664
Definition: UpdateFields.h:109
Definition: Unit.h:698
float defaultsize
Definition: boss_astromancer.cpp:139

+ Here is the call graph for this function:

void boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::SummonMinion ( uint32  entry,
float  x,
float  y,
float  z 
)
inline
177  {
178  Creature* Summoned = me->SummonCreature(entry, x, y, z, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 5000);
179  if (Summoned)
180  {
181  if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
182  Summoned->AI()->AttackStart(target);
183 
184  summons.Summon(Summoned);
185  }
186  }
void Summon(Creature const *summon)
Definition: ScriptedCreature.h:92
Definition: Creature.h:467
Creature *const me
Definition: CreatureAI.h:71
Definition: UnitAI.h:35
G3D::int16 z
Definition: Vector3int16.h:46
CreatureAI * AI() const
Definition: Creature.h:525
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
Definition: UnitAI.cpp:91
G3D::int16 y
Definition: Vector2int16.h:38
SummonList summons
Definition: ScriptedCreature.h:372
G3D::int16 x
Definition: Vector2int16.h:37
Definition: Unit.h:1305
virtual void AttackStart(Unit *)
Definition: UnitAI.cpp:29
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
Definition: Object.cpp:2346

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::UpdateAI ( uint32  diff)
inlineoverridevirtual

Reimplemented from BossAI.

204  {
205  if (!UpdateVictim())
206  return;
207  if (AppearDelay)
208  {
209  me->StopMoving();
210  me->AttackStop();
211  if (AppearDelay_Timer <= diff)
212  {
213  AppearDelay = false;
214  if (Phase == 2)
215  {
217  me->SetVisible(false);
218  }
219  AppearDelay_Timer = 2000;
220  }
221  else
222  AppearDelay_Timer -= diff;
223  }
224  if (Phase == 1)
225  {
226  if (BlindingLight_Timer <= diff)
227  {
228  BlindingLight = true;
229  BlindingLight_Timer = 45000;
230  }
231  else
232  BlindingLight_Timer -= diff;
233 
234  if (Wrath_Timer <= diff)
235  {
236  me->InterruptNonMeleeSpells(false);
237  if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true))
238  DoCast(target, SPELL_WRATH_OF_THE_ASTROMANCER, true);
239  Wrath_Timer = 20000 + rand32() % 5000;
240  }
241  else
242  Wrath_Timer -= diff;
243 
244  if (ArcaneMissiles_Timer <= diff)
245  {
246  if (BlindingLight)
247  {
249  BlindingLight = false;
250  }
251  else
252  {
253  if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))
254  {
255  if (!me->HasInArc(2.5f, target))
256  target = me->GetVictim();
257 
258  DoCast(target, SPELL_ARCANE_MISSILES);
259  }
260  }
261  ArcaneMissiles_Timer = 3000;
262  }
263  else
264  ArcaneMissiles_Timer -= diff;
265 
267  {
268  me->InterruptNonMeleeSpells(false);
269  //Target the tank ?
270  if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1))
271  {
272  if (target->GetTypeId() == TYPEID_PLAYER)
273  {
276  }
277  else
279  }
280  }
281  else
283 
284  //Phase1_Timer
285  if (Phase1_Timer <= diff)
286  {
287  Phase = 2;
288  Phase1_Timer = 50000;
289  //After these 50 seconds she portals to the middle of the room and disappears, leaving 3 light portals behind.
290  me->GetMotionMaster()->Clear();
292  for (uint8 i=0; i <= 2; ++i)
293  {
294  if (!i)
295  {
298  Portals[i][2] = CENTER_Z;
299  }
300  else
301  {
304  Portals[i][2] = PORTAL_Z;
305  }
306  }
307  if ((std::abs(Portals[2][0] - Portals[1][0]) < 7) && (std::abs(Portals[2][1] - Portals[1][1]) < 7))
308  {
309  int i=1;
310  if (std::abs(CENTER_X + 26.0f - Portals[2][0]) < 7)
311  i = -1;
312  Portals[2][0] = Portals[2][0]+7*i;
314  }
315  for (int i=0; i <= 2; ++i)
316  {
318  {
319  Summoned->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
320  Summoned->CastSpell(Summoned, SPELL_SPOTLIGHT, false);
321  }
322  }
323  AppearDelay = true;
324  }
325  else
326  Phase1_Timer-=diff;
327  }
328  else
329  if (Phase == 2)
330  {
331  //10 seconds after Solarian disappears, 12 mobs spawn out of the three portals.
332  me->AttackStop();
333  me->StopMoving();
334  if (Phase2_Timer <= diff)
335  {
336  Phase = 3;
337  for (int i=0; i <= 2; ++i)
338  for (int j=1; j <= 4; j++)
339  SummonMinion(NPC_SOLARIUM_AGENT, Portals[i][0], Portals[i][1], Portals[i][2]);
340 
341  Talk(SAY_SUMMON1);
342  Phase2_Timer = 10000;
343  }
344  else
345  Phase2_Timer -= diff;
346  }
347  else
348  if (Phase == 3)
349  {
350  me->AttackStop();
351  me->StopMoving();
352  //Check Phase3_Timer
353  if (Phase3_Timer <= diff)
354  {
355  Phase = 1;
356  //15 seconds later Solarian reappears out of one of the 3 portals. Simultaneously, 2 healers appear in the two other portals.
357  int i = rand32() % 3;
358  me->GetMotionMaster()->Clear();
359  me->SetPosition(Portals[i][0], Portals[i][1], Portals[i][2], CENTER_O);
360 
361  for (int j=0; j <= 2; j++)
362  if (j != i)
364 
366  me->SetVisible(true);
367 
368  Talk(SAY_SUMMON2);
369  AppearDelay = true;
370  Phase3_Timer = 15000;
371  }
372  else
373  Phase3_Timer -= diff;
374  }
375  else
376  if (Phase == 4)
377  {
378  //Fear_Timer
379  if (Fear_Timer <= diff)
380  {
381  DoCast(me, SPELL_FEAR);
382  Fear_Timer = 20000;
383  }
384  else
385  Fear_Timer -= diff;
386  //VoidBolt_Timer
387  if (VoidBolt_Timer <= diff)
388  {
390  VoidBolt_Timer = 10000;
391  }
392  else
393  VoidBolt_Timer -= diff;
394  }
395  //When Solarian reaches 20% she will transform into a huge void walker.
396  if (Phase != 4 && me->HealthBelowPct(20))
397  {
398  Phase = 4;
399  //To make sure she wont be invisible or not selecatble
401  me->SetVisible(true);
402  Talk(SAY_VOIDA);
403  Talk(SAY_VOIDB);
404  me->SetArmor(WV_ARMOR);
407  }
409  }
bool AttackStop()
Definition: Unit.cpp:7337
G3D::Matrix abs(const G3D::Matrix &M)
Definition: Matrix.h:632
float Portal_Y(float x, float radius)
Definition: boss_astromancer.cpp:196
uint32 Phase1_Timer
Definition: boss_astromancer.cpp:132
uint32 VoidBolt_Timer
Definition: boss_astromancer.cpp:131
Definition: boss_astromancer.cpp:41
const float CENTER_X
Definition: boss_astromancer.cpp:79
const float PORTAL_Z
Definition: boss_astromancer.cpp:85
bool UpdateVictim()
Definition: CreatureAI.cpp:233
Definition: boss_astromancer.cpp:71
void Clear(bool reset=true)
Definition: MotionMaster.h:138
Definition: boss_astromancer.cpp:64
uint32 AppearDelay_Timer
Definition: boss_astromancer.cpp:135
Definition: boss_astromancer.cpp:65
MotionMaster * GetMotionMaster()
Definition: Unit.h:2101
Definition: boss_astromancer.cpp:51
Definition: boss_astromancer.cpp:62
Definition: Creature.h:467
float Portal_X(float radius)
Definition: boss_astromancer.cpp:188
const float CENTER_Y
Definition: boss_astromancer.cpp:80
uint32 Wrath_Timer
Definition: boss_astromancer.cpp:137
void SetFlag(uint16 index, uint32 newFlag)
Definition: Object.cpp:1199
void SetObjectScale(float scale) override
Definition: Creature.cpp:2653
Definition: boss_astromancer.cpp:50
bool AppearDelay
Definition: boss_astromancer.cpp:142
uint32 Phase3_Timer
Definition: boss_astromancer.cpp:134
void SetPosition(float x, float y, float z, float o)
Definition: Creature.cpp:2537
Definition: boss_astromancer.cpp:37
const float CENTER_O
Definition: boss_astromancer.cpp:82
Creature *const me
Definition: CreatureAI.h:71
uint32 ArcaneMissiles_Timer
Definition: boss_astromancer.cpp:127
Definition: boss_astromancer.cpp:76
Definition: boss_astromancer.cpp:47
Definition: UnitAI.h:35
const float SMALL_PORTAL_RADIUS
Definition: boss_astromancer.cpp:83
Definition: boss_astromancer.cpp:36
Unit * GetVictim() const
Definition: Unit.h:1379
bool BlindingLight
Definition: boss_astromancer.cpp:143
Definition: Object.h:56
bool HealthBelowPct(int32 pct) const
Definition: Unit.h:1430
void SetArmor(int32 val)
Definition: Unit.h:1420
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
Definition: UnitAI.cpp:91
void SetVisible(bool x)
Definition: Unit.cpp:10368
void DoCast(uint32 spellId)
Definition: UnitAI.cpp:101
bool HasInArc(float arcangle, Position const *pos, float border=2.0f) const
Definition: Position.cpp:129
Definition: boss_astromancer.cpp:40
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
Definition: boss_astromancer.cpp:53
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition: Object.cpp:1214
Definition: boss_astromancer.cpp:46
const float LARGE_PORTAL_RADIUS
Definition: boss_astromancer.cpp:84
void SetDisplayId(uint32 modelId) override
Definition: Creature.cpp:2664
Definition: ObjectGuid.h:33
Definition: UpdateFields.h:109
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
Definition: Unit.cpp:2916
uint32 rand32()
Definition: Random.cpp:64
void DoMeleeAttackIfReady()
Definition: UnitAI.cpp:49
uint32 Fear_Timer
Definition: boss_astromancer.cpp:130
uint8_t uint8
Definition: Define.h:152
void SummonMinion(uint32 entry, float x, float y, float z)
Definition: boss_astromancer.cpp:176
uint32 BlindingLight_Timer
Definition: boss_astromancer.cpp:129
void DoCastVictim(uint32 spellId, bool triggered=false)
Definition: UnitAI.cpp:159
Definition: boss_astromancer.cpp:49
const float CENTER_Z
Definition: boss_astromancer.cpp:81
float Portals[3][3]
Definition: boss_astromancer.cpp:140
uint32 m_uiWrathOfTheAstromancer_Timer
Definition: boss_astromancer.cpp:128
Definition: Unit.h:1305
void StopMoving()
-------—End of Pet responses methods-------—
Definition: Unit.cpp:12743
uint32 Phase2_Timer
Definition: boss_astromancer.cpp:133
Phase
Definition: boss_kiljaeden.cpp:153
Definition: Unit.h:698
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
Definition: Object.cpp:2346
float defaultsize
Definition: boss_astromancer.cpp:139

+ Here is the call graph for this function:

Member Data Documentation

bool boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::AppearDelay
uint32 boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::AppearDelay_Timer
uint32 boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::ArcaneMissiles_Timer
bool boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::BlindingLight
uint32 boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::BlindingLight_Timer
uint32 boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::defaultarmor
float boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::defaultsize
uint32 boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::Fear_Timer
uint32 boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::m_uiWrathOfTheAstromancer_Timer
uint8 boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::Phase
uint32 boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::Phase1_Timer
uint32 boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::Phase2_Timer
uint32 boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::Phase3_Timer
float boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::Portals[3][3]
uint32 boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::VoidBolt_Timer
uint32 boss_high_astromancer_solarian::boss_high_astromancer_solarianAI::Wrath_Timer

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