TrinityCore
npc_arthas.cpp File Reference
#include "culling_of_stratholme.h"
#include "GameObject.h"
#include "InstanceScript.h"
#include "Log.h"
#include "Map.h"
#include "MotionMaster.h"
#include "MoveSplineInit.h"
#include "ObjectAccessor.h"
#include "PassiveAI.h"
#include "Player.h"
#include "Random.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "ScriptMgr.h"
#include "ScriptSystem.h"
#include "SpellScript.h"
#include "SplineChainMovementGenerator.h"
#include "TemporarySummon.h"
#include <array>
#include <unordered_map>
#include <vector>
+ Include dependency graph for npc_arthas.cpp:

Classes

struct  SnapbackInfo
 
class  npc_arthas_stratholme
 
struct  npc_arthas_stratholme::npc_arthas_stratholmeAI
 
struct  npc_stratholme_rp_dummy
 
class  spell_stratholme_crusader_strike
 

Enumerations

enum  Entries {
  NPC_TIME_RIFT = 28409, NPC_GUARDIAN_OF_TIME = 32281, NPC_MALGANIS_BUNNY = 20562, NPC_UTHER = 26528,
  NPC_JAINA = 26497, NPC_CITIZEN = 28167, NPC_RESIDENT = 28169, NPC_FOOTMAN = 27745,
  NPC_KNIGHT = 27746, NPC_PRIEST = 27747, NPC_SORCERESS = 27752, NPC_RISEN_ZOMBIE = 27737,
  NPC_CITIZEN_INFINITE = 28340, NPC_RESIDENT_INFINITE = 28341, NPC_TIME_RIFT = 28409, NPC_TIME_RIFT_LARGE = 28439,
  NPC_INFINITE_ADVERSARY = 27742, NPC_INFINITE_HUNTER = 27743, NPC_INFINITE_AGENT = 27744, NPC_EPOCH = 26532,
  NPC_MALGANIS = 26533, NPC_CHROMIE_3 = 30997, SPELL_HOLY_LIGHT = 52444, SPELL_EXORCISM = 52445,
  SPELL_DEVOTION_AURA = 52442, SPELL_CRUSADER_STRIKE = 50773, SPELL_SHADOWSTEP_VISUAL = 51908, SPELL_TRANSFORM_VISUAL = 33133,
  SPELL_MALGANIS_QUEST_CREDIT = 58124, SPELL_MALGANIS_KILL_CREDIT = 58630, SPELL_CHROMIE_3_TRANSFORM = 58986, GO_CHEST_NORMAL = 190663,
  GO_CHEST_HEROIC = 193597, NPC_LAVA_FISSURE = 43242, NPC_STALACTITE_TRIGGER_GROUND = 43357, NPC_STALACTITE_TRIGGER = 43159,
  GO_STALACTITE = 204337
}
 
enum  SplineChains {
  RP1_CHAIN_ARTHAS1 = 1, RP1_CHAIN_UTHER1 = 1, RP1_CHAIN_JAINA1 = 1, RP1_CHAIN_ARTHAS2 = 2,
  RP1_CHAIN_UTHER2 = 2, RP1_CHAIN_JAINA2 = 2, RP1_CHAIN_UTHER3 = 3, RP1_CHAIN_JAINA3 = 3,
  RP1_CHAIN_JAINA4 = 4, RP1_CHAIN_ARTHAS3 = 3, RP1_CHAIN_ARTHAS4 = 4, RP2_CHAIN_ARTHAS1 = 5,
  RP2_CHAIN_CITIZEN1 = 1, RP2_CHAIN_ARTHAS2 = 6, RP2_CHAIN_ARTHAS3 = 7, RP3_CHAIN_ARTHAS1 = 91,
  RP3_CHAIN_ARTHAS2 = 92, RP3_CHAIN_ARTHAS3 = 95, RP3_CHAIN_ARTHAS3_2 = 96, RP3_CHAIN_ARTHAS4 = 97,
  RP3_CHAIN_ARTHAS5 = 98, RP3_CHAIN_EPOCH = 1, RP3_CHAIN_SPAWN1_LOC1 = 4, RP3_CHAIN_SPAWN1_LOC2 = 2,
  RP3_CHAIN_SPAWN1_LOC3 = 1, RP3_CHAIN_SPAWN1_LOC4 = 3, RP3_CHAIN_SPAWN2_LOC1 = 5, RP3_CHAIN_SPAWN2_LOC2 = 6,
  RP3_CHAIN_SPAWN2_LOC3 = 7, RP3_CHAIN_SPAWN2_LOC4 = 8, RP3_CHAIN_SPAWN3_LOC1 = 9, RP3_CHAIN_SPAWN3_LOC2 = 10,
  RP3_CHAIN_SPAWN3_LOC3 = 11, RP3_CHAIN_SPAWN3_LOC4 = 12, RP4_CHAIN_ARTHAS1 = 101, RP4_CHAIN_ARTHAS2 = 128,
  RP4_CHAIN_GAUNTLET1 = 1024, RP4_CHAIN_GAUNTLET2 = 1025, RP5_CHAIN_ARTHAS1 = 121, RP5_CHAIN_ARTHAS2 = 124,
  RP5_CHAIN_ARTHAS3 = 125, RP5_CHAIN_ARTHAS4 = 127
}
 
enum  PointIDs {
  RP1_POINTID_UTHER1 = 1, RP1_POINTID_ARTHAS2, RP1_POINTID_UTHER2, RP1_POINTID_JAINA2,
  RP1_POINTID_UTHER3, RP1_POINTID_JAINA4, RP1_POINTID_ARTHAS3, RP1_POINTID_ARTHAS4,
  RP2_POINTID_ARTHAS1, RP2_POINTID_ARTHAS2, RP2_POINTID_ARTHAS3, RP3_POINTID_TOWN_HALL,
  RP3_POINTID_ARTHAS1, RP3_POINTID_ARTHAS2, RP3_POINTID_ARTHAS3, RP3_POINTID_ARTHAS4,
  RP3_POINTID_ARTHAS5, RP4_POINTID_ARTHAS1, RP4_POINTID_ARTHAS2, RP4_POINTID_GAUNTLET1,
  RP4_POINTID_GAUNTLET2, RP5_POINTID_ARTHAS1, RP5_POINTID_ARTHAS3, RP5_POINTID_ARTHAS4
}
 
enum  Actions {
  ACTION_GUNSHIP_READY = 1, ACTION_INTRO = 1, ACTION_DEACTIVATE = 0, ACTION_ENRAGE,
  ACTION_CHANNEL_WORLD_TREE, ACTION_NONE = 0, RP3_ACTION_AFTER_INITIAL, RP3_ACTION_AFTER_SPAWN1,
  RP3_ACTION_AFTER_SPAWN2, RP3_ACTION_AFTER_SPAWN3, RP3_ACTION_AFTER_EPOCH, RP5_ACTION_AFTER_MALGANIS,
  ACTION_EQUIP_DEFAULT = 1, ACTION_EQUIP_INFERNO_BLADE = 2, ACTION_EQUIP_DECIMATION_BLADE = 3, ACTION_DISABLE_BEACON,
  ACTION_EXPLODE = 0, ACTION_STONE_PHASE_START = 1, ACTION_STONE_PHASE_END = 2, ACTION_TRIGGER_WEAKNESS = 1,
  ACTION_FLESH_TENTACLE_KILLED = 1, ACTION_STALACTITE_MISSLE, ACTION_PET_DIED = 1, ACTION_PET_EVADE,
  ACTION_HADRONOX_MOVE = 1, ACTION_CRUSHER_ENGAGED, ACTION_PACK_WALK, ACTION_GASHRA_DIED,
  ACTION_NARJIL_DIED, ACTION_SILTHIK_DIED, ACTION_WATCHER_ENGAGED, ACTION_PET_ENGAGED,
  ACTION_PET_EVADE, ACTION_CLONE = 1, ACTION_METEOR_STRIKE_BURN = 1, ACTION_METEOR_STRIKE_AOE = 2,
  ACTION_MONITOR_CORPOREALITY = 3, ACTION_WARNING_SHOOT = 4, ACTION_SHOOT = 5, ACTION_ACTIVATE_EMBERS = 6,
  ACTION_VORTEX, ACTION_PACT, ACTION_OUTRO = 1, ACTION_STORE_OLD_TARGET,
  ACTION_RESET_THREAT, ACTION_START_INTRO = 1, ACTION_START_RIMEFANG = 2, ACTION_START_OUTRO = 3,
  ACTION_END_COMBAT = 4, ACTION_START_INTRO = 1, ACTION_INTRO_DONE, ACTION_STAND_UP,
  ACTION_CAST_INVOCATION, ACTION_REMOVE_INVOCATION, ACTION_KINETIC_BOMB_JUMP, ACTION_FLAME_BALL_CHASE,
  ACTION_START_EVENT = -3781300, ACTION_CONTINUE_INTRO = -3781301, ACTION_CHARGE = -3781302, ACTION_START_OUTRO = -3781303,
  ACTION_DESPAWN = -3781304, ACTION_INTERRUPT_INTRO = -3781305, ACTION_MARK_OF_THE_FALLEN_CHAMPION = -72293, ACTION_START_INTRO,
  ACTION_CLEAR_SPIKE_IMMUNITIES = 1, ACTION_TALK_ENTER_ZONE = 2, ACTION_BEGIN_MOVEMENT = 1, ACTION_BEGIN_FIGHTING,
  ACTION_GATE_OPENED = 1, ACTION_MINION_EVADE, ACTION_ACQUIRE_TARGET, ACTION_BEGIN_ENCOUNTER,
  ACTION_JUST_SUMMONED, ACTION_ABOMINATION_DIED, ACTION_KELTHUZAD_DIED, 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, ACTION_SET_NORMAL_EVENTS = 1,
  ACTION_START_INTRO = 0, ACTION_ACTIVATE_STAR, ACTION_BIG_BANG, ACTION_ASCEND,
  ACTION_OUTRO, ACTION_INTRO_2, ACTION_REMOVE_BUFF = 20, DO_START_MKII,
  DO_HARDMODE_MKII, DO_ACTIVATE_VX001, DO_START_VX001, DO_HARDMODE_VX001,
  DO_ACTIVATE_AERIAL, DO_START_AERIAL, DO_HARDMODE_AERIAL, DO_DISABLE_AERIAL,
  DO_ENABLE_AERIAL, DO_ACTIVATE_V0L7R0N_1, DO_ACTIVATE_V0L7R0N_2, DO_ASSEMBLED_COMBAT,
  DO_ACTIVATE_HARD_MODE, DO_ACTIVATE_COMPUTER, DO_DEACTIVATE_COMPUTER, DO_ACTIVATE_SELF_DESTRUCT,
  DO_ENCOUNTER_DONE, ACTION_START_FIGHT = 1, ACTION_FIX_HARPOONS, ACTION_GROUND_PHASE,
  ACTION_ENGINEER_DEAD, ACTION_SHACKLE_RAZORSCALE, ACTION_START_PERMA_GROUND, ACTION_RETURN_TO_BASE,
  ACTION_BUILD_HARPOON_1, ACTION_BUILD_HARPOON_2, ACTION_BUILD_HARPOON_3, ACTION_BUILD_HARPOON_4,
  ACTION_DESTROY_HARPOONS, ACTION_STOP_CONTROLLERS, ACTION_STOP_CAST, ACTION_INCREASE_PREADDS_COUNT,
  ACTION_ACTIVATE_RUNIC_SMASH, ACTION_ACTIVATE_ADDS, ACTION_PILLAR_CHARGED, ACTION_START_HARD_MODE,
  ACTION_BERSERK, ACTION_ENTER_HARD_MODE, ACTION_START_PHASE_HEART, ACTION_DISPOSE_HEART,
  ACTION_PHASE_TRANSFORM = 0, ACTION_PHASE_TWO = 1, ACTION_PHASE_THREE = 2, ACTION_INDUCE_MADNESS = 3,
  ACTION_SANITY_WELLS = 4, ACTION_FLASH_FREEZE = 5, ACTION_TENTACLE_KILLED = 6, ACTION_START_ROLEPLAY = 8,
  ACTION_TOGGLE_SHATTERED_ILLUSION = 9, ACTION_OTHER_JUST_DIED = 1, ACTION_DESPAWN_SUMMONS = 2, ACTION_START_ENCOUNTER = 0,
  ACTION_DRAKE_BREATH, ACTION_GAUNTLET_END, ACTION_HARPOON_HIT, ACTION_WATER_GLOBULE_HIT = 1,
  ACTION_PROTECTIVE_BUBBLE_SHATTERED = 2, ACTION_DRAINED = 3, ACTION_START_SPAWNING = 0, ACTION_STOP_SPAWNING = 1,
  ACTION_DESPAWN_ALL_SPAWNS = 2, ACTION_SHADE_OF_AKAMA_DEAD = 3, ACTION_BROKEN_SPECIAL = 4, ACTION_BROKEN_EMOTE = 5,
  ACTION_BROKEN_HAIL = 6, ACTION_DISABLE_VULCANO = 1, ACTION_START_INTRO = 1, ACTION_START_EVENT = -2574500,
  ACTION_STOP_EVENT = -2574501, ACTION_AHUNE_RETREAT = -2586500, ACTION_AHUNE_RESURFACE = -2586501, ACTION_EMOTE_RESURFACE = -2575400,
  ACTION_START_ENCOUNTER, ACTION_REVIVE_ADVISORS, ACTION_PREPARE_ADVISORS, ACTION_ACTIVE_ADVISOR,
  ACTION_SCHEDULE_COMBAT_EVENTS
}
 
