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