TrinityCore
Loading...
Searching...
No Matches
boss_malygos.cpp File Reference
#include "ScriptMgr.h"
#include "CombatAI.h"
#include "Containers.h"
#include "eye_of_eternity.h"
#include "GameObject.h"
#include "GridNotifiers.h"
#include "InstanceScript.h"
#include "Map.h"
#include "MotionMaster.h"
#include "ObjectAccessor.h"
#include "Player.h"
#include "ScriptedCreature.h"
#include "SpellInfo.h"
#include "SpellScript.h"
#include "TemporarySummon.h"
#include "Vehicle.h"
+ Include dependency graph for boss_malygos.cpp:

Go to the source code of this file.

Classes

class  VehicleCheckPredicate
 
struct  boss_malygos
 
struct  npc_portal_eoe
 
struct  npc_power_spark
 
struct  npc_melee_hover_disk
 
struct  npc_caster_hover_disk
 
struct  npc_nexus_lord
 
struct  npc_scion_of_eternity
 
struct  npc_arcane_overload
 
struct  npc_wyrmrest_skytalon
 
struct  npc_static_field
 
class  spell_malygos_portal_beam
 
class  spell_malygos_random_portal
 
class  IsCreatureVehicleCheck
 
class  spell_malygos_arcane_storm
 
class  spell_malygos_vortex_dummy
 
class  spell_malygos_vortex_visual
 
class  ExactDistanceCheck
 
class  spell_arcane_overload
 
class  spell_nexus_lord_align_disk_aggro
 
class  IsPlayerOnHoverDisk
 
class  spell_scion_of_eternity_arcane_barrage
 
class  spell_malygos_destroy_platform_channel
 
class  spell_alexstrasza_bunny_destroy_platform_boom_visual
 
class  spell_alexstrasza_bunny_destroy_platform_event
 
class  spell_wyrmrest_skytalon_summon_red_dragon_buddy
 
class  spell_wyrmrest_skytalon_ride_red_dragon_buddy_trigger
 
class  spell_malygos_surge_of_power_warning_selector_25
 
class  spell_malygos_surge_of_power_25
 
class  spell_alexstrasza_gift_beam
 
class  spell_alexstrasza_gift_beam_visual
 
class  achievement_denyin_the_scion
 

Macros

#define MAX_SUMMONS_PHASE_TWO_10MAN   6
 
#define MAX_SUMMONS_PHASE_TWO_25MAN   12
 
#define MAX_RANGE_HOVER_DISK_SPAWNPOINTS   8
 
#define MAX_MELEE_HOVER_DISK_SPAWNPOINTS   4
 
#define MAX_MELEE_HOVER_DISK_WAYPOINTS   16
 
#define MAX_MALYGOS_POS   10
 
#define TEN_MINUTES   (10*MINUTE*IN_MILLISECONDS)
 

Enumerations

enum  Events {
  EVENT_STOP_PORTAL_BEAM = 1 , EVENT_RANDOM_PORTAL = 2 , EVENT_SAY_INTRO = 3 , EVENT_LAND_START_ENCOUNTER = 4 ,
  EVENT_ARCANE_BREATH = 5 , EVENT_ARCANE_STORM = 6 , EVENT_VORTEX = 7 , EVENT_POWER_SPARKS = 8 ,
  EVENT_FLY_OUT_OF_PLATFORM = 9 , EVENT_DELAYED_REINFORCEMENTS = 10 , EVENT_PATHING_AROUND_PLATFORM = 11 , EVENT_SURGE_OF_POWER_P_TWO = 12 ,
  EVENT_SUMMON_ARCANE_BOMB = 13 , EVENT_MOVE_TO_POINT_SURGE_P_TWO = 14 , EVENT_LIGHT_DIMENSION_CHANGE = 15 , EVENT_MOVE_TO_P_THREE_POINT = 16 ,
  EVENT_START_P_THREE = 17 , EVENT_ARCANE_PULSE = 18 , EVENT_SURGE_OF_POWER_P_THREE = 19 , EVENT_STATIC_FIELD = 20 ,
  EVENT_PREVENT_SAY_SPAM_ON_KILL = 21 , EVENT_MOVE_TO_VORTEX_POINT = 22 , EVENT_START_FIRST_RANDOM_PORTAL = 23 , EVENT_DELAY_MOVE_TO_DESTROY_P = 24 ,
  EVENT_ARCANE_SHOCK = 1 , EVENT_HASTE_BUFF = 2 , EVENT_NUKE_DUMMY = 3 , EVENT_ARCANE_BARRAGE = 1 ,
  EVENT_CAST_RIDE_SPELL = 1
}
 