enum  Data {
  DATA_LAST_FIRED_CANNON = 0, DATA_RP_DUMMY_MOVED, DATA_CRUSHER_PACK_ID = 1, DATA_HADRONOX_ENTERED_COMBAT,
  DATA_HADRONOX_WEBBED_DOORS, DATA_PET_GROUP, DATA_SETUP_MINE, DATA_SETUP_BOMB,
  DATA_SETUP_ROCKET, DATA_NOT_SO_FRIENDLY_FIRE, DATA_FIREFIGHTER, DATA_WATERSPRAY,
  DATA_MOVE_NEW, DATA_CHARGED_PILLAR = 1
}
 
enum  RPEvents {
  RP1_EVENT_START1 = 1, RP1_EVENT_START2, RP1_EVENT_ARTHAS1, RP1_EVENT_UTHER1,
  RP1_EVENT_ARTHAS2, RP1_EVENT_ARTHAS3, RP1_EVENT_UTHER_FACE, RP1_EVENT_JAINA_FACE,
  RP1_EVENT_UTHER2, RP1_EVENT_ARTHAS4, RP1_EVENT_UTHER3, RP1_EVENT_ARTHAS_TURN,
  RP1_EVENT_ARTHAS5, RP1_EVENT_UTHER4, RP1_EVENT_ARTHAS6, RP1_EVENT_UTHER5,
  RP1_EVENT_ARTHAS7, RP1_EVENT_JAINA1, RP1_EVENT_ARTHAS8, RP1_EVENT_ARTHAS8_2,
  RP1_EVENT_UTHER6, RP1_EVENT_UTHER_LEAVE, RP1_EVENT_JAINA_LEAVE, RP1_EVENT_ARTHAS9,
  RP1_EVENT_JAINA2, RP1_EVENT_JAINA_LEAVE2, RP1_EVENT_ARTHAS_LEAVE, RP1_EVENT_ARTHAS10,
  RP1_EVENT_ARTHAS_LEAVE2, RP1_EVENT_FINISHED, RP2_EVENT_ARTHAS_MOVE_1, RP2_EVENT_CITIZEN1,
  RP2_EVENT_ARTHAS2, RP2_EVENT_ARTHAS_MOVE_2, RP2_EVENT_CITIZEN2, RP2_EVENT_KILL1,
  RP2_EVENT_ARTHAS_MOVE_3, RP2_EVENT_KILL2, RP2_EVENT_REACT1, RP2_EVENT_REACT2,
  RP2_EVENT_REACT3, RP2_EVENT_REACT4, RP2_EVENT_REACT5, RP2_EVENT_ARTHAS_MOVE_4,
  RP2_EVENT_ARTHAS3, RP2_EVENT_MALGANIS1, RP2_EVENT_TROOPS_FACE, RP2_EVENT_ARTHAS_FACE,
  RP2_EVENT_MALGANIS2, RP2_EVENT_MALGANIS_LEAVE1, RP2_EVENT_MALGANIS_LEAVE2, RP2_EVENT_ARTHAS4,
  RP2_EVENT_ARTHAS4_2, RP2_EVENT_ARTHAS_MOVE_5, RP2_EVENT_ARTHAS5, RP2_EVENT_ARTHAS5_2,
  RP2_EVENT_ARTHAS5_3, RP2_EVENT_WAVE_START, EVENT_TOWN_HALL_REACHED, RP3_EVENT_RESIDENT_FACE,
  RP3_EVENT_ARTHAS_FACE, RP3_EVENT_CITIZEN1, RP3_EVENT_ARTHAS2, RP3_EVENT_ARTHAS_KILL,
  RP3_EVENT_INFINITE_LAUGH, RP3_EVENT_ARTHAS3, RP3_EVENT_CITIZEN2, RP3_EVENT_TRANSFORM1,
  RP3_EVENT_TRANSFORM2, RP3_EVENT_TRANSFORM3, RP3_EVENT_AGGRO, RP3_EVENT_ARTHAS4,
  RP3_EVENT_ARTHAS_MOVE_1, RP3_EVENT_ARTHAS_MOVE_1_2, RP3_EVENT_SPAWN1, RP3_EVENT_SPAWN1_FACE,
  RP3_EVENT_SPAWN1_AGGRO, RP3_EVENT_ARTHAS11, RP3_EVENT_ARTHAS_MOVE_2, RP3_EVENT_ARTHAS20,
  RP3_EVENT_SPAWN2, RP3_EVENT_ARTHAS_FACE2, RP3_EVENT_SPAWN2_FACE, RP3_EVENT_SPAWN2_AGGRO,
  RP3_EVENT_ARTHAS21, RP3_EVENT_ARTHAS_MOVE_3, RP3_EVENT_SPAWN3, RP3_EVENT_ARTHAS30,
  RP3_EVENT_SPAWN3_FACE, RP3_EVENT_SPAWN3_AGGRO, RP3_EVENT_EPOCH_SPAWN, RP3_EVENT_ARTHAS31,
  RP3_EVENT_EPOCH_FACE, RP3_EVENT_EPOCH1, RP3_EVENT_ARTHAS32, RP3_EVENT_ARTHAS32_2,
  RP3_EVENT_EPOCH_AGGRO, RP4_EVENT_ARTHAS2, RP4_EVENT_HIDDEN_PASSAGE, RP4_EVENT_ARTHAS3,
  RP4_EVENT_GAUNTLET_REACHED, RP4_EVENT_ARTHAS_MOVE, RP4_EVENT_ARTHAS11, RP4_EVENT_ARTHAS_FACE,
  RP4_EVENT_ARTHAS12, RP4_EVENT_GAUNTLET_RESUME, RP4_EVENT_ARTHAS13, RP4_EVENT_GAUNTLET_DONE,
  RP5_EVENT_ARTHAS2, RP5_EVENT_MALGANIS1, RP5_EVENT_MALGANIS_DONE, RP5_EVENT_MALGANIS12,
  RP5_EVENT_MALGANIS_LEAVE, RP5_EVENT_ARTHAS10, RP5_EVENT_ARTHAS10_2, RP5_EVENT_ARTHAS11,
  RP5_EVENT_ARTHAS11_2, RP5_EVENT_ARTHAS_LEAVE, RP5_EVENT_ARTHAS_LEAVE2, RP5_EVENT_CHROMIE_SPAWN,
  RP5_EVENT_CHROMIE_LAND, RP5_EVENT_CHROMIE_TRANSFORM
}
 
