aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDoctorKraft <DoctorKraft@users.noreply.github.com>2017-03-11 14:57:48 +0100
committerShauren <shauren.trinity@gmail.com>2017-03-11 14:57:48 +0100
commite13f82d18d16bb979c97d73cef507827c2f22e9d (patch)
treedb846b8c482a710e95290ec30d22051aa85a96b4 /src
parent58b3f94667528235385b05a289a94735a86c7681 (diff)
Core/Spell: Fixed mage Ice/Prismatic/Blazing Barrier spells
Closes #19138
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/Spells/spell_mage.cpp110
1 files changed, 95 insertions, 15 deletions
diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp
index 0ffd019e89c..1eb02d094e2 100644
--- a/src/server/scripts/Spells/spell_mage.cpp
+++ b/src/server/scripts/Spells/spell_mage.cpp
@@ -35,6 +35,7 @@ enum MageSpells
SPELL_ARCANCE_POTENCY_RANK_2 = 31572,
SPELL_ARCANCE_POTENCY_TRIGGER_RANK_1 = 57529,
SPELL_ARCANCE_POTENCY_TRIGGER_RANK_2 = 57531,
+ SPELL_MAGE_BLAZING_BARRIER_TRIGGER = 235314,
SPELL_MAGE_BLAZING_SPEED = 31643,
SPELL_MAGE_BURNOUT = 29077,
SPELL_MAGE_COLD_SNAP = 11958,
@@ -71,11 +72,6 @@ enum MageSpells
SPELL_MAGE_CONE_OF_COLD_TRIGGER_R1 = 83301,
SPELL_MAGE_CONE_OF_COLD_TRIGGER_R2 = 83302,
- SPELL_MAGE_SHATTERED_BARRIER_R1 = 44745,
- SPELL_MAGE_SHATTERED_BARRIER_R2 = 54787,
- SPELL_MAGE_SHATTERED_BARRIER_FREEZE_R1 = 55080,
- SPELL_MAGE_SHATTERED_BARRIER_FREEZE_R2 = 83073,
-
SPELL_MAGE_IMPROVED_MANA_GEM_TRIGGERED = 83098,
SPELL_MAGE_RING_OF_FROST_SUMMON = 82676,
@@ -232,6 +228,54 @@ class spell_mage_blast_wave : public SpellScriptLoader
}
};
+// 235313 - Blazing Barrier
+class spell_mage_blazing_barrier : public SpellScriptLoader
+{
+ public:
+ spell_mage_blazing_barrier() : SpellScriptLoader("spell_mage_blazing_barrier") { }
+
+ class spell_mage_blazing_barrier_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_mage_blazing_barrier_AuraScript);
+
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo
+ ({
+ SPELL_MAGE_BLAZING_BARRIER_TRIGGER
+ });
+ }
+
+ void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& canBeRecalculated)
+ {
+ canBeRecalculated = false;
+ if (Unit* caster = GetCaster())
+ amount = int32(caster->SpellBaseHealingBonusDone(GetSpellInfo()->GetSchoolMask()) * 7.0f);
+ }
+
+ void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo)
+ {
+ PreventDefaultAction();
+ Unit* caster = eventInfo.GetDamageInfo()->GetVictim();
+ Unit* target = eventInfo.GetDamageInfo()->GetAttacker();
+
+ if (caster && target)
+ caster->CastSpell(target, SPELL_MAGE_BLAZING_BARRIER_TRIGGER, true);
+ }
+
+ void Register() override
+ {
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_mage_blazing_barrier_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
+ OnEffectProc += AuraEffectProcFn(spell_mage_blazing_barrier_AuraScript::HandleProc, EFFECT_1, SPELL_AURA_PROC_TRIGGER_SPELL);
+ }
+ };
+
+ AuraScript* GetAuraScript() const override
+ {
+ return new spell_mage_blazing_barrier_AuraScript();
+ }
+};
+
// 11958 - Cold Snap
class spell_mage_cold_snap : public SpellScriptLoader
{
@@ -617,7 +661,6 @@ class spell_mage_living_bomb : public SpellScriptLoader
};
// 11426 - Ice Barrier
-/// Updated 4.3.4
class spell_mage_ice_barrier : public SpellScriptLoader
{
public:
@@ -627,28 +670,34 @@ class spell_mage_ice_barrier : public SpellScriptLoader
{
PrepareAuraScript(spell_mage_ice_barrier_AuraScript);
+ bool Validate(SpellInfo const* /*spellInfo*/) override
+ {
+ return ValidateSpellInfo
+ ({
+ SPELL_MAGE_CHILLED
+ });
+ }
+
void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& canBeRecalculated)
{
canBeRecalculated = false;
if (Unit* caster = GetCaster())
- amount += int32(4.95f * caster->SpellBaseHealingBonusDone(GetSpellInfo()->GetSchoolMask()));
+ amount += int32(caster->SpellBaseHealingBonusDone(GetSpellInfo()->GetSchoolMask()) * 10.0f);
}
- void AfterRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo)
{
- if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_ENEMY_SPELL)
- return;
+ Unit* caster = eventInfo.GetDamageInfo()->GetVictim();
+ Unit* target = eventInfo.GetDamageInfo()->GetAttacker();
- if (GetTarget()->HasAura(SPELL_MAGE_SHATTERED_BARRIER_R1))
- GetTarget()->CastSpell(GetTarget(), SPELL_MAGE_SHATTERED_BARRIER_FREEZE_R1, true);
- else if (GetTarget()->HasAura(SPELL_MAGE_SHATTERED_BARRIER_R2))
- GetTarget()->CastSpell(GetTarget(), SPELL_MAGE_SHATTERED_BARRIER_FREEZE_R2, true);
+ if (caster && target)
+ caster->CastSpell(target, SPELL_MAGE_CHILLED, true);
}
void Register() override
{
DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_mage_ice_barrier_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
- AfterEffectRemove += AuraEffectRemoveFn(spell_mage_ice_barrier_AuraScript::AfterRemove, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB, AURA_EFFECT_HANDLE_REAL);
+ OnEffectProc += AuraEffectProcFn(spell_mage_ice_barrier_AuraScript::HandleProc, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
}
};
@@ -1025,6 +1074,35 @@ uint32 const spell_mage_polymorph_cast_visual::spell_mage_polymorph_cast_visual_
SPELL_MAGE_SHEEP_FORM
};
+// 235450 - Prismatic Barrier
+class spell_mage_prismatic_barrier : public SpellScriptLoader
+{
+ public:
+ spell_mage_prismatic_barrier() : SpellScriptLoader("spell_mage_prismatic_barrier") { }
+
+ class spell_mage_prismatic_barrier_AuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_mage_prismatic_barrier_AuraScript);
+
+ void CalculateAmount(AuraEffect const* /*aurEff*/, int32& amount, bool& canBeRecalculated)
+ {
+ canBeRecalculated = false;
+ if (Unit* caster = GetCaster())
+ amount += int32(caster->SpellBaseHealingBonusDone(GetSpellInfo()->GetSchoolMask()) * 7.0f);
+ }
+
+ void Register() override
+ {
+ DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_mage_prismatic_barrier_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB);
+ }
+ };
+
+ AuraScript* GetAuraScript() const override
+ {
+ return new spell_mage_prismatic_barrier_AuraScript();
+ }
+};
+
// 5405 - Replenish Mana (Mana Gem)
/// Updated 4.3.4
class spell_mage_replenish_mana : public SpellScriptLoader
@@ -1361,6 +1439,7 @@ void AddSC_mage_spell_scripts()
{
new spell_mage_arcane_potency();
new spell_mage_blast_wave();
+ new spell_mage_blazing_barrier();
new spell_mage_cold_snap();
new spell_mage_cone_of_cold();
new spell_mage_conjure_refreshment();
@@ -1379,6 +1458,7 @@ void AddSC_mage_spell_scripts()
new spell_mage_permafrost();
new spell_mage_polymorph();
new spell_mage_polymorph_cast_visual();
+ new spell_mage_prismatic_barrier();
new spell_mage_replenish_mana();
new spell_mage_ring_of_frost();
new spell_mage_ring_of_frost_freeze();