diff options
Diffstat (limited to 'src/game/GuardAI.cpp')
| -rw-r--r-- | src/game/GuardAI.cpp | 70 | 
1 files changed, 35 insertions, 35 deletions
diff --git a/src/game/GuardAI.cpp b/src/game/GuardAI.cpp index 07a5bd9f819..710acede150 100644 --- a/src/game/GuardAI.cpp +++ b/src/game/GuardAI.cpp @@ -1,7 +1,7 @@  /* - * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/> + * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/>   * - * Copyright (C) 2008 Trinity <http://www.trinitycore.org/> + * Copyright (C) 2008-2009 Trinity <http://www.trinitycore.org/>   *   * This program is free software; you can redistribute it and/or modify   * it under the terms of the GNU General Public License as published by @@ -33,107 +33,107 @@ int GuardAI::Permissible(const Creature *creature)      return PERMIT_BASE_NO;  } -GuardAI::GuardAI(Creature *c) : CreatureAI(c), i_creature(*c), i_victimGuid(0), i_state(STATE_NORMAL), i_tracker(TIME_INTERVAL_LOOK) +GuardAI::GuardAI(Creature *c) : CreatureAI(c), i_victimGuid(0), i_state(STATE_NORMAL), i_tracker(TIME_INTERVAL_LOOK)  {  }  void GuardAI::MoveInLineOfSight(Unit *u)  {      // Ignore Z for flying creatures -    if ( !i_creature.canFly() && i_creature.GetDistanceZ(u) > CREATURE_Z_ATTACK_RANGE ) +    if ( !m_creature->canFly() && m_creature->GetDistanceZ(u) > CREATURE_Z_ATTACK_RANGE )          return; -    if( !i_creature.getVictim() && i_creature.canAttack(u) && -        ( u->IsHostileToPlayers() || i_creature.IsHostileTo(u) /*|| u->getVictim() && i_creature.IsFriendlyTo(u->getVictim())*/ ) && -        u->isInAccessiblePlaceFor(&i_creature)) +    if( !m_creature->getVictim() && m_creature->canAttack(u) && +        ( u->IsHostileToPlayers() || m_creature->IsHostileTo(u) /*|| u->getVictim() && m_creature->IsFriendlyTo(u->getVictim())*/ ) && +        u->isInAccessiblePlaceFor(m_creature))      { -        float attackRadius = i_creature.GetAttackDistance(u); -        if(i_creature.IsWithinDistInMap(u,attackRadius)) +        float attackRadius = m_creature->GetAttackDistance(u); +        if(m_creature->IsWithinDistInMap(u,attackRadius))          {              //Need add code to let guard support player              AttackStart(u); -            //u->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH); +            //u->RemoveAurasByType(SPELL_AURA_MOD_STEALTH);          }      }  }  void GuardAI::EnterEvadeMode()  { -    if( !i_creature.isAlive() ) +    if( !m_creature->isAlive() )      { -        DEBUG_LOG("Creature stopped attacking because he's dead [guid=%u]", i_creature.GetGUIDLow()); -        i_creature.GetMotionMaster()->MoveIdle(); +        DEBUG_LOG("Creature stopped attacking because he's dead [guid=%u]", m_creature->GetGUIDLow()); +        m_creature->GetMotionMaster()->MoveIdle();          i_state = STATE_NORMAL;          i_victimGuid = 0; -        i_creature.CombatStop(); -        i_creature.DeleteThreatList(); +        m_creature->CombatStop(); +        m_creature->DeleteThreatList();          return;      } -    Unit* victim = ObjectAccessor::GetUnit(i_creature, i_victimGuid ); +    Unit* victim = ObjectAccessor::GetUnit(*m_creature, i_victimGuid );      if( !victim  )      { -        DEBUG_LOG("Creature stopped attacking because victim is non exist [guid=%u]", i_creature.GetGUIDLow()); +        DEBUG_LOG("Creature stopped attacking because victim is non exist [guid=%u]", m_creature->GetGUIDLow());      }      else if( !victim ->isAlive() )      { -        DEBUG_LOG("Creature stopped attacking because victim is dead [guid=%u]", i_creature.GetGUIDLow()); +        DEBUG_LOG("Creature stopped attacking because victim is dead [guid=%u]", m_creature->GetGUIDLow());      }      else if( victim ->HasStealthAura() )      { -        DEBUG_LOG("Creature stopped attacking because victim is using stealth [guid=%u]", i_creature.GetGUIDLow()); +        DEBUG_LOG("Creature stopped attacking because victim is using stealth [guid=%u]", m_creature->GetGUIDLow());      }      else if( victim ->isInFlight() )      { -        DEBUG_LOG("Creature stopped attacking because victim is flying away [guid=%u]", i_creature.GetGUIDLow()); +        DEBUG_LOG("Creature stopped attacking because victim is flying away [guid=%u]", m_creature->GetGUIDLow());      }      else      { -        DEBUG_LOG("Creature stopped attacking because victim outran him [guid=%u]", i_creature.GetGUIDLow()); +        DEBUG_LOG("Creature stopped attacking because victim outran him [guid=%u]", m_creature->GetGUIDLow());      } -    i_creature.RemoveAllAuras(); -    i_creature.DeleteThreatList(); +    m_creature->RemoveAllAuras(); +    m_creature->DeleteThreatList();      i_victimGuid = 0; -    i_creature.CombatStop(); +    m_creature->CombatStop();      i_state = STATE_NORMAL;      // Remove TargetedMovementGenerator from MotionMaster stack list, and add HomeMovementGenerator instead -    if( i_creature.GetMotionMaster()->GetCurrentMovementGeneratorType() == TARGETED_MOTION_TYPE ) -        i_creature.GetMotionMaster()->MoveTargetedHome(); +    if( m_creature->GetMotionMaster()->GetCurrentMovementGeneratorType() == TARGETED_MOTION_TYPE ) +        m_creature->GetMotionMaster()->MoveTargetedHome();  }  void GuardAI::UpdateAI(const uint32 /*diff*/)  { -    // update i_victimGuid if i_creature.getVictim() !=0 and changed +    // update i_victimGuid if m_creature->getVictim() !=0 and changed      if(!UpdateVictim())          return; -    i_victimGuid = i_creature.getVictim()->GetGUID(); +    i_victimGuid = m_creature->getVictim()->GetGUID(); -    if( i_creature.isAttackReady() ) +    if( m_creature->isAttackReady() )      { -        if( i_creature.IsWithinMeleeRange(i_creature.getVictim())) +        if( m_creature->IsWithinMeleeRange(m_creature->getVictim()))          { -            i_creature.AttackerStateUpdate(i_creature.getVictim()); -            i_creature.resetAttackTimer(); +            m_creature->AttackerStateUpdate(m_creature->getVictim()); +            m_creature->resetAttackTimer();          }      }  }  bool GuardAI::IsVisible(Unit *pl) const  { -    return i_creature.GetDistance(pl) < sWorld.getConfig(CONFIG_SIGHT_GUARDER) -        && pl->isVisibleForOrDetect(&i_creature,true); +    return m_creature->GetDistance(pl) < sWorld.getConfig(CONFIG_SIGHT_GUARDER) +        && pl->isVisibleForOrDetect(m_creature,true);  }  void GuardAI::JustDied(Unit *killer)  {      if(Player* pkiller = killer->GetCharmerOrOwnerPlayerOrPlayerItself()) -        i_creature.SendZoneUnderAttackMessage(pkiller); +        m_creature->SendZoneUnderAttackMessage(pkiller);  }  | 
