mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-20 09:17:36 +01:00
Merge pull request #15852 from Golrag/icc_boss_aggro
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user