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

Public Member Functions

 boss_malygosAI (Creature *creature)
 
void Initialize ()
 
void Reset () override
 
uint32 GetData (uint32 data) const override
 
void SetData (uint32 data, uint32 value) override
 
ObjectGuid GetGUID (int32 type) const override
 
void SetGUID (ObjectGuid guid, int32 type) override
 
void DoAction (int32 action) override
 
void SetPhase (uint8 phase, bool setEvents=false)
 
void SetPhaseEvents ()
 
void AttackStart (Unit *target) override
 
void EnterCombat (Unit *) override
 
void EnterEvadeMode (EvadeReason) override
 
void KilledUnit (Unit *victim) override
 
void SpellHit (Unit *caster, SpellInfo const *spell) override
 
void MoveInLineOfSight (Unit *who) override
 
void MovementInform (uint32 type, uint32 id) override
 
void UpdateAI (uint32 diff) override
 
void JustDied (Unit *) 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 SpellHitTarget (Unit *, SpellInfo const *) override
 
void OnPossess (bool)
 
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
 
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 ()
 
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)
 

Private Attributes

uint8 _phase
 
uint8 _summonDeaths
 
uint8 _preparingPulsesChecker
 
ObjectGuid _arcaneOverloadGUID
 
ObjectGuid _lastHitByArcaneBarrageGUID
 
ObjectGuid _surgeTargetGUID [3]
 
bool _killSpamFilter
 
bool _canAttack
 
bool _despawned
 
bool _executingVortex
 
bool _arcaneReinforcements
 
bool _flyingOutOfPlatform
 
bool _firstCyclicMovementStarted
 
bool _performingSurgeOfPower
 
bool _performingDestroyPlatform
 
float _flySpeed
 

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 BossAI
InstanceScript *const instance
 
- Public Attributes inherited from ScriptedAI
bool IsFleeing
 
- 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)
 
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_malygos::boss_malygosAI::boss_malygosAI ( Creature creature)
inline
342  : BossAI(creature, DATA_MALYGOS_EVENT)
343  {
344  Initialize();
345  _despawned = false; // We determine if Malygos will be realocated to spawning position on reset triggered by boss despawn on evade
346  _flySpeed = me->GetSpeed(MOVE_FLIGHT); // Get initial fly speed, otherwise on each wipe fly speed would add up if we get it
348  }
void Initialize()
Definition: boss_malygos.cpp:350
Definition: Unit.h:605
float GetSpeed(UnitMoveType mtype) const
Definition: Unit.cpp:10526
uint8 _phase
Definition: boss_malygos.cpp:1018
Definition: eye_of_eternity.h:25
Creature *const me
Definition: CreatureAI.h:71
Definition: boss_malygos.cpp:86
float _flySpeed
Definition: boss_malygos.cpp:1035
BossAI(Creature *creature, uint32 bossId)
Definition: ScriptedCreature.cpp:444
bool _despawned
Definition: boss_malygos.cpp:1027

+ Here is the call graph for this function:

Member Function Documentation

void boss_malygos::boss_malygosAI::AttackStart ( Unit target)
inlineoverridevirtual

Reimplemented from ScriptedAI.

565  {
566  if (_canAttack)
567  BossAI::AttackStart(target);
568  }
bool _canAttack
Definition: boss_malygos.cpp:1026
void AttackStart(Unit *) override
Definition: ScriptedCreature.cpp:117

+ Here is the call graph for this function:

void boss_malygos::boss_malygosAI::DoAction ( int32  action)
inlineoverridevirtual

Reimplemented from UnitAI.

