diff options
| author | Meji <alvaro.megias@outlook.com> | 2023-01-29 17:42:23 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-29 17:42:23 +0100 |
| commit | 03918978c166c9fb191117a0cae9ba1285bf0e37 (patch) | |
| tree | 4eb31986b057483a11d39c826b3deb9dc0f4f35b /src/server/game/Spells/SpellEffects.cpp | |
| parent | b6cd49c34d4d02b41ced58b87103123a1532b56c (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.cpp | 16 |
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) |
