Commit Graph
2245 Commits
Author SHA1 Message Date
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
ariel- 3a3e70f2b6 Core/Spells: all bleed effects should ignore armor 2022-09-12 09:15:19 +02:00
ariel- b3c8d78fa2 Core/Spell: fix SendSpellMiss requiring caster Unit 2022-09-12 09:15:16 +02:00
ariel- 1fe5563431 Core/Spells: Fix periodic rolling adding bonuses twice
Calculation is now done in CalculateAmount
2022-09-12 09:15:15 +02:00
ariel- b6fac86b71 Core/Spells: rework part 5: GameObject casting 2022-09-12 09:15:14 +02:00
ariel- 3fbbea61bd Core/Spells: rework part 3: spells only handle at most one UnitAura and one DynObjAura during its lifetime
# Conflicts:
#	src/server/game/Spells/Auras/SpellAuras.h
2022-09-12 09:15:13 +02:00
ariel- 98a988a77a Core/Spells: rework part 2: Split up target selection logic
Target check only determines what kind of entities we can target, spell positivity determines if that entity is valid for attack/assist
2022-09-12 09:15:13 +02:00
Ovahlord 36b5e120af build fix 2022-09-12 09:15:12 +02:00
ariel- 3bfa32d15b Core/Unit: kill unused parameter from SpellxxxBonusTaken 2022-09-12 09:15:11 +02:00
ariel- 6024b7b4fb Core/Unit: corrected calculation for SPELL_AURA_MOD_DAMAGE_TAKEN/SPELL_AURA_MOD_HEALING auras
- Spell bonus calculation and penalty was done twice, but it's simply flat +SP, which should be taken into account before other bonuses
- Fixed missing code from SpellDamageBonusDone/SpellHealingBonusDone and killed multiplication by stack amount twice for default coefficient spells (already multiplied on level penalty)
2022-09-12 09:15:11 +02:00
ariel- c81f48197d Core/Spells: calculate crit chance only for spells that do damage/healing 2022-09-12 09:15:10 +02:00
ariel- 64b9b1c28b Core/Spells: kill unused parameter from Spell constructor 2022-09-12 09:15:10 +02:00
ariel- c9e732b0bf This hook modifies damage AFTER it has been reduced by target auras/armor/resistances etc, it's useful if you want to scale damage by a factor, but not to add flat bonuses.
We're fixing those by moving calculation to Launch phase, where target taken bonuses haven't been used yet.

- Bronjahm: Magic's Bane
- BPC: Shadow Prison
- Oculus: Shock Lance
- Ymiron: Dark Slash (extra fix, it was wrongly damaging half of total health, it's supposed to be half of CURRENT health!)
- DK: Raise Ally Thrash spell (also extra fix: corrected formula)
- Warrior: Bloodthirst (shouldn't matter much as it's damage class none and those don't get bonuses by default)
- Warrior: Concussion Blow
- Warlock: extra fix for Haunt, healing part shouldn't scale with spell power
2022-09-12 09:15:08 +02:00
Ovahlord 5ff7fda516 resolved a cherrypick mistake 2022-09-12 09:15:07 +02:00