aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/3.3.5/2020_09_08_02_world.sql71
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp87
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp73
-rw-r--r--src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp50
4 files changed, 74 insertions, 207 deletions
diff --git a/sql/updates/world/3.3.5/2020_09_08_02_world.sql b/sql/updates/world/3.3.5/2020_09_08_02_world.sql
new file mode 100644
index 00000000000..9f50fd4167c
--- /dev/null
+++ b/sql/updates/world/3.3.5/2020_09_08_02_world.sql
@@ -0,0 +1,71 @@
+-- Archavon Warder, for some reason Shield Crush doesn't appear in sniffs
+UPDATE `creature_template` SET `AIName` = "SmartAI", `ScriptName` = "" WHERE `entry` = 32353;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = 32353 AND `source_type` = 0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(32353,0,0,0,0,0,100,2,20000,20000,20000,20000,0,11,60897,0,0,0,0,0,2,0,0,0,0,0,0,0,0,"Archavon Warder - In Combat - Cast 'Shield Crush' (Normal Dungeon)"),
+(32353,0,1,0,0,0,100,4,20000,20000,20000,20000,0,11,60899,0,0,0,0,0,2,0,0,0,0,0,0,0,0,"Archavon Warder - In Combat - Cast 'Shield Crush' (Heroic Dungeon)"),
+(32353,0,2,0,0,0,100,2,11000,13000,15000,15000,0,11,60902,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Archavon Warder - In Combat - Cast 'Whirl' (Normal Dungeon)"),
+(32353,0,3,0,0,0,100,4,11000,13000,15000,15000,0,11,60916,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Archavon Warder - In Combat - Cast 'Whirl' (Heroic Dungeon)"),
+(32353,0,4,0,0,0,100,2,15000,19000,25000,30000,0,11,60919,0,0,0,0,0,5,0,0,0,0,0,0,0,0,"Archavon Warder - In Combat - Cast 'Rock Shower' (Normal Dungeon)"),
+(32353,0,5,0,0,0,100,4,15000,19000,25000,30000,0,11,60923,0,0,0,0,0,5,0,0,0,0,0,0,0,0,"Archavon Warder - In Combat - Cast 'Rock Shower' (Heroic Dungeon)");
+
+-- Flame Warder (https://youtu.be/8hpdbio-n-Y?t=56)
+UPDATE `creature_template` SET `AIName` = "SmartAI", `ScriptName` = "" WHERE `entry` = 35143;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = 35143 AND `source_type` = 0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(35143,0,0,0,0,0,100,2,10000,15000,35000,35000,0,11,66808,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Flame Warder - In Combat - Cast 'Meteor Fists' (Normal Dungeon)"),
+(35143,0,1,0,0,0,100,4,10000,15000,35000,35000,0,11,68160,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Flame Warder - In Combat - Cast 'Meteor Fists' (Heroic Dungeon)"),
+(35143,0,2,0,0,0,100,2,5000,5000,15000,15000,0,11,66813,0,0,0,0,0,5,0,0,0,0,0,0,0,0,"Flame Warder - In Combat - Cast 'Lava Burst' (Normal Dungeon)"),
+(35143,0,3,0,0,0,100,4,5000,5000,15000,15000,0,11,67330,0,0,0,0,0,5,0,0,0,0,0,0,0,0,"Flame Warder - In Combat - Cast 'Lava Burst' (Heroic Dungeon)");
+
+-- Frost Warder (3.3.5 Sniffs Normal & Heroic)
+UPDATE `creature_template_addon` SET `auras` = "72122" WHERE `entry` = 38482;
+UPDATE `creature_template_addon` SET `auras` = "71993" WHERE `entry` = 38483;
+UPDATE `creature_template` SET `AIName` = "SmartAI", `ScriptName` = "" WHERE `entry` = 38482;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = 38482 AND `source_type` = 0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(38482,0,0,0,0,0,100,2,5000,5000,5000,9000,0,11,72123,0,0,0,0,0,5,0,0,0,0,0,0,0,0,"Frost Warder - In Combat - Cast 'Frost Blast' (Normal Dungeon)"),
+(38482,0,1,0,0,0,100,4,5000,5000,5000,9000,0,11,72124,0,0,0,0,0,5,0,0,0,0,0,0,0,0,"Frost Warder - In Combat - Cast 'Frost Blast' (Heroic Dungeon)");
+
+-- Tempest Warder (https://youtu.be/8hpdbio-n-Y?t=454)
+UPDATE `creature_template` SET `AIName` = "SmartAI" WHERE `entry` = 34015;
+DELETE FROM `smart_scripts` WHERE `entryorguid` = 34015 AND `source_type` = 0;
+INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`event_param5`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_param4`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
+(34015,0,0,0,0,0,100,0,5000,8000,4000,7000,0,11,64363,0,0,0,0,0,5,0,0,0,0,0,0,0,0,"Tempest Warder - In Combat - Cast 'Shock'"),
+(34015,0,1,2,2,0,100,1,0,40,0,0,0,11,64379,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Tempest Warder - Between 0-40% Health - Cast 'Overcharge' (No Repeat)"),
+(34015,0,2,0,61,0,100,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,"Tempest Warder - On Link - Say Line 0");
+
+DELETE FROM `creature_text` WHERE `CreatureID` = 34015;
+INSERT INTO `creature_text` (`CreatureID`,`GroupID`,`ID`,`Text`,`Type`,`Language`,`Probability`,`Emote`,`Duration`,`Sound`,`BroadcastTextId`,`TextRange`,`comment`) VALUES
+(34015,0,0,"%s crackles and surges with raw energy!",41,0,100,0,0,0,34085,0,"Tempest Warder");
+
+-- Add waypoints from sniffs
+DELETE FROM `creature_addon` WHERE `guid` IN (202595,202598);
+INSERT INTO `creature_addon` (`guid`,`path_id`) VALUES
+(202595,2025950),
+(202598,2025980);
+
+UPDATE `creature` SET `MovementType` = 2 WHERE `guid` IN (202595,202598);
+
+DELETE FROM `waypoint_data` WHERE `id` IN (2025950,2025980);
+INSERT INTO `waypoint_data` (`id`, `point`, `position_x`, `position_y`, `position_z`) VALUES
+(2025950, 1, -218.85168, -200.84744, 97.592926),
+(2025950, 2, -218.84631, -185.63348, 97.592926),
+(2025950, 3, -218.7963, -176.4833, 97.592926),
+(2025950, 4, -218.86719, -166.53061, 97.592926),
+(2025950, 5, -218.83926, -153.72055, 101.95123),
+(2025950, 6, -218.86719, -166.53061, 97.592926),
+(2025950, 7, -218.7963, -176.4833, 97.592926),
+(2025950, 8, -218.84631, -185.63348, 97.592926),
+(2025950, 9, -218.85168, -200.84744, 97.592926),
+(2025950, 10, -218.9047, -211.1511, 97.592926),
+(2025980, 1, -218.625, 2.2204819, 97.593),
+(2025980, 2, -218.63019, -37.989586, 97.593);
+
+-- Fix amount of gold from Flame Warder in heroic
+UPDATE `creature_template` SET `mingold` = 8112, `maxgold` = 13520 WHERE `entry` = 35359;
+
+-- Meteor Fists for heroic mode
+DELETE FROM `spelldifficulty_dbc` WHERE `id` = 66809;
+INSERT INTO `spelldifficulty_dbc` (`id`,`spellid0`,`spellid1`,`spellid2`,`spellid3`) VALUES
+(66809,66809,67331,0,0);
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp
index c29ba834e96..eaefeabf71c 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_archavon.cpp
@@ -37,12 +37,7 @@ enum Spells
SPELL_CRUSHING_LEAP = 58960,
SPELL_STOMP = 58663,
SPELL_IMPALE = 58666,
- SPELL_BERSERK = 47008,
-
- // Archavon Warders
- SPELL_ROCK_SHOWER = 60919,
- SPELL_SHIELD_CRUSH = 60897,
- SPELL_WHIRL = 60902
+ SPELL_BERSERK = 47008
};
enum Creatures
@@ -58,11 +53,6 @@ enum Events
EVENT_STOMP = 3, // 45s cd
EVENT_IMPALE = 4,
EVENT_BERSERK = 5, // 300s cd
-
- //mob
- EVENT_ROCK_SHOWER = 6, // set = 20s cd, unkown cd
- EVENT_SHIELD_CRUSH = 7, // set = 30s cd
- EVENT_WHIRL = 8, // set= 10s cd
};
class boss_archavon : public CreatureScript
@@ -144,80 +134,6 @@ class boss_archavon : public CreatureScript
}
};
-/*######
-## Mob Archavon Warder
-######*/
-class npc_archavon_warder : public CreatureScript
-{
- public:
- npc_archavon_warder() : CreatureScript("npc_archavon_warder") { }
-
- struct npc_archavon_warderAI : public ScriptedAI //npc 32353
- {
- npc_archavon_warderAI(Creature* creature) : ScriptedAI(creature)
- {
- }
-
- EventMap events;
-
- void Reset() override
- {
- events.Reset();
- events.ScheduleEvent(EVENT_ROCK_SHOWER, 2s);
- events.ScheduleEvent(EVENT_SHIELD_CRUSH, 20s);
- events.ScheduleEvent(EVENT_WHIRL, 7s);
- }
-
- void JustEngagedWith(Unit* /*who*/) override
- {
- DoZoneInCombat();
- }
-
- void UpdateAI(uint32 diff) override
- {
- if (!UpdateVictim())
- return;
-
- events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_ROCK_SHOWER:
- if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0))
- DoCast(target, SPELL_ROCK_SHOWER);
- events.ScheduleEvent(EVENT_ROCK_SHARDS, 6s);
- break;
- case EVENT_SHIELD_CRUSH:
- DoCastVictim(SPELL_SHIELD_CRUSH);
- events.ScheduleEvent(EVENT_SHIELD_CRUSH, 20s);
- break;
- case EVENT_WHIRL:
- DoCastVictim(SPELL_WHIRL);
- events.ScheduleEvent(EVENT_WHIRL, 8s);
- break;
- default:
- break;
- }
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
- }
-
- DoMeleeAttackIfReady();
- }
- };
-
- CreatureAI* GetAI(Creature* creature) const override
- {
- return GetVaultOfArchavonAI<npc_archavon_warderAI>(creature);
- }
-};
-
// 58941 - Rock Shards
class spell_archavon_rock_shards : public SpellScriptLoader
{
@@ -268,6 +184,5 @@ class spell_archavon_rock_shards : public SpellScriptLoader
void AddSC_boss_archavon()
{
new boss_archavon();
- new npc_archavon_warder();
new spell_archavon_rock_shards();
}
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp
index c966229064b..767e9293c79 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_koralon.cpp
@@ -26,11 +26,7 @@ enum Events
EVENT_BURNING_BREATH = 1,
EVENT_BURNING_FURY = 2,
EVENT_FLAME_CINDER = 3,
- EVENT_METEOR_FISTS = 4,
-
- // Flame Warder
- EVENT_FW_LAVA_BIRST = 5,
- EVENT_FW_METEOR_FISTS = 6
+ EVENT_METEOR_FISTS = 4
};
enum Spells
@@ -44,8 +40,6 @@ enum Spells
SPELL_METEOR_FISTS_DAMAGE = 66765,
// Spells Flame Warder
- SPELL_FW_LAVA_BIRST = 66813,
- SPELL_FW_METEOR_FISTS = 66808,
SPELL_FW_METEOR_FISTS_DAMAGE = 66809
};
@@ -120,70 +114,6 @@ class boss_koralon : public CreatureScript
}
};
-/*######
-## Npc Flame Warder
-######*/
-class npc_flame_warder : public CreatureScript
-{
- public:
- npc_flame_warder() : CreatureScript("npc_flame_warder") { }
-
- struct npc_flame_warderAI : public ScriptedAI
- {
- npc_flame_warderAI(Creature* creature) : ScriptedAI(creature)
- {
- }
-
- void Reset() override
- {
- events.Reset();
- }
-
- void JustEngagedWith(Unit* /*who*/) override
- {
- DoZoneInCombat();
-
- events.ScheduleEvent(EVENT_FW_LAVA_BIRST, 5s);
- events.ScheduleEvent(EVENT_FW_METEOR_FISTS, 10s);
- }
-
- void UpdateAI(uint32 diff) override
- {
- if (!UpdateVictim())
- return;
-
- events.Update(diff);
-
- while (uint32 eventId = events.ExecuteEvent())
- {
- switch (eventId)
- {
- case EVENT_FW_LAVA_BIRST:
- DoCastVictim(SPELL_FW_LAVA_BIRST);
- events.ScheduleEvent(EVENT_FW_LAVA_BIRST, 15s);
- break;
- case EVENT_FW_METEOR_FISTS:
- DoCast(me, SPELL_FW_METEOR_FISTS);
- events.ScheduleEvent(EVENT_FW_METEOR_FISTS, 20s);
- break;
- default:
- break;
- }
- }
-
- DoMeleeAttackIfReady();
- }
-
- private:
- EventMap events;
- };
-
- CreatureAI* GetAI(Creature* creature) const override
- {
- return GetVaultOfArchavonAI<npc_flame_warderAI>(creature);
- }
-};
-
class spell_koralon_meteor_fists : public SpellScriptLoader
{
public:
@@ -294,7 +224,6 @@ class spell_flame_warder_meteor_fists : public SpellScriptLoader
void AddSC_boss_koralon()
{
new boss_koralon();
- new npc_flame_warder();
new spell_koralon_meteor_fists();
new spell_koralon_meteor_fists_damage();
new spell_flame_warder_meteor_fists();
diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
index 9670a21799b..967a0782435 100644
--- a/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
+++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_toravon.cpp
@@ -34,10 +34,6 @@ enum Spells
SPELL_FROZEN_ORB_AURA = 72067,
SPELL_RANDOM_AGGRO = 72084,
- // Frost Warder
- SPELL_FROST_BLAST = 72123, // don't know cd... using 20 secs.
- SPELL_FROZEN_MALLET_2 = 72122,
-
// Frozen Orb Stalker
FROZEN_ORB_STALKER_AURA = 72094
};
@@ -46,9 +42,7 @@ enum Events
{
EVENT_FREEZING_GROUND = 1,
EVENT_FROZEN_ORB = 2,
- EVENT_WHITEOUT = 3,
-
- EVENT_FROST_BLAST = 4
+ EVENT_WHITEOUT = 3
};
struct boss_toravon : public BossAI
@@ -117,47 +111,6 @@ struct npc_frozen_orb_stalker : public ScriptedAI
}
};
-struct npc_frost_warder : public ScriptedAI
-{
- npc_frost_warder(Creature* creature) : ScriptedAI(creature) { }
-
- void Reset() override
- {
- _events.Reset();
- }
-
- void JustEngagedWith(Unit* /*who*/) override
- {
- DoZoneInCombat();
-
- DoCastSelf(SPELL_FROZEN_MALLET_2);
-
- _events.ScheduleEvent(EVENT_FROST_BLAST, 5s);
- }
-
- void UpdateAI(uint32 diff) override
- {
- if (!UpdateVictim())
- return;
-
- _events.Update(diff);
-
- if (me->HasUnitState(UNIT_STATE_CASTING))
- return;
-
- if (_events.ExecuteEvent() == EVENT_FROST_BLAST)
- {
- DoCastVictim(SPELL_FROST_BLAST);
- _events.ScheduleEvent(EVENT_FROST_BLAST, 20s);
- }
-
- DoMeleeAttackIfReady();
- }
-
-private:
- EventMap _events;
-};
-
struct npc_frozen_orb : public ScriptedAI
{
npc_frozen_orb(Creature* creature) : ScriptedAI(creature) { }
@@ -211,7 +164,6 @@ class spell_toravon_random_aggro : public SpellScript
void AddSC_boss_toravon()
{
RegisterVaultOfArchavonCreatureAI(boss_toravon);
- RegisterVaultOfArchavonCreatureAI(npc_frost_warder);
RegisterVaultOfArchavonCreatureAI(npc_frozen_orb_stalker);
RegisterVaultOfArchavonCreatureAI(npc_frozen_orb);
RegisterSpellScript(spell_toravon_random_aggro);