From 28df19d20540fe35ce87c6f5c25b2c7bf997b6e2 Mon Sep 17 00:00:00 2001 From: n0n4m3 Date: Sat, 26 Dec 2009 17:38:54 +0100 Subject: Fixed spell Combustion --HG-- branch : trunk --- src/game/SpellAuras.cpp | 5 +++++ src/game/Unit.cpp | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) (limited to 'src') 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 -- cgit v1.2.3