aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Outland/nagrand.cpp40
-rw-r--r--src/server/scripts/Spells/spell_quest.cpp42
2 files changed, 42 insertions, 40 deletions
diff --git a/src/server/scripts/Outland/nagrand.cpp b/src/server/scripts/Outland/nagrand.cpp
index a18f16fbf2c..21265a1b7f2 100644
--- a/src/server/scripts/Outland/nagrand.cpp
+++ b/src/server/scripts/Outland/nagrand.cpp
@@ -26,7 +26,6 @@ EndScriptData */
/* ContentData
mob_shattered_rumbler
mob_lump
-mob_sunspring_villager
npc_altruis_the_sufferer
npc_greatmother_geyah
npc_lantresor_of_the_blade
@@ -243,44 +242,6 @@ public:
};
-/*####
-# mob_sunspring_villager - should be done with ACID
-####*/
-
-class mob_sunspring_villager : public CreatureScript
-{
-public:
- mob_sunspring_villager() : CreatureScript("mob_sunspring_villager") { }
-
- CreatureAI* GetAI(Creature* creature) const
- {
- return new mob_sunspring_villagerAI (creature);
- }
-
- struct mob_sunspring_villagerAI : public ScriptedAI
- {
- mob_sunspring_villagerAI(Creature* c) : ScriptedAI(c) {}
-
- void Reset()
- {
- me->SetUInt32Value(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
- me->SetStandState(UNIT_STAND_STATE_DEAD);
- }
-
- void EnterCombat(Unit* /*who*/) {}
-
- void SpellHit(Unit* /*caster*/, const SpellInfo *spell)
- {
- if (spell->Id == 32146)
- {
- me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
- me->RemoveCorpse();
- }
- }
- };
-
-};
-
/*######
## npc_altruis_the_sufferer
######*/
@@ -1013,7 +974,6 @@ void AddSC_nagrand()
{
new mob_shattered_rumbler();
new mob_lump();
- new mob_sunspring_villager();
new npc_altruis_the_sufferer();
new npc_greatmother_geyah();
new npc_lantresor_of_the_blade();
diff --git a/src/server/scripts/Spells/spell_quest.cpp b/src/server/scripts/Spells/spell_quest.cpp
index c7a174ff3d5..15cee94e909 100644
--- a/src/server/scripts/Spells/spell_quest.cpp
+++ b/src/server/scripts/Spells/spell_quest.cpp
@@ -857,6 +857,47 @@ public:
};
};
+enum StoppingTheSpread
+{
+ NPC_KILL_CREDIT = 18240,
+ SPELL_FLAMES = 39199,
+};
+
+class spell_q9874_liquid_fire : public SpellScriptLoader
+{
+ public:
+ spell_q9874_liquid_fire() : SpellScriptLoader("spell_q9874_liquid_fire")
+ {
+ }
+
+ class spell_q9874_liquid_fire_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_q9874_liquid_fire_SpellScript);
+
+ void HandleDummy(SpellEffIndex /*effIndex*/)
+ {
+ Player* caster = GetCaster()->ToPlayer();
+ Creature* target = GetHitUnit()->ToCreature();
+ if (!caster || !target || (target && target->HasAura(SPELL_FLAMES)))
+ return;
+
+ caster->KilledMonsterCredit(NPC_KILL_CREDIT, 0);
+ target->CastSpell(target, SPELL_FLAMES, true);
+ target->DespawnOrUnsummon(60000);
+ }
+
+ void Register()
+ {
+ OnEffect += SpellEffectFn(spell_q9874_liquid_fire_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_q9874_liquid_fire_SpellScript();
+ };
+};
+
void AddSC_quest_spell_scripts()
{
new spell_q55_sacred_cleansing();
@@ -877,4 +918,5 @@ void AddSC_quest_spell_scripts()
new spell_q10041_q10040_who_are_they();
new spell_symbol_of_life_dummy();
new spell_q12659_ahunaes_knife();
+ new spell_q9874_liquid_fire();
}