enum  Phases { PHASE_NOT_STARTED = 1 , PHASE_ONE = 2 , PHASE_TWO = 3 , PHASE_THREE = 4 }
 
enum  Spells {
  SPELL_RANDOM_PORTAL = 56047 , SPELL_PORTAL_BEAM = 56046 , SPELL_BERSERK = 60670 , SPELL_MALYGOS_BERSERK = 47008 ,
  SPELL_PORTAL_VISUAL_CLOSED = 55949 , SPELL_SUMMON_POWER_PARK = 56142 , SPELL_POWER_SPARK_DEATH = 55852 , SPELL_POWER_SPARK_MALYGOS = 56152 ,
  SPELL_ARCANE_BREATH = 56272 , SPELL_ARCANE_STORM_P_I = 61693 , SPELL_VORTEX_1 = 56237 , SPELL_VORTEX_2 = 55873 ,
  SPELL_VORTEX_3 = 56105 , SPELL_VORTEX_6 = 73040 , SPELL_TELEPORT_VISUAL_ONLY = 41232 , SPELL_RIDE_HOVER_DISK = 61421 ,
  SPELL_ALIGN_DISK_AGGRO = 61210 , SPELL_DUMMY_NUKE = 61215 , SPELL_SUMMON_ARCANE_BOMB = 56429 , SPELL_ARCANE_BOMB_TRIGGER = 56430 ,
  SPELL_ARCANE_BOMB_KNOCKBACK_DAMAGE = 56431 , SPELL_ARCANE_OVERLOAD_1 = 56432 , SPELL_SURGE_OF_POWER_P_II = 56505 , SPELL_ARCANE_SHOCK = 57058 ,
  SPELL_HASTE = 57060 , SPELL_ARCANE_BARRAGE = 56397 , SPELL_ARCANE_BARRAGE_DAMAGE = 63934 , SPELL_RIDE_RED_DRAGON_BUDDY = 56071 ,
  SPELL_SUMMON_RED_DRAGON_BUDDY_F_CAST = 58846 , SPELL_DESTROY_PLATFORM_CHANNEL = 58842 , SPELL_DESTROY_PLATFORM_BOOM_VISUAL = 59084 , SPELL_DESTROY_PLATFORM_EVENT = 59099 ,
  SPELL_CLEAR_ALL_DEBUFFS = 34098 , SPELL_IMMUNE_CURSES = 64515 , SPELL_STATIC_FIELD_MISSLE = 57430 , SPELL_ARCANE_PULSE = 57432 ,
  SPELL_SURGE_OF_POWER_PHASE_3_10 = 57407 , SPELL_SURGE_OF_POWER_PHASE_3_25 = 60936 , SPELL_SURGE_OF_POWER_WARNING_SELECTOR_25 = 60939 , SPELL_ARCANE_STORM_P_III = 57459 ,
  SPELL_ARCANE_STORM_EXTRA_VISUAL = 57473 , SPELL_ALEXSTRASZAS_GIFT_BEAM_VISUAL = 61023
}
 
enum  Movements {
  POINT_NEAR_RANDOM_PORTAL_P_NONE = 1 , POINT_LAND_P_ONE , POINT_VORTEX_P_ONE , POINT_LAND_AFTER_VORTEX_P_ONE ,
  POINT_LIFT_IN_AIR_P_ONE , POINT_PHASE_ONE_TO_TWO_TRANSITION , POINT_FLY_OUT_OF_PLATFORM_P_TWO , POINT_SURGE_OF_POWER_P_TWO ,
  POINT_DESTROY_PLATFORM_P_TWO , POINT_IDLE_P_THREE
}
 