enum  RPEventLines1 {
  RP1_LINE_ARTHAS1 = 0, RP1_LINE_UTHER1 = 0, RP1_LINE_ARTHAS2 = 1, RP1_LINE_ARTHAS3 = 2,
  RP1_LINE_UTHER2 = 1, RP1_LINE_ARTHAS4 = 3, RP1_LINE_UTHER3 = 2, RP1_LINE_ARTHAS5 = 4,
  RP1_LINE_UTHER4 = 3, RP1_LINE_ARTHAS6 = 5, RP1_LINE_UTHER5 = 4, RP1_LINE_ARTHAS7 = 6,
  RP1_LINE_JAINA1 = 0, RP1_LINE_ARTHAS8 = 7, RP1_LINE_UTHER6 = 5, RP1_LINE_ARTHAS9 = 8,
  RP1_LINE_JAINA2 = 1, RP1_LINE_ARTHAS10 = 9, RP1_LINE_ARTHAS11 = 40
}
 
enum  RPEventLines2 {
  RP2_LINE_ARTHAS1 = 10, RP2_LINE_CITIZEN1 = 0, RP2_LINE_ARTHAS2 = 11, RP2_LINE_CITIZEN2 = 1,
  RP2_LINE_RESIDENT1 = 0, RP2_LINE_ARTHAS3 = 12, RP2_LINE_MALGANIS1 = 0, RP2_LINE_MALGANIS2 = 1,
  RP2_LINE_ARTHAS4 = 13, RP2_LINE_ARTHAS5 = 14
}
 
enum  RPEventLines3 {
  RP3_LINE_ARTHAS1 = 16, RP3_LINE_CITIZEN1 = 0, RP3_LINE_ARTHAS2 = 17, RP3_LINE_ARTHAS3 = 18,
  RP3_LINE_CITIZEN2 = 1, RP3_LINE_ARTHAS4 = 19, RP3_LINE_ARTHAS10 = 20, RP3_LINE_ARTHAS11 = 21,
  RP3_LINE_ARTHAS20 = 22, RP3_LINE_ARTHAS21 = 24, RP3_LINE_ARTHAS30 = 25, RP3_LINE_ARTHAS31 = 26,
  RP3_LINE_EPOCH1 = 0, RP3_LINE_ARTHAS32 = 27, RP3_LINE_EPOCH2 = 1
}
 
enum  RPEventLines4 {
  RP4_LINE_ARTHAS1 = 28, RP4_LINE_ARTHAS2 = 29, RP4_LINE_ARTHAS3 = 30, RP4_LINE_ARTHAS10 = 31,
  RP4_LINE_ARTHAS11 = 32, RP4_LINE_ARTHAS12 = 33, RP4_LINE_ARTHAS13 = 34
}
 
enum  RPEventLines5 {
  RP5_LINE_ARTHAS1 = 35, RP5_LINE_ARTHAS2 = 36, RP5_LINE_MALGANIS1 = 2, RP5_LINE_MALGANIS12 = 10,
  RP5_LINE_ARTHAS10 = 37, RP5_LINE_ARTHAS11 = 38, RP5_LINE_CHROMIE0 = 0
}
 
enum  PositionIndices : uint32 {
  RP1_ARTHAS_INITIAL = 0, RP1_UTHER_SPAWN, RP1_JAINA_SPAWN, ARTHAS_PURGE_PENDING_POS,
  ARTHAS_WAVES_POS, RP2_PRIEST1_POS, RP2_PRIEST2_POS, RP2_FOOT1_POS,
  RP2_FOOT2_POS, RP2_FOOT3_POS, RP2_FOOT4_POS, RP2_MALGANIS_POS,
  ARTHAS_TOWN_HALL_POS, RP3_SPAWN1_LOC1, RP3_SPAWN1_LOC2, RP3_SPAWN1_LOC3,
  RP3_SPAWN1_LOC4, RP3_SPAWN1_RIFT, RP3_SPAWN2_LOC1, RP3_SPAWN2_LOC2,
  RP3_SPAWN2_LOC3, RP3_SPAWN2_LOC4, RP3_SPAWN2_RIFT1, RP3_SPAWN2_RIFT2,
  RP3_SPAWN3_LOC1, RP3_SPAWN3_LOC2, RP3_SPAWN3_LOC3, RP3_SPAWN3_LOC4,
  RP3_SPAWN3_RIFT1, RP3_SPAWN3_RIFT2, RP3_EPOCH_SPAWN, RP3_EPOCH_RIFT,
  ARTHAS_TOWN_HALL_END_POS, ARTHAS_GAUNTLET_POS, ARTHAS_GAUNTLET_END_POS, RP5_MALGANIS_POS,
  ARTHAS_FINAL_POS, RP5_CHROMIE_SPAWN, NUM_POSITIONS
}
 
enum  OtherLines { LINE_TOWN_HALL_PENDING = 15, LINE_SLAY_ZOMBIE = 39 }
 

Functions

Position const & GetArthasSnapbackFor (COSProgressStates state)
 
void AddSC_npc_arthas_stratholme ()
 

Variables

static std::array< Position, NUM_POSITIONS > const ArthasPositions
 
uint32 const chromiePathSize = 3
 
G3D::Vector3 const ChromieSplinePos [chromiePathSize]
 
static float const ArthasSnapbackDistanceThreshold = 5.0f
 
static std::unordered_map< uint32, SnapbackInfo > const ArthasSnapbackPositions
 

Enumeration Type Documentation

◆ Actions

enum Actions
Enumerator
ACTION_GUNSHIP_READY 
ACTION_INTRO 
ACTION_DEACTIVATE 
ACTION_ENRAGE 
ACTION_CHANNEL_WORLD_TREE 
ACTION_NONE 
RP3_ACTION_AFTER_INITIAL 
RP3_ACTION_AFTER_SPAWN1 
RP3_ACTION_AFTER_SPAWN2 
RP3_ACTION_AFTER_SPAWN3 
RP3_ACTION_AFTER_EPOCH 
RP5_ACTION_AFTER_MALGANIS 
ACTION_EQUIP_DEFAULT 
ACTION_EQUIP_INFERNO_BLADE 
ACTION_EQUIP_DECIMATION_BLADE 
ACTION_DISABLE_BEACON 
ACTION_EXPLODE 
ACTION_STONE_PHASE_START 
ACTION_STONE_PHASE_END 
ACTION_TRIGGER_WEAKNESS 
ACTION_FLESH_TENTACLE_KILLED 
ACTION_STALACTITE_MISSLE 
ACTION_PET_DIED 
ACTION_PET_EVADE 
ACTION_HADRONOX_MOVE 
ACTION_CRUSHER_ENGAGED 
ACTION_PACK_WALK 
ACTION_GASHRA_DIED 
ACTION_NARJIL_DIED 
ACTION_SILTHIK_DIED 
ACTION_WATCHER_ENGAGED 
ACTION_PET_ENGAGED 
ACTION_PET_EVADE 
ACTION_CLONE 
ACTION_METEOR_STRIKE_BURN 
ACTION_METEOR_STRIKE_AOE 
ACTION_MONITOR_CORPOREALITY 
ACTION_WARNING_SHOOT 
ACTION_SHOOT 
ACTION_ACTIVATE_EMBERS 
ACTION_VORTEX 
ACTION_PACT 
ACTION_OUTRO 
ACTION_STORE_OLD_TARGET 
ACTION_RESET_THREAT 
ACTION_START_INTRO 
ACTION_START_RIMEFANG 
ACTION_START_OUTRO 
ACTION_END_COMBAT 
ACTION_START_INTRO 
ACTION_INTRO_DONE 
ACTION_STAND_UP 
ACTION_CAST_INVOCATION 
ACTION_REMOVE_INVOCATION 
ACTION_KINETIC_BOMB_JUMP 
ACTION_FLAME_BALL_CHASE 
ACTION_START_EVENT 
ACTION_CONTINUE_INTRO 
ACTION_CHARGE 
ACTION_START_OUTRO 
ACTION_DESPAWN 
ACTION_INTERRUPT_INTRO 
ACTION_MARK_OF_THE_FALLEN_CHAMPION 
ACTION_START_INTRO 
ACTION_CLEAR_SPIKE_IMMUNITIES 
ACTION_TALK_ENTER_ZONE 
ACTION_BEGIN_MOVEMENT 
ACTION_BEGIN_FIGHTING 
ACTION_GATE_OPENED 
ACTION_MINION_EVADE 
ACTION_ACQUIRE_TARGET 
ACTION_BEGIN_ENCOUNTER 
ACTION_JUST_SUMMONED 
ACTION_ABOMINATION_DIED 
ACTION_KELTHUZAD_DIED 
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 
ACTION_SET_NORMAL_EVENTS 
ACTION_START_INTRO 
ACTION_ACTIVATE_STAR 
ACTION_BIG_BANG 
ACTION_ASCEND 
ACTION_OUTRO 
ACTION_INTRO_2 
ACTION_REMOVE_BUFF 
DO_START_MKII 
DO_HARDMODE_MKII 
DO_ACTIVATE_VX001 
DO_START_VX001 
DO_HARDMODE_VX001 
DO_ACTIVATE_AERIAL 
DO_START_AERIAL 
DO_HARDMODE_AERIAL 
DO_DISABLE_AERIAL 
DO_ENABLE_AERIAL 
DO_ACTIVATE_V0L7R0N_1 
DO_ACTIVATE_V0L7R0N_2 
DO_ASSEMBLED_COMBAT 
DO_ACTIVATE_HARD_MODE 
DO_ACTIVATE_COMPUTER 
DO_DEACTIVATE_COMPUTER 
DO_ACTIVATE_SELF_DESTRUCT 
DO_ENCOUNTER_DONE 
ACTION_START_FIGHT 
ACTION_FIX_HARPOONS 
ACTION_GROUND_PHASE 
ACTION_ENGINEER_DEAD 
ACTION_SHACKLE_RAZORSCALE 
ACTION_START_PERMA_GROUND 
ACTION_RETURN_TO_BASE 
ACTION_BUILD_HARPOON_1 
ACTION_BUILD_HARPOON_2 
ACTION_BUILD_HARPOON_3 
ACTION_BUILD_HARPOON_4 
ACTION_DESTROY_HARPOONS 
ACTION_STOP_CONTROLLERS 
ACTION_STOP_CAST 
ACTION_INCREASE_PREADDS_COUNT 
ACTION_ACTIVATE_RUNIC_SMASH 
ACTION_ACTIVATE_ADDS 
ACTION_PILLAR_CHARGED 
ACTION_START_HARD_MODE 
ACTION_BERSERK 
ACTION_ENTER_HARD_MODE 
ACTION_START_PHASE_HEART 
ACTION_DISPOSE_HEART 
ACTION_PHASE_TRANSFORM 
ACTION_PHASE_TWO 
ACTION_PHASE_THREE 
ACTION_INDUCE_MADNESS 
ACTION_SANITY_WELLS 
ACTION_FLASH_FREEZE 
ACTION_TENTACLE_KILLED 
ACTION_START_ROLEPLAY 
ACTION_TOGGLE_SHATTERED_ILLUSION 
ACTION_OTHER_JUST_DIED 
ACTION_DESPAWN_SUMMONS 
ACTION_START_ENCOUNTER 
ACTION_DRAKE_BREATH 
ACTION_GAUNTLET_END 
ACTION_HARPOON_HIT 
ACTION_WATER_GLOBULE_HIT 
ACTION_PROTECTIVE_BUBBLE_SHATTERED 
ACTION_DRAINED 
ACTION_START_SPAWNING 
ACTION_STOP_SPAWNING 
ACTION_DESPAWN_ALL_SPAWNS 
ACTION_SHADE_OF_AKAMA_DEAD 
ACTION_BROKEN_SPECIAL 
ACTION_BROKEN_EMOTE 
ACTION_BROKEN_HAIL 
ACTION_DISABLE_VULCANO 
ACTION_START_INTRO 
ACTION_START_EVENT 
ACTION_STOP_EVENT 
ACTION_AHUNE_RETREAT 
ACTION_AHUNE_RESURFACE 
ACTION_EMOTE_RESURFACE 
ACTION_START_ENCOUNTER 
ACTION_REVIVE_ADVISORS 
ACTION_PREPARE_ADVISORS 
ACTION_ACTIVE_ADVISOR 
ACTION_SCHEDULE_COMBAT_EVENTS 
166 {
167  ACTION_NONE = 0,
174 };
Definition: npc_arthas.cpp:168
Definition: npc_arthas.cpp:169
Definition: npc_arthas.cpp:171
Definition: npc_arthas.cpp:167
Definition: npc_arthas.cpp:172
Definition: npc_arthas.cpp:173
Definition: npc_arthas.cpp:170

