diff options
Diffstat (limited to 'src/server/game/Spells/SpellInfo.cpp')
-rw-r--r-- | src/server/game/Spells/SpellInfo.cpp | 13 |
1 files changed, 3 insertions, 10 deletions
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index e969c3d35d0..5b766d2426c 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -1631,16 +1631,9 @@ SpellCastResult SpellInfo::CheckTarget(Unit const* caster, WorldObject const* ta // creature/player specific target checks if (unitTarget) { - if (HasAttribute(SPELL_ATTR1_CANT_TARGET_IN_COMBAT)) - { - if (unitTarget->IsInCombat()) - return SPELL_FAILED_TARGET_AFFECTING_COMBAT; - // player with active pet counts as a player in combat - else if (Player const* player = unitTarget->ToPlayer()) - if (Pet* pet = player->GetPet()) - if (pet->GetVictim() && !pet->HasUnitState(UNIT_STATE_CONTROLLED)) - return SPELL_FAILED_TARGET_AFFECTING_COMBAT; - } + // spells cannot be cast if player is in fake combat also + if (HasAttribute(SPELL_ATTR1_CANT_TARGET_IN_COMBAT) && (unitTarget->IsInCombat() || unitTarget->IsPetInCombat())) + return SPELL_FAILED_TARGET_AFFECTING_COMBAT; // only spells with SPELL_ATTR3_ONLY_TARGET_GHOSTS can target ghosts if (HasAttribute(SPELL_ATTR3_ONLY_TARGET_GHOSTS) != unitTarget->HasAuraType(SPELL_AURA_GHOST)) |