enum  Seats { SEAT_0 = 0 }
 
enum  Actions {
  ACTION_LAND_ENCOUNTER_START = 0 , ACTION_EXECUTE_VORTEX = 1 , ACTION_HANDLE_P_THREE_INTRO = 2 , ACTION_LIFT_IN_AIR = 3 ,
  ACTION_HANDLE_RESPAWN = 4 , ACTION_CYCLIC_MOVEMENT = 5 , ACTION_DELAYED_DESPAWN = 8 , ACTION_SET_DISK_VICTIM_CHASE = 0
}
 
enum  Texts {
  SAY_INTRO_EVENT = 0 , SAY_START_P_ONE = 1 , SAY_DEEP_BREATH = 2 , SAY_KILLED_PLAYER_P_ONE = 3 ,
  SAY_END_P_ONE = 4 , SAY_ANTI_MAGIC_SHELL = 6 , SAY_MAGIC_BLAST = 7 , SAY_KILLED_PLAYER_P_TWO = 8 ,
  SAY_END_P_TWO = 9 , SAY_START_P_THREE = 10 , EMOTE_SURGE_OF_POWER_WARNING_P2 = 12 , SAY_SURGE_OF_POWER = 13 ,
  SAY_BUFF_SPARK = 14 , SAY_KILLED_PLAYER_P_THREE = 15 , SAY_SPELL_CASTING_P_THREE = 16 , SAY_DEATH = 17 ,
  EMOTE_SURGE_OF_POWER_WARNING_P3 = 18 , EMOTE_HIT_BERSERKER_TIMER = 19 , SAY_ONE = 0 , SAY_TWO = 1 ,
  SAY_THREE = 2 , SAY_FOUR = 3 , EMOTE_POWER_SPARK_SUMMONED = 0
}
 
enum  Achievements { ACHIEV_TIMED_START_EVENT = 20387 }
 
enum  AreaIds { AREA_EYE_OF_ETERNITY = 4500 }
 
enum  MiscData {
  LIGHT_DEFAULT = 1773 , LIGHT_OBSCURE_SPACE = 1822 , LIGHT_CHANGE_DIMENSIONS = 1823 , LIGHT_ARCANE_RUNES = 1824 ,
  LIGHT_OBSCURE_ARCANE_RUNES = 1825 , DATA_SUMMON_DEATHS = 0 , DATA_PHASE = 1 , DATA_LAST_OVERLOAD_GUID = 13 ,
  DATA_FIRST_SURGE_TARGET_GUID = 14 , DATA_LAST_TARGET_BARRAGE_GUID = 17 , NUM_MAX_SURGE_TARGETS = 3
}
 

Functions

void AddSC_boss_malygos ()
 

Variables

Position const RangeHoverDisksSpawnPositions [MAX_RANGE_HOVER_DISK_SPAWNPOINTS]
 
Position const MeleeHoverDisksSpawnPositions [MAX_RANGE_HOVER_DISK_SPAWNPOINTS]
 
Position const MeleeHoverDisksWaypoints [MAX_MELEE_HOVER_DISK_WAYPOINTS]
 
Position const MalygosPositions [MAX_MALYGOS_POS]
 
Position const AlexstraszaSpawnPos = { 854.551f, 1225.31f, 300.901f, 0.0f }
 
Position const HeartOfMagicSpawnPos = { 755.351f, 1298.31f, 223.909f, 0.0f }
 

Macro Definition Documentation

◆ MAX_MALYGOS_POS

#define MAX_MALYGOS_POS   10

Definition at line 279 of file boss_malygos.cpp.

◆ MAX_MELEE_HOVER_DISK_SPAWNPOINTS

#define MAX_MELEE_HOVER_DISK_SPAWNPOINTS   4

Definition at line 245 of file boss_malygos.cpp.

◆ MAX_MELEE_HOVER_DISK_WAYPOINTS

#define MAX_MELEE_HOVER_DISK_WAYPOINTS   16

Definition at line 254 of file boss_malygos.cpp.

◆ MAX_RANGE_HOVER_DISK_SPAWNPOINTS

