aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortobmaps <spambot42@yandex.ru>2011-05-11 04:17:38 +0700
committertobmaps <spambot42@yandex.ru>2011-05-11 04:17:38 +0700
commit09fb6f555f5cd8bd41b396e3fcc58b7cdc071925 (patch)
tree052b2f92a96ae7b696420b4d2dc7e2fec0f2aa69 /src
parent492e6fd3da39f34e682b080d66bde992a4e4e160 (diff)
Core/Spells: More generic implementation of Combustion
Closes #60 & #78
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp4
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp10
2 files changed, 6 insertions, 8 deletions
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: