Пример #1
0
void CASW_Alien_Jumper::StartTask( const Task_t *pTask )
{
	switch ( pTask->iTask ) 
	{
	case TASK_ASW_ALIEN_FACE_JUMP:
		break;

	case TASK_ASW_ALIEN_JUMP:
		
		if ( CheckLanding() )
		{
			TaskComplete();
		}
		break;
	case TASK_ASW_ALIEN_RETRY_JUMP:
		{			
			if (!DoJumpTo(m_vecLastJumpAttempt))
				WaitAndRetryJump(m_vecLastJumpAttempt);
		}
		break;
	default:
		BaseClass::StartTask( pTask );
		break;
	}
}
Пример #2
0
//-----------------------------------------------------------------------------
// Purpose:
// Input  : *pTask -
//-----------------------------------------------------------------------------
void CAI_ASW_JumpBehavior::RunTask( const Task_t *pTask )
{
    // some state that needs be set each frame
    if ( GetOuter()->GetFlags() & FL_ONGROUND )
    {
        m_bHasDoneAirAttack = false;
    }

    switch ( pTask->iTask )
    {
    case TASK_FACE_JUMP:
    {
        Vector	jumpDir = m_vecSavedJump;
        VectorNormalize( jumpDir );

        QAngle	jumpAngles;
        VectorAngles( jumpDir, jumpAngles );

        GetMotor()->SetIdealYawAndUpdate( jumpAngles[YAW], AI_KEEP_YAW_SPEED );
        GetOuter()->SetTurnActivity();

        if ( GetMotor()->DeltaIdealYaw() < 2 )
        {
            TaskComplete();
        }
    }

    break;

    case TASK_JUMP:
        if ( CheckLanding() )
        {
            TaskComplete();
        }

        break;

    default:
        BaseClass::RunTask( pTask );
        break;
    }
}
Пример #3
0
//-----------------------------------------------------------------------------
// Purpose:
//-----------------------------------------------------------------------------
void CAI_ASW_JumpBehavior::StartTask( const Task_t *pTask )
{
    switch ( pTask->iTask )
    {
    case TASK_FACE_JUMP:
        break;

    case TASK_JUMP:
        if ( CheckLanding() )
        {
            TaskComplete();
        }

        break;

    default:
        BaseClass::StartTask( pTask );
        break;
    }
}
Пример #4
0
void CASW_Alien_Jumper::RunTask( const Task_t *pTask )
{
	switch ( pTask->iTask )
	{
	case TASK_ASW_ALIEN_FACE_JUMP:
		{
			Vector	jumpDir = m_vecSavedJump;
			VectorNormalize( jumpDir );
			
			QAngle	jumpAngles;
			VectorAngles( jumpDir, jumpAngles );

			GetMotor()->SetIdealYawAndUpdate( jumpAngles[YAW], AI_KEEP_YAW_SPEED );
			SetTurnActivity();
			
			if ( abs(GetMotor()->DeltaIdealYaw()) < 2 )
			{
				//Msg("Alien jumping: jumpyaw=%f delta=%f ang.y=%f\n",
					//jumpAngles[YAW], GetMotor()->DeltaIdealYaw(), GetLocalAngles().y);
				TaskComplete();
			}
		}

		break;
	case TASK_ASW_ALIEN_JUMP:

		if ( CheckLanding() )
		{
			TaskComplete();
		}

		break;
	default:
		BaseClass::RunTask( pTask );
		break;
	}
}