#define MAX_RANGE_HOVER_DISK_SPAWNPOINTS   8

Definition at line 232 of file boss_malygos.cpp.

◆ MAX_SUMMONS_PHASE_TWO_10MAN

#define MAX_SUMMONS_PHASE_TWO_10MAN   6

Definition at line 229 of file boss_malygos.cpp.

◆ MAX_SUMMONS_PHASE_TWO_25MAN

#define MAX_SUMMONS_PHASE_TWO_25MAN   12

Definition at line 230 of file boss_malygos.cpp.

◆ TEN_MINUTES

#define TEN_MINUTES   (10*MINUTE*IN_MILLISECONDS)

Definition at line 292 of file boss_malygos.cpp.

Enumeration Type Documentation

◆ Achievements

Enumerator
ACHIEV_TIMED_START_EVENT 

Definition at line 294 of file boss_malygos.cpp.

◆ Actions

enum Actions
Enumerator
ACTION_LAND_ENCOUNTER_START 
ACTION_EXECUTE_VORTEX 
ACTION_HANDLE_P_THREE_INTRO 
ACTION_LIFT_IN_AIR 
ACTION_HANDLE_RESPAWN 
ACTION_CYCLIC_MOVEMENT 
ACTION_DELAYED_DESPAWN 
ACTION_SET_DISK_VICTIM_CHASE 

Definition at line 178 of file boss_malygos.cpp.

◆ AreaIds

enum AreaIds
Enumerator
AREA_EYE_OF_ETERNITY 

Definition at line 299 of file boss_malygos.cpp.

◆ Events

enum Events
Enumerator
EVENT_STOP_PORTAL_BEAM 
EVENT_RANDOM_PORTAL 
EVENT_SAY_INTRO 
EVENT_LAND_START_ENCOUNTER 
EVENT_ARCANE_BREATH 
EVENT_ARCANE_STORM 
EVENT_VORTEX 
EVENT_POWER_SPARKS 
EVENT_FLY_OUT_OF_PLATFORM 
EVENT_DELAYED_REINFORCEMENTS 
EVENT_PATHING_AROUND_PLATFORM 
EVENT_SURGE_OF_POWER_P_TWO 
EVENT_SUMMON_ARCANE_BOMB 
EVENT_MOVE_TO_POINT_SURGE_P_TWO 
EVENT_LIGHT_DIMENSION_CHANGE 
EVENT_MOVE_TO_P_THREE_POINT 
EVENT_START_P_THREE 
EVENT_ARCANE_PULSE 
EVENT_SURGE_OF_POWER_P_THREE 
EVENT_STATIC_FIELD 
EVENT_PREVENT_SAY_SPAM_ON_KILL 
EVENT_MOVE_TO_VORTEX_POINT 
EVENT_START_FIRST_RANDOM_PORTAL 
EVENT_DELAY_MOVE_TO_DESTROY_P 
EVENT_ARCANE_SHOCK 
EVENT_HASTE_BUFF 
EVENT_NUKE_DUMMY 
EVENT_ARCANE_BARRAGE 
EVENT_CAST_RIDE_SPELL 

Definition at line 39 of file boss_malygos.cpp.

◆ MiscData

enum MiscData
Enumerator
LIGHT_DEFAULT 
LIGHT_OBSCURE_SPACE 
LIGHT_CHANGE_DIMENSIONS 
LIGHT_ARCANE_RUNES 
LIGHT_OBSCURE_ARCANE_RUNES 
DATA_SUMMON_DEATHS 
DATA_PHASE 
DATA_LAST_OVERLOAD_GUID 
DATA_FIRST_SURGE_TARGET_GUID 
DATA_LAST_TARGET_BARRAGE_GUID 
NUM_MAX_SURGE_TARGETS 

Definition at line 304 of file boss_malygos.cpp.

◆ Movements