456  {
457  switch (action)
458  {
462  {
463  Position pos;
464  pos.m_positionZ = alexstraszaBunny->GetPositionZ();
465  alexstraszaBunny->GetNearPoint2D(pos.m_positionX, pos.m_positionY, 30.0f, alexstraszaBunny->GetAngle(me));
471  }
472  break;
474  DoCast(me, SPELL_VORTEX_1, true);
475  DoCast(me, SPELL_VORTEX_2, true);
476  // the vortex execution continues in the dummy effect of this spell (see it's script)
477  DoCast(me, SPELL_VORTEX_3, true);
478  break;
479  case ACTION_LIFT_IN_AIR:
480  {
481  Position _zToLift = me->GetPosition();
482  if (_phase == PHASE_ONE)
483  {
484  _zToLift.m_positionZ += 20.0f;
486  }
487  else if (_phase == PHASE_TWO)
488  {
489  _zToLift.m_positionZ = 300.1f;
491  }
492  break;
493  }
498  // Vehicles shouldn't be despawned with 0 delay if the call comes from virtual function that overrides PassengerBoarded.
499  // Aside from that he doesn't despawn both vehicles and arcane overloads right away, but with some delay.
503  me->GetMotionMaster()->Clear(false);
504  me->StopMoving();
505  if (me->GetPositionZ() > 300.0f)
507  else
509 
511  break;
513  // Teleport to spawn position, we can't use normal relocate
514  float x, y, z, o;
515  me->GetRespawnPosition(x, y, z, &o);
516  me->NearTeleportTo(x, y, z, o);
517  // Respawn Iris
519  _despawned = false;
520  break;
522  me->GetMotionMaster()->MoveCirclePath(MalygosPositions[3].GetPositionX(), MalygosPositions[3].GetPositionY(), 283.2763f, 120.0f, true, 16);
523  break;
524  }
525  }
Definition: boss_malygos.cpp:109
Definition: Unit.h:1131
void MoveCirclePath(float x, float y, float z, float radius, bool clockwise, uint8 stepCount)
Definition: MotionMaster.cpp:385
void CancelEventGroup(uint32 group)
Definition: EventMap.cpp:103
void Clear(bool reset=true)
Definition: MotionMaster.h:138
float m_positionY
Definition: Position.h:53
Definition: boss_malygos.cpp:160
Definition: ScriptedCreature.h:136
uint8 _phase
Definition: boss_malygos.cpp:1018
MotionMaster * GetMotionMaster()
Definition: Unit.h:2101
Definition: boss_malygos.cpp:108
void DoAction(int32 info, Predicate &predicate, uint16 max=0)
Definition: ScriptedCreature.h:104
Definition: boss_malygos.cpp:40
float m_positionX
Definition: Position.h:52
Definition: Creature.h:467
Definition: boss_malygos.cpp:107
Definition: boss_malygos.cpp:88
Definition: boss_malygos.cpp:55
Definition: boss_malygos.cpp:208
Creature *const me
Definition: CreatureAI.h:71
void MovePoint(uint32 id, Position const &pos, bool generatePath=true)
Definition: MotionMaster.h:172
virtual ObjectGuid GetGuidData(uint32 type) const override
Definition: InstanceScript.cpp:93
Definition: boss_malygos.cpp:187
Definition: boss_malygos.cpp:69
Definition: boss_malygos.cpp:164
Definition: eye_of_eternity.h:30
void NearTeleportTo(float x, float y, float z, float orientation, bool casting=false)
Definition: Unit.cpp:15407
Definition: boss_malygos.cpp:182
G3D::int16 z
Definition: Vector3int16.h:46
Definition: boss_malygos.cpp:161
virtual void SetData(uint32, uint32)
Definition: ZoneScript.h:52
void GetPosition(float &x, float &y) const
Definition: Position.h:109
float GetPositionZ() const
Definition: Position.h:106
Definition: boss_malygos.cpp:184
G3D::int16 y
Definition: Vector2int16.h:38
Definition: eye_of_eternity.h:38
void DoCast(uint32 spellId)
Definition: UnitAI.cpp:101
void GetRespawnPosition(float &x, float &y, float &z, float *ori=nullptr, float *dist=nullptr) const
Definition: Creature.cpp:2355
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
float m_positionZ
Definition: Position.h:54
Definition: boss_malygos.cpp:190
Definition: boss_malygos.cpp:183
void ScheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:123
SummonList summons
Definition: ScriptedCreature.h:372
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:174
void MoveLand(uint32 id, Position const &pos)
Definition: MotionMaster.cpp:299
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition: Object.cpp:1214
Definition: Unit.h:682
Definition: boss_malygos.cpp:87
Definition: UpdateFields.h:109
Definition: Common.h:103
Position const MalygosPositions[MAX_MALYGOS_POS]
Definition: boss_malygos.cpp:281
Definition: Position.h:27
void SetInCombatWithZone()
Definition: Creature.cpp:2299
EventMap events
Definition: ScriptedCreature.h:371
G3D::int16 x
Definition: Vector2int16.h:37
Definition: boss_malygos.cpp:186
void MoveTakeoff(uint32 id, Position const &pos)
Definition: MotionMaster.cpp:313
Definition: boss_malygos.cpp:86
void StopMoving()
-------—End of Pet responses methods-------—
Definition: Unit.cpp:12743
void SetReactState(ReactStates st)
Definition: Creature.h:502
bool _despawned
Definition: boss_malygos.cpp:1027
InstanceScript *const instance
Definition: ScriptedCreature.h:340
Definition: boss_malygos.cpp:185
Definition: boss_malygos.cpp:157

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void boss_malygos::boss_malygosAI::EnterCombat ( Unit )
inlineoverridevirtual

Reimplemented from BossAI.

571  {
572  // We can't call full function here since it includes DoZoneInCombat(),
573  // if someone does it will be returned with a warning.
574  me->setActive(true);
576  {
578  return;
579  }
580 
582 
584  DoCast(SPELL_BERSERK); // periodic aura, first tick in 10 minutes
586  }
void setActive(bool isActiveObject)
Definition: Object.cpp:1473
Definition: DBCEnums.h:183
Definition: eye_of_eternity.h:25
Creature *const me
Definition: CreatureAI.h:71
void DoStartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
Definition: InstanceScript.cpp:518
void EnterEvadeMode(EvadeReason) override
Definition: boss_malygos.cpp:588
Definition: CreatureAI.h:90
Definition: InstanceScript.h:59
Definition: boss_malygos.cpp:99
void DoCast(uint32 spellId)
Definition: UnitAI.cpp:101
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
virtual bool SetBossState(uint32 id, EncounterState state)
Definition: InstanceScript.cpp:273
Definition: boss_malygos.cpp:297
virtual bool CheckRequiredBosses(uint32, Player const *=nullptr) const
Definition: InstanceScript.h:236
Definition: boss_malygos.cpp:200
InstanceScript *const instance
Definition: ScriptedCreature.h:340

+ Here is the call graph for this function:

void boss_malygos::boss_malygosAI::EnterEvadeMode ( EvadeReason  )
inlineoverridevirtual

Reimplemented from CreatureAI.

