Esempio n. 1
0
void CivilianAI::ComputeState(int nStimType)
{
	int nStim = nStimType;

	if(nStimType == -1)
		nStim = ComputeStimuli();

	if(!nStim)
	{
		SetNewState(StateStrToInt(m_szAIState));
	}
	else
	{
		if(m_nState == STATE_Escape_Hide)
		{
			SetNewState(STATE_Escape_Hide);
		}
		else if(m_bScared || (m_fStimuli[HEALTH] < 1.0f))
		{
			m_bScared = DTRUE;
			SetNewState(STATE_Escape_RunAway);
		}
		else
			SetNewState(StateStrToInt(m_szAIState));
	}

	return;
}
Esempio n. 2
0
void MadScientistAI::ComputeState(int nStimType)
{
	int nStim = nStimType;

	if(nStimType == -1)
		nStim = ComputeStimuli();

	if(nStim == 0)
	{
		SetNewState(StateStrToInt(m_szAIState));
	}
	else
	{
		SetNewState(STATE_Escape_Hide);
	}

	return;
}
Esempio n. 3
0
void CivilianAI::PostPropRead(ObjectCreateStruct *pStruct)
{
	CServerDE* pServerDE = GetServerDE();
	if (!pServerDE || !pStruct) return;

	char* pFilename= DNULL;
	char* pSkin = DNULL;

	DFLOAT fDetail = 4;	//m_pServerDE->GetVarValueFloat(m_pServerDE->GetGameConVar("GlobalDetail"));

	if(StateStrToInt(m_szAIState) == STATE_Special8)
	{
		pFilename = "Models\\Enemies\\m_civilian1.abc";
		pSkin = "Skins\\Enemies\\m_civilian4.dtx";
	}
	else if (m_bSororitySkin)
	{
		pFilename = "Models\\Enemies\\f_civilian1.abc";
		pSkin     = "Skins_ao\\Enemies_ao\\f_civilian3.dtx";
	}
	else if(m_bLabTech)
	{
		pFilename = "Models\\Enemies\\labtech.abc";

		if(fDetail <= 0)
		{
			pSkin = "Skins\\Enemies\\labtech1.dtx";
		}
		else
		{
			switch(pServerDE->IntRandom(1,3))
			{
				case 1:		pSkin = "Skins\\Enemies\\labtech1.dtx";	break;
				case 2:		pSkin = "Skins\\Enemies\\labtech2.dtx";	break;
				case 3:		pSkin = "Skins\\Enemies\\labtech3.dtx";	break;
				default:	pSkin = "Skins\\Enemies\\labtech1.dtx";	break;
			}
		}
	}
	else if(m_bMale)
	{
		pFilename = "Models\\Enemies\\m_civilian1.abc";

		if(fDetail <= 0)
		{
			pSkin = "Skins\\Enemies\\m_civilian1.dtx";
		}
		else
		{
			switch(pServerDE->IntRandom(1,3))
			{
				case 1:		pSkin = "Skins\\Enemies\\m_civilian1.dtx";	break;
				case 2:		pSkin = "Skins\\Enemies\\m_civilian2.dtx";	break;
				case 3:		pSkin = "Skins\\Enemies\\m_civilian3.dtx";	break;
				default:	pSkin = "Skins\\Enemies\\m_civilian1.dtx";	break;
			}
		}
	}
	else
	{
		pFilename = "Models\\Enemies\\f_civilian1.abc";

		if(fDetail <= 0)
		{
			pSkin = "Skins\\Enemies\\f_civilian1.dtx";
		}
		else
		{
			switch(pServerDE->IntRandom(1,3))
			{
				case 1:		pSkin = "Skins\\Enemies\\f_civilian1.dtx";	break;
				case 2:		pSkin = "Skins\\Enemies\\f_civilian1.dtx";	break;
				case 3:		pSkin = "Skins\\Enemies\\f_civilian1.dtx";	break;
				default:	pSkin = "Skins\\Enemies\\f_civilian1.dtx";	break;
			}
		}
	}
	
	_mbscpy((unsigned char*)pStruct->m_Filename, (const unsigned char*)pFilename);
	_mbscpy((unsigned char*)pStruct->m_SkinName, (const unsigned char*)pSkin);
}