enum Movements
Enumerator
POINT_NEAR_RANDOM_PORTAL_P_NONE 
POINT_LAND_P_ONE 
POINT_VORTEX_P_ONE 
POINT_LAND_AFTER_VORTEX_P_ONE 
POINT_LIFT_IN_AIR_P_ONE 
POINT_PHASE_ONE_TO_TWO_TRANSITION 
POINT_FLY_OUT_OF_PLATFORM_P_TWO 
POINT_SURGE_OF_POWER_P_TWO 
POINT_DESTROY_PLATFORM_P_TWO 
POINT_IDLE_P_THREE 

Definition at line 159 of file boss_malygos.cpp.

◆ Phases

enum Phases
Enumerator
PHASE_NOT_STARTED 
PHASE_ONE 
PHASE_TWO 
PHASE_THREE 

Definition at line 89 of file boss_malygos.cpp.

◆ Seats

enum Seats
Enumerator
SEAT_0 

Definition at line 173 of file boss_malygos.cpp.

◆ Spells

enum Spells
Enumerator
SPELL_RANDOM_PORTAL 
SPELL_PORTAL_BEAM 
SPELL_BERSERK 
SPELL_MALYGOS_BERSERK 
SPELL_PORTAL_VISUAL_CLOSED 
SPELL_SUMMON_POWER_PARK 
SPELL_POWER_SPARK_DEATH 
SPELL_POWER_SPARK_MALYGOS 
SPELL_ARCANE_BREATH 
SPELL_ARCANE_STORM_P_I 
SPELL_VORTEX_1 
SPELL_VORTEX_2 
SPELL_VORTEX_3 
SPELL_VORTEX_6 
SPELL_TELEPORT_VISUAL_ONLY 
SPELL_RIDE_HOVER_DISK 
SPELL_ALIGN_DISK_AGGRO 
SPELL_DUMMY_NUKE 
SPELL_SUMMON_ARCANE_BOMB 
SPELL_ARCANE_BOMB_TRIGGER 
SPELL_ARCANE_BOMB_KNOCKBACK_DAMAGE 
SPELL_ARCANE_OVERLOAD_1 
SPELL_SURGE_OF_POWER_P_II 
SPELL_ARCANE_SHOCK 
SPELL_HASTE 
SPELL_ARCANE_BARRAGE 
SPELL_ARCANE_BARRAGE_DAMAGE 
SPELL_RIDE_RED_DRAGON_BUDDY 
SPELL_SUMMON_RED_DRAGON_BUDDY_F_CAST 
SPELL_DESTROY_PLATFORM_CHANNEL 
SPELL_DESTROY_PLATFORM_BOOM_VISUAL 
SPELL_DESTROY_PLATFORM_EVENT 
SPELL_CLEAR_ALL_DEBUFFS 
SPELL_IMMUNE_CURSES 
SPELL_STATIC_FIELD_MISSLE 
SPELL_ARCANE_PULSE 
SPELL_SURGE_OF_POWER_PHASE_3_10 
SPELL_SURGE_OF_POWER_PHASE_3_25 
SPELL_SURGE_OF_POWER_WARNING_SELECTOR_25 
SPELL_ARCANE_STORM_P_III 
SPELL_ARCANE_STORM_EXTRA_VISUAL 
SPELL_ALEXSTRASZAS_GIFT_BEAM_VISUAL 

Definition at line 97 of file boss_malygos.cpp.

◆ Texts

enum Texts
Enumerator
SAY_INTRO_EVENT 
SAY_START_P_ONE 
SAY_DEEP_BREATH 
SAY_KILLED_PLAYER_P_ONE 
SAY_END_P_ONE 
SAY_ANTI_MAGIC_SHELL 
SAY_MAGIC_BLAST 
SAY_KILLED_PLAYER_P_TWO 
SAY_END_P_TWO 
SAY_START_P_THREE 
EMOTE_SURGE_OF_POWER_WARNING_P2 
SAY_SURGE_OF_POWER 
SAY_BUFF_SPARK 
SAY_KILLED_PLAYER_P_THREE 
SAY_SPELL_CASTING_P_THREE 
SAY_DEATH 
EMOTE_SURGE_OF_POWER_WARNING_P3 
EMOTE_HIT_BERSERKER_TIMER 
SAY_ONE 
SAY_TWO 
SAY_THREE 
SAY_FOUR 
EMOTE_POWER_SPARK_SUMMONED 