589  {
591 
593 
594  if (_phase == PHASE_THREE)
596 
597  uint32 corpseDelay = me->GetCorpseDelay();
598  uint32 respawnDelay = me->GetRespawnDelay();
599  me->SetCorpseDelay(1);
600  me->SetRespawnDelay(29);
602  me->SetCorpseDelay(corpseDelay);
603  me->SetRespawnDelay(respawnDelay);
604 
605  // Set speed to normal value
609  me->RemoveAllAuras();
610  me->CombatStop(); // Sometimes threat can remain, so it's a safety measure
611 
612  if (!_despawned)
613  _despawned = true;
614 
615  me->ResetLootMode();
616  events.Reset();
617  if (!summons.empty())
618  {
619  if (_phase == PHASE_TWO)
620  {
623  summons.DespawnIf(pred);
625  }
626  else if (_phase == PHASE_THREE)
628  }
629 
631  }
void DespawnOrUnsummon(uint32 msTimeToDespawn=0)
Definition: Creature.cpp:1774
void RemoveAllAuras()
Definition: Unit.cpp:3920
uint32 GetRespawnDelay() const
Definition: Creature.h:637
Definition: Unit.h:605
Map * GetMap() const
Definition: Object.h:543
void DespawnAll()
Definition: ScriptedCreature.cpp:66
void Reset()
Definition: EventMap.cpp:20
uint8 _phase
Definition: boss_malygos.cpp:1018
Definition: boss_malygos.cpp:308
void DoAction(int32 info, Predicate &predicate, uint16 max=0)
Definition: ScriptedCreature.h:104
Definition: eye_of_eternity.h:25
Definition: boss_malygos.cpp:329
uint32 GetCorpseDelay() const
Definition: Creature.h:493
void SetFlag(uint16 index, uint32 newFlag)
Definition: Object.cpp:1199
Definition: InstanceScript.h:60
Definition: boss_malygos.cpp:88
Definition: Unit.h:681
Definition: boss_malygos.cpp:302
Creature *const me
Definition: CreatureAI.h:71
void SetControlled(bool apply, UnitState state)
Definition: Unit.cpp:13808
Definition: boss_malygos.cpp:89
Definition: InstanceScript.h:58
void SetCorpseDelay(uint32 delay)
Definition: Creature.h:492
uint32_t uint32
Definition: Define.h:150
Definition: boss_malygos.cpp:190
virtual bool SetBossState(uint32 id, EncounterState state)
Definition: InstanceScript.cpp:273
SummonList summons
Definition: ScriptedCreature.h:372
void ResetLootMode()
Definition: Creature.h:597
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition: Object.cpp:1214
Definition: UpdateFields.h:109
Definition: Common.h:103
Definition: Unit.h:560
EventMap events
Definition: ScriptedCreature.h:371
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
Definition: Unit.cpp:10531
void DespawnIf(T const &predicate)
Definition: ScriptedCreature.h:98
void SetZoneOverrideLight(uint32 zoneId, uint32 lightId, uint32 fadeInTime)
Definition: Map.cpp:3943
float _flySpeed
Definition: boss_malygos.cpp:1035
void CombatStop(bool includingCast=false)
Definition: Unit.cpp:7371
bool empty() const
Definition: ScriptedCreature.h:82
void SetRespawnDelay(uint32 delay)
Definition: Creature.h:638
bool _despawned
Definition: boss_malygos.cpp:1027
Definition: Unit.h:698
InstanceScript *const instance
Definition: ScriptedCreature.h:340

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

uint32 boss_malygos::boss_malygosAI::GetData ( uint32  data) const
inlineoverridevirtual

Reimplemented from UnitAI.

390  {
391  switch (data)
392  {
393  case DATA_SUMMON_DEATHS:
394  return _summonDeaths;
395  case DATA_PHASE:
396  return _phase;
397  }
398 
399  return 0;
400  }
uint8 _phase
Definition: boss_malygos.cpp:1018
Definition: boss_malygos.cpp:316
Definition: boss_malygos.cpp:315
uint8 _summonDeaths
Definition: boss_malygos.cpp:1019
ObjectGuid boss_malygos::boss_malygosAI::GetGUID ( int32  type) const
inlineoverridevirtual

Reimplemented from UnitAI.

428  {
431  else if (type == DATA_LAST_TARGET_BARRAGE_GUID)
433 
434  return ObjectGuid::Empty;
435  }
static ObjectGuid const Empty
Definition: ObjectGuid.h:196
Definition: boss_malygos.cpp:325
ObjectGuid _surgeTargetGUID[3]
Definition: boss_malygos.cpp:1023
Definition: boss_malygos.cpp:320
Definition: boss_malygos.cpp:323
ObjectGuid _lastHitByArcaneBarrageGUID
Definition: boss_malygos.cpp:1022
void boss_malygos::boss_malygosAI::Initialize ( void  )
inline
351  {
352  _summonDeaths = 0;
356  for (ObjectGuid& guid : _surgeTargetGUID)
357  guid.Clear();
358 
359  _killSpamFilter = false;
360  _canAttack = false;
361  _executingVortex = false;
362  _arcaneReinforcements = true;
363  _flyingOutOfPlatform = false;
365  _performingSurgeOfPower = false;
367  }
bool _canAttack
Definition: boss_malygos.cpp:1026
bool _executingVortex
Definition: boss_malygos.cpp:1028
ObjectGuid _surgeTargetGUID[3]
Definition: boss_malygos.cpp:1023
ObjectGuid _arcaneOverloadGUID
Definition: boss_malygos.cpp:1021
bool _performingDestroyPlatform
Definition: boss_malygos.cpp:1033
bool _arcaneReinforcements
Definition: boss_malygos.cpp:1029
uint8 _preparingPulsesChecker
Definition: boss_malygos.cpp:1020
bool _firstCyclicMovementStarted
Definition: boss_malygos.cpp:1031
void Clear()
Definition: ObjectGuid.h:215
bool _killSpamFilter
Definition: boss_malygos.cpp:1025
bool _flyingOutOfPlatform
Definition: boss_malygos.cpp:1030
bool _performingSurgeOfPower
Definition: boss_malygos.cpp:1032
Definition: ObjectGuid.h:189
ObjectGuid _lastHitByArcaneBarrageGUID
Definition: boss_malygos.cpp:1022
uint8 _summonDeaths
Definition: boss_malygos.cpp:1019

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void boss_malygos::boss_malygosAI::JustDied ( Unit )
inlineoverridevirtual

Reimplemented from BossAI.

