aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/6799_world_spell_proc_event.sql1
-rw-r--r--src/game/SpellAuras.cpp5
-rw-r--r--src/game/Unit.cpp6
3 files changed, 11 insertions, 1 deletions
diff --git a/sql/updates/6799_world_spell_proc_event.sql b/sql/updates/6799_world_spell_proc_event.sql
new file mode 100644
index 00000000000..ba127dbf22b
--- /dev/null
+++ b/sql/updates/6799_world_spell_proc_event.sql
@@ -0,0 +1 @@
+UPDATE spell_proc_event SET SchoolMask = 4, spellFamilyMask1 = 200776, spellFamilyMask0 = 146800663 WHERE entry = 11129; \ No newline at end of file
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index f3352d015a2..bbcf03da9c3 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -2378,6 +2378,7 @@ void AuraEffect::HandleAddModifier(bool apply, bool Real, bool changeAmount)
// Auras with charges do not mod amount of passive auras
if (GetParentAura()->GetAuraCharges())
return;
+
// reapply some passive spells after add/remove related spellmods
// Warning: it is a dead loop if 2 auras each other amount-shouldn't happen
switch (modOp)
@@ -2425,6 +2426,10 @@ void AuraEffect::HandleAddModifier(bool apply, bool Real, bool changeAmount)
default:
break;
}
+ if (m_spellProto->Id == 11129 && !apply)
+ {
+ m_target->RemoveAurasDueToSpell(28682);
+ }
}
void AuraEffect::TriggerSpell()
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 2d9383e53ee..0085ec18ae2 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -5566,6 +5566,10 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
// Combustion
case 11129:
{
+ Unit *caster = triggeredByAura->GetCaster();
+ if (!caster || !damage)
+ return false;
+
//last charge and crit
if (triggeredByAura->GetParentAura()->GetAuraCharges() <= 1 && (procEx & PROC_EX_CRITICAL_HIT) )
{
@@ -5573,7 +5577,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, AuraEffect* trigger
return true; // charge counting (will removed)
}
- CastSpell(this, 11129, true, castItem, triggeredByAura);
+ CastSpell(this, 28682, true, castItem, triggeredByAura);
return (procEx & PROC_EX_CRITICAL_HIT);// charge update only at crit hits, no hidden cooldowns
}
// Glyph of Ice Block