diff options
| author | ariel- <ariel-@users.noreply.github.com> | 2018-03-10 20:25:50 -0300 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-09-06 15:10:16 +0200 |
| commit | 50fe2dc7e305fa32d30bac6ad0ced2e5647ac02b (patch) | |
| tree | f6501b5eaa537198f0b2e6df1fcc8e3efc980577 /src/server/game/Spells/Spell.cpp | |
| parent | e7ef1deb6d802c15e1340911662559657fc2158b (diff) | |
Core/Spell: fix LoS checks for GameObject spells
Closes #21580
(cherry picked from commit f7869ad38b3ee90384667e7d1b230561180454d7)
Diffstat (limited to 'src/server/game/Spells/Spell.cpp')
| -rw-r--r-- | src/server/game/Spells/Spell.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 7fa43bfb3eb..bc5f090bb38 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -7300,6 +7300,11 @@ bool Spell::CheckEffectTarget(Unit const* target, SpellEffectInfo const& spellEf if (m_spellInfo->HasAttribute(SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS) || DisableMgr::IsDisabledFor(DISABLE_TYPE_SPELL, m_spellInfo->Id, nullptr, SPELL_DISABLE_LOS)) return true; + // check if gameobject ignores LOS + if (GameObject const* gobCaster = m_caster->ToGameObject()) + if (!gobCaster->GetGOInfo()->GetRequireLOS()) + return true; + // if spell is triggered, need to check for LOS disable on the aura triggering it and inherit that behaviour if (IsTriggered() && m_triggeredByAuraSpell && (m_triggeredByAuraSpell->HasAttribute(SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS) || DisableMgr::IsDisabledFor(DISABLE_TYPE_SPELL, m_triggeredByAuraSpell->Id, nullptr, SPELL_DISABLE_LOS))) return true; |
