Implemented binary resistances and some more (#18933)

- 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

(cherrypicked from 93746e8c4a)
This commit is contained in:
xinef1
2017-02-04 23:50:32 +01:00
committed by Shauren
parent ad008c43b7
commit ca26c33145
13 changed files with 373 additions and 69 deletions

View File

@@ -636,14 +636,14 @@ void Spell::EffectTriggerSpell(SpellEffIndex /*effIndex*/)
// Vanish (not exist)
case 18461:
{
unitTarget->RemoveMovementImpairingAuras();
unitTarget->RemoveMovementImpairingAuras(true);
unitTarget->RemoveAurasByType(SPELL_AURA_MOD_STALKED);
return;
}
// Demonic Empowerment -- succubus
case 54437:
{
unitTarget->RemoveMovementImpairingAuras();
unitTarget->RemoveMovementImpairingAuras(true);
unitTarget->RemoveAurasByType(SPELL_AURA_MOD_STALKED);
unitTarget->RemoveAurasByType(SPELL_AURA_MOD_STUN);
@@ -3179,7 +3179,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
case 30918: // Improved Sprint
{
// Removes snares and roots.
unitTarget->RemoveMovementImpairingAuras();
unitTarget->RemoveMovementImpairingAuras(true);
break;
}
// Plant Warmaul Ogre Banner