コード例 #1
0
ファイル: bug.cpp プロジェクト: Arc0re/lithtech
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;
}
コード例 #2
0
ファイル: prophet.cpp プロジェクト: jordandavidson/lithtech
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;
}
コード例 #3
0
ファイル: MadScientistAI.cpp プロジェクト: bsmr-games/Blood2
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;
}