aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/SpellEffects.cpp
diff options
context:
space:
mode:
authorMeji <alvaro.megias@outlook.com>2023-01-29 17:42:23 +0100
committerGitHub <noreply@github.com>2023-01-29 17:42:23 +0100
commit03918978c166c9fb191117a0cae9ba1285bf0e37 (patch)
tree4eb31986b057483a11d39c826b3deb9dc0f4f35b /src/server/game/Spells/SpellEffects.cpp
parentb6cd49c34d4d02b41ced58b87103123a1532b56c (diff)
Core/Players: Several currency fixes and improvements (#28676)
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r--src/server/game/Spells/SpellEffects.cpp16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 3af28b58daa..a9d38f7578c 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -100,7 +100,7 @@ NonDefaultConstructible<SpellEffectHandlerFn> SpellEffectHandlers[TOTAL_SPELL_EF
&Spell::EffectBind, // 11 SPELL_EFFECT_BIND
&Spell::EffectNULL, // 12 SPELL_EFFECT_PORTAL
&Spell::EffectTeleportToReturnPoint, // 13 SPELL_EFFECT_TELEPORT_TO_RETURN_POINT
- &Spell::EffectNULL, // 14 SPELL_EFFECT_INCREASE_CURRENCY_CAP
+ &Spell::EffectIncreaseCurrencyCap, // 14 SPELL_EFFECT_INCREASE_CURRENCY_CAP
&Spell::EffectTeleportUnitsWithVisualLoadingScreen, // 15 SPELL_EFFECT_TELEPORT_WITH_SPELL_VISUAL_KIT_LOADING_SCREEN
&Spell::EffectQuestComplete, // 16 SPELL_EFFECT_QUEST_COMPLETE
&Spell::EffectWeaponDmg, // 17 SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL
@@ -4973,7 +4973,7 @@ void Spell::EffectGiveCurrency()
if (!sCurrencyTypesStore.LookupEntry(effectInfo->MiscValue))
return;
- unitTarget->ToPlayer()->ModifyCurrency(effectInfo->MiscValue, damage);
+ unitTarget->ToPlayer()->ModifyCurrency(effectInfo->MiscValue, damage, CurrencyGainSource::Spell, CurrencyDestroyReason::Spell);
}
void Spell::EffectCastButtons()
@@ -5081,6 +5081,18 @@ void Spell::EffectTeleportToReturnPoint()
player->TeleportTo(*dest, unitTarget == m_caster ? TELE_TO_SPELL | TELE_TO_NOT_LEAVE_COMBAT : 0);
}
+void Spell::EffectIncreaseCurrencyCap()
+{
+ if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
+ return;
+
+ if (damage <= 0)
+ return;
+
+ if (Player* player = unitTarget->ToPlayer())
+ player->IncreaseCurrencyCap(effectInfo->MiscValue, damage);
+}
+
void Spell::EffectSummonRaFFriend()
{
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)