1000  {
1001  _JustDied();
1002  Talk(SAY_DEATH);
1004  {
1005  if (GetDifficulty() == DIFFICULTY_10_N)
1006  alexstraszaGiftBoxBunny->SummonGameObject(GO_HEART_OF_MAGIC_10, HeartOfMagicSpawnPos.GetPositionX(), HeartOfMagicSpawnPos.GetPositionY(),
1007  HeartOfMagicSpawnPos.GetPositionZ(), HeartOfMagicSpawnPos.GetOrientation(), 0.0f, 0.0f, 0.0f, 1.0f, 0);
1008  else if (GetDifficulty() == DIFFICULTY_25_N)
1009  alexstraszaGiftBoxBunny->SummonGameObject(GO_HEART_OF_MAGIC_25, HeartOfMagicSpawnPos.GetPositionX(), HeartOfMagicSpawnPos.GetPositionY(),
1010  HeartOfMagicSpawnPos.GetPositionZ(), HeartOfMagicSpawnPos.GetOrientation(), 0.0f, 0.0f, 0.0f, 1.0f, 0);
1011  }
1012 
1015  }
Definition: eye_of_eternity.h:41
Definition: eye_of_eternity.h:54
void DespawnOrUnsummon(uint32 msTimeToDespawn=0)
Definition: Creature.cpp:1774
Definition: Object.h:61
Definition: DBCEnums.h:407
Position const AlexstraszaSpawnPos
Definition: boss_malygos.cpp:290
void _JustDied()
Definition: ScriptedCreature.cpp:471
Definition: Creature.h:467
Definition: eye_of_eternity.h:69
Definition: boss_malygos.cpp:216
Difficulty GetDifficulty() const
Definition: ScriptedCreature.h:271
Creature *const me
Definition: CreatureAI.h:71
Position const HeartOfMagicSpawnPos
Definition: boss_malygos.cpp:291
virtual ObjectGuid GetGuidData(uint32 type) const override
Definition: InstanceScript.cpp:93
float GetOrientation() const
Definition: Position.h:107
float GetPositionY() const
Definition: Position.h:105
Definition: eye_of_eternity.h:68
float GetPositionZ() const
Definition: Position.h:106
Definition: DBCEnums.h:408
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:174
Definition: Common.h:103
float GetPositionX() const
Definition: Position.h:104
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
Definition: Object.cpp:2346
InstanceScript *const instance
Definition: ScriptedCreature.h:340

+ Here is the call graph for this function:

void boss_malygos::boss_malygosAI::KilledUnit ( Unit victim)
inlineoverridevirtual

Reimplemented from ScriptedAI.

634  {
635  if (victim->GetTypeId() != TYPEID_PLAYER)
636  return;
637 
638  if (!_killSpamFilter)
639  {
640  switch (_phase)
641  {
642  case PHASE_ONE:
645  _killSpamFilter = true;
646  break;
647  case PHASE_TWO:
650  _killSpamFilter = true;
651  break;
652  case PHASE_THREE:
655  _killSpamFilter = true;
656  break;
657  }
658  }
659  }
uint8 _phase
Definition: boss_malygos.cpp:1018
Definition: boss_malygos.cpp:214
Definition: boss_malygos.cpp:88
TypeID GetTypeId() const
Definition: Object.h:113
Definition: boss_malygos.cpp:202
Definition: boss_malygos.cpp:89
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
void ScheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:123
Definition: boss_malygos.cpp:87
Definition: ObjectGuid.h:33
bool _killSpamFilter
Definition: boss_malygos.cpp:1025
Definition: Common.h:103
Definition: boss_malygos.cpp:207
EventMap events
Definition: ScriptedCreature.h:371
Definition: boss_malygos.cpp:65

+ Here is the call graph for this function:

void boss_malygos::boss_malygosAI::MoveInLineOfSight ( Unit who)
inlineoverridevirtual

Reimplemented from CreatureAI.

676  {
677  if (!me->IsInCombat() || _phase != PHASE_ONE)
678  return;
679 
680  if (who->GetEntry() == NPC_POWER_SPARK)
681  if (who->GetDistance(me) <= 2.5f)
683  }
uint8 _phase
Definition: boss_malygos.cpp:1018
bool IsInCombat() const
Definition: Unit.h:1584
Definition: eye_of_eternity.h:49
Creature *const me
Definition: CreatureAI.h:71
float GetDistance(WorldObject const *obj) const
Definition: Object.cpp:1594
Definition: boss_malygos.cpp:104
Definition: boss_malygos.cpp:87
uint32 GetEntry() const
Definition: Object.h:107
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:869

+ Here is the call graph for this function:

void boss_malygos::boss_malygosAI::MovementInform ( uint32  type,
uint32  id 
)
inlineoverridevirtual

Reimplemented from CreatureAI.

686  {
687  if (type != POINT_MOTION_TYPE && type != EFFECT_MOTION_TYPE)
688  return;
689 
690  switch (id)
691  {
693  if (Creature* portal = me->FindNearestCreature(NPC_PORTAL_TRIGGER, 31.0f, true))
694  {
697  DoCast(portal, SPELL_PORTAL_BEAM);
698  }
699  break;
700  case POINT_LAND_P_ONE:
701  me->SetDisableGravity(false);
702  break;
703  case POINT_VORTEX_P_ONE:
706  break;
708  me->SetDisableGravity(false);
709  _executingVortex = false;
710  _canAttack = true;
711  break;
713  me->SetDisableGravity(true);
715  break;
718  {
722  me->SetFacingToObject(alexstraszaBunny);
724  }
725  _flyingOutOfPlatform = false;
726  _performingSurgeOfPower = false;
728  break;
730  me->SetDisableGravity(true);
732  me->SetFacingToObject(alexstraszaBunny);
735  break;
738  {
742  }
743  break;
748  break;
749  case POINT_IDLE_P_THREE:
752  break;
753  }
754  }
void DoAction(int32 action) override
Definition: boss_malygos.cpp:455
Definition: boss_malygos.cpp:57
Definition: boss_malygos.cpp:38
void DoCastAOE(uint32 spellId, bool triggered=false)
Definition: UnitAI.cpp:167
void MoveIdle()
Definition: MotionMaster.cpp:185
Definition: boss_malygos.cpp:133
Map * GetMap() const
Definition: Object.h:543
bool _canAttack
Definition: boss_malygos.cpp:1026
Definition: boss_malygos.cpp:160
Definition: boss_malygos.cpp:163
Definition: boss_malygos.cpp:309
Definition: boss_malygos.cpp:211
MotionMaster * GetMotionMaster()
Definition: Unit.h:2101
Definition: boss_malygos.cpp:162
bool _executingVortex
Definition: boss_malygos.cpp:1028
Definition: Creature.h:467
bool SetDisableGravity(bool disable, bool packetOnly=false)
Definition: Unit.cpp:15818
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition: Object.cpp:2443
void SetFlag(uint16 index, uint32 newFlag)
Definition: Object.cpp:1199
Definition: boss_malygos.cpp:88
Definition: boss_malygos.cpp:66
Definition: boss_malygos.cpp:302
Definition: boss_malygos.cpp:51
Creature *const me
Definition: CreatureAI.h:71
Definition: boss_malygos.cpp:165
void SetFacingToObject(WorldObject const *object)
Definition: Unit.cpp:15787
virtual ObjectGuid GetGuidData(uint32 type) const override
Definition: InstanceScript.cpp:93
Definition: boss_malygos.cpp:164
Definition: boss_malygos.cpp:311
void SetControlled(bool apply, UnitState state)
Definition: Unit.cpp:13808
Definition: boss_malygos.cpp:158
Definition: boss_malygos.cpp:161
Definition: eye_of_eternity.h:48
Definition: MotionMaster.h:54
bool _performingDestroyPlatform
Definition: boss_malygos.cpp:1033
Definition: eye_of_eternity.h:38
Definition: boss_malygos.cpp:96
Definition: boss_malygos.cpp:159
void DoCast(uint32 spellId)
Definition: UnitAI.cpp:101
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
Definition: boss_malygos.cpp:123
Definition: boss_malygos.cpp:183
void ScheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:123
bool _firstCyclicMovementStarted
Definition: boss_malygos.cpp:1031
Definition: boss_malygos.cpp:56
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:174
Definition: boss_malygos.cpp:87
Definition: boss_malygos.cpp:156
Definition: UpdateFields.h:109
Definition: Common.h:103
Definition: Unit.h:560
bool _flyingOutOfPlatform
Definition: boss_malygos.cpp:1030
EventMap events
Definition: ScriptedCreature.h:371
bool _performingSurgeOfPower
Definition: boss_malygos.cpp:1032
void SetZoneOverrideLight(uint32 zoneId, uint32 lightId, uint32 fadeInTime)
Definition: Map.cpp:3943
Definition: boss_malygos.cpp:86
Definition: boss_malygos.cpp:53
Definition: MotionMaster.h:46
Definition: Unit.h:698
InstanceScript *const instance
Definition: ScriptedCreature.h:340
Definition: boss_malygos.cpp:49
Definition: boss_malygos.cpp:37
Definition: boss_malygos.cpp:157

