Commit Graph
2258 Commits
Author SHA1 Message Date
Shauren cf2bf7f77f Core/Spells: Corrected implementation of SPELL_ATTR1_ALLOW_WHILE_STEALTHED and SPELL_ATTR2_ALLOW_WHILE_INVISIBLE to use DispelType instead of checking effect types 2022-10-04 12:36:58 +02:00
Ovahlord 7d67f10f77 Core/Spells: added a missing check in Unit::IsMovementPreventedByCasting 2022-10-03 12:22:39 +02:00
Ovahlord af71a8c9c1 Core/Units: fixed a crash in Unit::DealDamage when the attacker is no longer in world (periodic damage auras) 2022-10-03 12:01:01 +02:00
Shauren b4a39d42a8 Core/Auras: Fixed requireImmunityPurgesEffectAttribute logic for school immunities 2022-09-30 12:50:31 +02:00
Shauren c3b52fd29f Core/Auras: Improve aura interactions with immunities on spell effect level
* Effects that target is immune to will be suppressed instead of completely removed
2022-09-30 12:49:31 +02:00
Alan Deutscher 0f4442c630 Core/Auras: Do not remove auras unaffected by invincibility
* Mark WSG's Focused Assault and Brutal Assault as unaffected by immunities
2022-09-30 11:33:04 +02:00
Shauren f35e49b515 Core/Spells: Implemented SPELL_ATTR6_TAPS_IMMEDIATELY 2022-09-30 11:27:56 +02:00
Shauren f93918ef0c Core/Spells: Implemented SPELL_ATTR6_ABSORB_CANNOT_BE_IGNORE 2022-09-30 11:26:38 +02:00
Shauren c78371f321 ore/Spells: Autorepeat casting fixes
* Fixed cast bars of ranged spells not disappearing when canceled while autoshooting
* Replaced hacky 500ms delay on non auto shot autorepeat spells with native spell cast time (wands have 500ms cast time)
* Update cooldowns before attempting to cast autorepeat spells (for cases when cooldown ends on the same server tick as cast attempt)
2022-09-30 11:08:20 +02:00
Shauren dfc6fe6450 Core/Spells: Cleanup movement checks in spells - use correct interrupt flags 2022-09-30 11:02:52 +02:00
Shauren 1f60928a51 Core/Spells: Implemented SPELL_ATTR6_DELAY_COMBAT_TIMER_DURING_CAST 2022-09-30 10:56:37 +02:00
Shauren b394faf376 Core/Spells: Implemented SPELL_ATTR6_NO_PUSHBACK 2022-09-30 10:55:29 +02:00
Ovahlord eb0a5b607c buildfix 2022-09-30 10:49:43 +02:00
Shauren 4cfd439d34 Core/Spells: Implemented SPELL_ATTR5_NOT_AVAILABLE_WHILE_CHARMED 2022-09-30 02:08:33 +02:00
Shauren 2c78751b5a Core/Spells: Corrected implementation of SPELL_ATTR5_ALLOW_ACTIONS_DURING_CHANNEL - it allows casting other spells while channeling, not allows movement while channeling 2022-09-30 02:00:04 +02:00
Shauren 75906f3d06 Core/Auras: Added support for SPELL_ATTR5_LIMIT_N limit to other number than just 1 2022-09-30 01:57:52 +02:00
Ovahlord 8a9f5e297b buildfix 2022-09-30 01:33:59 +02:00
Shauren a7dc339a6a SHA-1: 8d16a79dea4c0100d36e13b068c42499a3a48154
* Core/Spells: Rename SpellAttr4 to use official attribute names

* Corrected implementation of SPELL_ATTR4_CLASS_TRIGGER_ONLY_ON_TARGET
* Implemented SPELL_ATTR4_NO_HELPFUL_THREAT
* Implemented SPELL_ATTR4_NO_PARTIAL_IMMUNITY
* Implemented SPELL_ATTR4_ALLOW_PROC_WHILE_SITTING
* Implemented SPELL_ATTR4_USE_FACING_FROM_SPELL
* Implemented SPELL_ATTR4_BOUNCY_CHAIN_MISSILES
* Implemented SPELL_ATTR4_AURA_NEVER_BOUNCES
* Implemented SPELL_ATTR4_AURA_BOUNCE_FAILS_SPELL
* Implemented SPELL_ATTR4_AURA_IS_BUFF
* Implemented SPELL_ATTR5_MELEE_CHAIN_TARGETING

