Scripts/EyeOfAzshara: Implement King Deepbeard encounter (#31420)

This commit is contained in:
Aqua Deus
2026-02-01 00:08:58 +01:00
committed by GitHub
parent ac08915142
commit e0c88e3764
6 changed files with 527 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
-- Creature
DELETE FROM `creature_template_difficulty` WHERE (`Entry`=97916 AND `DifficultyID` IN (23, 2));
INSERT INTO `creature_template_difficulty` (`Entry`, `DifficultyID`, `LevelScalingDeltaMin`, `LevelScalingDeltaMax`, `ContentTuningID`, `StaticFlags1`, `StaticFlags2`, `StaticFlags3`, `StaticFlags4`, `StaticFlags5`, `StaticFlags6`, `StaticFlags7`, `StaticFlags8`, `VerifiedBuild`) VALUES
(97916, 23, 2, 2, 629, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 63906), -- 97916 (Quake) -
(97916, 2, 2, 2, 628, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 64154); -- 97916 (Quake) -
UPDATE `creature_template_difficulty` SET `HealthScalingExpansion`=6, `HealthModifier`=2, `CreatureDifficultyID`=98421, `TypeFlags`=0x400, `TypeFlags2`=128 WHERE (`Entry`=97916 AND `DifficultyID`=23); -- Quake
UPDATE `creature_template_difficulty` SET `ContentTuningID`=629, `StaticFlags1`=0x10000000, `VerifiedBuild`=63906 WHERE (`Entry`=91797 AND `DifficultyID`=0); -- 91797 (King Deepbeard) - CanSwim
UPDATE `creature_template_difficulty` SET `ContentTuningID`=628, `VerifiedBuild`=64154 WHERE (`Entry`=91797 AND `DifficultyID`=0); -- 91797 (King Deepbeard) - CanSwim
UPDATE `creature_template_difficulty` SET `LevelScalingDeltaMin`=0, `VerifiedBuild`=64154 WHERE (`Entry`=91797 AND `DifficultyID`=2); -- 91797 (King Deepbeard) - CanSwim
UPDATE `creature_template` SET `faction`=14, `speed_walk`=1.60000002384185791, `speed_run`=0.571428596973419189, `BaseAttackTime`=2000, `unit_flags`=0x2000000, `unit_flags3`=0x80001, `AIName`='SmartAI' WHERE `entry`=97916; -- Quake
UPDATE `creature_template` SET `ScriptName`='boss_king_deepbeard' WHERE `entry`=91797;
-- Instance
DELETE FROM `instance_template` WHERE `map`=1456;
INSERT INTO `instance_template` (`map`, `parent`, `script`) VALUES
(1456, 0, 'instance_eye_of_azshara');
-- Spells
DELETE FROM `spell_script_names` WHERE `ScriptName` IN ('spell_king_deepbeard_ground_slam', 'spell_king_deepbeard_gaseous_bubbles');
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(193093, 'spell_king_deepbeard_ground_slam'),
(193018, 'spell_king_deepbeard_gaseous_bubbles');
-- Areatrigger
DELETE FROM `areatrigger_template` WHERE `Id`= 9683;
INSERT INTO `areatrigger_template` (`Id`, `IsCustom`, `VerifiedBuild`) VALUES
(9683, 0, 62438);
DELETE FROM `areatrigger_create_properties` WHERE (`IsCustom`=0 AND `Id` = 4968);
INSERT INTO `areatrigger_create_properties` (`Id`, `IsCustom`, `AreaTriggerId`, `IsAreatriggerCustom`, `Flags`, `MoveCurveId`, `ScaleCurveId`, `MorphCurveId`, `FacingCurveId`, `AnimId`, `AnimKitId`, `DecalPropertiesId`, `SpellForVisuals`, `TimeToTargetScale`, `Speed`, `Shape`, `ShapeData0`, `ShapeData1`, `ShapeData2`, `ShapeData3`, `ShapeData4`, `ShapeData5`, `ShapeData6`, `ShapeData7`, `ScriptName`, `VerifiedBuild`) VALUES
(4968, 0, 9683, 0, 6, 0, 0, 0, 0, -1, 0, 0, NULL, 20000, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 'at_king_deepbeard_call_the_seas', 63906); -- Spell: 193054 (Call the Seas)
-- Conditions
DELETE FROM `conditions` WHERE `SourceTypeOrReferenceId`=13 AND `SourceEntry`=193051;
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `ConditionStringValue1`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
(13, 1, 193051, 0, 0, 51, 0, 5, 97844, 0, '', 0, 0, 0, '', 'Spell \'Call the Seas\' can only hit \'Call the Seas\'');
-- SAI
DELETE FROM `smart_scripts` WHERE `entryorguid`=97916 AND `source_type`=0;
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `Difficulties`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param_string`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `action_param7`, `action_param_string`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_param_string`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
(97916, 0, 0, 1, '', 11, 0, 100, 0, 0, 0, 0, 0, 0, '', 8, 0, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Quake - On Respawn - Set ReactState - React Passive'),
(97916, 0, 1, 2, '', 61, 0, 100, 0, 0, 0, 0, 0, 0, '', 11, 193175, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Quake - On Respawn - Cast \'Quake\''),
(97916, 0, 2, 0, '', 61, 0, 100, 1, 0, 0, 0, 0, 0, '', 11, 193159, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Quake - On Respawn - Cast \'Quake\''),
(97916, 0, 3, 0, '8,23', 11, 0, 100, 0, 0, 0, 0, 0, 0, '', 11, 193167, 0, 0, 0, 0, 0, 0, NULL, 1, 0, 0, 0, 0, NULL, 0, 0, 0, 0, 'Quake (Difficulties Mythic and M+) - On Respawn - Cast \'Aftershock\'');
-- Texts
DELETE FROM `creature_text` WHERE `CreatureID`=91797;
INSERT INTO `creature_text` (`CreatureID`, `GroupID`, `ID`, `Text`, `Type`, `Language`, `Probability`, `Emote`, `Duration`, `Sound`, `BroadcastTextId`, `TextRange`, `comment`) VALUES
(91797, 0, 0, 'You killed my son! Your punishment is death!', 14, 0, 50, 0, 0, 54317, 102316, 0, 'King Deepbeard to Player'),
(91797, 0, 1, 'You weaklings will drown beneath these waves!', 14, 0, 50, 0, 0, 54316, 102315, 0, 'King Deepbeard to Player'),
(91797, 1, 0, 'How long can you hold your breath, I wonder?', 14, 0, 100, 0, 0, 54312, 102305, 0, 'King Deepbeard'),
(91797, 2, 0, 'Before the crashing waves come the quake!', 14, 0, 33, 0, 0, 54314, 102307, 0, 'King Deepbeard'),
(91797, 2, 1, 'Pity you cannot survive without air!', 14, 0, 33, 0, 0, 54313, 102306, 0, 'King Deepbeard'),
(91797, 2, 2, 'The earth trembles before the rising tide!', 14, 0, 33, 0, 0, 54315, 102308, 0, 'King Deepbeard'),
(91797, 3, 0, '|TInterface\\Icons\\spell_frost_summonwaterelemental:20|t%s begins to cast |cFFFF0000|Hspell:193051|h[Call the Seas]|h|r!', 41, 0, 100, 0, 0, 54164, 99824, 0, 'King Deepbeard'),
(91797, 4, 0, 'The ocean will sweep you away!', 14, 0, 50, 0, 0, 54164, 102302, 0, 'King Deepbeard'),
(91797, 4, 1, 'Seas! Obey my command!', 14, 0, 50, 0, 0, 54310, 102303, 0, 'King Deepbeard'),
(91797, 5, 0, '%s goes into a frenzy!', 16, 0, 100, 0, 0, 54311, 38630, 0, 'King Deepbeard'),
(91797, 6, 0, 'BUURRRP', 14, 0, 100, 0, 0, 54311, 102304, 0, 'King Deepbeard'),
(91797, 7, 0, 'I failed... but my Queen will NOT.', 14, 0, 25, 0, 0, 54319, 102312, 0, 'King Deepbeard to Player'),
(91797, 7, 1, 'You haven\'t won. She is almost here...', 14, 0, 25, 0, 0, 54318, 102311, 0, 'King Deepbeard to Player'),
(91797, 7, 2, 'The oceans rest... but the wind still rises against you.', 14, 0, 25, 0, 0, 54320, 102309, 0, 'King Deepbeard to Player'),
(91797, 7, 3, 'Gaaah... The winds will finish you, intruders.', 14, 0, 25, 0, 0, 54322, 102310, 0, 'King Deepbeard to Player'),
(91797, 8, 0, 'Blood repays blood.', 14, 0, 50, 0, 0, 54329, 102314, 0, 'King Deepbeard'),
(91797, 8, 1, 'Justice for the son you murdered!', 14, 0, 50, 0, 0, 54326, 102313, 0, 'King Deepbeard'),
(91797, 9, 0, 'This was as inevitable as the tides, fools.', 14, 0, 100, 0, 0, 54332, 102317, 0, 'King Deepbeard');

View File

@@ -4764,6 +4764,18 @@ void SpellMgr::LoadSpellInfoCorrections()
// ENDOF BLACK ROOK HOLD SPELLS
//
// EYE OF AZSHARA SPELLS
//
// Gaseous Bubbles
ApplySpellFix({ 193018 }, [](SpellInfo* spellInfo)
{
spellInfo->Attributes |= SPELL_ATTR0_AURA_IS_DEBUFF;
});
// ENDOF EYE OF AZSHARA SPELLS
//
// ANTORUS THE BURNING THRONE SPELLS
//

View File

@@ -0,0 +1,296 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "AreaTrigger.h"
#include "AreaTriggerAI.h"
#include "Creature.h"
#include "GridNotifiersImpl.h"
#include "InstanceScript.h"
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "SpellAuras.h"
#include "SpellScript.h"
#include "eye_of_azshara.h"
enum KingDeepbeardSpells
{
SPELL_CALL_THE_SEAS = 193051,
SPELL_CALL_THE_SEAS_AT = 193054,
SPELL_CALL_THE_SEAS_DAMAGE = 193055,
SPELL_GASEOUS_BUBBLES = 193018,
SPELL_GASEOUS_EXPLOSION = 193047,
SPELL_GROUND_SLAM = 193093,
SPELL_GROUND_SLAM_MISSILE = 193056,
SPELL_QUAKE = 193152,
SPELL_FRENZY = 197550
};
enum KingDeepbeardEvents
{
EVENT_ENERGIZE = 1,
EVENT_CALL_THE_SEAS,
EVENT_GASEOUS_BUBBLES,
EVENT_GROUND_SLAM
};
enum KingDeepbeardTexts
{
SAY_AGGRO = 0,
SAY_GASEOUS_BUBBLES = 1,
SAY_QUAKE = 2,
SAY_CALL_THE_SEAS_WARNING = 3,
SAY_CALL_THE_SEAS = 4,
SAY_FRENZY_WARNING = 5,
SAY_FRENZY = 6,
SAY_DEATH = 7,
SAY_SLAY = 8,
SAY_WIPE = 9
};
enum KingDeepbeardMisc
{
NPC_CALL_THE_SEAS = 97844,
NPC_QUAKE = 97916,
};
// 91797 - King Deepbeard
struct boss_king_deepbeard : public BossAI
{
boss_king_deepbeard(Creature* creature) : BossAI(creature, DATA_KING_DEEPBEARD) { }
void JustAppeared() override
{
me->SetPower(me->GetPowerType(), 30);
}
void KilledUnit(Unit* victim) override
{
if (!victim->IsPlayer())
return;
Talk(SAY_SLAY);
}
void RemoveQuakes()
{
std::list<Creature*> quakes;
Trinity::AllCreaturesOfEntryInRange checker(me, NPC_QUAKE, 200.0f);
Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, quakes, checker);
Cell::VisitAllObjects(me, searcher, 200.0f);
if (quakes.empty())
return;
for (Creature* quake : quakes)
quake->DespawnOrUnsummon();
}
void RemoveCallTheSeas()
{
std::list<Creature*> callTheSeas;
Trinity::AllCreaturesOfEntryInRange checker(me, NPC_CALL_THE_SEAS, 200.0f);
Trinity::CreatureListSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(me, callTheSeas, checker);
Cell::VisitAllObjects(me, searcher, 200.0f);
if (callTheSeas.empty())
return;
for (Creature* callTheSea : callTheSeas)
callTheSea->RemoveAurasDueToSpell(SPELL_CALL_THE_SEAS_AT);
}
void JustDied(Unit* /*killer*/) override
{
_JustDied();
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
instance->SetBossState(DATA_KING_DEEPBEARD, DONE);
Talk(SAY_DEATH);
RemoveQuakes();
RemoveCallTheSeas();
}
void EnterEvadeMode(EvadeReason /*why*/) override
{
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
instance->SetBossState(DATA_KING_DEEPBEARD, FAIL);
Talk(SAY_WIPE);
RemoveQuakes();
RemoveCallTheSeas();
_EnterEvadeMode();
_DespawnAtEvade();
}
void JustEngagedWith(Unit* who) override
{
BossAI::JustEngagedWith(who);
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me, 1);
instance->SetBossState(DATA_KING_DEEPBEARD, IN_PROGRESS);
Talk(SAY_AGGRO);
events.ScheduleEvent(EVENT_ENERGIZE, 1s);
events.ScheduleEvent(EVENT_CALL_THE_SEAS, 20500ms);
events.ScheduleEvent(EVENT_GASEOUS_BUBBLES, 12800ms);
events.ScheduleEvent(EVENT_GROUND_SLAM, 6s);
}
void DamageTaken(Unit* /*attacker*/, uint32& damage, DamageEffectType /*damageType*/, SpellInfo const* /*spellInfo = nullptr*/) override
{
if (me->HealthBelowPctDamaged(30, damage) && !me->HasAura(SPELL_FRENZY))
{
Talk(SAY_FRENZY_WARNING);
Talk(SAY_FRENZY);
DoCastSelf(SPELL_FRENZY);
}
}
void UpdateAI(uint32 diff) override
{
scheduler.Update(diff);
if (!UpdateVictim())
return;
events.Update(diff);
if (me->HasUnitState(UNIT_STATE_CASTING))
return;
if (uint32 eventId = events.ExecuteEvent())
{
switch (eventId)
{
case EVENT_ENERGIZE:
{
if (me->GetPower(me->GetPowerType()) == 100)
{
Talk(SAY_QUAKE);
DoCast(SPELL_QUAKE);
events.RescheduleEvent(EVENT_ENERGIZE, 1500ms);
}
else
{
me->SetPower(me->GetPowerType(), me->GetPower(me->GetPowerType()) + 5);
events.Repeat(1s);
}
break;
}
case EVENT_CALL_THE_SEAS:
{
Talk(SAY_CALL_THE_SEAS_WARNING);
Talk(SAY_CALL_THE_SEAS);
DoCastSelf(SPELL_CALL_THE_SEAS);
events.Repeat(30400ms);
break;
}
case EVENT_GASEOUS_BUBBLES:
{
Talk(SAY_GASEOUS_BUBBLES);
DoCastAOE(SPELL_GASEOUS_BUBBLES);
events.Repeat(32800ms, 35300ms);
break;
}
case EVENT_GROUND_SLAM:
{
DoCastVictim(SPELL_GROUND_SLAM);
events.Repeat(21800ms);
break;
}
default:
break;
}
}
}
};
// 193093 - Ground Slam
class spell_king_deepbeard_ground_slam : public SpellScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_GROUND_SLAM_MISSILE });
}
void OnPrecast() override
{
GetCaster()->CastSpell(GetExplTargetUnit()->GetPosition(), SPELL_GROUND_SLAM_MISSILE, TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR);
}
void Register() override { }
};
// 193018 - Gaseous Bubbles
class spell_king_deepbeard_gaseous_bubbles : public AuraScript
{
bool Validate(SpellInfo const* /*spellInfo*/) override
{
return ValidateSpellInfo({ SPELL_GASEOUS_EXPLOSION });
}
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
{
if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)
return;
Unit* target = GetTarget();
target->CastSpell(target, SPELL_GASEOUS_EXPLOSION, TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR);
}
void Register() override
{
AfterEffectRemove += AuraEffectRemoveFn(spell_king_deepbeard_gaseous_bubbles::OnRemove, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB, AURA_EFFECT_HANDLE_REAL);
}
};
// 193054 - Call the Seas
// Id - 4968
struct at_king_deepbeard_call_the_seas : AreaTriggerAI
{
using AreaTriggerAI::AreaTriggerAI;
void OnUnitEnter(Unit* unit) override
{
Unit* caster = at->GetCaster();
if (!caster)
return;
if (!unit->IsPlayer())
return;
caster->CastSpell(unit, SPELL_CALL_THE_SEAS_DAMAGE, TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_DONT_REPORT_CAST_ERROR);
}
void OnUnitExit(Unit* unit, AreaTriggerExitReason /*reason*/) override
{
unit->RemoveAurasDueToSpell(SPELL_CALL_THE_SEAS_DAMAGE);
}
};
void AddSC_boss_king_deepbeard()
{
RegisterEyeOfAzsharaCreatureAI(boss_king_deepbeard);
RegisterSpellScript(spell_king_deepbeard_ground_slam);
RegisterSpellScript(spell_king_deepbeard_gaseous_bubbles);
RegisterAreaTriggerAI(at_king_deepbeard_call_the_seas);
}