+ Here is the call graph for this function:

void boss_malygos::boss_malygosAI::Reset ( )
inlineoverridevirtual

Reimplemented from BossAI.

370  {
371  // EnterEvadeMode and Reset() links are cut for the sake of properly functioning despawner.
372  if (!_despawned)
373  _Reset();
374 
375  Initialize();
376 
377  me->SetDisableGravity(true);
379  // TO DO: find what in core is making boss slower than in retail (when correct speed data) or find missing movement flag update or forced spline change
380  me->SetSpeed(MOVE_FLIGHT, _flySpeed * 0.25f);
381  if (_despawned)
383 
387  }
void DoAction(int32 action) override
Definition: boss_malygos.cpp:455
void Initialize()
Definition: boss_malygos.cpp:350
Definition: Unit.h:605
Definition: Unit.h:1129
void SetPhase(uint8 phase, bool setEvents=false)
Definition: boss_malygos.cpp:527
void DoStopTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
Definition: InstanceScript.cpp:529
Definition: Unit.h:254
Definition: DBCEnums.h:183
Definition: Unit.h:253
bool SetDisableGravity(bool disable, bool packetOnly=false)
Definition: Unit.cpp:15818
void SetByteFlag(uint16 index, uint8 offset, uint8 newFlag)
Definition: Object.cpp:1252
Creature *const me
Definition: CreatureAI.h:71
void _Reset()
Definition: ScriptedCreature.cpp:457
Definition: boss_malygos.cpp:297
Definition: UpdateFields.h:124
void SetSpeed(UnitMoveType mtype, float rate, bool forced=false)
Definition: Unit.cpp:10531
Definition: boss_malygos.cpp:186
Definition: boss_malygos.cpp:86
float _flySpeed
Definition: boss_malygos.cpp:1035
void SetReactState(ReactStates st)
Definition: Creature.h:502
bool _despawned
Definition: boss_malygos.cpp:1027
InstanceScript *const instance
Definition: ScriptedCreature.h:340

+ Here is the call graph for this function:

void boss_malygos::boss_malygosAI::SetData ( uint32  data,
uint32  value 
)
inlineoverridevirtual

Reimplemented from UnitAI.

403  {
404  if (data == DATA_SUMMON_DEATHS && _phase == PHASE_TWO && !_despawned)
405  {
407 
409  {
411  {
414  }
415  }
416  else if (GetDifficulty() == DIFFICULTY_25_N)
417  {
419  {
422  }
423  }
424  }
425  }
void DoAction(int32 action) override
Definition: boss_malygos.cpp:455
Definition: DBCEnums.h:407
uint8 _phase
Definition: boss_malygos.cpp:1018
#define MAX_SUMMONS_PHASE_TWO_10MAN
Definition: boss_malygos.cpp:230
Definition: boss_malygos.cpp:88
#define MAX_SUMMONS_PHASE_TWO_25MAN
Definition: boss_malygos.cpp:231
Difficulty GetDifficulty() const
Definition: ScriptedCreature.h:271
Definition: boss_malygos.cpp:184
bool _performingDestroyPlatform
Definition: boss_malygos.cpp:1033
Definition: DBCEnums.h:408
Definition: boss_malygos.cpp:315
const FieldDescriptor value
Definition: descriptor.h:1522
bool _despawned
Definition: boss_malygos.cpp:1027
uint8 _summonDeaths
Definition: boss_malygos.cpp:1019

+ Here is the call graph for this function:

void boss_malygos::boss_malygosAI::SetGUID ( ObjectGuid  guid,
int32  type 
)
inlineoverridevirtual

Reimplemented from UnitAI.

