diff options
author | Vincent_Michael <Vincent_Michael@gmx.de> | 2012-12-31 02:10:04 +0100 |
---|---|---|
committer | Vincent_Michael <Vincent_Michael@gmx.de> | 2012-12-31 02:10:04 +0100 |
commit | e7d02bfb7f4ab2a511badfad9c2b90725c6fb3da (patch) | |
tree | d0fbba778fef3ffce3e715fdaf9e32815ed04778 /src | |
parent | ee9b7dfef8059f05ab404c48dd34929283d48963 (diff) |
Core/Spells: Implemented effect SPELL_EFFECT_DAMAGE_FROM_MAX_HEALTH_PCT
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 2 | ||||
-rw-r--r-- | src/server/game/Spells/Spell.h | 1 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 13 |
3 files changed, 14 insertions, 2 deletions
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index b50e4581908..2f9d698b302 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -945,7 +945,7 @@ enum SpellEffects SPELL_EFFECT_TALENT_SPEC_SELECT = 162, SPELL_EFFECT_163 = 163, // Unused (4.3.4) SPELL_EFFECT_REMOVE_AURA = 164, - SPELL_EFFECT_165 = 165, + SPELL_EFFECT_DAMAGE_FROM_MAX_HEALTH_PCT = 165, SPELL_EFFECT_166 = 166, SPELL_EFFECT_167 = 167, SPELL_EFFECT_168 = 168, diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h index 603cfbf1309..4bc7b4e14fe 100644 --- a/src/server/game/Spells/Spell.h +++ b/src/server/game/Spells/Spell.h @@ -335,6 +335,7 @@ class Spell void EffectActivateSpec(SpellEffIndex effIndex); void EffectPlayerNotification(SpellEffIndex effIndex); void EffectRemoveAura(SpellEffIndex effIndex); + void EffectDamageFromMaxHealthPCT(SpellEffIndex effIndex); void EffectCastButtons(SpellEffIndex effIndex); void EffectRechargeManaGem(SpellEffIndex effIndex); diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 444704e2372..8b5b4c56351 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -234,7 +234,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]= &Spell::EffectActivateSpec, //162 SPELL_EFFECT_TALENT_SPEC_SELECT activate primary/secondary spec &Spell::EffectUnused, //163 SPELL_EFFECT_163 unused &Spell::EffectRemoveAura, //164 SPELL_EFFECT_REMOVE_AURA - &Spell::EffectNULL, //165 SPELL_EFFECT_165 + &Spell::EffectDamageFromMaxHealthPCT, //165 SPELL_EFFECT_DAMAGE_FROM_MAX_HEALTH_PCT &Spell::EffectNULL, //166 SPELL_EFFECT_166 &Spell::EffectNULL, //167 SPELL_EFFECT_167 &Spell::EffectNULL, //168 SPELL_EFFECT_168 @@ -5896,6 +5896,17 @@ void Spell::EffectRemoveAura(SpellEffIndex effIndex) unitTarget->RemoveAurasDueToSpell(m_spellInfo->Effects[effIndex].TriggerSpell); } +void Spell::EffectDamageFromMaxHealthPCT(SpellEffIndex effIndex) +{ + if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET) + return; + + if (!unitTarget) + return; + + m_damage += unitTarget->CountPctFromMaxHealth(damage); +} + void Spell::EffectCastButtons(SpellEffIndex effIndex) { if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT) |