aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/SpellAuras.cpp5
-rw-r--r--src/game/Unit.cpp6
2 files changed, 10 insertions, 1 deletions
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