From 09fb6f555f5cd8bd41b396e3fcc58b7cdc071925 Mon Sep 17 00:00:00 2001 From: tobmaps Date: Wed, 11 May 2011 04:17:38 +0700 Subject: Core/Spells: More generic implementation of Combustion Closes #60 & #78 --- src/server/game/Entities/Player/Player.cpp | 4 ++++ src/server/game/Entities/Unit/Unit.cpp | 10 ++-------- 2 files changed, 6 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 738ff2abd97..0ec4de19dd7 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -19630,6 +19630,10 @@ void Player::RemoveSpellMods(Spell * spell) void Player::DropModCharge(SpellModifier * mod, Spell * spell) { + // this mod shouldn't be removed here + if (mod->op == SPELLMOD_CRIT_DAMAGE_BONUS) + return; + if (spell && mod->ownerAura && mod->charges > 0) { --mod->charges; diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 78d23dfe870..61133625cfd 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -7908,17 +7908,11 @@ bool Unit::HandleAuraProc(Unit * pVictim, uint32 damage, Aura * triggeredByAura, //last charge and crit if (triggeredByAura->GetCharges() <= 1 && (procEx & PROC_EX_CRITICAL_HIT)) - { - RemoveAurasDueToSpell(28682); //-> remove Combustion auras return true; // charge counting (will removed) - } - // This function can be called twice during one spell hit (Area of Effect spells) - // Make sure 28682 wasn't already removed by previous call - if (HasAura(28682)) - this->CastSpell(this, 28682, true); + CastSpell(this, 28682, true); - return false; // ordinary chrages will be removed during crit chance computations. + return (procEx & PROC_EX_CRITICAL_HIT) ? true : false; } // Empowered Fire case 31656: -- cgit v1.2.3