View File

@@ -0,0 +1,62 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef DEF_EYE_OF_AZSHARA_H_
#define DEF_EYE_OF_AZSHARA_H_
#include "CreatureAIImpl.h"
#define DataHeader "EyeOfAzshara"
#define EOAScriptName "instance_eye_of_azshara"
uint32 const EncounterCount = 5;
enum EOADataTypes
{
// Encounters
DATA_WARLORD_PARJESH = 0,
DATA_LADY_HATECOIL,
DATA_KING_DEEPBEARD,
DATA_SERPENTRIX,
DATA_WRATH_OF_AZSHARA
};
enum EOACreatureIds
{
// Bosses
BOSS_WARLORD_PARJESH = 91784,
BOSS_LADY_HATECOIL = 91789,
BOSS_KING_DEEPBEARD = 91797,
BOSS_SERPENTRIX = 91808,
BOSS_WRATH_OF_AZSHARA = 96028
};
enum EOAGameObjectIds
{
GO_WATER_DOOR_1 = 246983,
GO_WATER_DOOR_2 = 246982
};
template <class AI, class T>
inline AI* GetEyeOfAzsharaAI(T* obj)
{
return GetInstanceAI<AI>(obj, EOAScriptName);
}
#define RegisterEyeOfAzsharaCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetEyeOfAzsharaAI)
#endif // DEF_EYE_OF_AZSHARA_H_

