aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShocker <none@none>2010-09-08 14:57:44 +0300
committerShocker <none@none>2010-09-08 14:57:44 +0300
commit047b244f2fdd0613324c7f543511e7c8ffc8f0b3 (patch)
tree483bd8acea397c279c6b4b6de2dc13c38249bac8 /src
parent93ccf461e6659432b0ad7abbcdb39c9923d8d23d (diff)
Core/Spells: Fix Permanent Feign Death spells to be used in creature_addon auras
--HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index c7ac6ccb88d..a45ebda6f2f 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -115,8 +115,38 @@ public:
}
};
+class spell_creature_permanent_feign_death : public SpellScriptLoader
+{
+ public:
+ spell_creature_permanent_feign_death() : SpellScriptLoader("spell_creature_permanent_feign_death") { }
+
+ class spell_creature_permanent_feign_deathAuraScript : public AuraScript
+ {
+ void HandleEffectApply(AuraEffect const * /*aurEff*/, AuraApplication const * aurApp, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* pTarget = aurApp->GetTarget();
+ if (!pTarget)
+ return;
+
+ pTarget->SetFlag(UNIT_DYNAMIC_FLAGS, UNIT_DYNFLAG_DEAD);
+ pTarget->SetFlag(UNIT_FIELD_FLAGS_2, UNIT_FLAG2_FEIGN_DEATH);
+ }
+
+ void Register()
+ {
+ OnEffectApply += AuraEffectApplyFn(spell_creature_permanent_feign_deathAuraScript::HandleEffectApply, EFFECT_0, SPELL_AURA_DUMMY, AURA_EFFECT_HANDLE_REAL);
+ }
+ };
+
+ AuraScript *GetAuraScript() const
+ {
+ return new spell_creature_permanent_feign_deathAuraScript();
+ }
+};
+
void AddSC_generic_spell_scripts()
{
new spell_gen_pet_summoned();
new spell_gen_remove_flight_auras();
+ new spell_creature_permanent_feign_death();
}