◆ Data

enum Data
Enumerator
DATA_LAST_FIRED_CANNON 
DATA_RP_DUMMY_MOVED 
DATA_CRUSHER_PACK_ID 
DATA_HADRONOX_ENTERED_COMBAT 
DATA_HADRONOX_WEBBED_DOORS 
DATA_PET_GROUP 
DATA_SETUP_MINE 
DATA_SETUP_BOMB 
DATA_SETUP_ROCKET 
DATA_NOT_SO_FRIENDLY_FIRE 
DATA_FIREFIGHTER 
DATA_WATERSPRAY 
DATA_MOVE_NEW 
DATA_CHARGED_PILLAR 
177 {
179 };
Definition: npc_arthas.cpp:178

◆ Entries

enum Entries
Enumerator
NPC_TIME_RIFT 
NPC_GUARDIAN_OF_TIME 
NPC_MALGANIS_BUNNY 
NPC_UTHER 
NPC_JAINA 
NPC_CITIZEN 
NPC_RESIDENT 
NPC_FOOTMAN 
NPC_KNIGHT 
NPC_PRIEST 
NPC_SORCERESS 
NPC_RISEN_ZOMBIE 
NPC_CITIZEN_INFINITE 
NPC_RESIDENT_INFINITE 
NPC_TIME_RIFT 
NPC_TIME_RIFT_LARGE 
NPC_INFINITE_ADVERSARY 
NPC_INFINITE_HUNTER 
NPC_INFINITE_AGENT 
NPC_EPOCH 
NPC_MALGANIS 
NPC_CHROMIE_3 
SPELL_HOLY_LIGHT 
SPELL_EXORCISM 
SPELL_DEVOTION_AURA 
SPELL_CRUSADER_STRIKE 
SPELL_SHADOWSTEP_VISUAL 
SPELL_TRANSFORM_VISUAL 
SPELL_MALGANIS_QUEST_CREDIT 
SPELL_MALGANIS_KILL_CREDIT 
SPELL_CHROMIE_3_TRANSFORM 
GO_CHEST_NORMAL 
GO_CHEST_HEROIC 
NPC_LAVA_FISSURE 
NPC_STALACTITE_TRIGGER_GROUND 
NPC_STALACTITE_TRIGGER 
GO_STALACTITE 
41 {
42  NPC_MALGANIS_BUNNY = 20562,
43  NPC_UTHER = 26528,
44  NPC_JAINA = 26497,
45  NPC_CITIZEN = 28167,
46  NPC_RESIDENT = 28169,
47  NPC_FOOTMAN = 27745,
48  NPC_KNIGHT = 27746,
49  NPC_PRIEST = 27747,
50  NPC_SORCERESS = 27752,
51  NPC_RISEN_ZOMBIE = 27737,
52  NPC_CITIZEN_INFINITE = 28340,
53  NPC_RESIDENT_INFINITE = 28341,
54  NPC_TIME_RIFT = 28409,
55  NPC_TIME_RIFT_LARGE = 28439,
56  NPC_INFINITE_ADVERSARY = 27742,
57  NPC_INFINITE_HUNTER = 27743,
58  NPC_INFINITE_AGENT = 27744,
59  NPC_EPOCH = 26532,
60  NPC_MALGANIS = 26533,
61  NPC_CHROMIE_3 = 30997,
62 
63  SPELL_HOLY_LIGHT = 52444,
64  SPELL_EXORCISM = 52445,
65  SPELL_DEVOTION_AURA = 52442,
66  SPELL_CRUSADER_STRIKE = 50773,
68  SPELL_TRANSFORM_VISUAL = 33133,
72  GO_CHEST_NORMAL = 190663,
73  GO_CHEST_HEROIC = 193597
74 };
Definition: npc_arthas.cpp:70
Definition: npc_arthas.cpp:45
Definition: npc_arthas.cpp:46
Definition: npc_arthas.cpp:44
Definition: npc_arthas.cpp:55
Definition: npc_arthas.cpp:50
Definition: npc_arthas.cpp:66
Definition: npc_arthas.cpp:69
Definition: npc_arthas.cpp:51
Definition: npc_arthas.cpp:73
Definition: npc_arthas.cpp:54
Definition: npc_arthas.cpp:59
Definition: npc_arthas.cpp:67
Definition: npc_arthas.cpp:56
Definition: npc_arthas.cpp:58
Definition: npc_arthas.cpp:49
Definition: npc_arthas.cpp:47
Definition: npc_arthas.cpp:64
Definition: npc_arthas.cpp:68
Definition: npc_arthas.cpp:71
Definition: npc_arthas.cpp:63
Definition: npc_arthas.cpp:42
Definition: npc_arthas.cpp:48
Definition: npc_arthas.cpp:52
Definition: npc_arthas.cpp:60
Definition: npc_arthas.cpp:72
Definition: npc_arthas.cpp:43
Definition: npc_arthas.cpp:61
Definition: npc_arthas.cpp:65
Definition: npc_arthas.cpp:57
Definition: npc_arthas.cpp:53

◆ OtherLines

enum OtherLines
Enumerator
LINE_TOWN_HALL_PENDING 
LINE_SLAY_ZOMBIE 
448 {
450  LINE_SLAY_ZOMBIE = 39
451 };
Definition: npc_arthas.cpp:450
Definition: npc_arthas.cpp:449

◆ PointIDs

enum PointIDs
Enumerator
RP1_POINTID_UTHER1 
RP1_POINTID_ARTHAS2 
RP1_POINTID_UTHER2 
RP1_POINTID_JAINA2 
RP1_POINTID_UTHER3 
RP1_POINTID_JAINA4 
RP1_POINTID_ARTHAS3 
RP1_POINTID_ARTHAS4 
RP2_POINTID_ARTHAS1 
RP2_POINTID_ARTHAS2 
RP2_POINTID_ARTHAS3 
RP3_POINTID_TOWN_HALL 
RP3_POINTID_ARTHAS1 
RP3_POINTID_ARTHAS2 
RP3_POINTID_ARTHAS3 
RP3_POINTID_ARTHAS4 
RP3_POINTID_ARTHAS5 
RP4_POINTID_ARTHAS1 
RP4_POINTID_ARTHAS2 
RP4_POINTID_GAUNTLET1 
RP4_POINTID_GAUNTLET2 
RP5_POINTID_ARTHAS1 
RP5_POINTID_ARTHAS3 
RP5_POINTID_ARTHAS4 
134 {
135  RP1_POINTID_UTHER1 = 1,
143 
147 
154 
159 
163 };
Definition: npc_arthas.cpp:135
Definition: npc_arthas.cpp:141
Definition: npc_arthas.cpp:156
Definition: npc_arthas.cpp:155
Definition: npc_arthas.cpp:162
Definition: npc_arthas.cpp:158
Definition: npc_arthas.cpp:161
Definition: npc_arthas.cpp:138
Definition: npc_arthas.cpp:139
Definition: npc_arthas.cpp:151
Definition: npc_arthas.cpp:153
Definition: npc_arthas.cpp:140
Definition: npc_arthas.cpp:150
Definition: npc_arthas.cpp:144
Definition: npc_arthas.cpp:136
Definition: npc_arthas.cpp:137
Definition: npc_arthas.cpp:142
Definition: npc_arthas.cpp:152
Definition: npc_arthas.cpp:145
Definition: npc_arthas.cpp:157
Definition: npc_arthas.cpp:160
Definition: npc_arthas.cpp:149
Definition: npc_arthas.cpp:146
Definition: npc_arthas.cpp:148

