aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWarpten <vertozor@gmail.com>2013-01-01 17:48:09 +0100
committerWarpten <vertozor@gmail.com>2013-01-01 17:48:09 +0100
commit49e3526882839cfefa088304dd0538b704231aac (patch)
treec19223d01a60f5e1ac4ef97a47bb870bf82a0307 /src
parentfefee58de7d8c72ba6b34d7f84ee2d626dad59ce (diff)
Core/Spells: Implemented SPELL_EFFECT_GIVE_CURRENCY.
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Spells/Spell.h1
-rw-r--r--src/server/game/Spells/SpellEffects.cpp13
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)