* Implemented SpellEffectAttributes::ChainFromInitialTarget
2022-09-30 01:16:39 +02:00
Ovahlord 34386e2b47 Core/Packets: converted SMSG_PERIODIC_AURA_LOG to packet class 2022-09-29 22:27:57 +02:00
Ovahlord dad7c2c102 Core/Spells: minor refactor for SPELL_AURA_MOD_DAMAGE_FROM_MANA implementation 2022-09-27 12:56:09 +02:00
Ovahlord 7630711eaa Core/Units: fixed a possible crash in Unit::MeleeDamageBonusDone 2022-09-20 21:24:48 +02:00
Ovahlord bc1d71e589 Core/Spells: fixed totems not inheriting spell bonus effects from their creator 2022-09-20 19:44:44 +02:00
Ovahlord ef3632109d Core/Spells: ported SpellModOp definitions from master branch 2022-09-17 11:56:54 +02:00
Ovahlord dbc0de1e71 Core/Units: removed PvE level delta based block chance bonus
* according to simulationcraft there is no sign of it being real
2022-09-14 01:06:01 +02:00
Ovahlord 19de0a1949 Core/Units: restore block chance bonus when fighting stronger creatures 2022-09-13 19:19:47 +02:00
Ovahlord e9e2d65b42 Core/Units: allow ranged attacks to be blocked 2022-09-13 18:46:37 +02:00
Ovahlord 3057924db2 Core/Spells: corrected implementation of SPELL_ATTR3_COMPLETELY_BLOCKED
* it's not a bug, it's a feature :)
2022-09-13 18:19:05 +02:00
Ovahlord a7ba9502d7 Core/Units: a587f99c30 followup 2022-09-13 16:30:15 +02:00
Ovahlord a587f99c30 Core/Units: correct block chance and damage calculation of melee spells
*MeleeSpellHitResult already returns a valid block roll result so we don't need a 2nd roll in CalculateSpellDamageTaken
2022-09-13 16:14:42 +02:00
Shauren 946f928ee2 Core/Spells: Rename SpellAttr3 to use official attribute names
* Implemented SPELL_ATTR3_NO_AVOIDANCE
* Implemented SPELL_ATTR3_ONLY_PROC_OUTDOORS
* Implemented SPELL_ATTR3_ONLY_PROC_ON_CASTER
* Implemented SPELL_ATTR3_PVP_ENABLING
* Implemented SPELL_ATTR3_SUPPRESS_CASTER_PROCS
* Implemented SPELL_ATTR3_SUPPRESS_TARGET_PROCS
2022-09-13 15:40:25 +02:00
Shauren ea4bc6c02a Core/Spells: Rename SpellAttr2 to use official attribute names
* Corrected implementation of SPELL_ATTR1_ALLOW_WHILE_STEALTHED
* Implemented SPELL_ATTR2_RETAIN_ITEM_CAST
* Implemented SPELL_ATTR2_ALLOW_WHILE_INVISIBLE
* Implemented SPELL_ATTR0_PROC_FAILURE_BURNS_CHARGE
* Implemented SPELL_ATTR2_PROC_COOLDOWN_ON_FAILURE
* Implemented SPELL_ATTR2_NO_TARGET_PER_SECOND_COSTS
* Implemented SPELL_ATTR2_DO_NOT_REPORT_SPELL_FAILURE
* Implemented SPELL_ATTR1_REQUIRE_ALL_TARGETS
* Implemented SPELL_ATTR2_CHAIN_FROM_CASTER
* Implemented SPELL_ATTR2_NO_ACTIVE_PETS
* Implemented SPELL_ATTR2_ENCHANT_OWN_ITEM_ONLY
2022-09-13 14:36:32 +02:00
Ovahlord e3e4b2cf16 Core/Spells: dropped old dot clipping implementation and restored TC period and duration calculations in preparation of re-implementing it 2022-09-12 09:15:35 +02:00
Ovahlord 4c28aaebd6 warning fixes 2022-09-12 09:15:34 +02:00
Ovahlord 2b3477fab5 Core/Packets: ported SMSG_SPELL_DAMAGE_SHIELD to packet class and handle its missing field 2022-09-12 09:15:34 +02:00
Ovahlord 18e6cd4565 Core/Units: resolved more cherrypick mistakes which caused vehciles accessories to not enter their seats 2022-09-12 09:15:34 +02:00
Meji 4552929860 Core/Unit: Update collision height calculation 2022-09-12 09:15:33 +02:00
Ovahlord 77cf3ebc91 Core/Spells: removed another duplicate haste application for periodic auras 2022-09-12 09:15:32 +02:00
Ovahlord 6a71b6d053 Core/Units: consider summoned units with a creator guid also as party or raid member
the old logic was built on the false assumption that all units like totems have a ownerguid - they do not. They only have a creatorguid. Ownerguids (as the name implies) is only applied on units that the player is actively controlling. 3.3.5 has this implemented in a wrong way while 4.x does not.

