- Decoupled Unit logic: split of spell critical chance into done (caster bonuses) and taken (target bonuses), this allows to precalculate caster bonuses on aura apply and then check victim's auras on damage/healing calc
- Made static a bunch of methods (they no longer have this pointer because they are now called from periodic handlers which may or may not have an active caster in world)
- Simplified all AuraEffect bonuses into AuraEffect::_amount, no more duplicated code
- Critical chance and whether or not caster is player owned unit (for resilience calcs) is now saved one level upper, on Aura itself (it's impossible as of 3.3.5 to have different effects with different critical chances)
- Minor cleanup of SPELL_DAMAGE_CLASS_NONE and Arcane Potency (#18813) crit handling
Closes#19876
Core/Spell: The giant CastSpell unclusterfucking (that's a word now) of this generation.
- CastSpell now always takes three arguments - target, spellId, and a struct containing extra arguments
- This struct (CastSpellExtraArgs, see SpellDefines.h) serves as a conglomerate of every previous combination of the 20 billion different CastSpell overloads, all merged into one
- It has some great utility constructors - check them out! All of these can be used to implicitly construct the ExtraArgs object.
- A gajillion refactors to make everything behave the way it always has
Ref #18542
- Implemented Choking Vines transformation at 5 stacks
- Implemented periodic Aura of Fear ticks
- Fixed Savage Rend passive proccing on anything (raptor pets)
Validate spell_dbc DB data on startup (max effect type, max aura type, max target type).
Delete some invalid spells from spell_dbc table. Make sure to apply the SQL script or worldserver will assert on startup.
Improvements done to initial work by joschiwald:
- Fixed stormhammer casting and visuals
- Fixed spell credits
- Implemented removal of Impale when HP is higher than 90%
- Corrected faction templates for the pre combat creatures
- Implemeted Leap on the arena adds (thanks to joschiwald for implementing conditions)
- Scripted lighting charge using AuraScript periodic
- Fixed timings
- Corrections on the hallway encounters (added knockback immunity to minibosses too)
- Fixed multiple blizzards issue
- Lever will now reset properly, should players fail to get inside. This allows the door to be opened more than once during the combat
- Corrections in the outro event
- Implemented paralytic field traps on the hallway.
- Implemented Ancient Gate of the Keepers opening.
- Changed blizzard bunny targetting to conditions entirely.
- Removed obsolete scripts
- Standards: delete spell script names by ScriptName instead of spell_id
- Swapped factions for pre-adds (alliance should get horde trash and vs)
- Fixed Leap setting home position for adds
- Removed a bunch of magic numbers
- Runic Colossus should finish current Runic Explosion before beginning to attack
- Fixed UpdateAI logic to put it in line with other scripts (ie don't stop casts)
Special thanks to:
- chaodhib for the blizzard trigger waypoints and investigation on spell radius
- Malcrom for creating the Conditions Creator :P
Closes#15008Closes#17072
- This commit enables stack rule 3 to be properly used to fix auras that should be active but only one providing effects, even if the spell has multiple auras
Closes#19454
* Remade trajectory target selection
* Added possibility to apply conditions to trajectory spells
* Properly recalculate delay time if CMSG_UPDATE_PROJECTILE_POSITION is received
- Fixed possible exploit with tamed pets having template immunities
- Implemented binary resistances
- Corrected resistances calculations
- Pets properly inherit players spell penetration
- Fixed doubled block calculation for damaging melee spells
- Auras removing snare effects will only remove the snaring component
- Shapeshifting will properly remove movement impairing auras only and not crowd control (dragon's breath)
- Immunities are properly checked versus all schools appearing in spell, unit is immune only if immune to all schools
- Spells with melee and magic school mask should compare armor reduction with resistances and select smaller reduction
- Demonic Circle: Teleport no longer removes root effects