438  {
439  switch (type)
440  {
442  _arcaneOverloadGUID = guid;
443  break;
448  break;
451  break;
452  }
453  }
ObjectGuid _surgeTargetGUID[3]
Definition: boss_malygos.cpp:1023
Definition: boss_malygos.cpp:320
ObjectGuid _arcaneOverloadGUID
Definition: boss_malygos.cpp:1021
Definition: boss_malygos.cpp:319
Definition: boss_malygos.cpp:323
ObjectGuid _lastHitByArcaneBarrageGUID
Definition: boss_malygos.cpp:1022
void boss_malygos::boss_malygosAI::SetPhase ( uint8  phase,
bool  setEvents = false 
)
inline
528  {
529  events.Reset();
530  events.SetPhase(phase);
531  _phase = phase;
532  if (setEvents)
533  SetPhaseEvents();
534  }
void SetPhase(uint8 phase)
Definition: EventMap.cpp:27
void Reset()
Definition: EventMap.cpp:20
uint8 _phase
Definition: boss_malygos.cpp:1018
void SetPhaseEvents()
Definition: boss_malygos.cpp:536
EventMap events
Definition: ScriptedCreature.h:371

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void boss_malygos::boss_malygosAI::SetPhaseEvents ( )
inline
537  {
538  switch (_phase)
539  {
540  case PHASE_NOT_STARTED:
543  break;
544  case PHASE_ONE:
549  break;
550  case PHASE_TWO:
553  break;
554  case PHASE_THREE:
559  break;
560  }
561  }
void DoAction(int32 action) override
Definition: boss_malygos.cpp:455
Definition: boss_malygos.cpp:60
Definition: boss_malygos.cpp:46
Definition: boss_malygos.cpp:45
uint8 _phase
Definition: boss_malygos.cpp:1018
Definition: boss_malygos.cpp:62
Definition: boss_malygos.cpp:44
Definition: boss_malygos.cpp:61
Definition: boss_malygos.cpp:88
Definition: boss_malygos.cpp:54
Definition: boss_malygos.cpp:89
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:45
Definition: boss_malygos.cpp:43
void ScheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:123
Definition: boss_malygos.cpp:87
Definition: Common.h:103
EventMap events
Definition: ScriptedCreature.h:371
Definition: boss_malygos.cpp:67
Definition: boss_malygos.cpp:39
Definition: boss_malygos.cpp:86
Definition: boss_malygos.cpp:185

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void boss_malygos::boss_malygosAI::SpellHit ( Unit caster,
SpellInfo const spell 
)
inlineoverridevirtual

Reimplemented from ScriptedAI.

662  {
663  if (spell->Id == SPELL_POWER_SPARK_MALYGOS)
664  {
665  if (Creature* creature = caster->ToCreature())
666  creature->DespawnOrUnsummon();
667 
669  }
670  else if (spell->Id == SPELL_MALYGOS_BERSERK)
672  }
Definition: Creature.h:467
Definition: boss_malygos.cpp:100
Definition: boss_malygos.cpp:213
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
Definition: boss_malygos.cpp:104
Definition: boss_malygos.cpp:218
Creature * ToCreature()
Definition: Object.h:194

+ Here is the call graph for this function:

void boss_malygos::boss_malygosAI::UpdateAI ( uint32  diff)
inlineoverridevirtual

Reimplemented from BossAI.