◆ PositionIndices

Enumerator
RP1_ARTHAS_INITIAL 
RP1_UTHER_SPAWN 
RP1_JAINA_SPAWN 
ARTHAS_PURGE_PENDING_POS 
ARTHAS_WAVES_POS 
RP2_PRIEST1_POS 
RP2_PRIEST2_POS 
RP2_FOOT1_POS 
RP2_FOOT2_POS 
RP2_FOOT3_POS 
RP2_FOOT4_POS 
RP2_MALGANIS_POS 
ARTHAS_TOWN_HALL_POS 
RP3_SPAWN1_LOC1 
RP3_SPAWN1_LOC2 
RP3_SPAWN1_LOC3 
RP3_SPAWN1_LOC4 
RP3_SPAWN1_RIFT 
RP3_SPAWN2_LOC1 
RP3_SPAWN2_LOC2 
RP3_SPAWN2_LOC3 
RP3_SPAWN2_LOC4 
RP3_SPAWN2_RIFT1 
RP3_SPAWN2_RIFT2 
RP3_SPAWN3_LOC1 
RP3_SPAWN3_LOC2 
RP3_SPAWN3_LOC3 
RP3_SPAWN3_LOC4 
RP3_SPAWN3_RIFT1 
RP3_SPAWN3_RIFT2 
RP3_EPOCH_SPAWN 
RP3_EPOCH_RIFT 
ARTHAS_TOWN_HALL_END_POS 
ARTHAS_GAUNTLET_POS 
ARTHAS_GAUNTLET_END_POS 
RP5_MALGANIS_POS 
ARTHAS_FINAL_POS 
RP5_CHROMIE_SPAWN 
NUM_POSITIONS 
395  : uint32
396 {
397  // Arthas/Uther RP
398  RP1_ARTHAS_INITIAL = 0,
401 
402  // Arthas/Mal'ganis RP
412 
413  // Town Hall
435 
438 
442 
443  // Array element count
445 };
Definition: npc_arthas.cpp:403
Definition: npc_arthas.cpp:444
Definition: npc_arthas.cpp:423
Definition: npc_arthas.cpp:432
Definition: npc_arthas.cpp:411
Definition: npc_arthas.cpp:404
Definition: npc_arthas.cpp:433
Definition: npc_arthas.cpp:428
Definition: npc_arthas.cpp:426
Definition: npc_arthas.cpp:420
Definition: npc_arthas.cpp:421
Definition: npc_arthas.cpp:419
Definition: npc_arthas.cpp:439
Definition: npc_arthas.cpp:441
Definition: npc_arthas.cpp:434
Definition: npc_arthas.cpp:408
Definition: npc_arthas.cpp:400
Definition: npc_arthas.cpp:414
Definition: npc_arthas.cpp:399
Definition: npc_arthas.cpp:405
Definition: npc_arthas.cpp:427
Definition: npc_arthas.cpp:425
Definition: npc_arthas.cpp:422
Definition: npc_arthas.cpp:429
Definition: npc_arthas.cpp:424
uint32_t uint32
Definition: Define.h:143
Definition: npc_arthas.cpp:409
Definition: npc_arthas.cpp:406
Definition: npc_arthas.cpp:431
Definition: npc_arthas.cpp:416
Definition: npc_arthas.cpp:440
Definition: npc_arthas.cpp:398
Definition: npc_arthas.cpp:430
Definition: npc_arthas.cpp:417
Definition: npc_arthas.cpp:418
Definition: npc_arthas.cpp:407
Definition: npc_arthas.cpp:437
Definition: npc_arthas.cpp:415
Definition: npc_arthas.cpp:410
Definition: npc_arthas.cpp:436

◆ RPEventLines1

Enumerator
RP1_LINE_ARTHAS1 
RP1_LINE_UTHER1 
RP1_LINE_ARTHAS2 
RP1_LINE_ARTHAS3 
RP1_LINE_UTHER2 
RP1_LINE_ARTHAS4 
RP1_LINE_UTHER3 
RP1_LINE_ARTHAS5 
RP1_LINE_UTHER4 
RP1_LINE_ARTHAS6 
RP1_LINE_UTHER5 
RP1_LINE_ARTHAS7 
RP1_LINE_JAINA1 
RP1_LINE_ARTHAS8 
RP1_LINE_UTHER6 
RP1_LINE_ARTHAS9 
RP1_LINE_JAINA2 
RP1_LINE_ARTHAS10 
RP1_LINE_ARTHAS11 
314 {
315  RP1_LINE_ARTHAS1 = 0, // Glad you could make it, Uther.
316  RP1_LINE_UTHER1 = 0, // Watch your tone with me, boy. You may be the prince, but I'm still your superior as a paladin!
317  RP1_LINE_ARTHAS2 = 1, // As if I could forget. Listen, Uther, there's something about the plague you should know...
318  RP1_LINE_ARTHAS3 = 2, // Oh, no. We're too late. These people have all been infected! They may look fine now, but it's just a matter of time before they turn into the undead!
319  RP1_LINE_UTHER2 = 1, // What?
320  RP1_LINE_ARTHAS4 = 3, // This entire city must be purged.
321  RP1_LINE_UTHER3 = 2, // How can you even consider that? There's got to be some other way.
322  RP1_LINE_ARTHAS5 = 4, // Damn it, Uther! As your future king, I order you to purge this city!
323  RP1_LINE_UTHER4 = 3, // You are not my king yet, boy! Nor would I obey that command even if you were!
324  RP1_LINE_ARTHAS6 = 5, // Then I must consider this an act of treason.
325  RP1_LINE_UTHER5 = 4, // Treason? Have you lost your mind, Arthas?
326  RP1_LINE_ARTHAS7 = 6, // Have I? Lord Uther, by my right of succession and the sovereignty of my crown, I hereby relieve you of your command and suspend your paladins from service.
327  RP1_LINE_JAINA1 = 0, // Arthas! You can't just--
328  RP1_LINE_ARTHAS8 = 7, // It's done! Those of you who have the will to save this land, follow me! The rest of you... get out of my sight!
329  RP1_LINE_UTHER6 = 5, // You've just crossed a terrible threshold, Arthas.
330  RP1_LINE_ARTHAS9 = 8, // Jaina?
331  RP1_LINE_JAINA2 = 1, // I'm sorry, Arthas. I can't watch you do this.
332  RP1_LINE_ARTHAS10 = 9, // Take position here, and I will lead a small force inside Stratholme to begin the culling. We must contain and purge the infected for the sake of all of Lordaeron!
333  RP1_LINE_ARTHAS11 = 40 // All officers should check in with me when their squads are ready. We'll enter Stratholme on my order.
334 };
Definition: npc_arthas.cpp:321
Definition: npc_arthas.cpp:329
Definition: npc_arthas.cpp:330
Definition: npc_arthas.cpp:332
Definition: npc_arthas.cpp:326
Definition: npc_arthas.cpp:327
Definition: npc_arthas.cpp:331
Definition: npc_arthas.cpp:318
Definition: npc_arthas.cpp:323
Definition: npc_arthas.cpp:328
Definition: npc_arthas.cpp:316
Definition: npc_arthas.cpp:325
Definition: npc_arthas.cpp:320
Definition: npc_arthas.cpp:315
Definition: npc_arthas.cpp:324
Definition: npc_arthas.cpp:322
Definition: npc_arthas.cpp:317
Definition: npc_arthas.cpp:333
Definition: npc_arthas.cpp:319

◆ RPEventLines2

Enumerator
RP2_LINE_ARTHAS1 
RP2_LINE_CITIZEN1 
RP2_LINE_ARTHAS2 
RP2_LINE_CITIZEN2 
RP2_LINE_RESIDENT1 
RP2_LINE_ARTHAS3 
RP2_LINE_MALGANIS1 
RP2_LINE_MALGANIS2 
RP2_LINE_ARTHAS4 
RP2_LINE_ARTHAS5 
337 {
338  RP2_LINE_ARTHAS1 = 10, // Everyone looks ready. Remember, these people are all infected with the plague and will die soon. We must purge Stratholme to protect the remainder of Lordaeron from the Scourge. Let's go.
339  RP2_LINE_CITIZEN1 = 0, // Prince Arthas, may the light be praised! Many people in the town have begun to fall seriously ill, can you help us?
340  RP2_LINE_ARTHAS2 = 11, // I can only help you with a clean death.
341  RP2_LINE_CITIZEN2 = 1, // What? This can't be!
342  RP2_LINE_RESIDENT1 = 0, // Oh, no...
343  RP2_LINE_ARTHAS3 = 12, // That was just the beginning.
344  RP2_LINE_MALGANIS1 = 0, // Yes, this is the beginning. I've been waiting for you, young prince. I am Mal'Ganis.
345  RP2_LINE_MALGANIS2 = 1, // As you can see, your people are now mine. I will now turn this city household by household, until the flame of life has been snuffed out... forever.
346  RP2_LINE_ARTHAS4 = 13, // I won't allow it, Mal'Ganis! Better that these people die by my hand than serve as your slaves in death!
347  RP2_LINE_ARTHAS5 = 14 // Mal'Ganis will send out some of his Scourge minions to interfere with us. Those of you with the strongest steel and magic shall go forth and destroy them. I will lead the rest of my forces in purging Stratholme of the infected.
348 };
Definition: npc_arthas.cpp:346
Definition: npc_arthas.cpp:343
Definition: npc_arthas.cpp:340
Definition: npc_arthas.cpp:342
Definition: npc_arthas.cpp:338
Definition: npc_arthas.cpp:347
Definition: npc_arthas.cpp:344
Definition: npc_arthas.cpp:341
Definition: npc_arthas.cpp:339
Definition: npc_arthas.cpp:345

