diff options
author | MaxtorCoder <warsongkiller.s8@gmail.com> | 2024-03-13 21:16:18 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-13 21:16:18 +0100 |
commit | cfc9cc9ec285e7934f3160047ff87be3c649594f (patch) | |
tree | be680d4f88fac55274862251c349c644a5d90930 /src/server/game/Spells/SpellEffects.cpp | |
parent | 46d929cb82b631648ef4a84e75ca7bc174a03fdd (diff) |
Core/PacketIO: Update to 4.4.0.53627 (#29805)
* Core/PacketIO: Update to 4.4.0.53627
* Core/IO: Remove duplicate declaration of PetSpellDataID
* Core/IO: Assign STATUS_UNHANDLED to some azerite packets
Diffstat (limited to 'src/server/game/Spells/SpellEffects.cpp')
-rw-r--r-- | src/server/game/Spells/SpellEffects.cpp | 73 |
1 files changed, 2 insertions, 71 deletions
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 3c4a40ff587..ebc57399656 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -18,8 +18,6 @@ #include "Spell.h" #include "AccountMgr.h" #include "AreaTrigger.h" -#include "AzeriteEmpoweredItem.h" -#include "AzeriteItem.h" #include "Battleground.h" #include "BattlegroundMgr.h" #include "BattlePetMgr.h" @@ -346,13 +344,13 @@ NonDefaultConstructible<SpellEffectHandlerFn> SpellEffectHandlers[TOTAL_SPELL_EF &Spell::EffectUnused, //256 SPELL_EFFECT_256 &Spell::EffectUnused, //257 SPELL_EFFECT_257 &Spell::EffectNULL, //258 SPELL_EFFECT_MODIFY_KEYSTONE - &Spell::EffectRespecAzeriteEmpoweredItem, //259 SPELL_EFFECT_RESPEC_AZERITE_EMPOWERED_ITEM + &Spell::EffectNULL, //259 SPELL_EFFECT_RESPEC_AZERITE_EMPOWERED_ITEM &Spell::EffectNULL, //260 SPELL_EFFECT_SUMMON_STABLED_PET &Spell::EffectNULL, //261 SPELL_EFFECT_SCRAP_ITEM &Spell::EffectUnused, //262 SPELL_EFFECT_262 &Spell::EffectNULL, //263 SPELL_EFFECT_REPAIR_ITEM &Spell::EffectNULL, //264 SPELL_EFFECT_REMOVE_GEM - &Spell::EffectLearnAzeriteEssencePower, //265 SPELL_EFFECT_LEARN_AZERITE_ESSENCE_POWER + &Spell::EffectNULL, //265 SPELL_EFFECT_LEARN_AZERITE_ESSENCE_POWER &Spell::EffectNULL, //266 SPELL_EFFECT_SET_ITEM_BONUS_LIST_GROUP_ENTRY &Spell::EffectCreatePrivateConversation, //267 SPELL_EFFECT_CREATE_PRIVATE_CONVERSATION &Spell::EffectNULL, //268 SPELL_EFFECT_APPLY_MOUNT_EQUIPMENT @@ -5770,73 +5768,6 @@ void Spell::EffectLearnTransmogSet() unitTarget->ToPlayer()->GetSession()->GetCollectionMgr()->AddTransmogSet(effectInfo->MiscValue); } -void Spell::EffectRespecAzeriteEmpoweredItem() -{ - if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET) - return; - - if (!itemTarget || !itemTarget->IsAzeriteEmpoweredItem()) - return; - - Player* owner = m_caster->ToPlayer(); - if (!owner) - return; - - AzeriteEmpoweredItem* azeriteEmpoweredItem = itemTarget->ToAzeriteEmpoweredItem(); - owner->ModifyMoney(-azeriteEmpoweredItem->GetRespecCost()); - - // reapply all item mods - item level change affects stats and auras - if (azeriteEmpoweredItem->IsEquipped()) - owner->_ApplyItemMods(azeriteEmpoweredItem, azeriteEmpoweredItem->GetSlot(), false); - - azeriteEmpoweredItem->ClearSelectedAzeritePowers(); - - if (azeriteEmpoweredItem->IsEquipped()) - owner->_ApplyItemMods(azeriteEmpoweredItem, azeriteEmpoweredItem->GetSlot(), true); - - azeriteEmpoweredItem->SetState(ITEM_CHANGED, owner); - owner->SetNumRespecs(owner->GetNumRespecs() + 1); -} - -void Spell::EffectLearnAzeriteEssencePower() -{ - if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET) - return; - - Player* playerTarget = unitTarget ? unitTarget->ToPlayer() : nullptr; - if (!playerTarget) - return; - - Item* heartOfAzeroth = playerTarget->GetItemByEntry(ITEM_ID_HEART_OF_AZEROTH, ItemSearchLocation::Everywhere); - if (!heartOfAzeroth) - return; - - AzeriteItem* azeriteItem = heartOfAzeroth->ToAzeriteItem(); - if (!azeriteItem) - return; - - // remove old rank and apply new one - if (azeriteItem->IsEquipped()) - { - if (UF::SelectedAzeriteEssences const* selectedEssences = azeriteItem->GetSelectedAzeriteEssences()) - { - for (int32 slot = 0; slot < MAX_AZERITE_ESSENCE_SLOT; ++slot) - { - if (selectedEssences->AzeriteEssenceID[slot] == uint32(effectInfo->MiscValue)) - { - bool major = AzeriteItemMilestoneType(sDB2Manager.GetAzeriteItemMilestonePower(slot)->Type) == AzeriteItemMilestoneType::MajorEssence; - playerTarget->ApplyAzeriteEssence(azeriteItem, effectInfo->MiscValue, MAX_AZERITE_ESSENCE_RANK, major, false); - playerTarget->ApplyAzeriteEssence(azeriteItem, effectInfo->MiscValue, effectInfo->MiscValueB, major, false); - break; - } - } - } - } - - azeriteItem->SetEssenceRank(effectInfo->MiscValue, effectInfo->MiscValueB); - azeriteItem->SetState(ITEM_CHANGED, playerTarget); -} - void Spell::EffectCreatePrivateConversation() { if (effectHandleMode != SPELL_EFFECT_HANDLE_LAUNCH_TARGET) |