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; } }
//----------------------------------------------------------------------------- // 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; } }
//----------------------------------------------------------------------------- // 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; } }
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; } }