◆ RPEventLines3

Enumerator
RP3_LINE_ARTHAS1 
RP3_LINE_CITIZEN1 
RP3_LINE_ARTHAS2 
RP3_LINE_ARTHAS3 
RP3_LINE_CITIZEN2 
RP3_LINE_ARTHAS4 
RP3_LINE_ARTHAS10 
RP3_LINE_ARTHAS11 
RP3_LINE_ARTHAS20 
RP3_LINE_ARTHAS21 
RP3_LINE_ARTHAS30 
RP3_LINE_ARTHAS31 
RP3_LINE_EPOCH1 
RP3_LINE_ARTHAS32 
RP3_LINE_EPOCH2 
351 {
352  RP3_LINE_ARTHAS1 = 16, // Follow me, I know the way through.
353  RP3_LINE_CITIZEN1 = 0, // Ah, you've finally arrived Prince Arthas. You're here just in the nick of time.
354  RP3_LINE_ARTHAS2 = 17, // Yes, I'm glad I could get to you before the plague.
355  RP3_LINE_ARTHAS3 = 18, // What is this sorcery?
356  RP3_LINE_CITIZEN2 = 1, // There's no need for you to understand, Arthas. All you need to do is die.
357  RP3_LINE_ARTHAS4 = 19, // Mal'Ganis appears to have more than Scourge in his arsenal. We should make haste.
358 
359  RP3_LINE_ARTHAS10 = 20, // More vile sorcery! Be ready for anything!
360  RP3_LINE_ARTHAS11 = 21, // Let's move on.
361 
362  RP3_LINE_ARTHAS20 = 22, // Watch your backs: they have us surrounded in this hall.
363  RP3_LINE_ARTHAS21 = 24, // Mal'ganis is not making this easy.
364 
365  RP3_LINE_ARTHAS30 = 25, // They're very persistent.
366  RP3_LINE_ARTHAS31 = 26, // What else can he put in my way?
367  RP3_LINE_EPOCH1 = 0, // Prince Arthas Menethil, on this day, a powerful darkness has taken hold of your soul. The death you are destined to visit upon others will this day be your own.
368  RP3_LINE_ARTHAS32 = 27, // I do what I must for Lordaeron, and neither your words nor your actions will stop me.
369  RP3_LINE_EPOCH2 = 1 // We'll see about that, young prince.
370 };
Definition: npc_arthas.cpp:365
Definition: npc_arthas.cpp:352
Definition: npc_arthas.cpp:356
Definition: npc_arthas.cpp:368
Definition: npc_arthas.cpp:363
Definition: npc_arthas.cpp:357
Definition: npc_arthas.cpp:355
Definition: npc_arthas.cpp:362
Definition: npc_arthas.cpp:353
Definition: npc_arthas.cpp:366
Definition: npc_arthas.cpp:354
Definition: npc_arthas.cpp:369
Definition: npc_arthas.cpp:360
Definition: npc_arthas.cpp:367
Definition: npc_arthas.cpp:359

◆ RPEventLines4

Enumerator
RP4_LINE_ARTHAS1 
RP4_LINE_ARTHAS2 
RP4_LINE_ARTHAS3 
RP4_LINE_ARTHAS10 
RP4_LINE_ARTHAS11 
RP4_LINE_ARTHAS12 
RP4_LINE_ARTHAS13 
373 {
374  RP4_LINE_ARTHAS1 = 28, // The quickest path to Mal'Ganis lies behind that bookshelf ahead.
375  RP4_LINE_ARTHAS2 = 29, // This will only take a moment.
376  RP4_LINE_ARTHAS3 = 30, // I'm relieved this secret passage still works.
377 
378  RP4_LINE_ARTHAS10 = 31, // Let's move through here as quickly as possible. If the undead don't kill us, the fires might.
379  RP4_LINE_ARTHAS11 = 32, // Rest a moment and clear your lungs, but we must move again soon.
380  RP4_LINE_ARTHAS12 = 33, // That's enough; we must move again. Mal'Ganis awaits.
381  RP4_LINE_ARTHAS13 = 34 // At last some good luck. Market Row has not caught fire yet. Mal'Ganis is supposed to be in Crusaders' Square, which is just ahead. Tell me when you're ready to move forward.
382 };
Definition: npc_arthas.cpp:376
Definition: npc_arthas.cpp:375
Definition: npc_arthas.cpp:379
Definition: npc_arthas.cpp:378
Definition: npc_arthas.cpp:374
Definition: npc_arthas.cpp:380
Definition: npc_arthas.cpp:381

◆ RPEventLines5

Enumerator
RP5_LINE_ARTHAS1 
RP5_LINE_ARTHAS2 
RP5_LINE_MALGANIS1 
RP5_LINE_MALGANIS12 
RP5_LINE_ARTHAS10 
RP5_LINE_ARTHAS11 
RP5_LINE_CHROMIE0 
385 {
386  RP5_LINE_ARTHAS1 = 35, // Justice will be done.
387  RP5_LINE_ARTHAS2 = 36, // We're going to finish this right now, Mal'Ganis. Just you... and me.
388  RP5_LINE_MALGANIS1 = 2, // This will be a fine test, Prince Arthas.
389  RP5_LINE_MALGANIS12 = 10, // Your journey has just begun, young prince. Gather your forces and meet me in the arctic land of Northrend. It is there that we shall settle the score between us. It is there that your true destiny will unfold.
390  RP5_LINE_ARTHAS10 = 37, // I'll hunt you to the ends of the earth if I have to! Do you hear me? To the ends of the earth!
391  RP5_LINE_ARTHAS11 = 38, // You performed well this day. Anything that Mal'Ganis has left behind is yours. Take it as your reward. I must now begin plans for an expedition to Northrend.
392  RP5_LINE_CHROMIE0 = 0 // Why, hello again!
393 };
Definition: npc_arthas.cpp:391
Definition: npc_arthas.cpp:390
Definition: npc_arthas.cpp:387
Definition: npc_arthas.cpp:386
Definition: npc_arthas.cpp:392
Definition: npc_arthas.cpp:388
Definition: npc_arthas.cpp:389

◆ RPEvents

