diff options
Diffstat (limited to 'src')
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]; |