/** czy bedac za hideoutem powinien atakowac zza niego, czy powinien
 * wybiec, czyli zmienic atak na inny */
public class ShouldAttackFromHideout extends Generator
{
	ShouldAttackFromHideout(AIController controller)
	{
		super(controller);
        
        m_GenScenarios.SetAllBits();
		m_GenScenarios.ClearBit(AttackFromHideout._ID);
	}
	
	void UpdateScenarios()
	{
		super.UpdateScenarios();
        
		if ( (m_Controller.IsBehindHideout()) && 
             (m_Controller.GetActiveEnemy() != null) &&
             (!m_Controller.IsFarAwayFromActiveEnemy()) /*&&
             (m_Controller.LastHeardEnemyShot())*/ )
		{
            // jezeli jestesmy za hideoutem, mamy wroga,
            // nie jestesmy od niego daleko i niedawno slyszelismy strzal
            // to mozemy atakowac zza hideouta (ale nie kucajac lub lezac)
            m_CurrScenarios.SetAllBits();
		    m_CurrScenarios.ClearBit(DuckShoot._ID);
//		    m_CurrScenarios.ClearBit(FallDownToShoot._ID);
		}
		else
        {
            // w przeciwnym wypadku powinnismy wybiec zza hideouta
			/**
#if AI_DEBUG        
            DebugUtils.AddLog(m_Controller.m_MeshAI, 
                              " IsBehindHideout(): " + m_Controller.IsBehindHideout() +
                              ", LastHeardEnemyShot():" + m_Controller.LastHeardEnemyShot() +
                              ", IsFarAwayFromActiveEnemy():" + m_Controller.IsFarAwayFromActiveEnemy());
#endif            */
			m_CurrScenarios.Set(m_GenScenarios);
        }
		/**
#if AI_DEBUG        
        DebugUtils.AddLog(m_Controller.m_MeshAI, "\n");
#endif        */
	}
}
    
    
