aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2015-12-15 21:29:10 +0100
committerjackpoz <giacomopoz@gmail.com>2015-12-15 21:29:10 +0100
commite6903fdffa738bc3f7e26d4f73a9e9a4bcf3d66b (patch)
tree937861e872887a62d69cd46d4fa4b1fd9d3ced22 /src
parentbf5419e28ee9e510c787b78ea73c877d8aa3533e (diff)
parentce90e30a80a742640396a04a767e767c6518a0a5 (diff)
Merge pull request #15852 from Golrag/icc_boss_aggro
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp86
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp1
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp1
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp51
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp56
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp3
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp5
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp7
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h86
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp18
10 files changed, 189 insertions, 125 deletions
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
index aeaf8a70ba5..cfeb31d5526 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
@@ -136,11 +136,12 @@ enum Events
enum Actions
{
- ACTION_STAND_UP = 1,
- ACTION_CAST_INVOCATION = 2,
- ACTION_REMOVE_INVOCATION = 3,
- ACTION_KINETIC_BOMB_JUMP = 4,
- ACTION_FLAME_BALL_CHASE = 5,
+ ACTION_START_INTRO = 1,
+ ACTION_STAND_UP = 2,
+ ACTION_CAST_INVOCATION = 3,
+ ACTION_REMOVE_INVOCATION = 4,
+ ACTION_KINETIC_BOMB_JUMP = 5,
+ ACTION_FLAME_BALL_CHASE = 6,
};
enum Points
@@ -162,6 +163,7 @@ class StandUpEvent : public BasicEvent
bool Execute(uint64 /*eventTime*/, uint32 /*diff*/)
{
_owner.HandleEmoteCommand(EMOTE_ONESHOT_ROAR);
+ _owner.SetReactState(REACT_AGGRESSIVE);
return true;
}
@@ -382,8 +384,6 @@ class boss_prince_keleseth_icc : public CreatureScript
if (!me->isDead())
JustRespawned();
-
- me->SetReactState(REACT_DEFENSIVE);
}
void Reset() override
@@ -395,7 +395,6 @@ class boss_prince_keleseth_icc : public CreatureScript
_isEmpowered = false;
me->SetHealth(_spawnHealth);
instance->SetData(DATA_ORB_WHISPERER_ACHIEVEMENT, uint32(true));
- me->SetReactState(REACT_DEFENSIVE);
}
void EnterCombat(Unit* /*who*/) override
@@ -597,8 +596,6 @@ class boss_prince_taldaram_icc : public CreatureScript
if (!me->isDead())
JustRespawned();
-
- me->SetReactState(REACT_DEFENSIVE);
}
void Reset() override
@@ -610,12 +607,6 @@ class boss_prince_taldaram_icc : public CreatureScript
_isEmpowered = false;
me->SetHealth(_spawnHealth);
instance->SetData(DATA_ORB_WHISPERER_ACHIEVEMENT, uint32(true));
- me->SetReactState(REACT_DEFENSIVE);
- }
-
- void MoveInLineOfSight(Unit* /*who*/) override
-
- {
}
void EnterCombat(Unit* /*who*/) override
@@ -821,8 +812,6 @@ class boss_prince_valanar_icc : public CreatureScript
if (!me->isDead())
JustRespawned();
-
- me->SetReactState(REACT_DEFENSIVE);
}
void Reset() override
@@ -834,12 +823,6 @@ class boss_prince_valanar_icc : public CreatureScript
_isEmpowered = false;
me->SetHealth(me->GetMaxHealth());
instance->SetData(DATA_ORB_WHISPERER_ACHIEVEMENT, uint32(true));
- me->SetReactState(REACT_DEFENSIVE);
- }
-
- void MoveInLineOfSight(Unit* /*who*/) override
-
- {
}
void EnterCombat(Unit* /*who*/) override
@@ -905,6 +888,7 @@ class boss_prince_valanar_icc : public CreatureScript
default:
break;
}
+
summons.Summon(summon);
if (me->IsInCombat())
DoZoneInCombat(summon);
@@ -1070,25 +1054,28 @@ class npc_blood_queen_lana_thel : public CreatureScript
me->SetVisible(true);
}
- void MoveInLineOfSight(Unit* who) override
-
+ void DoAction(int32 action) override
{
- if (_introDone)
- return;
-
- if (!me->IsWithinDistInMap(who, 35.0f, false))
- return;
-
- _introDone = true;
- Talk(SAY_INTRO_1);
- _events.SetPhase(1);
- _events.ScheduleEvent(EVENT_INTRO_1, 14000);
- // summon a visual trigger
- if (Creature* summon = DoSummon(NPC_FLOATING_TRIGGER, triggerPos, 15000, TEMPSUMMON_TIMED_DESPAWN))
+ switch (action)
{
- summon->CastSpell(summon, SPELL_OOC_INVOCATION_VISUAL, true);
- summon->SetSpeed(MOVE_FLIGHT, 0.15f, true);
- summon->GetMotionMaster()->MovePoint(0, triggerEndPos);
+ case ACTION_START_INTRO:
+ if (!_introDone)
+ {
+ _introDone = true;
+ Talk(SAY_INTRO_1);
+ _events.SetPhase(1);
+ _events.ScheduleEvent(EVENT_INTRO_1, 14000);
+ // summon a visual trigger
+ if (Creature* summon = DoSummon(NPC_FLOATING_TRIGGER, triggerPos, 15000, TEMPSUMMON_TIMED_DESPAWN))
+ {
+ summon->CastSpell(summon, SPELL_OOC_INVOCATION_VISUAL, true);
+ summon->SetSpeed(MOVE_FLIGHT, 0.15f, true); // todo: creature is swimming, check if this is blizzlike or not.
+ summon->GetMotionMaster()->MovePoint(0, triggerEndPos);
+ }
+ }
+ break;
+ default:
+ break;
}
}
@@ -1328,7 +1315,6 @@ class npc_dark_nucleus : public CreatureScript
}
void MoveInLineOfSight(Unit* who) override
-
{
ScriptedAI::MoveInLineOfSight(who);
}
@@ -1670,6 +1656,21 @@ class spell_blood_council_shadow_prison_damage : public SpellScriptLoader
}
};
+class at_blood_prince_council_start_intro : public AreaTriggerScript
+{
+ public:
+ at_blood_prince_council_start_intro() : AreaTriggerScript("at_blood_prince_council_start_intro") { }
+
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override
+ {
+ if (InstanceScript* instance = player->GetInstanceScript())
+ if (Creature* bloodQueen = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_BLOOD_QUEEN_LANA_THEL_COUNCIL)))
+ bloodQueen->AI()->DoAction(ACTION_START_INTRO);
+
+ return true;
+ }
+};
+
void AddSC_boss_blood_prince_council()
{
new boss_blood_council_controller();
@@ -1689,4 +1690,5 @@ void AddSC_boss_blood_prince_council()
new spell_valanar_kinetic_bomb_absorb();
new spell_blood_council_shadow_prison();
new spell_blood_council_shadow_prison_damage();
+ new at_blood_prince_council_start_intro();
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
index 365e0a1588d..54c24769246 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_deathbringer_saurfang.cpp
@@ -268,7 +268,6 @@ class boss_deathbringer_saurfang : public CreatureScript
void Reset() override
{
_Reset();
- me->SetReactState(REACT_DEFENSIVE);
events.SetPhase(PHASE_COMBAT);
Initialize();
me->SetPower(POWER_ENERGY, 0);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
index e3e89d865ff..f76c415ab92 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp
@@ -93,7 +93,6 @@ class boss_festergut : public CreatureScript
void Reset() override
{
_Reset();
- me->SetReactState(REACT_DEFENSIVE);
events.ScheduleEvent(EVENT_BERSERK, 300000);
events.ScheduleEvent(EVENT_INHALE_BLIGHT, urand(25000, 30000));
events.ScheduleEvent(EVENT_GAS_SPORE, urand(20000, 25000));
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
index 3a745e2c98c..78a279b94fd 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
@@ -174,6 +174,11 @@ enum DeprogrammingData
POINT_DESPAWN = 384721,
};
+enum Actions
+{
+ ACTION_START_INTRO
+};
+
#define NPC_DARNAVAN RAID_MODE<uint32>(NPC_DARNAVAN_10, NPC_DARNAVAN_25, NPC_DARNAVAN_10, NPC_DARNAVAN_25)
#define NPC_DARNAVAN_CREDIT RAID_MODE<uint32>(NPC_DARNAVAN_CREDIT_10, NPC_DARNAVAN_CREDIT_25, NPC_DARNAVAN_CREDIT_10, NPC_DARNAVAN_CREDIT_25)
#define QUEST_DEPROGRAMMING RAID_MODE<uint32>(QUEST_DEPROGRAMMING_10, QUEST_DEPROGRAMMING_25, QUEST_DEPROGRAMMING_10, QUEST_DEPROGRAMMING_25)
@@ -241,20 +246,26 @@ class boss_lady_deathwhisper : public CreatureScript
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_ATTACK_ME, false);
}
- void MoveInLineOfSight(Unit* who) override
-
+ void DoAction(int32 action) override
{
- if (!_introDone && me->IsWithinDistInMap(who, 110.0f))
+ switch (action)
{
- _introDone = true;
- Talk(SAY_INTRO_1);
- events.SetPhase(PHASE_INTRO);
- events.ScheduleEvent(EVENT_INTRO_2, 11000, 0, PHASE_INTRO);
- events.ScheduleEvent(EVENT_INTRO_3, 21000, 0, PHASE_INTRO);
- events.ScheduleEvent(EVENT_INTRO_4, 31500, 0, PHASE_INTRO);
- events.ScheduleEvent(EVENT_INTRO_5, 39500, 0, PHASE_INTRO);
- events.ScheduleEvent(EVENT_INTRO_6, 48500, 0, PHASE_INTRO);
- events.ScheduleEvent(EVENT_INTRO_7, 58000, 0, PHASE_INTRO);
+ case ACTION_START_INTRO:
+ if (!_introDone)
+ {
+ _introDone = true;
+ Talk(SAY_INTRO_1);
+ events.SetPhase(PHASE_INTRO);
+ events.ScheduleEvent(EVENT_INTRO_2, 11000, 0, PHASE_INTRO);
+ events.ScheduleEvent(EVENT_INTRO_3, 21000, 0, PHASE_INTRO);
+ events.ScheduleEvent(EVENT_INTRO_4, 31500, 0, PHASE_INTRO);
+ events.ScheduleEvent(EVENT_INTRO_5, 39500, 0, PHASE_INTRO);
+ events.ScheduleEvent(EVENT_INTRO_6, 48500, 0, PHASE_INTRO);
+ events.ScheduleEvent(EVENT_INTRO_7, 58000, 0, PHASE_INTRO);
+ }
+ break;
+ default:
+ break;
}
}
@@ -1024,6 +1035,21 @@ class spell_cultist_dark_martyrdom : public SpellScriptLoader
}
};
+class at_lady_deathwhisper_entrance : public AreaTriggerScript
+{
+ public:
+ at_lady_deathwhisper_entrance() : AreaTriggerScript("at_lady_deathwhisper_entrance") { }
+
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override
+ {
+ if (InstanceScript* instance = player->GetInstanceScript())
+ if (Creature* ladyDeathwhisper = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_LADY_DEATHWHISPER)))
+ ladyDeathwhisper->AI()->DoAction(ACTION_START_INTRO);
+
+ return true;
+ }
+};
+
void AddSC_boss_lady_deathwhisper()
{
new boss_lady_deathwhisper();
@@ -1033,4 +1059,5 @@ void AddSC_boss_lady_deathwhisper()
new npc_darnavan();
new spell_deathwhisper_mana_barrier();
new spell_cultist_dark_martyrdom();
+ new at_lady_deathwhisper_entrance();
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
index 2fbd1293891..993fc75fcde 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lord_marrowgar.cpp
@@ -89,11 +89,15 @@ enum MiscInfo
//DATA_SPIKE_IMMUNE_1, = 2, // Reserved & used
//DATA_SPIKE_IMMUNE_2, = 3, // Reserved & used
- ACTION_CLEAR_SPIKE_IMMUNITIES = 1,
-
MAX_BONE_SPIKE_IMMUNE = 3,
};
+enum Actions
+{
+ ACTION_CLEAR_SPIKE_IMMUNITIES = 1,
+ ACTION_TALK_ENTER_ZONE = 2
+};
+
class BoneSpikeTargetSelector : public std::unary_function<Unit*, bool>
{
public:
@@ -131,7 +135,6 @@ class boss_lord_marrowgar : public CreatureScript
_boneStormDuration = RAID_MODE<uint32>(20000, 30000, 20000, 30000);
_baseSpeed = creature->GetSpeedRate(MOVE_RUN);
_coldflameLastPos.Relocate(creature);
- _introDone = false;
_boneSlice = false;
}
@@ -146,6 +149,7 @@ class boss_lord_marrowgar : public CreatureScript
events.ScheduleEvent(EVENT_COLDFLAME, 5000, EVENT_GROUP_SPECIAL);
events.ScheduleEvent(EVENT_WARN_BONE_STORM, urand(45000, 50000));
events.ScheduleEvent(EVENT_ENRAGE, 600000);
+ _introDone = false;
_boneSlice = false;
_boneSpikeImmune.clear();
}
@@ -179,16 +183,6 @@ class boss_lord_marrowgar : public CreatureScript
Talk(SAY_KILL);
}
- void MoveInLineOfSight(Unit* who) override
-
- {
- if (!_introDone && me->IsWithinDistInMap(who, 70.0f))
- {
- Talk(SAY_ENTER_ZONE);
- _introDone = true;
- }
- }
-
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim() || !CheckInRoom())
@@ -324,10 +318,21 @@ class boss_lord_marrowgar : public CreatureScript
void DoAction(int32 action) override
{
- if (action != ACTION_CLEAR_SPIKE_IMMUNITIES)
- return;
-
- _boneSpikeImmune.clear();
+ switch (action)
+ {
+ case ACTION_CLEAR_SPIKE_IMMUNITIES:
+ _boneSpikeImmune.clear();
+ break;
+ case ACTION_TALK_ENTER_ZONE:
+ if (!_introDone)
+ {
+ Talk(SAY_ENTER_ZONE);
+ _introDone = true;
+ }
+ break;
+ default:
+ break;
+ }
}
private:
@@ -742,6 +747,22 @@ class spell_marrowgar_bone_slice : public SpellScriptLoader
}
};
+class at_lord_marrowgar_entrance : public AreaTriggerScript
+{
+ public:
+ at_lord_marrowgar_entrance() : AreaTriggerScript("at_lord_marrowgar_entrance") { }
+
+ bool OnTrigger(Player* player, AreaTriggerEntry const* /*areaTrigger*/) override
+ {
+ if (InstanceScript* instance = player->GetInstanceScript())
+ if (Creature* lordMarrowgar = ObjectAccessor::GetCreature(*player, instance->GetGuidData(DATA_LORD_MARROWGAR)))
+ lordMarrowgar->AI()->DoAction(ACTION_TALK_ENTER_ZONE);
+
+ return true;
+ }
+
+};
+
void AddSC_boss_lord_marrowgar()
{
new boss_lord_marrowgar();
@@ -753,4 +774,5 @@ void AddSC_boss_lord_marrowgar()
new spell_marrowgar_bone_spike_graveyard();
new spell_marrowgar_bone_storm();
new spell_marrowgar_bone_slice();
+ new at_lord_marrowgar_entrance();
}
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
index be134a06173..4c67c0a7163 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp
@@ -236,7 +236,6 @@ class boss_professor_putricide : public CreatureScript
summons.DespawnAll();
SetPhase(PHASE_COMBAT_1);
_experimentState = EXPERIMENT_STATE_OOZE;
- me->SetReactState(REACT_DEFENSIVE);
me->SetWalk(false);
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == POINT_MOTION_TYPE)
me->GetMotionMaster()->MovementExpired();
@@ -616,7 +615,7 @@ class boss_professor_putricide : public CreatureScript
DoCast(me, SPELL_TEAR_GAS_PERIODIC_TRIGGER, true);
break;
case EVENT_RESUME_ATTACK:
- me->SetReactState(REACT_DEFENSIVE);
+ me->SetReactState(REACT_AGGRESSIVE);
AttackStart(me->GetVictim());
// remove Tear Gas
me->RemoveAurasDueToSpell(SPELL_TEAR_GAS_PERIODIC_TRIGGER);
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
index 1a2ebd179fe..d03925f734a 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp
@@ -168,11 +168,6 @@ class boss_rotface : public CreatureScript
Talk(SAY_SLIME_SPRAY);
}
- void MoveInLineOfSight(Unit* /*who*/) override
- {
- // don't enter combat
- }
-
void JustSummoned(Creature* summon) override
{
if (summon->GetEntry() == NPC_VILE_GAS_STALKER)
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
index 65d99b022dc..8917af0038f 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_sindragosa.cpp
@@ -234,7 +234,6 @@ class boss_sindragosa : public CreatureScript
void Reset() override
{
BossAI::Reset();
- me->SetReactState(REACT_DEFENSIVE);
DoCast(me, SPELL_TANK_MARKER, true);
events.ScheduleEvent(EVENT_BERSERK, 600000);
events.ScheduleEvent(EVENT_CLEAVE, 10000, EVENT_GROUP_LAND_PHASE);
@@ -659,7 +658,6 @@ class npc_spinestalker : public CreatureScript
_events.ScheduleEvent(EVENT_BELLOWING_ROAR, urand(20000, 25000));
_events.ScheduleEvent(EVENT_CLEAVE_SPINESTALKER, urand(10000, 15000));
_events.ScheduleEvent(EVENT_TAIL_SWEEP, urand(8000, 12000));
- me->SetReactState(REACT_DEFENSIVE);
if (!_summoned)
{
@@ -699,6 +697,7 @@ class npc_spinestalker : public CreatureScript
me->GetMotionMaster()->MoveIdle();
me->StopMoving();
me->GetMotionMaster()->MovePoint(POINT_FROSTWYRM_FLY_IN, SpinestalkerFlyPos);
+ me->SetReactState(REACT_DEFENSIVE);
}
}
@@ -714,6 +713,7 @@ class npc_spinestalker : public CreatureScript
me->SetHomePosition(SpinestalkerLandPos);
me->SetFacingTo(SpinestalkerLandPos.GetOrientation());
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
+ me->SetReactState(REACT_AGGRESSIVE);
}
void UpdateAI(uint32 diff) override
@@ -794,7 +794,6 @@ class npc_rimefang : public CreatureScript
_events.Reset();
_events.ScheduleEvent(EVENT_FROST_BREATH_RIMEFANG, urand(12000, 15000));
_events.ScheduleEvent(EVENT_ICY_BLAST, urand(30000, 35000));
- me->SetReactState(REACT_DEFENSIVE);
Initialize();
if (!_summoned)
@@ -835,6 +834,7 @@ class npc_rimefang : public CreatureScript
me->GetMotionMaster()->MoveIdle();
me->StopMoving();
me->GetMotionMaster()->MovePoint(POINT_FROSTWYRM_FLY_IN, RimefangFlyPos);
+ me->SetReactState(REACT_DEFENSIVE);
}
}
@@ -850,6 +850,7 @@ class npc_rimefang : public CreatureScript
me->SetHomePosition(RimefangLandPos);
me->SetFacingTo(RimefangLandPos.GetOrientation());
me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
+ me->SetReactState(REACT_AGGRESSIVE);
}
void EnterCombat(Unit* /*victim*/) override
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
index e739f5a5036..224aa6cda45 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
+++ b/src/server/scripts/Northrend/IcecrownCitadel/icecrown_citadel.h
@@ -72,50 +72,51 @@ enum TeleporterSpells
enum DataTypes
{
// Encounter States/Boss GUIDs
- DATA_LORD_MARROWGAR = 0,
- DATA_LADY_DEATHWHISPER = 1,
- DATA_ICECROWN_GUNSHIP_BATTLE = 2,
- DATA_DEATHBRINGER_SAURFANG = 3,
- DATA_FESTERGUT = 4,
- DATA_ROTFACE = 5,
- DATA_PROFESSOR_PUTRICIDE = 6,
- DATA_BLOOD_PRINCE_COUNCIL = 7,
- DATA_BLOOD_QUEEN_LANA_THEL = 8,
- DATA_SISTER_SVALNA = 9,
- DATA_VALITHRIA_DREAMWALKER = 10,
- DATA_SINDRAGOSA = 11,
- DATA_THE_LICH_KING = 12,
+ DATA_LORD_MARROWGAR = 0,
+ DATA_LADY_DEATHWHISPER = 1,
+ DATA_ICECROWN_GUNSHIP_BATTLE = 2,
+ DATA_DEATHBRINGER_SAURFANG = 3,
+ DATA_FESTERGUT = 4,
+ DATA_ROTFACE = 5,
+ DATA_PROFESSOR_PUTRICIDE = 6,
+ DATA_BLOOD_PRINCE_COUNCIL = 7,
+ DATA_BLOOD_QUEEN_LANA_THEL = 8,
+ DATA_SISTER_SVALNA = 9,
+ DATA_VALITHRIA_DREAMWALKER = 10,
+ DATA_SINDRAGOSA = 11,
+ DATA_THE_LICH_KING = 12,
// Additional data
- DATA_SAURFANG_EVENT_NPC = 13,
- DATA_BONED_ACHIEVEMENT = 14,
- DATA_OOZE_DANCE_ACHIEVEMENT = 15,
- DATA_PUTRICIDE_TABLE = 16,
- DATA_NAUSEA_ACHIEVEMENT = 17,
- DATA_ORB_WHISPERER_ACHIEVEMENT = 18,
- DATA_PRINCE_KELESETH_GUID = 19,
- DATA_PRINCE_TALDARAM_GUID = 20,
- DATA_PRINCE_VALANAR_GUID = 21,
- DATA_BLOOD_PRINCES_CONTROL = 22,
- DATA_SINDRAGOSA_FROSTWYRMS = 23,
- DATA_SPINESTALKER = 24,
- DATA_RIMEFANG = 25,
- DATA_COLDFLAME_JETS = 26,
- DATA_TEAM_IN_INSTANCE = 27,
- DATA_BLOOD_QUICKENING_STATE = 28,
- DATA_HEROIC_ATTEMPTS = 29,
- DATA_CROK_SCOURGEBANE = 30,
- DATA_CAPTAIN_ARNATH = 31,
- DATA_CAPTAIN_BRANDON = 32,
- DATA_CAPTAIN_GRONDEL = 33,
- DATA_CAPTAIN_RUPERT = 34,
- DATA_VALITHRIA_TRIGGER = 35,
- DATA_VALITHRIA_LICH_KING = 36,
- DATA_HIGHLORD_TIRION_FORDRING = 37,
- DATA_ARTHAS_PLATFORM = 38,
- DATA_TERENAS_MENETHIL = 39,
- DATA_ENEMY_GUNSHIP = 40,
- DATA_UPPERSPIRE_TELE_ACT = 41,
+ DATA_SAURFANG_EVENT_NPC = 13,
+ DATA_BONED_ACHIEVEMENT = 14,
+ DATA_OOZE_DANCE_ACHIEVEMENT = 15,
+ DATA_PUTRICIDE_TABLE = 16,
+ DATA_NAUSEA_ACHIEVEMENT = 17,
+ DATA_ORB_WHISPERER_ACHIEVEMENT = 18,
+ DATA_PRINCE_KELESETH_GUID = 19,
+ DATA_PRINCE_TALDARAM_GUID = 20,
+ DATA_PRINCE_VALANAR_GUID = 21,
+ DATA_BLOOD_PRINCES_CONTROL = 22,
+ DATA_SINDRAGOSA_FROSTWYRMS = 23,
+ DATA_SPINESTALKER = 24,
+ DATA_RIMEFANG = 25,
+ DATA_COLDFLAME_JETS = 26,
+ DATA_TEAM_IN_INSTANCE = 27,
+ DATA_BLOOD_QUICKENING_STATE = 28,
+ DATA_HEROIC_ATTEMPTS = 29,
+ DATA_CROK_SCOURGEBANE = 30,
+ DATA_CAPTAIN_ARNATH = 31,
+ DATA_CAPTAIN_BRANDON = 32,
+ DATA_CAPTAIN_GRONDEL = 33,
+ DATA_CAPTAIN_RUPERT = 34,
+ DATA_VALITHRIA_TRIGGER = 35,
+ DATA_VALITHRIA_LICH_KING = 36,
+ DATA_HIGHLORD_TIRION_FORDRING = 37,
+ DATA_ARTHAS_PLATFORM = 38,
+ DATA_TERENAS_MENETHIL = 39,
+ DATA_ENEMY_GUNSHIP = 40,
+ DATA_UPPERSPIRE_TELE_ACT = 41,
+ DATA_BLOOD_QUEEN_LANA_THEL_COUNCIL = 42
};
enum CreaturesIds
@@ -247,6 +248,7 @@ enum CreaturesIds
NPC_KINETIC_BOMB_TARGET = 38458,
NPC_KINETIC_BOMB = 38454,
NPC_SHOCK_VORTEX = 38422,
+ NPC_BLOOD_QUEEN_LANA_THEL_COUNCIL = 38004,
// Blood-Queen Lana'thel
NPC_BLOOD_QUEEN_LANA_THEL = 37955,
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
index 5354d1772b6..718c0ebe231 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/instance_icecrown_citadel.cpp
@@ -173,6 +173,12 @@ class instance_icecrown_citadel : public InstanceMapScript
switch (creature->GetEntry())
{
+ case NPC_LORD_MARROWGAR:
+ LordMarrowgarGUID = creature->GetGUID();
+ break;
+ case NPC_LADY_DEATHWHISPER:
+ LadyDeahtwhisperGUID = creature->GetGUID();
+ break;
case NPC_KOR_KRON_GENERAL:
if (TeamInInstance == ALLIANCE)
creature->UpdateEntry(NPC_ALLIANCE_COMMANDER);
@@ -249,6 +255,9 @@ class instance_icecrown_citadel : public InstanceMapScript
case NPC_BLOOD_ORB_CONTROLLER:
BloodCouncilControllerGUID = creature->GetGUID();
break;
+ case NPC_BLOOD_QUEEN_LANA_THEL_COUNCIL:
+ BloodQueenLanaThelCouncilGUID = creature->GetGUID();
+ break;
case NPC_BLOOD_QUEEN_LANA_THEL:
BloodQueenLanaThelGUID = creature->GetGUID();
break;
@@ -712,6 +721,10 @@ class instance_icecrown_citadel : public InstanceMapScript
{
switch (type)
{
+ case DATA_LORD_MARROWGAR:
+ return LordMarrowgarGUID;
+ case DATA_LADY_DEATHWHISPER:
+ return LadyDeahtwhisperGUID;
case DATA_ICECROWN_GUNSHIP_BATTLE:
return GunshipGUID;
case DATA_ENEMY_GUNSHIP:
@@ -738,6 +751,8 @@ class instance_icecrown_citadel : public InstanceMapScript
return BloodCouncilGUIDs[2];
case DATA_BLOOD_PRINCES_CONTROL:
return BloodCouncilControllerGUID;
+ case DATA_BLOOD_QUEEN_LANA_THEL_COUNCIL:
+ return BloodQueenLanaThelCouncilGUID;
case DATA_BLOOD_QUEEN_LANA_THEL:
return BloodQueenLanaThelGUID;
case DATA_CROK_SCOURGEBANE:
@@ -1425,6 +1440,8 @@ class instance_icecrown_citadel : public InstanceMapScript
protected:
EventMap Events;
+ ObjectGuid LordMarrowgarGUID;
+ ObjectGuid LadyDeahtwhisperGUID;
ObjectGuid LadyDeathwisperElevatorGUID;
ObjectGuid GunshipGUID;
ObjectGuid EnemyGunshipGUID;
@@ -1452,6 +1469,7 @@ class instance_icecrown_citadel : public InstanceMapScript
ObjectGuid PutricideTableGUID;
ObjectGuid BloodCouncilGUIDs[3];
ObjectGuid BloodCouncilControllerGUID;
+ ObjectGuid BloodQueenLanaThelCouncilGUID;
ObjectGuid BloodQueenLanaThelGUID;
ObjectGuid CrokScourgebaneGUID;
ObjectGuid CrokCaptainGUIDs[4];