From 9354b4ac8ec63f0b2ee5ceb3c8b6a3c6a75bd99f Mon Sep 17 00:00:00 2001 From: Meji Date: Thu, 30 Dec 2021 20:38:29 +0100 Subject: Core/Spells: Implemented battle pet experience related spell effects and auras (#27488) * Spell effect 286 (SPELL_EFFECT_GRANT_BATTLEPET_EXPERIENCE) * Aura type 420 (SPELL_AURA_MOD_BATTLE_PET_XP_PCT) --- src/server/game/Spells/SpellEffects.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'src/server/game/Spells/SpellEffects.cpp') diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 04aed7b0e08..2785194768d 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -367,7 +367,7 @@ NonDefaultConstructible SpellEffectHandlers[TOTAL_SPELL_EF &Spell::EffectNULL, //283 SPELL_EFFECT_COMPLETE_CAMPAIGN &Spell::EffectSendChatMessage, //284 SPELL_EFFECT_SEND_CHAT_MESSAGE &Spell::EffectNULL, //285 SPELL_EFFECT_MODIFY_KEYSTONE_2 - &Spell::EffectNULL, //286 SPELL_EFFECT_GRANT_BATTLEPET_EXPERIENCE + &Spell::EffectGrantBattlePetExperience, //286 SPELL_EFFECT_GRANT_BATTLEPET_EXPERIENCE &Spell::EffectNULL, //287 SPELL_EFFECT_SET_GARRISON_FOLLOWER_LEVEL }; @@ -5722,3 +5722,18 @@ void Spell::EffectSendChatMessage() ChatMsg chatType = ChatMsg(effectInfo->MiscValueB); unitCaster->Talk(broadcastTextId, chatType, CreatureTextMgr::GetRangeForChatType(chatType), unitTarget); } + +void Spell::EffectGrantBattlePetExperience() +{ + if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET) + return; + + Player* playerCaster = m_caster->ToPlayer(); + if (!playerCaster) + return; + + if (!unitTarget || !unitTarget->IsCreature()) + return; + + playerCaster->GetSession()->GetBattlePetMgr()->GrantBattlePetExperience(unitTarget->GetBattlePetCompanionGUID(), damage, BattlePets::BattlePetXpSource::SpellEffect); +} -- cgit v1.2.3