enum RPEvents
Enumerator
RP1_EVENT_START1 
RP1_EVENT_START2 
RP1_EVENT_ARTHAS1 
RP1_EVENT_UTHER1 
RP1_EVENT_ARTHAS2 
RP1_EVENT_ARTHAS3 
RP1_EVENT_UTHER_FACE 
RP1_EVENT_JAINA_FACE 
RP1_EVENT_UTHER2 
RP1_EVENT_ARTHAS4 
RP1_EVENT_UTHER3 
RP1_EVENT_ARTHAS_TURN 
RP1_EVENT_ARTHAS5 
RP1_EVENT_UTHER4 
RP1_EVENT_ARTHAS6 
RP1_EVENT_UTHER5 
RP1_EVENT_ARTHAS7 
RP1_EVENT_JAINA1 
RP1_EVENT_ARTHAS8 
RP1_EVENT_ARTHAS8_2 
RP1_EVENT_UTHER6 
RP1_EVENT_UTHER_LEAVE 
RP1_EVENT_JAINA_LEAVE 
RP1_EVENT_ARTHAS9 
RP1_EVENT_JAINA2 
RP1_EVENT_JAINA_LEAVE2 
RP1_EVENT_ARTHAS_LEAVE 
RP1_EVENT_ARTHAS10 
RP1_EVENT_ARTHAS_LEAVE2 
RP1_EVENT_FINISHED 
RP2_EVENT_ARTHAS_MOVE_1 
RP2_EVENT_CITIZEN1 
RP2_EVENT_ARTHAS2 
RP2_EVENT_ARTHAS_MOVE_2 
RP2_EVENT_CITIZEN2 
RP2_EVENT_KILL1 
RP2_EVENT_ARTHAS_MOVE_3 
RP2_EVENT_KILL2 
RP2_EVENT_REACT1 
RP2_EVENT_REACT2 
RP2_EVENT_REACT3 
RP2_EVENT_REACT4 
RP2_EVENT_REACT5 
RP2_EVENT_ARTHAS_MOVE_4 
RP2_EVENT_ARTHAS3 
RP2_EVENT_MALGANIS1 
RP2_EVENT_TROOPS_FACE 
RP2_EVENT_ARTHAS_FACE 
RP2_EVENT_MALGANIS2 
RP2_EVENT_MALGANIS_LEAVE1 
RP2_EVENT_MALGANIS_LEAVE2 
RP2_EVENT_ARTHAS4 
RP2_EVENT_ARTHAS4_2 
RP2_EVENT_ARTHAS_MOVE_5 
RP2_EVENT_ARTHAS5 
RP2_EVENT_ARTHAS5_2 
RP2_EVENT_ARTHAS5_3 
RP2_EVENT_WAVE_START 
EVENT_TOWN_HALL_REACHED 
RP3_EVENT_RESIDENT_FACE 
RP3_EVENT_ARTHAS_FACE 
RP3_EVENT_CITIZEN1 
RP3_EVENT_ARTHAS2 
RP3_EVENT_ARTHAS_KILL 
RP3_EVENT_INFINITE_LAUGH 
RP3_EVENT_ARTHAS3 
RP3_EVENT_CITIZEN2 
RP3_EVENT_TRANSFORM1 
RP3_EVENT_TRANSFORM2 
RP3_EVENT_TRANSFORM3 
RP3_EVENT_AGGRO 
RP3_EVENT_ARTHAS4 
RP3_EVENT_ARTHAS_MOVE_1 
RP3_EVENT_ARTHAS_MOVE_1_2 
RP3_EVENT_SPAWN1 
RP3_EVENT_SPAWN1_FACE 
RP3_EVENT_SPAWN1_AGGRO 
RP3_EVENT_ARTHAS11 
RP3_EVENT_ARTHAS_MOVE_2 
RP3_EVENT_ARTHAS20 
RP3_EVENT_SPAWN2 
RP3_EVENT_ARTHAS_FACE2 
RP3_EVENT_SPAWN2_FACE 
RP3_EVENT_SPAWN2_AGGRO 
RP3_EVENT_ARTHAS21 
RP3_EVENT_ARTHAS_MOVE_3 
RP3_EVENT_SPAWN3 
RP3_EVENT_ARTHAS30 
RP3_EVENT_SPAWN3_FACE 
RP3_EVENT_SPAWN3_AGGRO 
RP3_EVENT_EPOCH_SPAWN 
RP3_EVENT_ARTHAS31 
RP3_EVENT_EPOCH_FACE 
RP3_EVENT_EPOCH1 
RP3_EVENT_ARTHAS32 
RP3_EVENT_ARTHAS32_2 
RP3_EVENT_EPOCH_AGGRO 
RP4_EVENT_ARTHAS2 
RP4_EVENT_HIDDEN_PASSAGE 
RP4_EVENT_ARTHAS3 
RP4_EVENT_GAUNTLET_REACHED 
RP4_EVENT_ARTHAS_MOVE 
RP4_EVENT_ARTHAS11 
RP4_EVENT_ARTHAS_FACE 
RP4_EVENT_ARTHAS12 
RP4_EVENT_GAUNTLET_RESUME 
RP4_EVENT_ARTHAS13 
RP4_EVENT_GAUNTLET_DONE 
RP5_EVENT_ARTHAS2 
RP5_EVENT_MALGANIS1 
RP5_EVENT_MALGANIS_DONE 
RP5_EVENT_MALGANIS12 
RP5_EVENT_MALGANIS_LEAVE 
RP5_EVENT_ARTHAS10 
RP5_EVENT_ARTHAS10_2 
RP5_EVENT_ARTHAS11 
RP5_EVENT_ARTHAS11_2 
RP5_EVENT_ARTHAS_LEAVE 
RP5_EVENT_ARTHAS_LEAVE2 
RP5_EVENT_CHROMIE_SPAWN 
RP5_EVENT_CHROMIE_LAND 
RP5_EVENT_CHROMIE_TRANSFORM 
182 {
183  RP1_EVENT_START1 = 1,
213 
242 
244 
283 
288 
296 
311 };
Definition: npc_arthas.cpp:202
Definition: npc_arthas.cpp:272
Definition: npc_arthas.cpp:303
Definition: npc_arthas.cpp:237
Definition: npc_arthas.cpp:240
Definition: npc_arthas.cpp:286
Definition: npc_arthas.cpp:234
Definition: npc_arthas.cpp:190
Definition: npc_arthas.cpp:214
Definition: npc_arthas.cpp:297
Definition: npc_arthas.cpp:198
Definition: npc_arthas.cpp:188
Definition: npc_arthas.cpp:256
Definition: npc_arthas.cpp:251
Definition: npc_arthas.cpp:309
Definition: npc_arthas.cpp:262
Definition: npc_arthas.cpp:301
Definition: npc_arthas.cpp:260
Definition: npc_arthas.cpp:195
Definition: npc_arthas.cpp:263
Definition: npc_arthas.cpp:184
Definition: npc_arthas.cpp:294
Definition: npc_arthas.cpp:306
Definition: npc_arthas.cpp:281
Definition: npc_arthas.cpp:267
Definition: npc_arthas.cpp:217
Definition: npc_arthas.cpp:226
Definition: npc_arthas.cpp:229
Definition: npc_arthas.cpp:298
Definition: npc_arthas.cpp:261
Definition: npc_arthas.cpp:211
Definition: npc_arthas.cpp:277
Definition: npc_arthas.cpp:222
Definition: npc_arthas.cpp:228
Definition: npc_arthas.cpp:199
Definition: npc_arthas.cpp:250
Definition: npc_arthas.cpp:257
Definition: npc_arthas.cpp:231
Definition: npc_arthas.cpp:205
Definition: npc_arthas.cpp:218
Definition: npc_arthas.cpp:247
Definition: npc_arthas.cpp:208
Definition: npc_arthas.cpp:279
Definition: npc_arthas.cpp:204
Definition: npc_arthas.cpp:268
Definition: npc_arthas.cpp:282
Definition: npc_arthas.cpp:276
Definition: npc_arthas.cpp:212
Definition: npc_arthas.cpp:209
Definition: npc_arthas.cpp:304
Definition: npc_arthas.cpp:264
Definition: npc_arthas.cpp:253
Definition: npc_arthas.cpp:269
Definition: npc_arthas.cpp:255
Definition: npc_arthas.cpp:310
Definition: npc_arthas.cpp:273
Definition: npc_arthas.cpp:200
Definition: npc_arthas.cpp:203
Definition: npc_arthas.cpp:287
Definition: npc_arthas.cpp:307
Definition: npc_arthas.cpp:243
Definition: npc_arthas.cpp:207
Definition: npc_arthas.cpp:259
Definition: npc_arthas.cpp:192
Definition: npc_arthas.cpp:289
Definition: npc_arthas.cpp:223
Definition: npc_arthas.cpp:249
Definition: npc_arthas.cpp:187
Definition: npc_arthas.cpp:284
Definition: npc_arthas.cpp:221
Definition: npc_arthas.cpp:302
Definition: npc_arthas.cpp:227
Definition: npc_arthas.cpp:245
Definition: npc_arthas.cpp:274
Definition: npc_arthas.cpp:258
Definition: npc_arthas.cpp:305
Definition: npc_arthas.cpp:225
Definition: npc_arthas.cpp:246
Definition: npc_arthas.cpp:232
Definition: npc_arthas.cpp:191
Definition: npc_arthas.cpp:194
Definition: npc_arthas.cpp:193
Definition: npc_arthas.cpp:248
Definition: npc_arthas.cpp:278
Definition: npc_arthas.cpp:295
Definition: npc_arthas.cpp:183
Definition: npc_arthas.cpp:285
Definition: npc_arthas.cpp:238
Definition: npc_arthas.cpp:254
Definition: npc_arthas.cpp:236
Definition: npc_arthas.cpp:271
Definition: npc_arthas.cpp:265
Definition: npc_arthas.cpp:270
Definition: npc_arthas.cpp:219
Definition: npc_arthas.cpp:230
Definition: npc_arthas.cpp:224
Definition: npc_arthas.cpp:300
Definition: npc_arthas.cpp:210
Definition: npc_arthas.cpp:235
Definition: npc_arthas.cpp:293
Definition: npc_arthas.cpp:233
Definition: npc_arthas.cpp:239
Definition: npc_arthas.cpp:290
Definition: npc_arthas.cpp:275
Definition: npc_arthas.cpp:196
Definition: npc_arthas.cpp:299
Definition: npc_arthas.cpp:308
Definition: npc_arthas.cpp:220
Definition: npc_arthas.cpp:189
Definition: npc_arthas.cpp:197
Definition: npc_arthas.cpp:291
Definition: npc_arthas.cpp:206
Definition: npc_arthas.cpp:241
Definition: npc_arthas.cpp:215
Definition: npc_arthas.cpp:280
Definition: npc_arthas.cpp:216
Definition: npc_arthas.cpp:186
Definition: npc_arthas.cpp:201
Definition: npc_arthas.cpp:292
Definition: npc_arthas.cpp:252
Definition: npc_arthas.cpp:185
Definition: npc_arthas.cpp:266

◆ SplineChains

