- Spell attributes research
- Container optimization
- Do not skip damage immunity checks on SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY present
- Added additonal arguments support to SendCastResult / CheckCast, spells can now send proper error messages
- Loads spell immune masks/states/effects at startup.
- This cached info is used whenever a spell cast requires immunities to be known beforehand (to see if an aura could be applied for example)
Closes#16658Closes#16901Closes#18114
(cherry picked from commit 50a3ce5703)
Core/Spell: fix warning
(cherry picked from commit 3588ff894b)
Core/Unit: misc codestyle
use typedef for constant reference
(cherry picked from commit 7943150dcb)
Core/Spell: Fixed immunities for some spells (they were broken before rewrite too)
- Warlord's Presence, Uncontrollable Frenzy, Free Friend
- Overload, Lightning Tendrils
- Fervor, Berserk
- Determination
(cherry picked from commit fc6844173f)
Core/Spell: fix typos
(cherry picked from commit f060efbdb4)
Core/Unit: improved handling of some spell attributes
- SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE
- SPELL_ATTR2_UNAFFECTED_BY_AURA_SCHOOL_IMMUNE
- SPELL_ATTR3_IGNORE_HIT_RESULT
(cherry picked from commit 352c84943c)
Core/Spell: fix typo
Closes#18248
(cherry picked from commit 1ad9c7d3fd)
Core/Spell: perform charmer check against player controlling unit. Fixes spellcasts while charmed
(cherry picked from commit 425f6c3c34)
Core/Unit: don't use damage immunity to calculate hit result for the whole spell. Should be used only for damage
(cherry picked from commit 9f5df023b7)
Core/Spell: fix a potential null dereference crash
(cherry picked from commit 64304d8b2b)
* Required for handling flags inherited by linked projects
correctly in the corresponding precompiled header.
* Reduces the maintenance effort for precompiled headers
(cherry picked from commit 92f96fc10e)
* Core/Loot: Fix master looting of conditional items
follow_loot_rules was a flag intended to force certain quest items to be
master looted. It should not be used for the
NonQuestNonFFAConditionalLoot.
The flag was originally introduced in 869ea349
"Core/Loot: fix the way quest items are handled. so far ive only found 3
quest items that should be able to be masterlooted. added a new flag to
item_template.flagsCustom to allow for making a quest item always follow
loot rules. a bonus may be the fix of the handlelootmasteropcode crash!"
* Core/Loot: Rename QuestItem to NotNormalItem
QuestItem struct was being used for quest items, ffa items, and
conditional items. Renaming it to avoid confusion when working with ffa
and conditional items
* Core/Loot: Use existing AddAllowedLooter rather than reaching into allowedGUIDs directly
* Core/Loot: Rename NotNormalItem to NotNormalLootItem
(cherry picked from commit f5d3343f27)
# Conflicts:
# src/server/game/Entities/Item/Item.cpp
# src/server/game/Loot/LootMgr.cpp
# src/server/game/Loot/LootMgr.h
* Core/Auras: don't save auras casted by items
- This type of auras (like Water Bucket, Precious Ribbon, etc) will be recasted on login anyways.
This reverts commit 16cfd59f5b
(partial cherry picked from commit e84dfff4ce)
Core/Auras: fix elixir aura saving
(cherry picked from commit 697147a596)