757  {
759  return;
760 
761  events.Update(diff);
762 
763  // we can't cast if we are casting already unless in PHASE_NOT_STARTED channeling PORTAL_BEAM
765  return;
766 
767  // at 50% hp Malygos switchs to phase 2 and removes hovering until reset or end of encounter
768  if (_phase == PHASE_ONE && me->GetHealthPct() <= 50.0f)
769  {
770  SetPhase(PHASE_TWO, true);
771  _canAttack = false;
772  me->AttackStop();
774  }
775 
776  while (uint32 eventId = events.ExecuteEvent())
777  {
778  switch (eventId)
779  {
782  break;
785  break;
786  case EVENT_RANDOM_PORTAL:
788  break;
791  {
792  me->SetFacingToObject(iris);
793  iris->Delete(); // this is not the best way.
794  }
795  _canAttack = true;
796  SetPhase(PHASE_ONE, true);
797  break;
798  case EVENT_SAY_INTRO:
801  break;
802  case EVENT_VORTEX:
803  _executingVortex = true;
806  break;
808  _canAttack = false;
809  me->AttackStop();
811  break;
812  case EVENT_POWER_SPARKS:
815  break;
816  case EVENT_ARCANE_BREATH:
817  if (_executingVortex)
818  {
820  break;
821  }
822 
825  break;
826  case EVENT_ARCANE_STORM:
827  if (_phase == PHASE_ONE)
828  {
829  if (_executingVortex)
830  {
832  break;
833  }
834 
837  }
838  else if (_phase == PHASE_THREE)
839  {
842  }
843  break;
846  {
848  {
849  Position randomPosOnRadius;
850  // Hardcodded retail value, reason is Z getters can fail... (TO DO: Change to getter when height calculation works on 100%!)
851  randomPosOnRadius.m_positionZ = 283.0521f;
852  alexstraszaBunny->GetNearPoint2D(randomPosOnRadius.m_positionX, randomPosOnRadius.m_positionY, 120.0f, alexstraszaBunny->GetAngle(me));
854  _flyingOutOfPlatform = true;
855  }
856  }
857 
859  {
860  for (uint8 rangeDisks = 0; rangeDisks < (GetDifficulty() == DIFFICULTY_10_N ? 4 : 5); rangeDisks++)
861  {
863 
864  if (casterDiskSummon->IsAIEnabled)
865  casterDiskSummon->AI()->DoAction(rangeDisks);
866  }
867 
868  for (uint8 meleeDisks = 0; meleeDisks < 2; meleeDisks++)
869  {
871  meleeDiskSummon->GetMotionMaster()->MovePoint(meleeDisks * MAX_MELEE_HOVER_DISK_SPAWNPOINTS, MeleeHoverDisksWaypoints[meleeDisks * MAX_MELEE_HOVER_DISK_SPAWNPOINTS]);
872  }
873 
874  _arcaneReinforcements = false;
875 
878  }
879  break;
881  for (uint8 rangeDisks = 5; rangeDisks < 8; rangeDisks++)
882  {
884 
885  if (casterDiskSummon->IsAIEnabled)
886  casterDiskSummon->AI()->DoAction(rangeDisks);
887  }
888 
889  for (uint8 meleeDisks = 2; meleeDisks < 4; meleeDisks++)
890  {
892  meleeDiskSummon->GetMotionMaster()->MovePoint(meleeDisks * MAX_MELEE_HOVER_DISK_SPAWNPOINTS, MeleeHoverDisksWaypoints[meleeDisks * MAX_MELEE_HOVER_DISK_SPAWNPOINTS]);
893  }
894  break;
898  break;
901  {
906  }
907  break;
910  {
911  me->StopMoving();
913  }
914 
916  {
918  if (Creature* lastArcaneOverloadBunny = ObjectAccessor::GetCreature(*me, _arcaneOverloadGUID))
919  DoCast(lastArcaneOverloadBunny, SPELL_ARCANE_BOMB_TRIGGER, true);
920  }
922  break;
923  case EVENT_ARCANE_PULSE:
924  if (_preparingPulsesChecker < 2)
925  {
929  }
930  else
931  {
934  }
935  break;
938  break;
941  break;
945  break;
946  case EVENT_START_P_THREE:
950  _canAttack = true;
951  UpdateVictim();
953  SetPhase(PHASE_THREE, true);
954  break;
957  {
958  if (Unit* tempSurgeTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, false, SPELL_RIDE_RED_DRAGON_BUDDY))
959  {
960  if (Vehicle* drakeVehicle = tempSurgeTarget->GetVehicleKit())
961  {
962  if (Unit* passenger = drakeVehicle->GetPassenger(0))
963  {
964  if (passenger->GetTypeId() == TYPEID_PLAYER)
965  {
967  DoCast(tempSurgeTarget, SPELL_SURGE_OF_POWER_PHASE_3_10, true);
968  }
969  }
970  }
971  }
972  }
973  else if (GetDifficulty() == DIFFICULTY_25_N)
974  {
975  memset(_surgeTargetGUID, 0, sizeof(_surgeTargetGUID));
977  }
978 
980  break;
981  case EVENT_STATIC_FIELD:
982  if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 60.0f, false, SPELL_RIDE_RED_DRAGON_BUDDY))
983  DoCast(target, SPELL_STATIC_FIELD_MISSLE, true);
984 
986  break;
988  _killSpamFilter = false;
989  break;
990  default:
991  break;
992  }
993  }
994 
995  if (_phase != PHASE_THREE)
997  }
void DoAction(int32 action) override
Definition: boss_malygos.cpp:455
Definition: boss_malygos.cpp:57
bool AttackStop()
Definition: Unit.cpp:7337
Definition: boss_malygos.cpp:38
Definition: boss_malygos.cpp:199
Definition: eye_of_eternity.h:50
Definition: Vehicle.h:32
void DoCastAOE(uint32 spellId, bool triggered=false)
Definition: UnitAI.cpp:167
Definition: boss_malygos.cpp:60
Definition: DBCEnums.h:407
Definition: boss_malygos.cpp:46
Position const MeleeHoverDisksWaypoints[MAX_MELEE_HOVER_DISK_WAYPOINTS]
Definition: boss_malygos.cpp:256
Definition: boss_malygos.cpp:117
bool UpdateVictim()
Definition: CreatureAI.cpp:233
Map * GetMap() const
Definition: Object.h:543
bool _canAttack
Definition: boss_malygos.cpp:1026
Definition: Unit.h:163
Definition: Unit.h:565
#define MAX_MELEE_HOVER_DISK_SPAWNPOINTS
Definition: boss_malygos.cpp:246
float m_positionY
Definition: Position.h:53
void SetPhase(uint8 phase, bool setEvents=false)
Definition: boss_malygos.cpp:527
Definition: boss_malygos.cpp:45
Definition: boss_malygos.cpp:163
uint8 _phase
Definition: boss_malygos.cpp:1018
Definition: boss_malygos.cpp:62
Definition: boss_malygos.cpp:312
Definition: boss_malygos.cpp:44
MotionMaster * GetMotionMaster()
Definition: Unit.h:2101
Definition: boss_malygos.cpp:162
bool _executingVortex
Definition: boss_malygos.cpp:1028
ObjectGuid _surgeTargetGUID[3]
Definition: boss_malygos.cpp:1023
Definition: boss_malygos.cpp:61
Definition: boss_malygos.cpp:40
float m_positionX
Definition: Position.h:52
Definition: boss_malygos.cpp:209
Definition: Creature.h:467
bool IsAIEnabled
Definition: Unit.h:2161
Definition: eye_of_eternity.h:51
Definition: boss_malygos.cpp:88
Definition: boss_malygos.cpp:66
Definition: boss_malygos.cpp:302
Definition: boss_malygos.cpp:55
Definition: boss_malygos.cpp:54
Difficulty GetDifficulty() const
Definition: ScriptedCreature.h:271
Definition: boss_malygos.cpp:51
Creature *const me
Definition: CreatureAI.h:71
Definition: boss_malygos.cpp:165
void MovePoint(uint32 id, Position const &pos, bool generatePath=true)
Definition: MotionMaster.h:172
Definition: boss_malygos.cpp:140
void SetFacingToObject(WorldObject const *object)
Definition: Unit.cpp:15787
virtual ObjectGuid GetGuidData(uint32 type) const override
Definition: InstanceScript.cpp:93
Definition: boss_malygos.cpp:187
Definition: boss_malygos.cpp:69
Definition: boss_malygos.cpp:164
Definition: boss_malygos.cpp:118
Definition: eye_of_eternity.h:40
Definition: UnitAI.h:35
Definition: boss_malygos.cpp:158
Definition: boss_malygos.cpp:144
Definition: boss_malygos.cpp:201
Unit * GetVictim() const
Definition: Unit.h:1379
Definition: boss_malygos.cpp:142
Definition: boss_malygos.cpp:89
uint32 urand(uint32 min, uint32 max)
Definition: Random.cpp:45
virtual void SetData(uint32, uint32)
Definition: ZoneScript.h:52
Definition: boss_malygos.cpp:50
CreatureAI * AI() const
Definition: Creature.h:525
Definition: boss_malygos.cpp:106
Unit * SelectTarget(SelectAggroTarget targetType, uint32 position=0, float dist=0.0f, bool playerOnly=false, int32 aura=0)
Definition: UnitAI.cpp:91
uint32_t uint32
Definition: Define.h:150
Definition: boss_malygos.cpp:43
ObjectGuid _arcaneOverloadGUID
Definition: boss_malygos.cpp:1021
bool _performingDestroyPlatform
Definition: boss_malygos.cpp:1033
Definition: eye_of_eternity.h:38
void DoCast(uint32 spellId)
Definition: UnitAI.cpp:101
Definition: DBCEnums.h:408
Definition: GameObject.h:880
virtual void DoAction(int32)
Definition: UnitAI.h:138
void Talk(uint8 id, WorldObject const *whisperTarget=nullptr)
Definition: CreatureAI.cpp:42
float m_positionZ
Definition: Position.h:54
Definition: eye_of_eternity.h:29
bool _arcaneReinforcements
Definition: boss_malygos.cpp:1029
Definition: boss_malygos.cpp:105
uint8 _preparingPulsesChecker
Definition: boss_malygos.cpp:1020
Definition: boss_malygos.cpp:131
void ScheduleEvent(uint32 eventId, Milliseconds const &time, uint32 group=0, uint8 phase=0)
Definition: EventMap.h:123
Definition: boss_malygos.cpp:56
TC_GAME_API Creature * GetCreature(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:174
void Update(uint32 time)
Definition: EventMap.h:54
Definition: boss_malygos.cpp:217
void RemoveFlag(uint16 index, uint32 oldFlag)
Definition: Object.cpp:1214
Definition: boss_malygos.cpp:87
Definition: boss_malygos.cpp:310
Definition: ObjectGuid.h:33
Definition: UpdateFields.h:109
Definition: boss_malygos.cpp:203
Position const RangeHoverDisksSpawnPositions[MAX_RANGE_HOVER_DISK_SPAWNPOINTS]
Definition: boss_malygos.cpp:234
bool _killSpamFilter
Definition: boss_malygos.cpp:1025
Definition: Common.h:103
void InterruptNonMeleeSpells(bool withDelayed, uint32 spellid=0, bool withInstant=true)
Definition: Unit.cpp:2916
uint32 ExecuteEvent()
Definition: EventMap.cpp:46
Position const MalygosPositions[MAX_MALYGOS_POS]
Definition: boss_malygos.cpp:281
TC_GAME_API GameObject * GetGameObject(WorldObject const &u, ObjectGuid const &guid)
Definition: ObjectAccessor.cpp:143
bool _flyingOutOfPlatform
Definition: boss_malygos.cpp:1030
Definition: boss_malygos.cpp:141
void DoMeleeAttackIfReady()
Definition: UnitAI.cpp:49
bool HasUnitState(const uint32 f) const
Definition: Unit.h:1395
uint8_t uint8
Definition: Define.h:152
Definition: Position.h:27
EventMap events
Definition: ScriptedCreature.h:371
bool _performingSurgeOfPower
Definition: boss_malygos.cpp:1032
Definition: boss_malygos.cpp:67
Definition: boss_malygos.cpp:145
Definition: boss_malygos.cpp:39
Definition: boss_malygos.cpp:65
Position const MeleeHoverDisksSpawnPositions[MAX_RANGE_HOVER_DISK_SPAWNPOINTS]
Definition: boss_malygos.cpp:247
void SetZoneOverrideLight(uint32 zoneId, uint32 lightId, uint32 fadeInTime)
Definition: Map.cpp:3943
Definition: boss_malygos.cpp:86
Definition: boss_malygos.cpp:53
Definition: Unit.h:1305
Definition: boss_malygos.cpp:138
void StopMoving()
-------—End of Pet responses methods-------—
Definition: Unit.cpp:12743
void CastSpell(SpellCastTargets const &targets, SpellInfo const *spellInfo, CustomSpellValues const *value, TriggerCastFlags triggerFlags=TRIGGERED_NONE, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:869
Definition: boss_malygos.cpp:95
Definition: Unit.h:698
void CastCustomSpell(Unit *victim, uint32 spellId, int32 const *bp0, int32 const *bp1, int32 const *bp2, bool triggered, Item *castItem=NULL, AuraEffect const *triggeredByAura=NULL, ObjectGuid originalCaster=ObjectGuid::Empty)
Definition: Unit.cpp:920
TempSummon * SummonCreature(uint32 id, Position const &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0) const
Definition: Object.cpp:2346
InstanceScript *const instance
Definition: ScriptedCreature.h:340
Definition: boss_malygos.cpp:185
Definition: boss_malygos.cpp:49
float GetHealthPct() const
Definition: Unit.h:1434
Definition: boss_malygos.cpp:139
Definition: boss_malygos.cpp:37

+ Here is the call graph for this function:

Member Data Documentation

ObjectGuid boss_malygos::boss_malygosAI::_arcaneOverloadGUID
private
bool boss_malygos::boss_malygosAI::_arcaneReinforcements
private
bool boss_malygos::boss_malygosAI::_canAttack
private
bool boss_malygos::boss_malygosAI::_despawned
private
bool boss_malygos::boss_malygosAI::_executingVortex
private
bool boss_malygos::boss_malygosAI::_firstCyclicMovementStarted
private
bool boss_malygos::boss_malygosAI::_flyingOutOfPlatform
private
float boss_malygos::boss_malygosAI::_flySpeed
private
bool boss_malygos::boss_malygosAI::_killSpamFilter
private
ObjectGuid boss_malygos::boss_malygosAI::_lastHitByArcaneBarrageGUID
private
bool boss_malygos::boss_malygosAI::_performingDestroyPlatform
private
bool boss_malygos::boss_malygosAI::_performingSurgeOfPower
private
uint8 boss_malygos::boss_malygosAI::_phase
private
uint8 boss_malygos::boss_malygosAI::_preparingPulsesChecker
private
uint8 boss_malygos::boss_malygosAI::_summonDeaths
private
ObjectGuid boss_malygos::boss_malygosAI::_surgeTargetGUID[3]
private

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