//============================================================================================================ // Metrocops now operate all speech on the Response System. // // They come with the following criteria: // // "numwarnings" -- Number of warnings we've given in pre-criminal mode. // //============================================================================================================ //============================================================================================================ // npc_metropolice concepts and criteria //============================================================================================================ // Concepts criterion "ConceptTalkCopManhackKilled" "Concept" "TLK_ALLY_KILLED" required criterion "ConceptTalkCopManDown" "Concept" "TLK_ALLY_KILLED" required criterion "ConceptTalkCopGoAlert" "Concept" "TLK_GOALERT" required criterion "ConceptTalkCopFreeze" "Concept" "TLK_FREEZE" required criterion "ConceptTalkCopOverHere" "Concept" "TLK_OVER_HERE" required criterion "ConceptTalkCopHesRunning" "Concept" "TLK_HES_RUNNING" required criterion "ConceptTalkCopTakeHimDown" "Concept" "TLK_TAKE_HIM_DOWN" required criterion "ConceptTalkCopArrestInPos" "Concept" "TLK_ARREST_IN_POS" required criterion "ConceptTalkCopDeployManhack" "Concept" "TLK_DEPLOY_MANHACK" required criterion "ConceptTalkCopPlayerHit" "Concept" "TLK_PLAYERHIT" required criterion "ConceptTalkCopFlank" "Concept" "TLK_FLANK" required criterion "ConceptTalkCopHeardSomething" "Concept" "TLK_DARKNESS_HEARDSOUND" required criterion "ConceptTalkCopEnemy" "Concept" "TLK_STARTCOMBAT" required criterion "ConceptTalkCopKillEnemy" "Concept" "TLK_ENEMY_DEAD" required criterion "ConceptTalkCopNoAmmo" "Concept" "TLK_NOAMMO" required criterion "ConceptTalkCopLowAmmo" "Concept" "TLK_LOWAMMO" required criterion "ConceptTalkCopDanger" "Concept" "TLK_DANGER" required criterion "ConceptTalkCopDie" "Concept" "TLK_DEATH" required criterion "ConceptTalkCopLostEnemy" "Concept" "TLK_LOSTENEMY" required criterion "ConceptTalkCopRefindEnemy" "Concept" "TLK_REFINDENEMY" required criterion "ConceptTalkCopHarass" "Concept" "TLK_STARE" required criterion "ConceptTalkCopIdle" "Concept" "TLK_IDLE" required criterion "ConceptTalkCopQuestion" "Concept" "TLK_QUESTION" required criterion "ConceptTalkCopAnswer" "Concept" "TLK_ANSWER" required criterion "ConceptTalkCopPain" "Concept" "TLK_WOUND" required criterion "ConceptTalkCopShootCover" "Concept" "TLK_SHOOTCOVER" required criterion "ConceptTalkCopHeavyDamage" "Concept" "TLK_HEAVYDAMAGE" required criterion "ConceptTalkCopBackUp" "Concept" "TLK_BACK_UP" required // This means "Back up, dude", not "I need some backup!" criterion "ConceptTalkCopHitByPhysObj" "Concept" "TLK_PLYR_PHYSATK" required criterion "ConceptTalkCopThrowGrenade" "Concept" "TLK_THROWGRENADE" required criterion "ConceptTalkCopActivateBaton" "Concept" "TLK_ACTIVATE_BATON" required criterion "ConceptTalkCopDeactivateBaton" "Concept" "TLK_DEACTIVATE_BATON" required criterion "ConceptTalkCopMoveAlong" "Concept" "TLK_MOVE_ALONG" required criterion "ConceptTalkFtApproach" "Concept" "TLK_FT_APPROACH" required criterion "ConceptTalkFtMount" "Concept" "TLK_FT_MOUNT" required criterion "ConceptTalkFtScan" "Concept" "TLK_FT_SCAN" required criterion "ConceptTalkFtDismount" "Concept" "TLK_FT_DISMOUNT" required criterion "ConceptTalkSoBegin" "Concept" "TLK_SO_BEGIN" required criterion "ConceptTalkSoEnd" "Concept" "TLK_SO_END" required criterion "ConceptTalkSoForceCover" "Concept" "TLK_SO_FORCE_COVER" required criterion "ConceptTalkSoPeek" "Concept" "TLK_SO_PEEK" required criterion "ConceptTalkAsHitRally" "Concept" "TLK_AS_HIT_RALLY" required criterion "ConceptTalkAsHitAssault" "Concept" "TLK_AS_HIT_ASSAULT" required criterion "ConceptTalkAsAdvRally" "Concept" "TLK_AS_ADV_RALLY" required criterion "ConceptTalkAsAdvAssault" "Concept" "TLK_AS_ADV_ASSAULT" required // Other criteria criterion "IsCopQuestion0" "combinequestion" "<1" "required" criterion "IsCopQuestion1" "combinequestion" "1" "required" criterion "IsCopQuestion2" "combinequestion" "2" "required" //============================================================================================================ // npc_metropolice basic sounds //============================================================================================================ response "CopPain" { sentence "METROPOLICE_PAIN" noscene } rule CopPain { criteria IsMetroPolice ConceptTalkCopPain PainSoundsAllowed response CopPain } response "CopDie" { sentence "METROPOLICE_DIE" noscene } rule CopDie { criteria IsMetroPolice ConceptTalkCopDie DeathSoundsAllowed response CopDie } //============================================================================================================ // npc_metropolice speech //============================================================================================================ response "CopGoAlert" { sentence "METROPOLICE_GO_ALERT" noscene } rule CopGoAlert { criteria IsMetroPolice ConceptTalkCopGoAlert response CopGoAlert } //------------------------------------------------------------------------------------------------------------ response "CopPainHeavy" { sentence "METROPOLICE_PAIN_HEAVY" noscene } rule CopPainHeavy { criteria IsMetroPolice ConceptTalkCopPain IsHealth<25Percent // Don't announce heavy pain again applycontext "spoken_heavypain:1" spoken_heavypain !=1 required weight 5 response CopPainHeavy } response "CopPainLight" { sentence "METROPOLICE_PAIN_LIGHT" noscene } rule CopPainLight { criteria IsMetroPolice ConceptTalkCopPain IsHealth>80Percent // Don't announce light pain again applycontext "spoken_lightpain:1" spoken_lightpain !=1 required weight 5 response CopPainLight } //------------------------------------------------------------------------------------------------------------ response "CopIdleCr" { sentence "METROPOLICE_IDLE_CR" noscene } rule CopIdleCr { criteria IsMetroPolice ConceptTalkCopQuestion IsCopQuestion0 IsGordonCriminal response CopIdleCr } response "CopQuestionCr" { sentence "METROPOLICE_IDLE_QUEST_CR" noscene } rule CopQuestionCr { criteria IsMetroPolice ConceptTalkCopQuestion IsCopQuestion2 IsGordonCriminal response CopQuestionCr } response "CopCheckCr" { sentence "METROPOLICE_IDLE_CHECK_CR" noscene } rule CopCheckCr { criteria IsMetroPolice ConceptTalkCopQuestion IsCopQuestion1 IsGordonCriminal response CopCheckCr } // ------ // Pre-Criminal // ------ response "CopIdle" { sentence "METROPOLICE_IDLE" noscene } rule CopIdle { criteria IsMetroPolice ConceptTalkCopQuestion IsCopQuestion0 response CopIdle } response "CopQuestion" { sentence "METROPOLICE_IDLE_QUEST" noscene } rule CopQuestion { criteria IsMetroPolice ConceptTalkCopQuestion IsCopQuestion2 response CopQuestion } response "CopCheck" { sentence "METROPOLICE_IDLE_CHECK" noscene } rule CopCheck { criteria IsMetroPolice ConceptTalkCopQuestion IsCopQuestion1 response CopCheck } //------------------------------------------------------------------------------------------------------------ response "CopAnswerCr" { sentence "METROPOLICE_IDLE_ANSWER_CR" noscene } rule CopAnswerCr { criteria IsMetroPolice ConceptTalkCopAnswer IsCopQuestion2 IsGordonCriminal response CopAnswerCr } response "CopClearCr" { sentence "METROPOLICE_IDLE_CLEAR_CR" noscene } rule CopClearCr { criteria IsMetroPolice ConceptTalkCopAnswer IsCopQuestion1 IsGordonCriminal response CopClearCr } // ------ // Pre-Criminal // ------ response "CopAnswer" { sentence "METROPOLICE_IDLE_ANSWER" noscene } rule CopAnswer { criteria IsMetroPolice ConceptTalkCopAnswer IsCopQuestion2 response CopAnswer } response "CopClear" { sentence "METROPOLICE_IDLE_CLEAR" noscene } rule CopClear { criteria IsMetroPolice ConceptTalkCopAnswer IsCopQuestion1 response CopClear } //------------------------------------------------------------------------------------------------------------ response "CopHarass" { sentence "METROPOLICE_IDLE_HARASS_PLAYER" noscene } rule CopHarass { criteria IsMetroPolice ConceptTalkCopHarass response CopHarass } //------------------------------------------------------------------------------------------------------------ // Policing Behavior //------------------------------------------------------------------------------------------------------------ response "CopMoveAlongA" { sentence "METROPOLICE_MOVE_ALONG_A" noscene } rule CopMoveAlongA { criteria IsMetroPolice ConceptTalkCopMoveAlong numwarnings <1 response CopMoveAlongA } response "CopMoveAlongB" { sentence "METROPOLICE_MOVE_ALONG_B" noscene } rule CopMoveAlongB { criteria IsMetroPolice ConceptTalkCopMoveAlong numwarnings 2 response CopMoveAlongB } response "CopMoveAlongC" { sentence "METROPOLICE_MOVE_ALONG_C" noscene } rule CopMoveAlongC { criteria IsMetroPolice ConceptTalkCopMoveAlong numwarnings 3 response CopMoveAlongC } //------------------------------------------------------------------------------------------------------------ response "CopBackUpA" { sentence "METROPOLICE_MOVE_ALONG_A" noscene } rule CopBackUpA { criteria IsMetroPolice ConceptTalkCopBackUp numwarnings <1 response CopBackUpA } response "CopBackUpB" { sentence "METROPOLICE_MOVE_ALONG_B" noscene } rule CopBackUpB { criteria IsMetroPolice ConceptTalkCopBackUp numwarnings 2 response CopBackUpB } response "CopBackUpC" { sentence "METROPOLICE_MOVE_ALONG_C" noscene } rule CopBackUpC { criteria IsMetroPolice ConceptTalkCopBackUp numwarnings 3 response CopBackUpC } //------------------------------------------------------------------------------------------------------------ response "CopActivateBaton" { sentence "METROPOLICE_ACTIVATE_BATON" noscene } rule CopActivateBaton { criteria IsMetroPolice ConceptTalkCopActivateBaton response CopActivateBaton } response "CopDeactivateBaton" { sentence "METROPOLICE_DEACTIVATE_BATON" noscene } rule CopDeactivateBaton { criteria IsMetroPolice ConceptTalkCopDeactivateBaton response CopDeactivateBaton } //------------------------------------------------------------------------------------------------------------ response "CopOnFire" { sentence "METROPOLICE_ON_FIRE" noscene } rule CopOnFire { criteria IsMetroPolice ConceptTalkCopPain hurt_by_fire 1 response CopOnFire } //------------------------------------------------------------------------------------------------------------ response "CopShootCover" { sentence "METROPOLICE_SHOOT_COVER" noscene } rule CopShootCover { criteria IsMetroPolice ConceptTalkCopShootCover response CopShootCover } //------------------------------------------------------------------------------------------------------------ response "CopFlank" { sentence "METROPOLICE_FLANK" noscene } rule CopFlank { criteria IsMetroPolice ConceptTalkCopFlank response CopFlank } //------------------------------------------------------------------------------------------------------------ response "CopHeardSomething" { sentence "METROPOLICE_HEARD_SOMETHING" noscene } rule CopHeardSomething { criteria IsMetroPolice ConceptTalkCopHeardSomething response CopHeardSomething } //------------------------------------------------------------------------------------------------------------ response "CopPlayerHit" { sentence "METROPOLICE_PLAYERHIT" noscene } rule CopPlayerHit { criteria IsMetroPolice ConceptTalkCopPlayerHit response CopPlayerHit } //------------------------------------------------------------------------------------------------------------ response "CopNoAmmo" { sentence "METROPOLICE_COVER_NO_AMMO" noscene } rule CopNoAmmo { criteria IsMetroPolice ConceptTalkCopNoAmmo response CopNoAmmo } //------------------------------------------------------------------------------------------------------------ response "CopLowAmmo" { sentence "METROPOLICE_COVER_LOW_AMMO" noscene } rule CopLowAmmo { criteria IsMetroPolice ConceptTalkCopLowAmmo response CopLowAmmo } //------------------------------------------------------------------------------------------------------------ response "CopCoverHeavyDamage" { sentence "METROPOLICE_PAIN_HEAVY" noscene } rule CopCoverHeavyDamage { criteria IsMetroPolice ConceptTalkCopHeavyDamage response CopCoverHeavyDamage } //------------------------------------------------------------------------------------------------------------ response "CopLostLong" { sentence "METROPOLICE_LOST_LONG" noscene } rule CopLostLong { criteria IsMetroPolice ConceptTalkCopLostEnemy lastseenenemy >10 required response CopLostLong } response "CopLostShort" { sentence "METROPOLICE_LOST_SHORT" noscene } rule CopLostShort { criteria IsMetroPolice ConceptTalkCopLostEnemy lastseenenemy <=10 required response CopLostShort } response "CopRefindEnemy" { sentence "METROPOLICE_REFIND_ENEMY" noscene } rule CopRefindEnemy { criteria IsMetroPolice ConceptTalkCopRefindEnemy response CopRefindEnemy } //------------------------------------------------------------------------------------------------------------ response "CopAlertGeneric" { sentence "METROPOLICE_MONST" noscene } rule CopAlertGeneric { criteria IsMetroPolice ConceptTalkCopEnemy response CopAlertGeneric } response "CopAlertPlayer" { sentence "METROPOLICE_MONST_PLAYER" noscene } rule CopAlertPlayer { criteria IsMetroPolice ConceptTalkCopEnemy EnemyIsClassPlayer response CopAlertPlayer } response "CopAlertPlayerVehicle" { sentence "METROPOLICE_MONST_PLAYER_VEHICLE" noscene } rule CopAlertPlayerVehicle { criteria IsMetroPolice ConceptTalkCopEnemy EnemyIsClassPlayer enemy_in_vehicle !=0 required response CopAlertPlayerVehicle } response "CopAlertBugs" { sentence "METROPOLICE_MONST_BUGS" noscene } rule CopAlertBugs { criteria IsMetroPolice ConceptTalkCopEnemy EnemyIsClassAntlion response CopAlertBugs } response "CopAlertCitizens" { sentence "METROPOLICE_MONST_CITIZENS" noscene } rule CopAlertCitizenPassive { criteria IsMetroPolice ConceptTalkCopEnemy EnemyIsClassCitizenPassive response CopAlertCitizens } rule CopAlertCitizenRebel { criteria IsMetroPolice ConceptTalkCopEnemy EnemyIsClassCitizenRebel response CopAlertCitizens } rule CopAlertVortigaunt { criteria IsMetroPolice ConceptTalkCopEnemy EnemyIsClassVortigaunt response CopAlertCitizens } rule CopAlertPlayerAlly { criteria IsMetroPolice ConceptTalkCopEnemy EnemyIsClassPlayerAlly response CopAlertCitizens } response "CopAlertCharacter" { sentence "METROPOLICE_MONST_CHARACTER" noscene } rule CopAlertCharacter { criteria IsMetroPolice ConceptTalkCopEnemy EnemyIsClassPlayerAllyVital response CopAlertCharacter } response "CopAlertZombies" { sentence "METROPOLICE_MONST_ZOMBIES" noscene } rule CopAlertZombies { criteria IsMetroPolice ConceptTalkCopEnemy EnemyIsClassZombie response CopAlertZombies } response "CopAlertParasites" { sentence "METROPOLICE_MONST_PARASITES" noscene } rule CopAlertHeadcrab { criteria IsMetroPolice ConceptTalkCopEnemy EnemyIsClassHeadcrab response CopAlertParasites } //------------------------------------------------------------------------------------------------------------ response "CopKillGeneric" { sentence "METROPOLICE_KILL_MONST" noscene } rule CopKillGeneric { criteria IsMetroPolice ConceptTalkCopKillEnemy response CopKillGeneric } response "CopKillBugs" { sentence "METROPOLICE_KILL_BUGS" noscene } rule CopKillBugs { criteria IsMetroPolice ConceptTalkCopKillEnemy EnemyIsClassAntlion response CopKillBugs } response "CopKillPlayer" { sentence "METROPOLICE_KILL_PLAYER" noscene } rule CopKillPlayer { criteria IsMetroPolice ConceptTalkCopKillEnemy EnemyIsClassPlayer //IsInASquad response CopKillPlayer } response "CopKillCitizens" { sentence "METROPOLICE_KILL_CITIZENS" noscene } rule CopKillCitizenPassive { criteria IsMetroPolice ConceptTalkCopKillEnemy EnemyIsClassCitizenPassive response CopAlertCitizens } rule CopKillCitizenRebel { criteria IsMetroPolice ConceptTalkCopKillEnemy EnemyIsClassCitizenRebel response CopKillCitizens } rule CopKillVortigaunt { criteria IsMetroPolice ConceptTalkCopKillEnemy EnemyIsClassVortigaunt response CopKillCitizens } rule CopKillPlayerAlly { criteria IsMetroPolice ConceptTalkCopKillEnemy EnemyIsClassPlayerAlly response CopKillCitizens } response "CopKillCharacter" { sentence "METROPOLICE_KILL_CHARACTER" noscene } rule CopKillCharacter { criteria IsMetroPolice ConceptTalkCopKillEnemy EnemyIsClassPlayerAllyVital response CopKillCharacter } response "CopKillZombies" { sentence "METROPOLICE_KILL_ZOMBIES" noscene } rule CopKillZombies { criteria IsMetroPolice ConceptTalkCopKillEnemy EnemyIsClassZombie response CopKillZombies } response "CopKillParasites" { sentence "METROPOLICE_KILL_PARASITES" noscene } rule CopKillHeadcrab { criteria IsMetroPolice ConceptTalkCopKillEnemy EnemyIsClassHeadcrab response CopKillParasites } //------------------------------------------------------------------------------------------------------------ response "CopDeployManhack" { sentence "METROPOLICE_DEPLOY_MANHACK" noscene } rule CopDeployManhack { criteria IsMetroPolice ConceptTalkCopDeployManhack response CopDeployManhack } response "CopManhackKilled" { sentence "METROPOLICE_MANHACK_KILLED" noscene } rule CopManhackKilled { criteria IsMetroPolice ConceptTalkCopManhackKilled my_manhack "1" required response CopManhackKilled } //------------------------------------------------------------------------------------------------------------ response "CopManDown" { sentence "METROPOLICE_MAN_DOWN" noscene } rule CopManDown { criteria IsMetroPolice ConceptTalkCopManDown response CopManDown } response "CopLastOfSquad" { sentence "METROPOLICE_LAST_OF_SQUAD" noscene } rule CopLastOfSquad { criteria IsMetroPolice ConceptTalkCopManDown squadmates <2 response CopLastOfSquad } //------------------------------------------------------------------------------------------------------------ response "CopThrowGrenade" { // Say nothing // Implement a sentence for this if you want //sentence "METROPOLICE_THROW_GRENADE" noscene } rule CopThrowGrenade { criteria IsMetroPolice ConceptTalkCopThrowGrenade response CopThrowGrenade } //------------------------------------------------------------------------------------------------------------ response "CopGrenadeDanger" { sentence "METROPOLICE_DANGER_GREN" noscene } rule CopGrenadeDanger { criteria IsMetroPolice ConceptTalkCopDanger grenade 1 required response CopGrenadeDanger } //------------------------------------------------------------------------------------------------------------ response "CopVehicleDanger" { sentence "METROPOLICE_DANGER_VEHICLE" noscene } rule CopVehicleDanger { criteria IsMetroPolice ConceptTalkCopDanger vehicle 1 required response CopVehicleDanger } //------------------------------------------------------------------------------------------------------------ response "CopManhackDanger" { sentence "METROPOLICE_DANGER_MANHACK" noscene } rule CopManhackDanger { criteria IsMetroPolice ConceptTalkCopDanger manhack 1 required response CopManhackDanger } //------------------------------------------------------------------------------------------------------------ response "CopDanger" { sentence "METROPOLICE_DANGER" noscene } rule CopDanger { criteria IsMetroPolice ConceptTalkCopDanger response CopDanger } //------------------------------------------------------------------------------------------------------------ // Behaviors //------------------------------------------------------------------------------------------------------------ response "CopFtApproach" { sentence "METROPOLICE_FT_APPROACH" noscene } rule CopFtApproach { criteria IsMetroPolice ConceptTalkFtApproach response CopFtApproach } response "CopFtMount" { sentence "METROPOLICE_FT_MOUNT" noscene } rule CopFtMount { criteria IsMetroPolice ConceptTalkFtMount response CopFtMount } response "CopFtScan" { sentence "METROPOLICE_FT_SCAN" noscene } rule CopFtScan { criteria IsMetroPolice ConceptTalkFtScan response CopFtScan } response "CopFtDismount" { sentence "METROPOLICE_FT_DISMOUNT" noscene } rule CopFtDismount { criteria IsMetroPolice ConceptTalkFtDismount response CopFtDismount } //------------------------------------------------------------------------------------------------------------ response "CopAsHitRally" { sentence "METROPOLICE_AS_HIT_RALLY" noscene } rule CopAsHitRally { criteria IsMetroPolice ConceptTalkAsHitRally response CopAsHitRally } response "CopAsHitAssault" { sentence "METROPOLICE_AS_HIT_ASSAULT" noscene } rule CopAsHitAssault { criteria IsMetroPolice ConceptTalkAsHitAssault response CopAsHitAssault } response "CopAsAdvRally" { sentence "METROPOLICE_AS_ADV_RALLY" noscene } rule CopAsAdvRally { criteria IsMetroPolice ConceptTalkAsAdvRally IsSquadLeader response CopAsAdvRally } response "CopAsAdvAssault" { sentence "METROPOLICE_AS_ADV_ASSAULT" noscene } rule CopAsAdvAssault { criteria IsMetroPolice ConceptTalkAsAdvAssault IsSquadLeader response CopAsAdvAssault } //------------------------------------------------------------------------------------------------------------ response "CopSoBegin" { sentence "METROPOLICE_SO_BEGIN" noscene } rule CopSoBegin { criteria IsMetroPolice ConceptTalkSoBegin IsSquadLeader response CopSoBegin } response "CopSoEnd" { sentence "METROPOLICE_SO_END" noscene } rule CopSoEnd { criteria IsMetroPolice ConceptTalkSoEnd IsSquadLeader response CopSoEnd } response "CopSoForceCover" { sentence "METROPOLICE_SO_FORCE_COVER" noscene } rule CopSoForceCover { criteria IsMetroPolice ConceptTalkSoForceCover response CopSoForceCover } response "CopSoPeek" { sentence "METROPOLICE_SO_PEEK" noscene } rule CopSoPeek { criteria IsMetroPolice ConceptTalkSoPeek response CopSoPeek } //------------------------------------------------------------------------------------------------------------ // Arrest Behavior //------------------------------------------------------------------------------------------------------------ response "CopFreeze" { sentence "METROPOLICE_FREEZE" noscene } rule CopFreeze { criteria IsMetroPolice ConceptTalkCopFreeze response CopFreeze } response "CopOverHere" { sentence "METROPOLICE_OVER_HERE" noscene } rule CopOverHere { criteria IsMetroPolice ConceptTalkCopOverHere response CopOverHere } response "CopHesRunning" { sentence "METROPOLICE_HES_RUNNING" noscene } rule CopHesRunning { criteria IsMetroPolice ConceptTalkCopHesRunning response CopHesRunning } response "CopHesArrestInPos" { sentence "METROPOLICE_ARREST_IN_POS" noscene } rule CopHesArrestInPos { criteria IsMetroPolice ConceptTalkCopArrestInPos response CopHesArrestInPos } response "CopTakeHimDown" { sentence "METROPOLICE_TAKE_HIM_DOWN" noscene } rule CopTakeHimDown { criteria IsMetroPolice ConceptTalkCopTakeHimDown response CopTakeHimDown } //------------------------------------------------------------------------------------------------------------ // Hey, it was at the bottom of the Metro-Police sentences in sentences.txt, don't blame me! //------------------------------------------------------------------------------------------------------------ response "CopHitByPhysObj" { sentence "METROPOLICE_HIT_BY_PHYSOBJECT" noscene } rule CopHitByPhysObj { criteria IsMetroPolice ConceptTalkCopHitByPhysObj response CopHitByPhysObj }