void BugAI::AI_STATE_Idle() { if(ComputeStimuli()) { ComputeState(); m_pServerDE->SetNextUpdate(m_hObject,0.1f); return; } else m_pServerDE->SetNextUpdate(m_hObject,0.2f); switch(Metacmd) { case 1: char szSound[256]; _mbscpy((unsigned char*)szSound, (const unsigned char*)SOUND_IDLE); m_pAnim_Sound->GetSoundPath(szSound,m_pServerDE->IntRandom(1,NUM_BUG_IDLE)); PlayAISound(szSound, 1000.0f); Metacmd++; break; case 2: MC_Idle(); break; case 3: m_fRadsLeft = m_pServerDE->Random(-1.56f,1.56f); Metacmd++; break; case 4: MC_Turn(); break; case 5: MC_Run(); break; case 6: SetNewState(STATE_Idle); break; } return; }
void Prophet::AI_STATE_Escape_RunAway() { DFLOAT fHeight = (DFLOAT)fabs(m_vTargetPos.y - m_MoveObj.GetPos().y); //SCHLEGZ 4/22/98 4:51:21 PM: sanity check if(m_hTarget == DNULL && m_nCurMetacmd != MC_FIRE_STAND) { if(fHeight <= m_vDims.y) SetNewState(STATE_SearchVisualTarget); else ComputeState(); return; } switch(Metacmd) { case 1: MC_FaceTarget(); m_InventoryMgr.ChangeWeapon(WEAP_MELEE); break; case 2: m_fStimuli[SIGHT] = VEC_DIST(m_MoveObj.GetPos(),m_vTargetPos); if(m_fStimuli[SIGHT] <= 75.0f) MC_Fire_Stand(); else { MC_FaceTarget(); Metacmd--; if(!IsLedge(m_MoveObj.GetForwardVector()) && fHeight <= m_vDims.y) { MC_Run(); } else { MC_Idle(); } } break; case 3: ComputeState(); break; } return; }
void MadScientistAI::AI_STATE_Idle() { int nStimType = ComputeStimuli(); if(nStimType > 0) { m_pServerDE->SetNextUpdate(m_hObject, 0.001f); ComputeState(nStimType); return; } m_pServerDE->SetNextUpdate(m_hObject, 0.1f); switch(Metacmd) { case 1: MC_Idle(); break; case 2: ComputeState(); break; } return; }