Merge branch 'master' of github.com:TrinityCore/TrinityCore into 4.3.4
Conflicts: src/server/scripts/EasternKingdoms/CMakeLists.txt src/server/scripts/Kalimdor/zone_durotar.cpp src/server/scripts/Spells/spell_generic.cpp
This commit is contained in:
commit
2daa8ed56f
74 files changed
+630
-186
No files matched your search
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+11
-9
@@ -18,7 +18,7 @@
|
||||
#ifndef DEF_BLACKROCK_SPIRE_H
|
||||
#define DEF_BLACKROCK_SPIRE_H
|
||||
|
||||
uint32 const EncounterCount = 22;
|
||||
uint32 const EncounterCount = 23;
|
||||
|
||||
#define BRSScriptName "instance_blackrock_spire"
|
||||
|
||||
@@ -38,15 +38,16 @@ enum DataTypes
|
||||
DATA_GYTH = 11,
|
||||
DATA_THE_BEAST = 12,
|
||||
DATA_GENERAL_DRAKKISATH = 13,
|
||||
DATA_LORD_VALTHALAK = 14,
|
||||
// Extra
|
||||
DATA_DRAGONSPIRE_ROOM = 14,
|
||||
DATA_HALL_RUNE_1 = 15,
|
||||
DATA_HALL_RUNE_2 = 16,
|
||||
DATA_HALL_RUNE_3 = 17,
|
||||
DATA_HALL_RUNE_4 = 18,
|
||||
DATA_HALL_RUNE_5 = 19,
|
||||
DATA_HALL_RUNE_6 = 20,
|
||||
DATA_HALL_RUNE_7 = 21
|
||||
DATA_DRAGONSPIRE_ROOM = 15,
|
||||
DATA_HALL_RUNE_1 = 16,
|
||||
DATA_HALL_RUNE_2 = 17,
|
||||
DATA_HALL_RUNE_3 = 18,
|
||||
DATA_HALL_RUNE_4 = 19,
|
||||
DATA_HALL_RUNE_5 = 20,
|
||||
DATA_HALL_RUNE_6 = 21,
|
||||
DATA_HALL_RUNE_7 = 22
|
||||
};
|
||||
|
||||
enum CreaturesIds
|
||||
@@ -75,6 +76,7 @@ enum CreaturesIds
|
||||
enum AdditionalData
|
||||
{
|
||||
SPELL_SUMMON_ROOKERY_WHELP = 15745,
|
||||
EVENT_UROK_DOOMHOWL = 4845,
|
||||
EVENT_PYROGUARD_EMBERSEER = 4884,
|
||||
AREATRIGGER = 1,
|
||||
AREATRIGGER_DRAGONSPIRE_HALL = 2046,
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+138
@@ -0,0 +1,138 @@
|
||||
/*
|
||||
* Copyright (C) 2008-2013 TrinityCore <http://www.trinitycore.org/>
|
||||
*
|
||||
* 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 "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "blackrock_spire.h"
|
||||
|
||||
enum Spells
|
||||
{
|
||||
SPELL_FRENZY = 8269,
|
||||
SPELL_SUMMON_SPECTRAL_ASSASSIN = 27249,
|
||||
SPELL_SHADOW_BOLT_VOLLEY = 27382,
|
||||
SPELL_SHADOW_WRATH = 27286
|
||||
};
|
||||
|
||||
enum Says
|
||||
{
|
||||
EMOTE_FRENZY = 0
|
||||
};
|
||||
|
||||
enum Events
|
||||
{
|
||||
EVENT_SUMMON_SPECTRAL_ASSASSIN = 1,
|
||||
EVENT_SHADOW_BOLT_VOLLEY = 2,
|
||||
EVENT_SHADOW_WRATH = 3
|
||||
};
|
||||
|
||||
class boss_lord_valthalak : public CreatureScript
|
||||
{
|
||||
public:
|
||||
boss_lord_valthalak() : CreatureScript("boss_lord_valthalak") { }
|
||||
|
||||
struct boss_lord_valthalakAI : public BossAI
|
||||
{
|
||||
boss_lord_valthalakAI(Creature* creature) : BossAI(creature, DATA_LORD_VALTHALAK) {}
|
||||
|
||||
void Reset() OVERRIDE
|
||||
{
|
||||
_Reset();
|
||||
frenzy40 = false;
|
||||
frenzy15 = false;
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) OVERRIDE
|
||||
{
|
||||
_EnterCombat();
|
||||
events.ScheduleEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN, urand(6000,8000));
|
||||
events.ScheduleEvent(EVENT_SHADOW_WRATH, urand(9000,18000));
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) OVERRIDE
|
||||
{
|
||||
if (instance)
|
||||
instance->SetData(DATA_LORD_VALTHALAK, DONE);
|
||||
}
|
||||
|
||||
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_SUMMON_SPECTRAL_ASSASSIN:
|
||||
DoCast(me, SPELL_SUMMON_SPECTRAL_ASSASSIN);
|
||||
events.ScheduleEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN, urand(30000,35000));
|
||||
break;
|
||||
case EVENT_SHADOW_BOLT_VOLLEY:
|
||||
DoCastVictim(SPELL_SHADOW_BOLT_VOLLEY);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(4000,6000));
|
||||
break;
|
||||
case EVENT_SHADOW_WRATH:
|
||||
DoCastVictim(SPELL_SHADOW_WRATH);
|
||||
events.ScheduleEvent(EVENT_SHADOW_WRATH, urand(19000,24000));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!frenzy40)
|
||||
{
|
||||
if (HealthBelowPct(40))
|
||||
{
|
||||
DoCast(me, SPELL_FRENZY);
|
||||
events.CancelEvent(EVENT_SUMMON_SPECTRAL_ASSASSIN);
|
||||
frenzy40 = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (!frenzy15)
|
||||
{
|
||||
if (HealthBelowPct(15))
|
||||
{
|
||||
DoCast(me, SPELL_FRENZY);
|
||||
events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, urand(7000,14000));
|
||||
frenzy15 = true;
|
||||
}
|
||||
}
|
||||
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
private:
|
||||
bool frenzy40;
|
||||
bool frenzy15;
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const OVERRIDE
|
||||
{
|
||||
return new boss_lord_valthalakAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_lord_valthalak()
|
||||
{
|
||||
new boss_lord_valthalak();
|
||||
}
|
||||
File renamed without changes.
File renamed without changes.
+1
-1
@@ -227,7 +227,7 @@ public:
|
||||
{
|
||||
creatureList->Respawn();
|
||||
}
|
||||
creatureList->AI()->SetData(1, 2);
|
||||
creatureList->AI()->SetData(1, 1);
|
||||
}
|
||||
me->AddAura(SPELL_ENCAGED_EMBERSEER, me);
|
||||
instance->SetBossState(DATA_PYROGAURD_EMBERSEER, NOT_STARTED);
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
+13
-1
@@ -33,7 +33,13 @@ uint32 const DragonspireMobs[3] = { NPC_BLACKHAND_DREADWEAVER, NPC_BLACKHAND_SUM
|
||||
enum EventIds
|
||||
{
|
||||
EVENT_DARGONSPIRE_ROOM_STORE = 1,
|
||||
EVENT_DARGONSPIRE_ROOM_CHECK = 2
|
||||
EVENT_DARGONSPIRE_ROOM_CHECK = 2,
|
||||
EVENT_UROK_DOOMHOWL_SPAWNS_1 = 3,
|
||||
EVENT_UROK_DOOMHOWL_SPAWNS_2 = 4,
|
||||
EVENT_UROK_DOOMHOWL_SPAWNS_3 = 5,
|
||||
EVENT_UROK_DOOMHOWL_SPAWNS_4 = 6,
|
||||
EVENT_UROK_DOOMHOWL_SPAWNS_5 = 7,
|
||||
EVENT_UROK_DOOMHOWL_SPAWN_IN = 8
|
||||
};
|
||||
|
||||
class instance_blackrock_spire : public InstanceMapScript
|
||||
@@ -275,6 +281,12 @@ public:
|
||||
Emberseer->AI()->SetData(1, 1);
|
||||
}
|
||||
break;
|
||||
case EVENT_UROK_DOOMHOWL:
|
||||
if (GetBossState(NPC_UROK_DOOMHOWL) == NOT_STARTED)
|
||||
{
|
||||
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -19,6 +19,58 @@ set(scripts_STAT_SRCS
|
||||
EasternKingdoms/AlteracValley/alterac_valley.cpp
|
||||
EasternKingdoms/BaradinHold/boss_alizabal.cpp
|
||||
EasternKingdoms/BaradinHold/instance_baradin_hold.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockDepths/instance_blackrock_depths.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.h
|
||||
EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackwingLair/boss_chromaggus.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackwingLair/boss_firemaw.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackwingLair/boss_broodlord_lashlayer.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackwingLair/boss_ebonroc.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackwingLair/instance_blackwing_lair.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackwingLair/boss_flamegor.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackwingLair/blackwing_lair.h
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_pyroguard_emberseer.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_drakkisath.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_warmaster_voone.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_mother_smolderweb.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_quartermaster_zigris.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_halycon.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_overlord_wyrmthalak.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gyth.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_highlord_omokk.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_the_beast.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_gizrul_the_slavener.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_urok_doomhowl.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_lord_valthalak.cpp
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/blackrock_spire.h
|
||||
EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp
|
||||
EasternKingdoms/BlackrockMountain/MoltenCore/boss_gehennas.cpp
|
||||
EasternKingdoms/BlackrockMountain/MoltenCore/boss_lucifron.cpp
|
||||
EasternKingdoms/BlackrockMountain/MoltenCore/boss_golemagg.cpp
|
||||
EasternKingdoms/BlackrockMountain/MoltenCore/boss_majordomo_executus.cpp
|
||||
EasternKingdoms/BlackrockMountain/MoltenCore/boss_baron_geddon.cpp
|
||||
EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp
|
||||
EasternKingdoms/BlackrockMountain/MoltenCore/boss_garr.cpp
|
||||
EasternKingdoms/BlackrockMountain/MoltenCore/molten_core.h
|
||||
EasternKingdoms/BlackrockMountain/MoltenCore/instance_molten_core.cpp
|
||||
EasternKingdoms/BlackrockMountain/MoltenCore/boss_sulfuron_harbinger.cpp
|
||||
EasternKingdoms/BlackrockMountain/MoltenCore/boss_magmadar.cpp
|
||||
EasternKingdoms/BlackrockMountain/MoltenCore/boss_shazzrah.cpp
|
||||
EasternKingdoms/Scholomance/boss_the_ravenian.cpp
|
||||
EasternKingdoms/Scholomance/boss_instructor_malicia.cpp
|
||||
EasternKingdoms/Scholomance/boss_death_knight_darkreaver.cpp
|
||||
@@ -52,37 +104,12 @@ set(scripts_STAT_SRCS
|
||||
EasternKingdoms/Gnomeregan/gnomeregan.cpp
|
||||
EasternKingdoms/Gnomeregan/gnomeregan.h
|
||||
EasternKingdoms/zone_redridge_mountains.cpp
|
||||
EasternKingdoms/BlackrockDepths/boss_high_interrogator_gerstahn.cpp
|
||||
EasternKingdoms/BlackrockDepths/boss_gorosh_the_dervish.cpp
|
||||
EasternKingdoms/BlackrockDepths/blackrock_depths.cpp
|
||||
EasternKingdoms/BlackrockDepths/boss_anubshiah.cpp
|
||||
EasternKingdoms/BlackrockDepths/boss_tomb_of_seven.cpp
|
||||
EasternKingdoms/BlackrockDepths/boss_general_angerforge.cpp
|
||||
EasternKingdoms/BlackrockDepths/boss_grizzle.cpp
|
||||
EasternKingdoms/BlackrockDepths/boss_ambassador_flamelash.cpp
|
||||
EasternKingdoms/BlackrockDepths/instance_blackrock_depths.cpp
|
||||
EasternKingdoms/BlackrockDepths/boss_moira_bronzebeard.cpp
|
||||
EasternKingdoms/BlackrockDepths/blackrock_depths.h
|
||||
EasternKingdoms/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp
|
||||
EasternKingdoms/BlackrockDepths/boss_magmus.cpp
|
||||
EasternKingdoms/zone_ironforge.cpp
|
||||
EasternKingdoms/ScarletEnclave/chapter2.cpp
|
||||
EasternKingdoms/ScarletEnclave/chapter5.cpp
|
||||
EasternKingdoms/ScarletEnclave/chapter1.cpp
|
||||
EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp
|
||||
EasternKingdoms/zone_eastern_plaguelands.cpp
|
||||
EasternKingdoms/MoltenCore/boss_gehennas.cpp
|
||||
EasternKingdoms/MoltenCore/boss_lucifron.cpp
|
||||
EasternKingdoms/MoltenCore/boss_golemagg.cpp
|
||||
EasternKingdoms/MoltenCore/boss_majordomo_executus.cpp
|
||||
EasternKingdoms/MoltenCore/boss_baron_geddon.cpp
|
||||
EasternKingdoms/MoltenCore/boss_ragnaros.cpp
|
||||
EasternKingdoms/MoltenCore/boss_garr.cpp
|
||||
EasternKingdoms/MoltenCore/molten_core.h
|
||||
EasternKingdoms/MoltenCore/instance_molten_core.cpp
|
||||
EasternKingdoms/MoltenCore/boss_sulfuron_harbinger.cpp
|
||||
EasternKingdoms/MoltenCore/boss_magmadar.cpp
|
||||
EasternKingdoms/MoltenCore/boss_shazzrah.cpp
|
||||
EasternKingdoms/Stratholme/boss_baroness_anastari.cpp
|
||||
EasternKingdoms/Stratholme/boss_nerubenkan.cpp
|
||||
EasternKingdoms/Stratholme/instance_stratholme.cpp
|
||||
@@ -114,22 +141,6 @@ set(scripts_STAT_SRCS
|
||||
EasternKingdoms/Uldaman/instance_uldaman.cpp
|
||||
EasternKingdoms/Uldaman/boss_archaedas.cpp
|
||||
EasternKingdoms/zone_swamp_of_sorrows.cpp
|
||||
EasternKingdoms/BlackrockSpire/boss_pyroguard_emberseer.cpp
|
||||
EasternKingdoms/BlackrockSpire/boss_drakkisath.cpp
|
||||
EasternKingdoms/BlackrockSpire/boss_warmaster_voone.cpp
|
||||
EasternKingdoms/BlackrockSpire/boss_mother_smolderweb.cpp
|
||||
EasternKingdoms/BlackrockSpire/boss_quartermaster_zigris.cpp
|
||||
EasternKingdoms/BlackrockSpire/boss_halycon.cpp
|
||||
EasternKingdoms/BlackrockSpire/boss_overlord_wyrmthalak.cpp
|
||||
EasternKingdoms/BlackrockSpire/boss_shadow_hunter_voshgajin.cpp
|
||||
EasternKingdoms/BlackrockSpire/boss_gyth.cpp
|
||||
EasternKingdoms/BlackrockSpire/boss_rend_blackhand.cpp
|
||||
EasternKingdoms/BlackrockSpire/boss_highlord_omokk.cpp
|
||||
EasternKingdoms/BlackrockSpire/boss_the_beast.cpp
|
||||
EasternKingdoms/BlackrockSpire/boss_gizrul_the_slavener.cpp
|
||||
EasternKingdoms/BlackrockSpire/boss_urok_doomhowl.cpp
|
||||
EasternKingdoms/BlackrockSpire/blackrock_spire.h
|
||||
EasternKingdoms/BlackrockSpire/instance_blackrock_spire.cpp
|
||||
EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp
|
||||
EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp
|
||||
EasternKingdoms/SunwellPlateau/sunwell_plateau.h
|
||||
@@ -164,16 +175,6 @@ set(scripts_STAT_SRCS
|
||||
EasternKingdoms/ShadowfangKeep/instance_shadowfang_keep.cpp
|
||||
EasternKingdoms/ShadowfangKeep/shadowfang_keep.h
|
||||
EasternKingdoms/zone_burning_steppes.cpp
|
||||
EasternKingdoms/BlackwingLair/boss_chromaggus.cpp
|
||||
EasternKingdoms/BlackwingLair/boss_razorgore.cpp
|
||||
EasternKingdoms/BlackwingLair/boss_firemaw.cpp
|
||||
EasternKingdoms/BlackwingLair/boss_broodlord_lashlayer.cpp
|
||||
EasternKingdoms/BlackwingLair/boss_ebonroc.cpp
|
||||
EasternKingdoms/BlackwingLair/instance_blackwing_lair.cpp
|
||||
EasternKingdoms/BlackwingLair/boss_vaelastrasz.cpp
|
||||
EasternKingdoms/BlackwingLair/boss_nefarian.cpp
|
||||
EasternKingdoms/BlackwingLair/boss_flamegor.cpp
|
||||
EasternKingdoms/BlackwingLair/blackwing_lair.h
|
||||
EasternKingdoms/zone_blasted_lands.cpp
|
||||
EasternKingdoms/zone_stormwind_city.cpp
|
||||
EasternKingdoms/ZulAman/boss_halazzi.cpp
|
||||
|
||||
@@ -50,7 +50,7 @@ class spell_ex_5581 : public SpellScriptLoader
|
||||
|
||||
// function called on server startup
|
||||
// checks if script has data required for it to work
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
// check if spellid 70522 exists in dbc, we will trigger it later
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_TRIGGERED))
|
||||
@@ -208,7 +208,7 @@ class spell_ex_66244 : public SpellScriptLoader
|
||||
PrepareAuraScript(spell_ex_66244AuraScript);
|
||||
// function called on server startup
|
||||
// checks if script has data required for it to work
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
// check if spellid exists in dbc, we will trigger it later
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_TRIGGERED))
|
||||
|
||||
@@ -125,7 +125,7 @@ class spell_voodoo : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_voodoo_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spell*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_BREW) || !sSpellMgr->GetSpellInfo(SPELL_GHOSTLY) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_HEX1) || !sSpellMgr->GetSpellInfo(SPELL_HEX2) ||
|
||||
|
||||
@@ -609,7 +609,7 @@ class spell_ooze_zap : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_ooze_zap_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_OOZE_ZAP))
|
||||
return false;
|
||||
@@ -656,7 +656,7 @@ class spell_ooze_zap_channel_end : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_ooze_zap_channel_end_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_OOZE_ZAP_CHANNEL_END))
|
||||
return false;
|
||||
@@ -692,7 +692,7 @@ class spell_energize_aoe : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_energize_aoe_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_ENERGIZED))
|
||||
return false;
|
||||
|
||||
+2
-2
@@ -2312,7 +2312,7 @@ class spell_toc_bloodlust : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_toc_bloodlust_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(AURA_SATED))
|
||||
return false;
|
||||
@@ -2353,7 +2353,7 @@ class spell_toc_heroism : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_toc_heroism_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(AURA_EXHAUSTION))
|
||||
return false;
|
||||
|
||||
@@ -20,21 +20,14 @@
|
||||
#include "ScriptedCreature.h"
|
||||
#include "drak_tharon_keep.h"
|
||||
|
||||
enum Misc
|
||||
enum Yells
|
||||
{
|
||||
ACTION_RESET_CRYSTALS,
|
||||
ACTION_ACTIVATE_CRYSTAL,
|
||||
ACTION_DEACTIVATE,
|
||||
EVENT_ATTACK,
|
||||
EVENT_SUMMON_MINIONS,
|
||||
DATA_NOVOS_ACHIEV
|
||||
};
|
||||
|
||||
enum Creatures
|
||||
{
|
||||
NPC_FETID_TROLL_CORPSE = 27598,
|
||||
NPC_RISEN_SHADOWCASTER = 27600,
|
||||
NPC_HULKING_CORPSE = 27597
|
||||
SAY_AGGRO = 0,
|
||||
SAY_KILL = 1,
|
||||
SAY_DEATH = 2,
|
||||
SAY_SUMMONING_ADDS = 3, // unused
|
||||
SAY_ARCANE_FIELD = 4,
|
||||
EMOTE_SUMMONING_ADDS = 5 // unused
|
||||
};
|
||||
|
||||
enum Spells
|
||||
@@ -46,6 +39,7 @@ enum Spells
|
||||
SPELL_SUMMON_FETID_TROLL_CORPSE = 49103,
|
||||
SPELL_SUMMON_HULKING_CORPSE = 49104,
|
||||
SPELL_SUMMON_CRYSTAL_HANDLER = 49179,
|
||||
SPELL_SUMMON_COPY_OF_MINIONS = 59933,
|
||||
|
||||
SPELL_ARCANE_BLAST = 49198,
|
||||
SPELL_BLIZZARD = 49034,
|
||||
@@ -54,6 +48,16 @@ enum Spells
|
||||
SPELL_SUMMON_MINIONS = 59910
|
||||
};
|
||||
|
||||
enum Misc
|
||||
{
|
||||
ACTION_RESET_CRYSTALS,
|
||||
ACTION_ACTIVATE_CRYSTAL,
|
||||
ACTION_DEACTIVATE,
|
||||
EVENT_ATTACK,
|
||||
EVENT_SUMMON_MINIONS,
|
||||
DATA_NOVOS_ACHIEV
|
||||
};
|
||||
|
||||
struct SummonerInfo
|
||||
{
|
||||
uint32 data, spell, timer;
|
||||
@@ -92,6 +96,7 @@ public:
|
||||
void EnterCombat(Unit* /* victim */) OVERRIDE
|
||||
{
|
||||
_EnterCombat();
|
||||
Talk(SAY_AGGRO);
|
||||
|
||||
SetCrystalsStatus(true);
|
||||
SetSummonerStatus(true);
|
||||
@@ -107,6 +112,18 @@ public:
|
||||
DoStartNoMovement(target);
|
||||
}
|
||||
|
||||
void KilledUnit(Unit* who) OVERRIDE
|
||||
{
|
||||
if (who->GetTypeId() == TYPEID_PLAYER)
|
||||
Talk(SAY_KILL);
|
||||
}
|
||||
|
||||
void JustDied(Unit* /*killer*/) OVERRIDE
|
||||
{
|
||||
_JustDied();
|
||||
Talk(SAY_DEATH);
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) OVERRIDE
|
||||
{
|
||||
if (!UpdateVictim() || _bubbled)
|
||||
@@ -210,9 +227,6 @@ public:
|
||||
|
||||
void SetCrystalStatus(GameObject* crystal, bool active)
|
||||
{
|
||||
if (!crystal)
|
||||
return;
|
||||
|
||||
crystal->SetGoState(active ? GO_STATE_ACTIVE : GO_STATE_READY);
|
||||
if (Creature* crystalChannelTarget = crystal->FindNearestCreature(NPC_CRYSTAL_CHANNEL_TARGET, 5.0f))
|
||||
{
|
||||
@@ -236,6 +250,7 @@ public:
|
||||
|
||||
if (++_crystalHandlerCount >= 4)
|
||||
{
|
||||
Talk(SAY_ARCANE_FIELD);
|
||||
SetSummonerStatus(false);
|
||||
SetBubbled(false);
|
||||
events.ScheduleEvent(EVENT_ATTACK, 3000);
|
||||
@@ -332,42 +347,44 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
enum SummonMinions
|
||||
class spell_novos_summon_minions : public SpellScriptLoader
|
||||
{
|
||||
SPELL_COPY_OF_SUMMON_MINIONS = 59933
|
||||
};
|
||||
public:
|
||||
spell_novos_summon_minions() : SpellScriptLoader("spell_novos_summon_minions") { }
|
||||
|
||||
class spell_summon_minions : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_summon_minions() : SpellScriptLoader("spell_summon_minions") { }
|
||||
|
||||
class spell_summon_minions_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_summon_minions_SpellScript);
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
class spell_novos_summon_minions_SpellScript : public SpellScript
|
||||
{
|
||||
GetCaster()->CastSpell((Unit*)NULL, SPELL_COPY_OF_SUMMON_MINIONS, true);
|
||||
GetCaster()->CastSpell((Unit*)NULL, SPELL_COPY_OF_SUMMON_MINIONS, true);
|
||||
}
|
||||
PrepareSpellScript(spell_novos_summon_minions_SpellScript);
|
||||
|
||||
void Register() OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_COPY_OF_MINIONS))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
for (uint8 i = 0; i < 2; ++i)
|
||||
GetCaster()->CastSpell((Unit*)NULL, SPELL_SUMMON_COPY_OF_MINIONS, true);
|
||||
}
|
||||
|
||||
void Register() OVERRIDE
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_novos_summon_minions_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const OVERRIDE
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_summon_minions_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
return new spell_novos_summon_minions_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const OVERRIDE
|
||||
{
|
||||
return new spell_summon_minions_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_novos()
|
||||
{
|
||||
new boss_novos();
|
||||
new npc_crystal_channel_target();
|
||||
new spell_summon_minions();
|
||||
new spell_novos_summon_minions();
|
||||
new achievement_oh_novos();
|
||||
}
|
||||
@@ -21,40 +21,42 @@
|
||||
|
||||
#include "ScriptMgr.h"
|
||||
#include "ScriptedCreature.h"
|
||||
#include "SpellAuras.h"
|
||||
#include "SpellScript.h"
|
||||
#include "SpellAuraEffects.h"
|
||||
#include "drak_tharon_keep.h"
|
||||
|
||||
enum Spells
|
||||
{
|
||||
SPELL_INFECTED_WOUND = 49637,
|
||||
SPELL_CRUSH = 49639,
|
||||
SPELL_CORPSE_EXPLODE = 49555,
|
||||
SPELL_CONSUME = 49380,
|
||||
SPELL_CONSUME_AURA = 49381,
|
||||
// Heroic spells
|
||||
H_SPELL_CORPSE_EXPLODE = 59807,
|
||||
H_SPELL_CONSUME = 59803,
|
||||
H_SPELL_CONSUME_AURA = 59805,
|
||||
SPELL_INFECTED_WOUND = 49637,
|
||||
SPELL_CRUSH = 49639,
|
||||
SPELL_CORPSE_EXPLODE = 49555,
|
||||
SPELL_CORPSE_EXPLODE_DAMAGE = 49618,
|
||||
SPELL_CONSUME = 49380,
|
||||
SPELL_CONSUME_BUFF = 49381,
|
||||
SPELL_CONSUME_BUFF_H = 59805,
|
||||
|
||||
SPELL_SUMMON_INVADER_A = 49456,
|
||||
SPELL_SUMMON_INVADER_B = 49457,
|
||||
//SPELL_SUMMON_INVADER_C = 49458, // can't find any sniffs
|
||||
|
||||
H_SPELL_CORPSE_EXPLODE = 59807,
|
||||
H_SPELL_CONSUME = 59803,
|
||||
};
|
||||
|
||||
#define SPELL_CONSUME_BUFF_HELPER DUNGEON_MODE<uint32>(SPELL_CONSUME_BUFF, SPELL_CONSUME_BUFF_H)
|
||||
|
||||
enum Yells
|
||||
{
|
||||
SAY_AGGRO = 0,
|
||||
SAY_KILL = 1,
|
||||
SAY_CONSUME = 2,
|
||||
SAY_EXPLODE = 3,
|
||||
SAY_DEATH = 4
|
||||
};
|
||||
|
||||
enum Creatures
|
||||
{
|
||||
NPC_DRAKKARI_INVADER_1 = 27753,
|
||||
NPC_DRAKKARI_INVADER_2 = 27709
|
||||
SAY_AGGRO = 0,
|
||||
SAY_KILL = 1,
|
||||
SAY_CONSUME = 2,
|
||||
SAY_EXPLODE = 3,
|
||||
SAY_DEATH = 4
|
||||
};
|
||||
|
||||
enum Misc
|
||||
{
|
||||
DATA_CONSUMPTION_JUNCTION = 1
|
||||
DATA_CONSUMPTION_JUNCTION = 1
|
||||
};
|
||||
|
||||
Position AddSpawnPoint = { -260.493011f, -622.968018f, 26.605301f, 3.036870f };
|
||||
@@ -97,9 +99,9 @@ public:
|
||||
|
||||
lSummons.DespawnAll();
|
||||
|
||||
me->RemoveAura(DUNGEON_MODE(SPELL_CONSUME_AURA, H_SPELL_CONSUME_AURA));
|
||||
me->RemoveAura(SPELL_CONSUME_BUFF_HELPER);
|
||||
|
||||
instance->SetData(DATA_TROLLGORE, NOT_STARTED);
|
||||
instance->SetBossState(DATA_TROLLGORE, NOT_STARTED);
|
||||
}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) OVERRIDE
|
||||
@@ -118,7 +120,7 @@ public:
|
||||
{
|
||||
uint32 spawnNumber = urand(2, DUNGEON_MODE(3, 5));
|
||||
for (uint8 i = 0; i < spawnNumber; ++i)
|
||||
DoSummon(RAND(NPC_DRAKKARI_INVADER_1, NPC_DRAKKARI_INVADER_2), AddSpawnPoint, 0, TEMPSUMMON_DEAD_DESPAWN);
|
||||
DoSummon(RAND(NPC_DRAKKARI_INVADER_A, NPC_DRAKKARI_INVADER_B), AddSpawnPoint, 0, TEMPSUMMON_DEAD_DESPAWN);
|
||||
uiSpawnTimer = urand(30*IN_MILLISECONDS, 40*IN_MILLISECONDS);
|
||||
} else uiSpawnTimer -= diff;
|
||||
|
||||
@@ -131,7 +133,7 @@ public:
|
||||
|
||||
if (consumptionJunction)
|
||||
{
|
||||
Aura* ConsumeAura = me->GetAura(DUNGEON_MODE(SPELL_CONSUME_AURA, H_SPELL_CONSUME_AURA));
|
||||
Aura* ConsumeAura = me->GetAura(SPELL_CONSUME_BUFF_HELPER);
|
||||
if (ConsumeAura && ConsumeAura->GetStackAmount() > 9)
|
||||
consumptionJunction = false;
|
||||
}
|
||||
@@ -197,6 +199,119 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
// 49380, 59803 - Consume
|
||||
class spell_trollgore_consume : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_trollgore_consume() : SpellScriptLoader("spell_trollgore_consume") { }
|
||||
|
||||
class spell_trollgore_consume_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_trollgore_consume_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_CONSUME_BUFF))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleConsume(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Unit* target = GetHitUnit())
|
||||
target->CastSpell(GetCaster(), SPELL_CONSUME_BUFF, true);
|
||||
}
|
||||
|
||||
void Register() OVERRIDE
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_trollgore_consume_SpellScript::HandleConsume, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const OVERRIDE
|
||||
{
|
||||
return new spell_trollgore_consume_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 49555, 59807 - Corpse Explode
|
||||
class spell_trollgore_corpse_explode : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_trollgore_corpse_explode() : SpellScriptLoader("spell_trollgore_corpse_explode") { }
|
||||
|
||||
class spell_trollgore_corpse_explode_AuraScript : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_trollgore_corpse_explode_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_CORPSE_EXPLODE_DAMAGE))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void PeriodicTick(AuraEffect const* aurEff)
|
||||
{
|
||||
if (aurEff->GetTickNumber() == 2)
|
||||
if (Unit* caster = GetCaster())
|
||||
caster->CastSpell(GetTarget(), SPELL_CORPSE_EXPLODE_DAMAGE, true, NULL, aurEff);
|
||||
}
|
||||
|
||||
void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||
{
|
||||
if (Creature* target = GetTarget()->ToCreature())
|
||||
target->DespawnOrUnsummon();
|
||||
}
|
||||
|
||||
void Register() OVERRIDE
|
||||
{
|
||||
OnEffectPeriodic += AuraEffectPeriodicFn(spell_trollgore_corpse_explode_AuraScript::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
|
||||
AfterEffectRemove += AuraEffectRemoveFn(spell_trollgore_corpse_explode_AuraScript::HandleRemove, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY, AURA_EFFECT_HANDLE_REAL);
|
||||
}
|
||||
};
|
||||
|
||||
AuraScript* GetAuraScript() const OVERRIDE
|
||||
{
|
||||
return new spell_trollgore_corpse_explode_AuraScript();
|
||||
}
|
||||
};
|
||||
|
||||
// 49405 - Invader Taunt Trigger
|
||||
class spell_trollgore_invader_taunt : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
spell_trollgore_invader_taunt() : SpellScriptLoader("spell_trollgore_invader_taunt") { }
|
||||
|
||||
class spell_trollgore_invader_taunt_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_trollgore_invader_taunt_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* spellInfo) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(spellInfo->Effects[EFFECT_0].CalcValue()))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleTaunt(SpellEffIndex /*effIndex*/)
|
||||
{
|
||||
if (Unit* target = GetHitUnit())
|
||||
target->CastSpell(GetCaster(), uint32(GetEffectValue()), true);
|
||||
}
|
||||
|
||||
void Register() OVERRIDE
|
||||
{
|
||||
OnEffectHitTarget += SpellEffectFn(spell_trollgore_invader_taunt_SpellScript::HandleTaunt, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
|
||||
}
|
||||
};
|
||||
|
||||
SpellScript* GetSpellScript() const OVERRIDE
|
||||
{
|
||||
return new spell_trollgore_invader_taunt_SpellScript();
|
||||
}
|
||||
};
|
||||
|
||||
class achievement_consumption_junction : public AchievementCriteriaScript
|
||||
{
|
||||
public:
|
||||
@@ -220,5 +335,8 @@ class achievement_consumption_junction : public AchievementCriteriaScript
|
||||
void AddSC_boss_trollgore()
|
||||
{
|
||||
new boss_trollgore();
|
||||
new spell_trollgore_consume();
|
||||
new spell_trollgore_corpse_explode();
|
||||
new spell_trollgore_invader_taunt();
|
||||
new achievement_consumption_junction();
|
||||
}
|
||||
@@ -36,6 +36,10 @@ enum DataTypes
|
||||
// Additional data
|
||||
//DATA_KING_DRED_ACHIEV,
|
||||
|
||||
DATA_TROLLGORE_INVADER_SUMMONER_1,
|
||||
DATA_TROLLGORE_INVADER_SUMMONER_2,
|
||||
DATA_TROLLGORE_INVADER_SUMMONER_3,
|
||||
|
||||
DATA_NOVOS_CRYSTAL_1,
|
||||
DATA_NOVOS_CRYSTAL_2,
|
||||
DATA_NOVOS_CRYSTAL_3,
|
||||
@@ -55,13 +59,23 @@ enum CreatureIds
|
||||
NPC_KING_DRED = 27483,
|
||||
NPC_THARON_JA = 26632,
|
||||
|
||||
// Trollgore
|
||||
NPC_DRAKKARI_INVADER_A = 27709,
|
||||
NPC_DRAKKARI_INVADER_B = 27753,
|
||||
NPC_DRAKKARI_INVADER_C = 27754,
|
||||
|
||||
// Novos
|
||||
NPC_CRYSTAL_CHANNEL_TARGET = 26712,
|
||||
NPC_CRYSTAL_HANDLER = 26627,
|
||||
NPC_HULKING_CORPSE = 27597,
|
||||
NPC_FETID_TROLL_CORPSE = 27598,
|
||||
NPC_RISEN_SHADOWCASTER = 27600,
|
||||
|
||||
// King Dred
|
||||
NPC_DRAKKARI_GUTRIPPER = 26641,
|
||||
NPC_DRAKKARI_SCYTHECLAW = 26628
|
||||
NPC_DRAKKARI_SCYTHECLAW = 26628,
|
||||
|
||||
NPC_WORLD_TRIGGER = 22515
|
||||
};
|
||||
|
||||
enum GameObjectIds
|
||||
|
||||
@@ -36,11 +36,12 @@ class instance_drak_tharon_keep : public InstanceMapScript
|
||||
KingDredGUID = 0;
|
||||
TharonJaGUID = 0;
|
||||
|
||||
memset(TrollgoreInvaderSummonerGuids, 0, 4 * sizeof(uint64));
|
||||
memset(NovosCrystalGUIDs, 0, 4 * sizeof(uint64));
|
||||
memset(NovosSummonerGUIDs, 0, 4 * sizeof(uint64));
|
||||
}
|
||||
|
||||
void OnCreatureCreate(Creature* creature)
|
||||
void OnCreatureCreate(Creature* creature) OVERRIDE
|
||||
{
|
||||
switch (creature->GetEntry())
|
||||
{
|
||||
@@ -56,6 +57,9 @@ class instance_drak_tharon_keep : public InstanceMapScript
|
||||
case NPC_THARON_JA:
|
||||
TharonJaGUID = creature->GetGUID();
|
||||
break;
|
||||
case NPC_WORLD_TRIGGER:
|
||||
InitializeTrollgoreInvaderSummoner(creature);
|
||||
break;
|
||||
case NPC_CRYSTAL_CHANNEL_TARGET:
|
||||
InitializeNovosSummoner(creature);
|
||||
break;
|
||||
@@ -64,31 +68,43 @@ class instance_drak_tharon_keep : public InstanceMapScript
|
||||
}
|
||||
}
|
||||
|
||||
void OnGameObjectCreate(GameObject* go)
|
||||
void OnGameObjectCreate(GameObject* go) OVERRIDE
|
||||
{
|
||||
switch (go->GetEntry())
|
||||
{
|
||||
case GO_NOVOS_CRYSTAL_1:
|
||||
NovosCrystalGUIDs[0] = go->GetGUID();
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
break;
|
||||
case GO_NOVOS_CRYSTAL_2:
|
||||
NovosCrystalGUIDs[1] = go->GetGUID();
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
break;
|
||||
case GO_NOVOS_CRYSTAL_3:
|
||||
NovosCrystalGUIDs[2] = go->GetGUID();
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
break;
|
||||
case GO_NOVOS_CRYSTAL_4:
|
||||
NovosCrystalGUIDs[3] = go->GetGUID();
|
||||
go->SetGoState(GO_STATE_READY);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void InitializeTrollgoreInvaderSummoner(Creature* creature)
|
||||
{
|
||||
float y = creature->GetPositionY();
|
||||
float z = creature->GetPositionZ();
|
||||
|
||||
if (z < 50.0f)
|
||||
return;
|
||||
|
||||
if (y < -650.0f && y > -660.0f)
|
||||
TrollgoreInvaderSummonerGuids[0] = creature->GetGUID();
|
||||
else if (y < -660.0f && y > -670.0f)
|
||||
TrollgoreInvaderSummonerGuids[1] = creature->GetGUID();
|
||||
else if (y < -675.0f && y > -685.0f)
|
||||
TrollgoreInvaderSummonerGuids[2] = creature->GetGUID();
|
||||
}
|
||||
|
||||
void InitializeNovosSummoner(Creature* creature)
|
||||
{
|
||||
float x = creature->GetPositionX();
|
||||
@@ -117,6 +133,10 @@ class instance_drak_tharon_keep : public InstanceMapScript
|
||||
return KingDredGUID;
|
||||
case DATA_THARON_JA:
|
||||
return TharonJaGUID;
|
||||
case DATA_TROLLGORE_INVADER_SUMMONER_1:
|
||||
case DATA_TROLLGORE_INVADER_SUMMONER_2:
|
||||
case DATA_TROLLGORE_INVADER_SUMMONER_3:
|
||||
return TrollgoreInvaderSummonerGuids[type - DATA_TROLLGORE_INVADER_SUMMONER_1];
|
||||
case DATA_NOVOS_CRYSTAL_1:
|
||||
case DATA_NOVOS_CRYSTAL_2:
|
||||
case DATA_NOVOS_CRYSTAL_3:
|
||||
@@ -132,14 +152,14 @@ class instance_drak_tharon_keep : public InstanceMapScript
|
||||
return 0;
|
||||
}
|
||||
|
||||
void OnUnitDeath(Unit* unit)
|
||||
void OnUnitDeath(Unit* unit) OVERRIDE
|
||||
{
|
||||
if (unit->GetEntry() == NPC_CRYSTAL_HANDLER)
|
||||
if (Creature* novos = instance->GetCreature(NovosGUID))
|
||||
novos->AI()->DoAction(ACTION_CRYSTAL_HANDLER_DIED);
|
||||
}
|
||||
|
||||
std::string GetSaveData()
|
||||
std::string GetSaveData() OVERRIDE
|
||||
{
|
||||
OUT_SAVE_INST_DATA;
|
||||
|
||||
@@ -150,7 +170,7 @@ class instance_drak_tharon_keep : public InstanceMapScript
|
||||
return saveStream.str();
|
||||
}
|
||||
|
||||
void Load(char const* str)
|
||||
void Load(char const* str) OVERRIDE
|
||||
{
|
||||
if (!str)
|
||||
{
|
||||
@@ -188,6 +208,7 @@ class instance_drak_tharon_keep : public InstanceMapScript
|
||||
uint64 KingDredGUID;
|
||||
uint64 TharonJaGUID;
|
||||
|
||||
uint64 TrollgoreInvaderSummonerGuids[3];
|
||||
uint64 NovosCrystalGUIDs[4];
|
||||
uint64 NovosSummonerGUIDs[4];
|
||||
};
|
||||
|
||||
@@ -432,11 +432,10 @@ class spell_ignis_slag_pot : public SpellScriptLoader
|
||||
{
|
||||
PrepareAuraScript(spell_ignis_slag_pot_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_SLAG_POT_DAMAGE))
|
||||
return false;
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_SLAG_IMBUED))
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_SLAG_POT_DAMAGE)
|
||||
|| !sSpellMgr->GetSpellInfo(SPELL_SLAG_IMBUED))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -168,6 +168,7 @@ enum TickingTimeBomb
|
||||
{
|
||||
SPELL_TICKING_TIME_BOMB_EXPLODE = 59687
|
||||
};
|
||||
|
||||
class spell_ticking_time_bomb : public SpellScriptLoader
|
||||
{
|
||||
public:
|
||||
@@ -177,9 +178,11 @@ class spell_ticking_time_bomb : public SpellScriptLoader
|
||||
{
|
||||
PrepareAuraScript(spell_ticking_time_bomb_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
return (bool) sSpellMgr->GetSpellInfo(SPELL_TICKING_TIME_BOMB_EXPLODE);
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_TICKING_TIME_BOMB_EXPLODE))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleOnEffectRemove(AuraEffect const* /* aurEff */, AuraEffectHandleModes /* mode */)
|
||||
@@ -215,9 +218,11 @@ class spell_fixate : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_fixate_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
return (bool) sSpellMgr->GetSpellInfo(SPELL_FIXATE_TRIGGER);
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_FIXATE_TRIGGER))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
void HandleScriptEffect(SpellEffIndex /*effIndex*/)
|
||||
|
||||
@@ -1609,7 +1609,7 @@ class spell_random_ingredient_aura : public SpellScriptLoader
|
||||
{
|
||||
PrepareAuraScript(spell_random_ingredient_aura_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_RANDOM_INGREDIENT_EASY) || !sSpellMgr->GetSpellInfo(SPELL_RANDOM_INGREDIENT_MEDIUM) || !sSpellMgr->GetSpellInfo(SPELL_RANDOM_INGREDIENT_HARD))
|
||||
return false;
|
||||
@@ -1656,7 +1656,7 @@ class spell_random_ingredient : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_random_ingredient_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_FETCH_KNOTROOT) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_PICKLED_EAGLE_EGG) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_SPECKLED_GUANO) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_FETCH_WITHERED_BATWING) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_SEASONED_SLIDER_CIDER) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_PULVERIZED_GARGOYLE_TEETH) ||
|
||||
@@ -1720,7 +1720,7 @@ class spell_pot_check : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_pot_check_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_FETCH_KNOTROOT) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_PICKLED_EAGLE_EGG) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_SPECKLED_GUANO) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_FETCH_WITHERED_BATWING) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_SEASONED_SLIDER_CIDER) || !sSpellMgr->GetSpellInfo(SPELL_FETCH_PULVERIZED_GARGOYLE_TEETH) ||
|
||||
|
||||
@@ -365,9 +365,65 @@ public:
|
||||
|
||||
};
|
||||
|
||||
enum Yor
|
||||
{
|
||||
SPELL_DOUBLE_BREATH = 38361,
|
||||
EVENT_DOUBLE_BREATH = 1
|
||||
};
|
||||
|
||||
class npc_yor : public CreatureScript
|
||||
{
|
||||
public:
|
||||
npc_yor() : CreatureScript("npc_yor") { }
|
||||
|
||||
struct npc_yorAI : public ScriptedAI
|
||||
{
|
||||
npc_yorAI(Creature* creature) : ScriptedAI(creature) {}
|
||||
|
||||
void Reset() OVERRIDE {}
|
||||
|
||||
void EnterCombat(Unit* /*who*/) OVERRIDE
|
||||
{
|
||||
events.ScheduleEvent(EVENT_DOUBLE_BREATH, urand(6000,9000));
|
||||
}
|
||||
|
||||
void UpdateAI(uint32 diff) OVERRIDE
|
||||
{
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
events.Update(diff);
|
||||
|
||||
while (uint32 eventId = events.ExecuteEvent())
|
||||
{
|
||||
switch (eventId)
|
||||
{
|
||||
case EVENT_DOUBLE_BREATH:
|
||||
if (me->IsWithinDist(me->GetVictim(), ATTACK_DISTANCE))
|
||||
DoCastVictim(SPELL_DOUBLE_BREATH);
|
||||
events.ScheduleEvent(EVENT_DOUBLE_BREATH, urand(6000,9000));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
DoMeleeAttackIfReady();
|
||||
}
|
||||
|
||||
private:
|
||||
EventMap events;
|
||||
};
|
||||
|
||||
CreatureAI* GetAI(Creature* creature) const OVERRIDE
|
||||
{
|
||||
return new npc_yorAI(creature);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_boss_nexusprince_shaffar()
|
||||
{
|
||||
new boss_nexusprince_shaffar();
|
||||
new npc_ethereal_beacon();
|
||||
new npc_ethereal_apprentice();
|
||||
new npc_yor();
|
||||
}
|
||||
@@ -903,7 +903,7 @@ public:
|
||||
{
|
||||
PrepareAuraScript(spell_boss_lady_malande_shield_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
return sSpellMgr->GetSpellInfo(SPELL_REFLECTIVE_SHIELD_T);
|
||||
}
|
||||
|
||||
@@ -519,7 +519,7 @@ class spell_astromancer_wrath_of_the_astromancer : public SpellScriptLoader
|
||||
{
|
||||
PrepareAuraScript(spell_astromancer_wrath_of_the_astromancer_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*SpellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_WRATH_OF_THE_ASTROMANCER_DOT))
|
||||
return false;
|
||||
|
||||
@@ -680,7 +680,7 @@ class spell_gen_cannibalize : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_gen_cannibalize_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_CANNIBALIZE_TRIGGERED))
|
||||
return false;
|
||||
@@ -733,7 +733,7 @@ class spell_gen_chaos_blast : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_gen_chaos_blast_SpellScript)
|
||||
|
||||
bool Validate(SpellInfo const* /*SpellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_CHAOS_BLAST))
|
||||
return false;
|
||||
@@ -853,7 +853,7 @@ class spell_gen_clone_weapon_aura : public SpellScriptLoader
|
||||
|
||||
uint32 prevItem;
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_COPY_WEAPON_AURA) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_COPY_WEAPON_2_AURA) ||
|
||||
@@ -1095,9 +1095,10 @@ class spell_gen_dalaran_disguise : public SpellScriptLoader
|
||||
class spell_gen_dalaran_disguise_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_gen_dalaran_disguise_SpellScript);
|
||||
bool Validate(SpellInfo const* spellEntry) OVERRIDE
|
||||
|
||||
bool Validate(SpellInfo const* spellInfo) OVERRIDE
|
||||
{
|
||||
switch (spellEntry->Id)
|
||||
switch (spellInfo->Id)
|
||||
{
|
||||
case SPELL_SUNREAVER_DISGUISE_TRIGGER:
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_SUNREAVER_DISGUISE_FEMALE) ||
|
||||
@@ -1165,7 +1166,7 @@ class spell_gen_defend : public SpellScriptLoader
|
||||
{
|
||||
PrepareAuraScript(spell_gen_defend_AuraScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_VISUAL_SHIELD_1))
|
||||
return false;
|
||||
@@ -1287,7 +1288,7 @@ class spell_gen_divine_storm_cd_reset : public SpellScriptLoader
|
||||
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
|
||||
}
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_DIVINE_STORM))
|
||||
return false;
|
||||
@@ -1365,7 +1366,7 @@ class spell_gen_dummy_trigger : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_gen_dummy_trigger_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*SpellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_PERSISTANT_SHIELD_TRIGGERED) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_PERSISTANT_SHIELD))
|
||||
@@ -1458,7 +1459,7 @@ class spell_gen_elune_candle : public SpellScriptLoader
|
||||
class spell_gen_elune_candle_SpellScript : public SpellScript
|
||||
{
|
||||
PrepareSpellScript(spell_gen_elune_candle_SpellScript);
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_HEAD) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_CHEST) ||
|
||||
@@ -1525,7 +1526,7 @@ class spell_gen_gadgetzan_transporter_backfire : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_gen_gadgetzan_transporter_backfire_SpellScript)
|
||||
|
||||
bool Validate(SpellInfo const* /*SpellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_MALFUNCTION_POLYMORPH) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_EVIL_TWIN) ||
|
||||
@@ -1626,7 +1627,7 @@ class spell_gen_gnomish_transporter : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_gen_gnomish_transporter_SpellScript)
|
||||
|
||||
bool Validate(SpellInfo const* /*SpellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_SUCCESS) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_TRANSPORTER_FAILURE))
|
||||
@@ -3191,7 +3192,7 @@ class spell_gen_summon_tournament_mount : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_gen_summon_tournament_mount_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_LANCE_EQUIPPED))
|
||||
return false;
|
||||
@@ -3240,7 +3241,7 @@ class spell_gen_tournament_duel : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_gen_tournament_duel_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_ON_TOURNAMENT_MOUNT) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_MOUNTED_DUEL))
|
||||
@@ -3332,7 +3333,7 @@ class spell_pvp_trinket_wotf_shared_cd : public SpellScriptLoader
|
||||
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
|
||||
}
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER) ||
|
||||
!sSpellMgr->GetSpellInfo(SPELL_WILL_OF_THE_FORSAKEN_COOLDOWN_TRIGGER_WOTF))
|
||||
|
||||
@@ -47,7 +47,7 @@ class spell_item_trigger_spell : public SpellScriptLoader
|
||||
public:
|
||||
spell_item_trigger_spell_SpellScript(uint32 triggeredSpellId) : SpellScript(), _triggeredSpellId(triggeredSpellId) { }
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(_triggeredSpellId))
|
||||
return false;
|
||||
@@ -322,7 +322,7 @@ class spell_item_deviate_fish : public SpellScriptLoader
|
||||
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
|
||||
}
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
for (uint32 spellId = SPELL_SLEEPY; spellId <= SPELL_HEALTHY_SPIRIT; ++spellId)
|
||||
if (!sSpellMgr->GetSpellInfo(spellId))
|
||||
@@ -367,7 +367,7 @@ class spell_item_flask_of_the_north : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_item_flask_of_the_north_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_FLASK_OF_THE_NORTH_SP) || !sSpellMgr->GetSpellInfo(SPELL_FLASK_OF_THE_NORTH_AP) || !sSpellMgr->GetSpellInfo(SPELL_FLASK_OF_THE_NORTH_STR))
|
||||
return false;
|
||||
@@ -436,7 +436,7 @@ class spell_item_gnomish_death_ray : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_item_gnomish_death_ray_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_GNOMISH_DEATH_RAY_SELF) || !sSpellMgr->GetSpellInfo(SPELL_GNOMISH_DEATH_RAY_TARGET))
|
||||
return false;
|
||||
@@ -492,7 +492,7 @@ class spell_item_make_a_wish : public SpellScriptLoader
|
||||
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
|
||||
}
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_MR_PINCHYS_BLESSING) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_MIGHTY_MR_PINCHY) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_FURIOUS_MR_PINCHY) || !sSpellMgr->GetSpellInfo(SPELL_TINY_MAGICAL_CRAWDAD) || !sSpellMgr->GetSpellInfo(SPELL_MR_PINCHYS_GIFT))
|
||||
return false;
|
||||
@@ -646,7 +646,7 @@ class spell_item_net_o_matic : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_item_net_o_matic_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_NET_O_MATIC_TRIGGERED1) || !sSpellMgr->GetSpellInfo(SPELL_NET_O_MATIC_TRIGGERED2) || !sSpellMgr->GetSpellInfo(SPELL_NET_O_MATIC_TRIGGERED3))
|
||||
return false;
|
||||
@@ -703,7 +703,7 @@ class spell_item_noggenfogger_elixir : public SpellScriptLoader
|
||||
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
|
||||
}
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED1) || !sSpellMgr->GetSpellInfo(SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED2) || !sSpellMgr->GetSpellInfo(SPELL_NOGGENFOGGER_ELIXIR_TRIGGERED3))
|
||||
return false;
|
||||
@@ -788,7 +788,7 @@ class spell_item_savory_deviate_delight : public SpellScriptLoader
|
||||
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
|
||||
}
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
for (uint32 spellId = SPELL_FLIP_OUT_MALE; spellId <= SPELL_YAAARRRR_FEMALE; ++spellId)
|
||||
if (!sSpellMgr->GetSpellInfo(spellId))
|
||||
@@ -1112,7 +1112,7 @@ class spell_item_six_demon_bag : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_item_six_demon_bag_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_FROSTBOLT) || !sSpellMgr->GetSpellInfo(SPELL_POLYMORPH) || !sSpellMgr->GetSpellInfo(SPELL_SUMMON_FELHOUND_MINION) || !sSpellMgr->GetSpellInfo(SPELL_FIREBALL) || !sSpellMgr->GetSpellInfo(SPELL_CHAIN_LIGHTNING) || !sSpellMgr->GetSpellInfo(SPELL_ENVELOPING_WINDS))
|
||||
return false;
|
||||
@@ -1213,7 +1213,7 @@ class spell_item_underbelly_elixir : public SpellScriptLoader
|
||||
{
|
||||
return GetCaster()->GetTypeId() == TYPEID_PLAYER;
|
||||
}
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_UNDERBELLY_ELIXIR_TRIGGERED1) || !sSpellMgr->GetSpellInfo(SPELL_UNDERBELLY_ELIXIR_TRIGGERED2) || !sSpellMgr->GetSpellInfo(SPELL_UNDERBELLY_ELIXIR_TRIGGERED3))
|
||||
return false;
|
||||
@@ -1491,7 +1491,7 @@ class spell_item_vanquished_clutches : public SpellScriptLoader
|
||||
{
|
||||
PrepareSpellScript(spell_item_vanquished_clutches_SpellScript);
|
||||
|
||||
bool Validate(SpellInfo const* /*spellEntry*/) OVERRIDE
|
||||
bool Validate(SpellInfo const* /*spellInfo*/) OVERRIDE
|
||||
{
|
||||
if (!sSpellMgr->GetSpellInfo(SPELL_CRUSHER) || !sSpellMgr->GetSpellInfo(SPELL_CONSTRICTOR) || !sSpellMgr->GetSpellInfo(SPELL_CORRUPTOR))
|
||||
return false;
|
||||
|
||||
Reference in new issue
Block a user