aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGacko <gacko28@gmx.de>2013-01-13 14:30:35 +0100
committerGacko <gacko28@gmx.de>2013-01-13 14:59:51 +0100
commit3a32c76de936f2e85ef1cd595283e00055fe8fc6 (patch)
treee641703d014c771d876b34f0a4097c1197d3068a /src
parentd77904e0af2b9a15013efc383b1ad121b2a5922e (diff)
Core/DB: Gluttonous Lurkers
Solves #1249
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/zone_zuldrak.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp
index 69e8d900435..1d53d229992 100644
--- a/src/server/scripts/Northrend/zone_zuldrak.cpp
+++ b/src/server/scripts/Northrend/zone_zuldrak.cpp
@@ -21,6 +21,7 @@
#include "ScriptedEscortAI.h"
#include "Player.h"
#include "SpellInfo.h"
+#include "SpellScript.h"
/*####
## npc_drakuru_shackles
@@ -1413,6 +1414,49 @@ public:
}
};
+enum SpellZuldrakRat
+{
+ SPELL_SUMMON_GORGED_LURKING_BASILISK = 50928
+};
+
+class spell_zuldrak_rat : public SpellScriptLoader
+{
+ public:
+ spell_zuldrak_rat() : SpellScriptLoader("spell_zuldrak_rat") { }
+
+ class spell_zuldrak_rat_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_zuldrak_rat_SpellScript);
+
+ bool Validate(SpellInfo const* /*spell*/)
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_SUMMON_GORGED_LURKING_BASILISK))
+ return false;
+ return true;
+ }
+
+ void HandleScriptEffect(SpellEffIndex /* effIndex */)
+ {
+ if (GetHitAura() && GetHitAura()->GetStackAmount() >= GetSpellInfo()->StackAmount)
+ {
+ GetHitUnit()->CastSpell((Unit*) NULL, SPELL_SUMMON_GORGED_LURKING_BASILISK, true);
+ if (Creature* basilisk = GetHitUnit()->ToCreature())
+ basilisk->DespawnOrUnsummon();
+ }
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_zuldrak_rat_SpellScript::HandleScriptEffect, EFFECT_1, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_zuldrak_rat_SpellScript();
+ }
+};
+
void AddSC_zuldrak()
{
new npc_drakuru_shackles;
@@ -1428,4 +1472,5 @@ void AddSC_zuldrak()
new npc_elemental_lord;
new npc_fiend_elemental;
new go_scourge_enclosure;
+ new spell_zuldrak_rat();
}