View File

@@ -0,0 +1,81 @@
/*
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "AreaBoundary.h"
#include "InstanceScript.h"
#include "ScriptMgr.h"
#include "eye_of_azshara.h"
BossBoundaryData const boundaries =
{
{ DATA_KING_DEEPBEARD, new CircleBoundary(Position(-3448.65f, 4161.68f, 29.18f), 68.0f) }
};
ObjectData const creatureData[] =
{
{ BOSS_WARLORD_PARJESH, DATA_WARLORD_PARJESH },
{ BOSS_LADY_HATECOIL, DATA_LADY_HATECOIL },
{ BOSS_KING_DEEPBEARD, DATA_KING_DEEPBEARD },
{ BOSS_SERPENTRIX, DATA_SERPENTRIX },
{ BOSS_WRATH_OF_AZSHARA, DATA_WRATH_OF_AZSHARA },
{ 0, 0 } // END
};
DoorData const doorData[] =
{
{ GO_WATER_DOOR_1, DATA_KING_DEEPBEARD, EncounterDoorBehavior::OpenWhenNotInProgress },
{ GO_WATER_DOOR_2, DATA_KING_DEEPBEARD, EncounterDoorBehavior::OpenWhenNotInProgress },
{ 0, 0, EncounterDoorBehavior::OpenWhenNotInProgress } // END
};
DungeonEncounterData const encounters[] =
{
{ DATA_WARLORD_PARJESH, {{ 1810 }} },
{ DATA_LADY_HATECOIL, {{ 1811 }} },
{ DATA_KING_DEEPBEARD, {{ 1812 }} },
{ DATA_SERPENTRIX, {{ 1813 }} },
{ DATA_WRATH_OF_AZSHARA, {{ 1814 }} }
};
class instance_eye_of_azshara : public InstanceMapScript
{
public:
instance_eye_of_azshara() : InstanceMapScript(EOAScriptName, 1456) { }
struct AddSC_instance_eye_of_azshara_InstanceMapScript : public InstanceScript
{
AddSC_instance_eye_of_azshara_InstanceMapScript(InstanceMap* map) : InstanceScript(map)
{
SetHeaders(DataHeader);
SetBossNumber(EncounterCount);
LoadObjectData(creatureData, nullptr);
LoadDoorData(doorData);
LoadDungeonEncounterData(encounters);
LoadBossBoundaries(boundaries);
}
};
InstanceScript* GetInstanceScript(InstanceMap* map) const override
{
return new AddSC_instance_eye_of_azshara_InstanceMapScript(map);
}
};
void AddSC_instance_eye_of_azshara()
{
new instance_eye_of_azshara();
}

View File

@@ -36,6 +36,10 @@ void AddSC_instance_black_rook_hold();
void AddSC_boss_rokmora();
void AddSC_instance_neltharions_lair();
// Eye of Azshara
void AddSC_boss_king_deepbeard();
void AddSC_instance_eye_of_azshara();
// Orderhalls
void AddSC_orderhall_warrior();
void AddSC_orderhall_rogue();
@@ -63,6 +67,10 @@ void AddBrokenIslesScripts()
AddSC_boss_rokmora();
AddSC_instance_neltharions_lair();
// Eye of Azshara
AddSC_boss_king_deepbeard();
AddSC_instance_eye_of_azshara();
// Orderhalls
AddSC_orderhall_warrior();
AddSC_orderhall_rogue();