void CAIGoalAttackRangedDynamic::HandleStateAttackMove()
{
	switch( m_pAI->GetState()->GetStateStatus() )
	{
		case kSStat_Initialized:
			break;

		case kSStat_FailedComplete:
			m_pGoalMgr->UnlockGoal( this );
			ResetMoveTime();
			SetStateAttack();
			break;

		case kSStat_StateComplete:
			m_pGoalMgr->UnlockGoal( this );
			ResetMoveTime();
			SetStateAttack();
			break;

		// Unexpected StateStatus.
		default: AIASSERT(0, m_pAI->m_hObject, "CAIGoalAttackRangedDynamic::HandleStateAttackMove: Unexpected State Status.");
	}
}
void CAIGoalAttackProp::ActivateGoal()
{
	super::ActivateGoal();

	AIASSERT(m_hNode != LTNULL, m_pAI->m_hObject, "CAIGoalAttackProp::ActivateGoal: AINodeUseObject is NULL.");

	if(m_pAI->GetCurrentWeapon())
	{
		SetStateAttack();
	}
	else {
		m_pGoalMgr->LockGoal( this );
		m_pAI->SetState( kState_HumanDraw );
	}
}
void CAIGoalAttackProp::HandleStateDraw()
{
	switch( m_pAI->GetState()->GetStateStatus() )
	{
		case kSStat_Initialized:
			break;

		case kSStat_FailedComplete:
			m_pGoalMgr->UnlockGoal( this );
			m_fCurImportance = 0.f;
			break;

		case kSStat_StateComplete:
			m_pGoalMgr->UnlockGoal( this );
			SetStateAttack();
			break;

		// Unexpected StateStatus.
		default: AIASSERT(0, m_pAI->m_hObject, "CAIGoalDrawWeapon::HandleStateDraw: Unexpected State Status.");
	}
}