Enumerator
RP1_CHAIN_ARTHAS1 
RP1_CHAIN_UTHER1 
RP1_CHAIN_JAINA1 
RP1_CHAIN_ARTHAS2 
RP1_CHAIN_UTHER2 
RP1_CHAIN_JAINA2 
RP1_CHAIN_UTHER3 
RP1_CHAIN_JAINA3 
RP1_CHAIN_JAINA4 
RP1_CHAIN_ARTHAS3 
RP1_CHAIN_ARTHAS4 
RP2_CHAIN_ARTHAS1 
RP2_CHAIN_CITIZEN1 
RP2_CHAIN_ARTHAS2 
RP2_CHAIN_ARTHAS3 
RP3_CHAIN_ARTHAS1 
RP3_CHAIN_ARTHAS2 
RP3_CHAIN_ARTHAS3 
RP3_CHAIN_ARTHAS3_2 
RP3_CHAIN_ARTHAS4 
RP3_CHAIN_ARTHAS5 
RP3_CHAIN_EPOCH 
RP3_CHAIN_SPAWN1_LOC1 
RP3_CHAIN_SPAWN1_LOC2 
RP3_CHAIN_SPAWN1_LOC3 
RP3_CHAIN_SPAWN1_LOC4 
RP3_CHAIN_SPAWN2_LOC1 
RP3_CHAIN_SPAWN2_LOC2 
RP3_CHAIN_SPAWN2_LOC3 
RP3_CHAIN_SPAWN2_LOC4 
RP3_CHAIN_SPAWN3_LOC1 
RP3_CHAIN_SPAWN3_LOC2 
RP3_CHAIN_SPAWN3_LOC3 
RP3_CHAIN_SPAWN3_LOC4 
RP4_CHAIN_ARTHAS1 
RP4_CHAIN_ARTHAS2 
RP4_CHAIN_GAUNTLET1 
RP4_CHAIN_GAUNTLET2 
RP5_CHAIN_ARTHAS1 
RP5_CHAIN_ARTHAS2 
RP5_CHAIN_ARTHAS3 
RP5_CHAIN_ARTHAS4 
77 {
78  // RP1: Arthas/Jaina/Uther, outside Stratholme gates
79  RP1_CHAIN_ARTHAS1 = 1, // Initial movement
80  RP1_CHAIN_UTHER1 = 1, // Initial movement
81  RP1_CHAIN_JAINA1 = 1, // Initial movement
82  RP1_CHAIN_ARTHAS2 = 2, // Arthas moves up the hill to look out over Stratholme
83  RP1_CHAIN_UTHER2 = 2, // Uther follows
84  RP1_CHAIN_JAINA2 = 2, // Jaina follows
85  RP1_CHAIN_UTHER3 = 3, // Uther leaves
86  RP1_CHAIN_JAINA3 = 3, // Jaina turns to leave, but is stopped by Arthas
87  RP1_CHAIN_JAINA4 = 4, // Jaina leaves for real
88  RP1_CHAIN_ARTHAS3 = 3, // Arthas moves down the hill to the bridge
89  RP1_CHAIN_ARTHAS4 = 4, // Arthas moves to the Stratholme entrance
90 
91  // RP2: Arthas/Mal'ganis, at Stratholme gates
92  RP2_CHAIN_ARTHAS1 = 5, // Arthas enters Stratholme proper
93  RP2_CHAIN_CITIZEN1 = 1, // A Stratholme citizen greets Arthas
94  RP2_CHAIN_ARTHAS2 = 6, // Arthas advances towards the approaching citizen
95  RP2_CHAIN_ARTHAS3 = 7, // Arthas moves on to a nearby resident
96 
97  // RP3: Arthas/Infinites, in Stratholme Town Hall
98  RP3_CHAIN_ARTHAS1 = 91, // Arthas enters Stratholme Town Hall
99  RP3_CHAIN_ARTHAS2 = 92, // Arthas approaches one of the disguised Infinites
100  RP3_CHAIN_ARTHAS3 = 95, // Arthas proceeds up the stairs
101  RP3_CHAIN_ARTHAS3_2 = 96, // Arthas encounters more Infinite resistance
102  RP3_CHAIN_ARTHAS4 = 97, // Arthas presses onward into a hallway
103  RP3_CHAIN_ARTHAS5 = 98, // Arthas advances into the boss room
104  RP3_CHAIN_EPOCH = 1, // Chrono-Lord Epoch advances out of the portal
105 
106  // Spawn motions (all on 27742, infinite adversary)
119 
120  // RP4: Arthas moving towards Gauntlet
121  RP4_CHAIN_ARTHAS1 = 101, // Arthas moves up to the bookcase
122  RP4_CHAIN_ARTHAS2 = 128, // Arthas advances to the start of the Gauntlet section
123  RP4_CHAIN_GAUNTLET1 = 1024, // Arthas charges to the halfway point of the Gauntlet
124  RP4_CHAIN_GAUNTLET2 = 1025, // Arthas continues to Market Row
125 
126  // RP5: Arthas advances on Crusader Square and faces off against Mal'ganis
127  RP5_CHAIN_ARTHAS1 = 121, // Arthas moves into Crusader Square
128  RP5_CHAIN_ARTHAS2 = 124, // After Mal'ganis' defeat, Arthas attempts to chase him down
129  RP5_CHAIN_ARTHAS3 = 125, // Arthas departs...
130  RP5_CHAIN_ARTHAS4 = 127 // ...and then finally despawns
131 };
Definition: npc_arthas.cpp:112
Definition: npc_arthas.cpp:115
Definition: npc_arthas.cpp:127
Definition: npc_arthas.cpp:128
Definition: npc_arthas.cpp:116
Definition: npc_arthas.cpp:103
Definition: npc_arthas.cpp:79
Definition: npc_arthas.cpp:89
Definition: npc_arthas.cpp:99
Definition: npc_arthas.cpp:108
Definition: npc_arthas.cpp:82
Definition: npc_arthas.cpp:109
Definition: npc_arthas.cpp:83
Definition: npc_arthas.cpp:101
Definition: npc_arthas.cpp:93
Definition: npc_arthas.cpp:88
Definition: npc_arthas.cpp:107
Definition: npc_arthas.cpp:94
Definition: npc_arthas.cpp:110
Definition: npc_arthas.cpp:130
Definition: npc_arthas.cpp:95
Definition: npc_arthas.cpp:111
Definition: npc_arthas.cpp:129
Definition: npc_arthas.cpp:87
Definition: npc_arthas.cpp:114
Definition: npc_arthas.cpp:100
Definition: npc_arthas.cpp:80
Definition: npc_arthas.cpp:124
Definition: npc_arthas.cpp:118
Definition: npc_arthas.cpp:113
Definition: npc_arthas.cpp:117
Definition: npc_arthas.cpp:123
Definition: npc_arthas.cpp:84
Definition: npc_arthas.cpp:121
Definition: npc_arthas.cpp:102
Definition: npc_arthas.cpp:86
Definition: npc_arthas.cpp:92
Definition: npc_arthas.cpp:122
Definition: npc_arthas.cpp:104
Definition: npc_arthas.cpp:85
Definition: npc_arthas.cpp:98
Definition: npc_arthas.cpp:81

Function Documentation

◆ AddSC_npc_arthas_stratholme()

void AddSC_npc_arthas_stratholme ( )
1673 {
1674  new npc_arthas_stratholme();
1677 }
Definition: npc_arthas.cpp:1655
#define RegisterSpellScript(spell_script)
Definition: ScriptMgr.h:1341
Definition: npc_arthas.cpp:1642
Definition: npc_arthas.cpp:542
#define RegisterCreatureAI(ai_name)
Definition: ScriptMgr.h:1352
+ Here is the caller graph for this function:

◆ GetArthasSnapbackFor()

Position const& GetArthasSnapbackFor ( COSProgressStates  state)
1634 {
1635  auto itr = ArthasSnapbackPositions.find(state);
1636  if (itr == ArthasSnapbackPositions.end())
1637  itr = ArthasSnapbackPositions.begin();
1638  return *(itr->second.SnapbackPosition);
1639 }
static std::unordered_map< uint32, SnapbackInfo > const ArthasSnapbackPositions
Definition: npc_arthas.cpp:521
+ Here is the caller graph for this function:

Variable Documentation

◆ ArthasPositions

std::array<Position, NUM_POSITIONS> const ArthasPositions
static

◆ ArthasSnapbackDistanceThreshold

float const ArthasSnapbackDistanceThreshold = 5.0f
static

◆ ArthasSnapbackPositions

std::unordered_map<uint32, SnapbackInfo> const ArthasSnapbackPositions
static
Initial value:
=
{
{ CRATES_IN_PROGRESS, { REACT_PASSIVE, false, &ArthasPositions[RP1_ARTHAS_INITIAL] } },
{ CRATES_DONE, { REACT_PASSIVE, false, &ArthasPositions[RP1_ARTHAS_INITIAL] } },
{ UTHER_TALK, { REACT_PASSIVE, false, &ArthasPositions[RP1_ARTHAS_INITIAL] } },
{ PURGE_PENDING, { REACT_PASSIVE, true, &ArthasPositions[ARTHAS_PURGE_PENDING_POS] } },
{ PURGE_STARTING, { REACT_PASSIVE, false, &ArthasPositions[ARTHAS_PURGE_PENDING_POS] } },
{ WAVES_IN_PROGRESS, { REACT_AGGRESSIVE, false, &ArthasPositions[ARTHAS_WAVES_POS] } },
{ WAVES_DONE, { REACT_DEFENSIVE, false, &ArthasPositions[ARTHAS_WAVES_POS] } },
{ TOWN_HALL_PENDING, { REACT_DEFENSIVE, true, &ArthasPositions[ARTHAS_TOWN_HALL_POS] } },
{ TOWN_HALL, { REACT_DEFENSIVE, false, &ArthasPositions[ARTHAS_TOWN_HALL_POS] } },
{ TOWN_HALL_COMPLETE, { REACT_PASSIVE, true, &ArthasPositions[ARTHAS_TOWN_HALL_END_POS] } },
{ GAUNTLET_TRANSITION, { REACT_PASSIVE, false, &ArthasPositions[ARTHAS_TOWN_HALL_END_POS] } },
{ GAUNTLET_PENDING, { REACT_PASSIVE, true, &ArthasPositions[ARTHAS_GAUNTLET_POS] } },
{ GAUNTLET_IN_PROGRESS, { REACT_DEFENSIVE, false, &ArthasPositions[ARTHAS_GAUNTLET_POS] } },
{ GAUNTLET_COMPLETE, { REACT_PASSIVE, true, &ArthasPositions[ARTHAS_GAUNTLET_END_POS] } },
{ MALGANIS_IN_PROGRESS, { REACT_DEFENSIVE, false, &ArthasPositions[ARTHAS_GAUNTLET_END_POS] } },
{ COMPLETE, { REACT_PASSIVE, false, &ArthasPositions[ARTHAS_FINAL_POS] } }
}
static std::array< Position, NUM_POSITIONS > const ArthasPositions
Definition: npc_arthas.cpp:455
Definition: npc_arthas.cpp:403
Definition: culling_of_stratholme.h:105
Definition: culling_of_stratholme.h:101
Definition: npc_arthas.cpp:404
Definition: culling_of_stratholme.h:103
Definition: culling_of_stratholme.h:99
Definition: culling_of_stratholme.h:94
Definition: culling_of_stratholme.h:96
Definition: UnitDefines.h:433
Definition: npc_arthas.cpp:434
Definition: npc_arthas.cpp:414
Definition: culling_of_stratholme.h:93
Definition: UnitDefines.h:435
Definition: culling_of_stratholme.h:100
Definition: culling_of_stratholme.h:97
Definition: culling_of_stratholme.h:106
Definition: culling_of_stratholme.h:107
Definition: culling_of_stratholme.h:92
Definition: culling_of_stratholme.h:91
Definition: npc_arthas.cpp:440
Definition: npc_arthas.cpp:398
Definition: culling_of_stratholme.h:104
Definition: npc_arthas.cpp:437
Definition: culling_of_stratholme.h:102
Definition: culling_of_stratholme.h:98
Definition: npc_arthas.cpp:436
Definition: culling_of_stratholme.h:95
Definition: UnitDefines.h:434

◆ chromiePathSize

uint32 const chromiePathSize = 3

◆ ChromieSplinePos

G3D::Vector3 const ChromieSplinePos[chromiePathSize]
Initial value:
=
{
{ 2320.632f, 1507.193f, 152.5081f },
{ 2319.823f, 1506.605f, 152.5081f },
{ 2306.770f, 1496.780f, 128.3620f }
}