diff options
Diffstat (limited to 'src/game/AggressorAI.cpp')
-rw-r--r-- | src/game/AggressorAI.cpp | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/src/game/AggressorAI.cpp b/src/game/AggressorAI.cpp index 3fd0f63d194..1e29cd1df30 100644 --- a/src/game/AggressorAI.cpp +++ b/src/game/AggressorAI.cpp @@ -45,21 +45,20 @@ AggressorAI::AggressorAI(Creature &c) : i_creature(c), i_victimGuid(0), i_state( void AggressorAI::MoveInLineOfSight(Unit *u) { - // Ignore Z for flying creatures - if( !i_creature.canFly() && i_creature.GetDistanceZ(u) > CREATURE_Z_ATTACK_RANGE ) - return; - - if( !i_creature.getVictim() && !i_creature.hasUnitState(UNIT_STAT_STUNNED) && i_creature.canAttack(u) && - ( i_creature.IsHostileTo( u ) /*|| u->getVictim() && i_creature.IsFriendlyTo( u->getVictim() )*/ ) && - u->isInAccessiblePlaceFor(&i_creature) ) - { - float attackRadius = i_creature.GetAttackDistance(u); - if(i_creature.IsWithinDistInMap(u, attackRadius) && i_creature.IsWithinLOSInMap(u) ) - { - AttackStart(u); - //u->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH); - } - } + if(!i_creature.getVictim() && i_creature.canStartAttack(u)) + AttackStart(u); + + /* + if(!i_creature.getVictim()) + { + AttackStart(u); + } + else if(sMapStore.LookupEntry(i_creature.GetMapId())->IsDungeon()) + { + u->SetInCombatWith(&i_creature); + i_creature.AddThreat(u, 0.0f); + } + */ } void AggressorAI::EnterEvadeMode() |