diff options
author | Warpten <vertozor@gmail.com> | 2013-01-01 17:48:09 +0100 |
---|---|---|
committer | Warpten <vertozor@gmail.com> | 2013-01-01 17:48:09 +0100 |
commit | 49e3526882839cfefa088304dd0538b704231aac (patch) | |
tree | c19223d01a60f5e1ac4ef97a47bb870bf82a0307 /src | |
parent | fefee58de7d8c72ba6b34d7f84ee2d626dad59ce (diff) |
Core/Spells: Implemented SPELL_EFFECT_GIVE_CURRENCY.
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Spells/Spell.h | 1 | ||||
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 13 |
2 files changed, 13 insertions, 1 deletions
diff --git a/src/server/game/Spells/Spell.h b/src/server/game/Spells/Spell.h index 4bc7b4e14fe..2a976d74f30 100644 --- a/src/server/game/Spells/Spell.h +++ b/src/server/game/Spells/Spell.h @@ -338,6 +338,7 @@ class Spell void EffectDamageFromMaxHealthPCT(SpellEffIndex effIndex); void EffectCastButtons(SpellEffIndex effIndex); void EffectRechargeManaGem(SpellEffIndex effIndex); + void EffectGiveCurrency(SpellEffIndex effIndex); typedef std::set<Aura*> UsedSpellMods; diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 9dbe9ab3459..3e6994176cc 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -235,7 +235,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]= &Spell::EffectUnused, //163 SPELL_EFFECT_163 unused &Spell::EffectRemoveAura, //164 SPELL_EFFECT_REMOVE_AURA &Spell::EffectDamageFromMaxHealthPCT, //165 SPELL_EFFECT_DAMAGE_FROM_MAX_HEALTH_PCT - &Spell::EffectNULL, //166 SPELL_EFFECT_GIVE_CURRENCY + &Spell::EffectGiveCurrency, //166 SPELL_EFFECT_GIVE_CURRENCY &Spell::EffectNULL, //167 SPELL_EFFECT_167 &Spell::EffectNULL, //168 SPELL_EFFECT_168 &Spell::EffectNULL, //169 SPELL_EFFECT_DESTROY_ITEM @@ -5907,6 +5907,17 @@ void Spell::EffectDamageFromMaxHealthPCT(SpellEffIndex effIndex) m_damage += unitTarget->CountPctFromMaxHealth(damage); } +void Spell::EffectGiveCurrency(SpellEffIndex effIndex) +{ + if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET) + return; + + if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER) + return; + + unitTarget->ToPlayer()->ModifyCurrency(m_spellInfo->Effects[effIndex].MiscValue, damage); +} + void Spell::EffectCastButtons(SpellEffIndex effIndex) { if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT) |