aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Spells/Spell.cpp
diff options
context:
space:
mode:
authorrobinsch <robin.schriever.hude@web.de>2015-06-01 07:31:30 +0200
committertkrokli <tkrokli@hotmail.com>2015-11-10 05:33:53 +0100
commit5f24fd6c51350b391bb30b53bd813c1ec25f3248 (patch)
tree651c19859092fc800db4f6c133ce809e437e5559 /src/server/game/Spells/Spell.cpp
parent52692c3f9d09dc781add9cfee043d6f6ec80291a (diff)
[3.3.5] Core/Spells: break Stealth and modify Stand State
by @robinsch; closes #14819 Currently (562da2e), only harmful CC spells will break stealth and modify the unit stand state. This behaviour is wrong. Any harmful spell hit should break stealth and modify the stand state. There are a few exceptions for this mechanic, such as: - Mass Dispel (priest spell ID 32375, 32592, 39897) - Earthbind Totem (Pulse) (spell ID 3600) - Distract (rogue spell ID 1725)
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
-rw-r--r--src/server/game/Spells/Spell.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 76eefa0bb0e..98267346234 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -2428,9 +2428,8 @@ void Spell::DoAllEffectOnTarget(TargetInfo* target)
{
m_caster->CombatStart(unit, !m_spellInfo->HasAttribute(SPELL_ATTR3_NO_INITIAL_AGGRO));
- if (m_spellInfo->HasAttribute(SPELL_ATTR0_CU_AURA_CC))
- if (!unit->IsStandState())
- unit->SetStandState(UNIT_STAND_STATE_STAND);
+ if (!unit->IsStandState())
+ unit->SetStandState(UNIT_STAND_STATE_STAND);
}
if (spellHitTarget)
@@ -2514,8 +2513,8 @@ SpellMissInfo Spell::DoSpellHitOnUnit(Unit* unit, uint32 effectMask, bool scaleA
if (m_caster->_IsValidAttackTarget(unit, m_spellInfo))
{
unit->RemoveAurasWithInterruptFlags(AURA_INTERRUPT_FLAG_HITBYSPELL);
- /// @todo This is a hack. But we do not know what types of stealth should be interrupted by CC
- if (m_spellInfo->HasAttribute(SPELL_ATTR0_CU_AURA_CC) && unit->IsControlledByPlayer())
+
+ if (!m_spellInfo->HasAttribute(SPELL_ATTR0_CU_DONT_BREAK_STEALTH))
unit->RemoveAurasByType(SPELL_AURA_MOD_STEALTH);
}
else if (m_caster->IsFriendlyTo(unit))