Definition at line 195 of file boss_malygos.cpp.

Function Documentation

◆ AddSC_boss_malygos()

void AddSC_boss_malygos ( )

Definition at line 2117 of file boss_malygos.cpp.

+ Here is the caller graph for this function:

Variable Documentation

◆ AlexstraszaSpawnPos

Position const AlexstraszaSpawnPos = { 854.551f, 1225.31f, 300.901f, 0.0f }

Definition at line 289 of file boss_malygos.cpp.

◆ HeartOfMagicSpawnPos

Position const HeartOfMagicSpawnPos = { 755.351f, 1298.31f, 223.909f, 0.0f }

Definition at line 290 of file boss_malygos.cpp.

◆ MalygosPositions

Position const MalygosPositions[MAX_MALYGOS_POS]
Initial value:
=
{
{ 754.544f, 1301.71f, 320.01f, 0.0f },
{ 754.393f, 1301.27f, 292.91f, 0.0f },
{ 754.362f, 1301.61f, 266.17f, 0.0f },
{ 754.695f, 1301.66f, 316.65f, 0.0f },
{ 755.681f, 1298.41f, 220.06f, 0.0f }
}

Definition at line 280 of file boss_malygos.cpp.

◆ MeleeHoverDisksSpawnPositions

Position const MeleeHoverDisksSpawnPositions[MAX_RANGE_HOVER_DISK_SPAWNPOINTS]
Initial value:
=
{
{ 754.4617f, 1283.859f, 285.0522f, 0.0f },
{ 771.7864f, 1301.853f, 285.0522f, 0.0f },
{ 753.9635f, 1319.003f, 285.0522f, 0.0f },
{ 736.4914f, 1301.683f, 285.0522f, 0.0f }
}

Definition at line 246 of file boss_malygos.cpp.

◆ MeleeHoverDisksWaypoints

Position const MeleeHoverDisksWaypoints[MAX_MELEE_HOVER_DISK_WAYPOINTS]
Initial value:
=
{
{ 766.2931f, 1312.904f, 277.0551f, 0.0f },
{ 754.3397f, 1319.759f, 274.0536f, 0.0f },
{ 742.1018f, 1312.714f, 270.1367f, 0.0f },
{ 735.6851f, 1301.422f, 266.7208f, 0.0f },
{ 742.6257f, 1313.471f, 275.9713f, 0.0f },
{ 736.8845f, 1301.921f, 274.0264f, 0.0f },
{ 742.6632f, 1289.951f, 269.8603f, 0.0f },
{ 754.3682f, 1283.942f, 266.6098f, 0.0f },
{ 742.2078f, 1290.518f, 276.2484f, 0.0f },
{ 754.5398f, 1284.311f, 273.5815f, 0.0f },
{ 766.5588f, 1290.345f, 269.6655f, 0.0f },
{ 773.4768f, 1301.474f, 266.5821f, 0.0f },
{ 766.1189f, 1290.197f, 276.9436f, 0.0f },
{ 771.9507f, 1301.602f, 273.9712f, 0.0f },
{ 766.1253f, 1313.451f, 270.4991f, 0.0f },
{ 754.5378f, 1319.399f, 266.6653f, 0.0f }
}

Definition at line 255 of file boss_malygos.cpp.

◆ RangeHoverDisksSpawnPositions

Position const RangeHoverDisksSpawnPositions[MAX_RANGE_HOVER_DISK_SPAWNPOINTS]
Initial value:
=
{
{ 782.9821f, 1296.652f, 282.1114f, 0.0f },
{ 764.3126f, 1328.871f, 282.3091f, 0.0f },
{ 725.8506f, 1306.749f, 282.2698f, 0.0f },
{ 744.5175f, 1274.396f, 282.3402f, 0.0f },
{ 764.3936f, 1274.371f, 282.6011f, 0.0f },
{ 779.3761f, 1316.166f, 282.1653f, 0.0f },
{ 744.4915f, 1328.901f, 282.2112f, 0.0f },
{ 729.2364f, 1287.328f, 282.4173f, 0.0f }
}

Definition at line 233 of file boss_malygos.cpp.