diff options
author | Treeston <treeston.mmoc@gmail.com> | 2018-08-29 19:53:23 +0200 |
---|---|---|
committer | Treeston <treeston.mmoc@gmail.com> | 2018-08-29 19:53:23 +0200 |
commit | 704870496f672f628635e45a1cec98a485d86c28 (patch) | |
tree | e95b6d52b1835c8d9a6b7b53c09b15f61a4d6afb | |
parent | 969436adfe8fc0f1c6a01d422ab7f6aa08486be3 (diff) |
Core/Threat: Fear no longer suppresses threat. All confuse effects now suppress threat, even ones that wouldn't break on damage.
-rw-r--r-- | src/server/game/Combat/ThreatManager.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Spells/Auras/SpellAuraEffects.cpp | 16 |
2 files changed, 11 insertions, 9 deletions
diff --git a/src/server/game/Combat/ThreatManager.cpp b/src/server/game/Combat/ThreatManager.cpp index e56eb5b2fda..6d6916d3905 100644 --- a/src/server/game/Combat/ThreatManager.cpp +++ b/src/server/game/Combat/ThreatManager.cpp @@ -108,7 +108,9 @@ bool ThreatReference::ShouldBeSuppressed() const { if (_victim->IsImmunedToDamage(_owner->GetMeleeDamageSchoolMask())) return true; - if (_victim->HasBreakableByDamageCrowdControlAura()) + if (_victim->HasAuraType(SPELL_AURA_MOD_CONFUSE)) + return true; + if (_victim->HasBreakableByDamageAuraType(SPELL_AURA_MOD_STUN)) return true; return false; } diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index f6d9f5d13ac..348b3409248 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -2112,8 +2112,6 @@ void AuraEffect::HandleAuraTransform(AuraApplication const* aurApp, uint8 mode, } } } - - target->GetThreatManager().EvaluateSuppressed(); } void AuraEffect::HandleAuraModScale(AuraApplication const* aurApp, uint8 mode, bool apply) const @@ -2785,7 +2783,8 @@ void AuraEffect::HandleModConfuse(AuraApplication const* aurApp, uint8 mode, boo Unit* target = aurApp->GetTarget(); target->SetControlled(apply, UNIT_STATE_CONFUSED); - target->GetThreatManager().EvaluateSuppressed(); + if (apply) + target->GetThreatManager().EvaluateSuppressed(); } void AuraEffect::HandleModFear(AuraApplication const* aurApp, uint8 mode, bool apply) const @@ -2796,7 +2795,6 @@ void AuraEffect::HandleModFear(AuraApplication const* aurApp, uint8 mode, bool a Unit* target = aurApp->GetTarget(); target->SetControlled(apply, UNIT_STATE_FLEEING); - target->GetThreatManager().EvaluateSuppressed(); } void AuraEffect::HandleAuraModStun(AuraApplication const* aurApp, uint8 mode, bool apply) const @@ -2807,7 +2805,8 @@ void AuraEffect::HandleAuraModStun(AuraApplication const* aurApp, uint8 mode, bo Unit* target = aurApp->GetTarget(); target->SetControlled(apply, UNIT_STATE_STUNNED); - target->GetThreatManager().EvaluateSuppressed(); + if (apply) + target->GetThreatManager().EvaluateSuppressed(); } void AuraEffect::HandleAuraModRoot(AuraApplication const* aurApp, uint8 mode, bool apply) const @@ -2818,7 +2817,6 @@ void AuraEffect::HandleAuraModRoot(AuraApplication const* aurApp, uint8 mode, bo Unit* target = aurApp->GetTarget(); target->SetControlled(apply, UNIT_STATE_ROOT); - target->GetThreatManager().EvaluateSuppressed(); } void AuraEffect::HandlePreventFleeing(AuraApplication const* aurApp, uint8 mode, bool apply) const @@ -3163,7 +3161,8 @@ void AuraEffect::HandleAuraModSchoolImmunity(AuraApplication const* aurApp, uint && GetSpellInfo()->HasAttribute(SPELL_ATTR2_DAMAGE_REDUCED_SHIELD)) target->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_IMMUNE_OR_LOST_SELECTION); - target->GetThreatManager().EvaluateSuppressed(); + if (apply) + target->GetThreatManager().EvaluateSuppressed(); } void AuraEffect::HandleAuraModDmgImmunity(AuraApplication const* aurApp, uint8 mode, bool apply) const @@ -3174,7 +3173,8 @@ void AuraEffect::HandleAuraModDmgImmunity(AuraApplication const* aurApp, uint8 m Unit* target = aurApp->GetTarget(); m_spellInfo->ApplyAllSpellImmunitiesTo(target, GetEffIndex(), apply); - target->GetThreatManager().EvaluateSuppressed(); + if (apply) + target->GetThreatManager().EvaluateSuppressed(); } void AuraEffect::HandleAuraModDispelImmunity(AuraApplication const* aurApp, uint8 mode, bool apply) const |