*also fixed up more cherrypick mistakes while at it
2022-09-12 09:15:31 +02:00
Shauren ca7d36873f Core/Spells: Rename SpellAttr1 to use official attribute names
* Implemented SPELL_ATTR1_NO_SKILL_INCREASE, SPELL_ATTR1_AURA_STAYS_AFTER_COMBAT, SPELL_ATTR1_DISPEL_ALL_STACKS
2022-09-12 09:15:31 +02:00
Kaytotes b2d01c8d76 Core/Units: Removed incorrect facing movement packet sent with every creature autoattack 2022-09-12 09:15:30 +02:00
Giacomo Pozzoni 2b2237b7bc Fixes/3.3.5 aura infinite loop
* Core/Auras: Attempt to fix infinite loop with aura 18950 on map unload

* Core/Auras: Log a detailed error and assert when failing to remove all auras after a few tries

* Code cleanup
2022-09-12 09:15:28 +02:00
Giacomo Pozzoni b052d23c4f Core/Creatures: Fix spell_school_immune_mask being applied against positive spells too (#23999) 2022-09-12 09:15:26 +02:00
Ovahlord ec09a4830a Core/Spells: resolved a couple cherrypick mistakes 2022-09-12 09:15:25 +02:00
Wyrserth 86749679c8 Core/Spell: honor IsStackableOnOneSlotWithDifferentCasters() when deciding if an aura should stack from different casters or not. (#23579)
Fixes #23387 and #22818.
2022-09-12 09:15:25 +02:00
Wyrserth 2fefbc800b Core/Spell: allow damage from binary spells to go through elemental resistance's damage reduction. 2022-09-12 09:15:24 +02:00
jackpoz 068d7f826e Core/Spells: Fix assert triggered
Fix assert triggered when a spell would trigger another spell in OnEffectHitTarget that would kill the aura owner, then processing the main spell effects. The triggered spell can kill the aura owner, changing its death state to CORPSE and removing auras created.

Fix #21856
Ref 518e6299ca08a362bc3709daaaa5e5d5633d1bf1
2022-09-12 09:15:23 +02:00
jackpoz 1180c43bac Core/Spells: Fix assert triggered
Fix assert triggered when a spell would trigger another spell in OnEffectHitTarget that would kill the target, then processing the main spell effects. The triggered spell can kill the target, changing its death state to CORPSE and removing auras created.
Fix #22306
2022-09-12 09:15:22 +02:00
Shauren 96c4a1b1f9 Core/Spells: Fixed unapplying rockbiter weapon 2022-09-12 09:15:21 +02:00
Shauren dc8bf301bb Core/Auras: Fixed saving auras with same spell id but different item source 2022-09-12 09:15:21 +02:00
Shauren adfeaa7666 Core/PacketIO: Fixed SMSG_SPELLNONMELEEDAMAGELOG structure 2022-09-12 09:15:20 +02:00