aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMikhail Redko <ovitnez@gmail.com>2022-12-23 16:08:58 +0200
committerShauren <shauren.trinity@gmail.com>2023-01-12 22:55:19 +0100
commit52ddfe89f8d48779145a157ef06c284490dfe4ba (patch)
tree228e7d01ae0c089b181c50cdad5302fb52ddd27b /src
parent9ac19fd7904b0778c5c6fcd443a3f4a65e2e9435 (diff)
Core/Scripts: Implemented Zort's Protective Elixir (#28372)
* Core/Scripts: Implemented Zort's Protective Elixir * Rename XXXX_XX_XX_XX_world.sql to 2022_12_23_00_world.sql Co-authored-by: Giacomo Pozzoni <giacomopoz@gmail.com> (cherry picked from commit dc221604d9971eabb95cdbaececa28765a6dfa9a)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Northrend/zone_dragonblight.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/server/scripts/Northrend/zone_dragonblight.cpp b/src/server/scripts/Northrend/zone_dragonblight.cpp
index 75689833ab1..6c6b1408bc3 100644
--- a/src/server/scripts/Northrend/zone_dragonblight.cpp
+++ b/src/server/scripts/Northrend/zone_dragonblight.cpp
@@ -25,6 +25,7 @@
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
#include "SpellAuras.h"
+#include "SpellAuraEffects.h"
#include "SpellInfo.h"
#include "SpellScript.h"
#include "TemporarySummon.h"
@@ -951,6 +952,38 @@ class spell_dragonblight_fill_blood_unholy_frost_gem : public SpellScript
}
};
+// 47447 - Corrosive Spit
+class spell_dragonblight_corrosive_spit : public AuraScript
+{
+ PrepareAuraScript(spell_dragonblight_corrosive_spit);
+
+ bool Validate(SpellInfo const* spellInfo) override
+ {
+ return ValidateSpellInfo({ uint32(spellInfo->GetEffect(EFFECT_0).CalcValue()) });
+ }
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ if (GetTarget()->HasAura(GetEffectInfo(EFFECT_0).CalcValue()))
+ GetAura()->Remove();
+ }
+
+ void PeriodicTick(AuraEffect const* /*aurEff*/)
+ {
+ if (GetTarget()->HasAura(GetEffectInfo(EFFECT_0).CalcValue()))
+ {
+ PreventDefaultAction();
+ GetAura()->Remove();
+ }
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_dragonblight_corrosive_spit::AfterApply, EFFECT_1, SPELL_AURA_PERIODIC_DAMAGE, AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK);
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_dragonblight_corrosive_spit::PeriodicTick, EFFECT_1, SPELL_AURA_PERIODIC_DAMAGE);
+ }
+};
+
void AddSC_dragonblight()
{
RegisterCreatureAI(npc_commander_eligor_dawnbringer);
@@ -968,4 +1001,5 @@ void AddSC_dragonblight()
RegisterSpellScript(spell_dragonblight_bombard_the_ballistae_fx_master);
RegisterSpellScript(spell_dragonblight_surge_needle_teleporter);
RegisterSpellScript(spell_dragonblight_fill_blood_unholy_frost_gem);
+ RegisterSpellScript(spell_dragonblight_corrosive_spit);
}