//============================================================================================================
// Alyx Respond to Kleinercast
criterion "ConceptAlyxRespondKleinerGetBusy" "Concept" "TLK_RESPOND_KLEINER_GETBUSY" required
criterion "PlayerHearKCast" "playerkcaston" "1" required
criterion "PlayerAlyxNotRespondKCast1" "playerkcast_alyxcomment" "0" required

// Additional criteria for falling off ledge
criterion "PlayerInArea" "distancetoplayer" "<2000" required
criterion "IsMap_ep1_citadel_03" "map" "ep1_citadel_03" weight 10 "required"
criterion "InAntLionTraining" "InAntLionTraining" "1" weight 10 "required"

// Idle Speech for Alyx relating to environment - NOT USING THESE
criterion "IsAlyxIdleEnvironment_Generic" "alyxidle_env_generic" "1" required
criterion "IsAlyxIdleEnvironment_Cold" "alyxidle_env_cold" "1" required
criterion "IsAlyxIdleEnvironment_Warm" "alyxidle_env_warm" "1" required
criterion "IsAlyxIdleEnvironment_Unpleasant" "alyxidle_env_unpleasant" "1" required
criterion "IsAlyxIdleEnvironment_Unstable" "alyxidle_env_unstable" "1" required

// Idle speech for Alyx relating to situation
criterion "IsAlyxIdleSituation_Urgency" "alyxidle_sit_urgency" "1" required

// Alyx's interaction with objects (hacking)
criterion "ConceptRequestItem" "Concept" "TLK_ALYX_REQUEST_ITEM" "required"
criterion "ConceptInteractionDone" "Concept" "TLK_ALYX_INTERACTION_DONE" "required"
criterion "ConceptCancelInteraction" "Concept" "TLK_ALYX_CANCEL_INTERACTION" "required"
criterion "ConceptTalkAlyxEvacProtect" "Concept" "TLK_ALYX_EVAC_PROTECT" "required"

// Alyx's injured concept
criterion "IsAlyxInjured" "alyx_injured" "1" required

// Alyx's concepts for when the player is escorting citizens
criterion "ConceptTalkAlyxEvacCitizen" "Concept" "TLK_ALYX_EVAC_CITIZEN" required
criterion "ConceptTalkAlyxEvacNextGroup" "Concept" "TLK_ALYX_EVAC_NEXT_GROUP" required

criterion "ConceptTalkAlyxInBarnacle" "Concept" "TLK_SELF_IN_BARNACLE" required

//alyx is interrupted hacking powerbox
criterion "IsAlyxPBInterruptCantSeeBox" "Concept" "PBAlyxCantSeeBox" required
criterion "IsAlyxPBInterruptSeeEnemy" "Concept" "PBAlyxSeeEnemy" required

//alyx context for reacting to antlions for the first time in ep1_c17_01
criterion "IsAlyxEp1c1701_AntlionReaction" "ep1_c17_01_antlionReact" "1" weight 10 required

//alyx context for giving you a hint upon hacking a rollermine in the sniper area of ep1_c17_01
criterion "IsAlyxEp1c1701_RollermineHint" "ep1_c17_01_RollermineHint" "1" weight 10 required
criterion "IsMap_ep1_c17_01" "map" "ep1_c17_01" weight 10 "required"

//alyx giving player hints on overcoming the sniper in ep1_c17_01
criterion "ConceptTalkc1701SniperHint" "Concept" "TLK_C1701_SNIPER_HINT" required 
criterion "ConceptTalkc1701RollermineHint" "Concept" "TLK_C1701_ROLLERMINE_HINT" required 

criterion "PlayerVeryWounded" "playerhealthfrac"	">0,<=.25" required

//Player Kills Alyx Praises
criterion "AlyxNotPraised1Shot" "AlyxPraised1Shot" "!=1" "required" weight 0
criterion "AlyxNotPraisedKillStreak" "AlyxPraisedKillStreak" "!=1" "required" weight 0


//alyx response groups
criterion "RGroupLess10"            "randomnum"               "<=10"   required
criterion "RGroupLess20"            "randomnum"               "<=20"   required
criterion "RGroupLess30"            "randomnum"               "<=30"   required
criterion "RGroupLess40"            "randomnum"               "<=40"   required
criterion "RGroupLess50"            "randomnum"               "<=50"   required
criterion "RGroupLess60"            "randomnum"               "<=60"   required
criterion "RGroupLess70"            "randomnum"               "<=70"   required
criterion "RGroupLess80"            "randomnum"               "<=80"   required
criterion "RGroupLess90"            "randomnum"               "<=90"   required
criterion "RGroupLess100"           "randomnum"               "<=100"  required
criterion "RGroupMore00"            "randomnum"               ">0"    required
criterion "RGroupMore10"            "randomnum"               ">10"   required
criterion "RGroupMore20"            "randomnum"               ">20"   required
criterion "RGroupMore30"            "randomnum"               ">30"   required
criterion "RGroupMore40"            "randomnum"               ">40"   required
criterion "RGroupMore50"            "randomnum"               ">50"   required
criterion "RGroupMore60"            "randomnum"               ">60"   required
criterion "RGroupMore70"            "randomnum"               ">70"   required
criterion "RGroupMore80"            "randomnum"               ">80"   required
criterion "RGroupMore90"            "randomnum"               ">90"   required


//============================================================================================================
//	ALYX HACKING
//============================================================================================================
response "AlyxRequestItem"
{
	sequential
	norepeat
	scene "scenes/episode_1/al_hack_train05.vcd" respeakdelay 5
	scene "scenes/episode_1/al_hack_train01.vcd" respeakdelay 5
	scene "scenes/episode_1/al_hack_train02.vcd" respeakdelay 5
}
rule AlyxRequestItem
{
	criteria	IsAlyx ConceptRequestItem
	response	AlyxRequestItem
}

response "AlyxInteractionDone"
{
	scene "scenes/episode_1/al_hack_done01.vcd"
	scene "scenes/episode_1/al_hack_done02.vcd"
	scene "scenes/episode_1/al_hack_done03.vcd"
}
rule AlyxInteractionDone
{
	criteria 	IsAlyx ConceptInteractionDone
	response	AlyxInteractionDone
}

//============================================================================================================
//	ALYX RESPONDING TO ENEMY GROUPS
//============================================================================================================
response "AlyxMobbed"
{
	scene "scenes/episode_1/al_swamped03.vcd" respeakdelay 60
	scene "scenes/episode_1/al_swamped05.vcd" respeakdelay 60
	scene "scenes/episode_1/al_swamped06.vcd" respeakdelay 60
	scene "scenes/episode_1/al_swamped09.vcd" respeakdelay 60
	scene "scenes/episode_1/al_swamped10.vcd" respeakdelay 60
	scene "scenes/episode_1/al_swamped12.vcd" respeakdelay 60
	scene "scenes/episode_1/al_combat_mob01.vcd" respeakdelay 60
	scene "scenes/episode_1/al_combat_mob02.vcd" respeakdelay 60
	scene "scenes/episode_1/al_combat_mob03.vcd" respeakdelay 60
	scene "scenes/episode_1/al_combat_mob04.vcd" respeakdelay 60
	scene "scenes/episode_1/al_combat_mob05.vcd" respeakdelay 60
	scene "scenes/episode_1/al_combat_mob06.vcd" respeakdelay 60
	scene "scenes/episode_1/al_combat_mob07.vcd" respeakdelay 60
	scene "scenes/episode_1/al_combat_mob08.vcd" respeakdelay 60
	scene "scenes/episode_1/al_combat_mob09.vcd" respeakdelay 60
	scene "scenes/episode_1/al_combat_mob10.vcd" respeakdelay 60
	scene "scenes/episode_1/al_combat_mob11.vcd" respeakdelay 60

}
rule AlyxMobbed
{
	criteria 	IsAlyx ConceptMobbed
	response	AlyxMobbed
}


//Thanks for killing an enemy that was mobbing her
criterion "AlyxNotPraisedKilledMob" "AlyxPraisedKilledMob" "!=1" "required" weight 0
response "AlyxMobbedThanks"
{
	scene "scenes/episode_1/al_mobbed_thanks.vcd" respeakdelay 60
	scene "scenes/episode_1/al_swamped07.vcd" respeakdelay 60
	scene "scenes/episode_1/al_combat_thanks.vcd" respeakdelay 60
	scene "scenes/episode_1/al_mobbed_thanks01.vcd" respeakdelay 60
	scene "scenes/episode_1/al_mobbed_thanks02.vcd" respeakdelay 60
	scene "scenes/episode_1/al_mobbed_thatwasclose01.vcd" respeakdelay 60
	scene "scenes/episode_1/al_mobbed_thatwasclose02.vcd" respeakdelay 60
	scene "scenes/episode_1/al_mobbed_thatwasclose03.vcd" respeakdelay 60
}
rule AlyxMobbedThanks
{  
	criteria 	IsAlyx ConceptPlayerKilledNPC  ContextKilledMob AlyxNotPraisedKilledMob ConceptOneorLessEnemy
        applycontext "AlyxPraisedKilledMob:1:120,AlyxPraised:1:10"
	response	AlyxMobbedThanks
}

response "AlyxManyEnemies"
{
	scene "scenes/episode_1/al_seemanyfoe03.vcd" respeakdelay 40 odds 50
	scene "scenes/episode_1/al_seemanyfoe05.vcd" respeakdelay 40 odds 50
	scene "scenes/episode_1/al_seemanyfoe06.vcd" respeakdelay 40 odds 50
	scene "scenes/episode_1/al_seemanyfoe07.vcd" respeakdelay 40 odds 50
}
rule AlyxManyEnemies
{
	criteria 	IsAlyx ConceptManyEnemies EnemyIsNotBarnacle  NotInCombat
	response	AlyxManyEnemies
}

response "AlyxSpotIncHeadcrab"
{
	scene "scenes/npc/Alyx/al_see_headcrabair01.vcd" respeakdelay 60
	scene "scenes/npc/Alyx/al_see_headcrabair02.vcd" respeakdelay 60
	scene "scenes/npc/Alyx/al_see_headcrabair03.vcd" respeakdelay 60
}
rule AlyxSpotIncHeadcrab
{
	criteria 	IsAlyx ConceptSpotIncHeadcrab EnemyIsClose 
	response	AlyxSpotIncHeadcrab
}

//============================================================================================================
// 	DARKNESS
//============================================================================================================
// LOST PLAYER
//===================================================
response "AlyxDarkLostPlayer"
{
	scene "scenes/npc/Alyx/al_darkness_lostplayer01.vcd" respeakdelay 15
	scene "scenes/npc/Alyx/al_darkness_lostplayer03.vcd" respeakdelay 15
}
rule AlyxDarkLostPlayer
{
	criteria 	IsAlyx ConceptDarkLostPlayer 
	response	AlyxDarkLostPlayer
}

response "AlyxDarkLostPlayerLong"
{
	scene "scenes/npc/Alyx/al_darkness_lostplayerlong02.vcd" respeakdelay 15
	scene "scenes/npc/Alyx/al_darkness_lostplayerlong03.vcd" respeakdelay 15
}
rule AlyxDarkLostPlayerLong
{
	criteria 	IsAlyx ConceptDarkLostPlayer NoRecentSeenPlayerShort 
	response	AlyxDarkLostPlayerLong
}

response "AlyxDarkLostPlayerLonger"
{
	scene "scenes/npc/Alyx/al_darkness_lostplayerlonger02.vcd" respeakdelay 15
	scene "scenes/npc/Alyx/al_darkness_lostplayerlonger03.vcd" respeakdelay 15
}
rule AlyxDarkLostPlayerLonger
{
	criteria 	IsAlyx ConceptDarkLostPlayer NoRecentSeenPlayer 
	response	AlyxDarkLostPlayerLonger
}

response "AlyxDarkLostPlayerDist"
{
	scene "scenes/npc/Alyx/al_darkness_lostplayer_dist01.vcd" respeakdelay 15
	scene "scenes/npc/Alyx/al_darkness_lostplayer_dist02.vcd" respeakdelay 15
	scene "scenes/npc/Alyx/al_darkness_lostplayer_dist03.vcd" respeakdelay 15
	scene "scenes/npc/Alyx/al_darkness_lostplayer_dist04.vcd" respeakdelay 15
}
rule AlyxDarkLostPlayerDist
{
	criteria 	IsAlyx ConceptDarkLostPlayer PlayerNotNear 
	response	AlyxDarkLostPlayerDist
}

//===================================================
// FOUND PLAYER
//===================================================
response "AlyxDarkFoundPlayer"
{
	scene "scenes/npc/Alyx/al_darkness_foundplayer01.vcd" respeakdelay 15 odds 50
	scene "scenes/npc/Alyx/al_darkness_foundplayer03.vcd" respeakdelay 15 odds 50
	scene "scenes/npc/Alyx/al_darkness_foundplayer04.vcd" respeakdelay 15 odds 50
	scene "scenes/npc/Alyx/al_darkness_foundplayer_dist01.vcd" respeakdelay 15
	scene "scenes/npc/Alyx/al_darkness_foundplayer_dist02.vcd" respeakdelay 15
}
rule AlyxDarkFoundPlayer
{
	criteria 	IsAlyx ConceptDarkFoundPlayer 
	response	AlyxDarkFoundPlayer
}

//===================================================
// DARKNESS WOUNDS & SOUNDS
//===================================================
response "AlyxDarkUnknownWound"
{
	scene "scenes/npc/Alyx/al_darkness_unknownwound01.vcd" respeakdelay 5
	scene "scenes/npc/Alyx/al_darkness_unknownwound02.vcd" respeakdelay 5
	scene "scenes/npc/Alyx/al_darkness_unknownwound03.vcd" respeakdelay 5
}
rule AlyxDarkUnknownWound
{
	criteria 	IsAlyx ConceptDarkUnknownWound
	response	AlyxDarkUnknownWound
}

response "AlyxDarkHearSound"
{
	scene "scenes/npc/Alyx/al_darkness_hearsound01.vcd" respeakdelay 15
	scene "scenes/npc/Alyx/al_darkness_hearsound04.vcd" respeakdelay 15
	scene "scenes/npc/Alyx/al_darkness_hearsound07.vcd" respeakdelay 15
}
rule AlyxDarkHearSound
{
	criteria 	IsAlyx ConceptDarkHearSound NoRecentCombatShort 
	response	AlyxDarkHearSound
}

//===================================================
// DARKNESS LOST ENEMIES
//===================================================
response "AlyxDarkLostEnemyByFlashlight"
{
	scene "scenes/npc/Alyx/al_darkness_lostenemy_flashlight02.vcd" respeakdelay 4
	scene "scenes/npc/Alyx/al_darkness_lostenemy_flashlight04.vcd" respeakdelay 4
}

rule AlyxDarkLostEnemyByFlashlight
{
	criteria 	IsAlyx ConceptDarkLostEnemyByFlashlight 
	response	AlyxDarkLostEnemyByFlashlight
}

response "AlyxDarkLostEnemyByFlashlightExpired"
{
	scene "scenes/npc/Alyx/al_light_out01.vcd" respeakdelay 45
	scene "scenes/npc/Alyx/al_light_out02.vcd" respeakdelay 45
	scene "scenes/npc/Alyx/al_light_out04.vcd" respeakdelay 45
	scene "scenes/npc/Alyx/al_light_out05.vcd" respeakdelay 45
	scene "scenes/npc/Alyx/al_light_out16.vcd" respeakdelay 45
	scene "scenes/npc/Alyx/al_light_out17.vcd" respeakdelay 45
}

rule AlyxDarkLostEnemyByFlashlightExpired
{
	criteria 	IsAlyx ConceptDarkLostEnemyByFlashlightExpired
	response	AlyxDarkLostEnemyByFlashlightExpired
}


//===================================================
// DARKNESS FOUND ENEMIES
//===================================================
response "AlyxDarkFoundEnemyByFlashlightGeneric" respeakdelay 60 odds 50
{
	scene "scenes/npc/Alyx/al_darkness_foundenemy_flashlight01.vcd"
	scene "scenes/npc/Alyx/al_darkness_foundenemy_flashlight02.vcd"
	scene "scenes/npc/Alyx/al_darkness_foundenemy_flashlight03.vcd"
}

response "AlyxDarkFoundEnemyByFlashlight"
{
	response	AlyxDarkFoundEnemyByFlashlightGeneric respeakdelay 15 odds 10
}
rule AlyxDarkFoundEnemyByFlashlight
{
	criteria 	IsAlyx ConceptDarkFoundEnemyByFlashlight 
	response	AlyxDarkFoundEnemyByFlashlight
}

response "AlyxDarkFoundEnemyByFlashlightClose"
{
	response	AlyxDarkFoundEnemyByFlashlightGeneric
	response	AlyxSpotIncHeadcrab
}
rule AlyxDarkFoundEnemyByFlashlightClose
{
	criteria 	IsAlyx ConceptDarkFoundEnemyByFlashlight EnemyIsClose 
	response	AlyxDarkFoundEnemyByFlashlightClose
}


response "AlyxDarkFoundEnemyByFlashlightZombie"
{
	scene "scenes/npc/Alyx/al_darkness_foundzombie_flashlight01.vcd" delay 2 respeakdelay 15 odds 5
	response	AlyxDarkFoundEnemyByFlashlightGeneric respeakdelay 15 odds 10
}
rule AlyxDarkFoundEnemyByFlashlightZombie
{
	criteria 	IsAlyx ConceptDarkFoundEnemyByFlashlight EnemyIsZombie 
	response	AlyxDarkFoundEnemyByFlashlightZombie
}

response "AlyxDarkFoundEnemyByFlashlightZombieClose"
{
	response	AlyxDarkFoundEnemyByFlashlightZombie
	response	AlyxSpotIncHeadcrab
}
rule AlyxDarkFoundEnemyByFlashlightZombieClose
{
	criteria 	IsAlyx ConceptDarkFoundEnemyByFlashlight EnemyIsZombie EnemyIsClose 
	response	AlyxDarkFoundEnemyByFlashlightZombieClose
}


response "AlyxDarkFoundEnemyByFlashlightAntLion"
{
	scene "scenes/npc/Alyx/al_darkness_foundantlion_flashlight01.vcd" delay 2 respeakdelay 15 odds 5
}
rule AlyxDarkFoundEnemyByFlashlightAntLion
{
	criteria 	IsAlyx ConceptDarkFoundEnemyByFlashlight EnemyIsAntLion 
	response	AlyxDarkFoundEnemyByFlashlightAntLion
}


response "AlyxDarkFoundEnemyByFlashlightAntLionClose"
{
	response	AlyxDarkFoundEnemyByFlashlightAntLion
	response	AlyxSpotIncHeadcrab
}
rule AlyxDarkFoundEnemyByFlashlightAntLionClose
{
	criteria 	IsAlyx ConceptDarkFoundEnemyByFlashlight EnemyIsAntLion EnemyIsClose 
	response	AlyxDarkFoundEnemyByFlashlightAntLionClose
}



response "AlyxDarkFoundEnemyByFlashlightBarnacle"
{
	scene "scenes/npc/Alyx/al_darkness_foundbarnacle_flashlight01.vcd" delay 2 respeakdelay 15 odds 5
	scene "scenes/npc/Alyx/al_darkness_foundbarnacle_flashlight02.vcd" delay 2 respeakdelay 15 odds 5
}
rule AlyxDarkFoundEnemyByFlashlightBarnacle
{
	criteria 	IsAlyx ConceptDarkFoundEnemyByFlashlight EnemyIsBarnacle 
	response	AlyxDarkFoundEnemyByFlashlightBarnacle
}

//============================================================================================================
// Player falls off ledge
//============================================================================================================
response "AlyxPlayerFallLedge"
{
   	scene "scenes/npc/Alyx/al_playerfallledge_03.vcd"
}

rule AlyxPlayerFallLedge
{
	criteria		IsAlyx PlayerFallDeath
	response		AlyxPlayerFallLedge
}


//============================================================================================================
// ALYX IDLE PLAYER RESPONSES
//============================================================================================================
// PlayerIsHurt
response "AlyxIdlePlayerIsHurt"
{
	scene "scenes/npc/Alyx/al_idle_playerhurt01.vcd" respeakdelay 500 odds 10
	scene "scenes/npc/Alyx/al_idle_playerhurt02.vcd" respeakdelay 500 odds 10
	scene "scenes/npc/Alyx/al_idle_playerhurt03.vcd" respeakdelay 500 odds 10
}

rule AlyxIdlePlayerIsHurt
{
	criteria		IsAlyx ConceptTalkPlayerHurt PlayerVeryWounded PlayerNear NoRecentCombat
	response		AlyxIdlePlayerIsHurt
}

// Player stare
response "AlyxIdlePlayerIsStaring"
{
	scene "scenes/npc/Alyx/al_playerstare01.vcd" respeakdelay 120 stop_on_nonidle
}

rule AlyxIdlePlayerIsStaring
{
	criteria		IsAlyx ConceptTalkStare NPCIdle NoRecentCombat  
	response		AlyxIdlePlayerIsStaring
}

// Reacting to Kleiner's speech
response "AlyxRespondKleinerGetBusy"
{
	norepeat
	scene "scenes/episode_1/c17/al_getbusy.vcd" 
}


rule AlyxRespondKleinerGetBusy
{
	criteria		IsAlyx ConceptAlyxRespondKleinerGetBusy NotInCombat PlayerNear PlayerHearKCast PlayerAlyxNotRespondKCast1
	response		AlyxRespondKleinerGetBusy
}


//============================================================================================================
// Alyx flashlight responses
//============================================================================================================
response "AlyxFlashlightIlluminatedSpeech"
{
	scene "scenes/episode_1/al_flashlightblind_nospeak.vcd"
}

rule AlyxFlashlightIlluminatedSpeech
{
	criteria		IsAlyx ConceptFlashlightIlluminated AlyxGunNotHolstered
	response		AlyxFlashlightIlluminatedSpeech
}



//============================================================================================================
// Alyx Injured Follow speech
//============================================================================================================

criterion ConceptAlyxInjuredTooFar "Concept" "TLK_INJURED_FOLLOW_TOO_FAR" required 	// Alyx is too far away from the player and warns him

response AlyxInjuredFollowTooFar
{
   	scene "scenes/episode_2/al_injured_toofar01.vcd" respeakdelay 5
   	scene "scenes/episode_2/al_injured_toofar02.vcd" respeakdelay 5
   	scene "scenes/episode_2/al_injured_toofar03.vcd" respeakdelay 5
   	scene "scenes/episode_2/al_injured_toofar04.vcd" respeakdelay 5
}

rule AlyxInjuredFollowTooFar
{
	criterion ConceptAlyxInjuredTooFar IsAlyx
	response AlyxInjuredFollowTooFar
}

// Pain sounds
response AlyxInjuredPain
{
   scene "scenes/npc/Alyx/gasp02.vcd"
   scene "scenes/npc/Alyx/gasp03.vcd"
   scene "scenes/npc/Alyx/hurt04.vcd" 
   scene "scenes/npc/Alyx/hurt05.vcd" 
   scene "scenes/npc/Alyx/hurt06.vcd"
   scene "scenes/npc/Alyx/hurt08.vcd"
   scene "scenes/npc/Alyx/uggh01.vcd" 
}

rule AlyxInjuredPain
{
	criterion ConceptTalkWound IsAlyxInjured
	response AlyxInjuredPain
}

//============================================================================================================
// Alyx reactions to world events
//============================================================================================================
response "AlyxGroundShakeSmall"
{
  	scene "scenes/npc/Alyx/al_groundshakesmall_01.vcd"
   	
}

rule AlyxGroundShakeSmall
{
	criteria		IsAlyx GroundShakeSmall
	response		AlyxGroundShakeSmall
}

response "AlyxGroundShakeLarge"
{
  	scene "scenes/npc/Alyx/al_groundshakeLarge_01.vcd"
   	
}

rule AlyxGroundShakeLarge
{
	criteria		IsAlyx GroundShakeLarge
	response		AlyxGroundShakeLarge
}

response "AlyxStartleReact"
{
  	scene "scenes/npc/Alyx/al_StartleReact_01.vcd"
   	
}

rule AlyxStartleReact
{
	criteria		IsAlyx StartleReact
	response		AlyxStartleReact
}

//============================================================================================================
// Automatic responses for LEAD/FOLLOW, etc
//============================================================================================================
// Watch out! Come on Gordon, What are you stupid?

//============================================================================================================
// COMBAT
//============================================================================================================
response AlyxStartCombat
 {
    	scene "scenes/npc/Alyx/al_startcombat01.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_startcombat02.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_startcombat03.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_startcombat04.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_startcombat04.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_combat_start01.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_combat_start02.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_combat_start03.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_combat_start04.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_combat_start05.vcd" respeakdelay 120 odds 50
	
}
 
rule AlyxStartCombat
 {
 	criteria		IsAlyx ConceptAlyxStartCombat PlayerNear CombatTalk EnemyIsNotTurret
 	response		AlyxStartCombat
 }


//begin combat when enemy far
response AlyxStartCombatFar
 {
    	scene "scenes/npc/Alyx/al_combat_gradual_quiet_01.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_combat_gradual_quiet_02.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_combat_gradual_quiet_03.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_combat_gradual_quiet_04.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_combat_gradual_quiet_05.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_combat_gradual_quiet_06.vcd" respeakdelay 120 odds 50	
}
 
rule AlyxStartCombatFar
 {
 	criteria		IsAlyx ConceptAlyxStartCombat PlayerNear CombatTalk EnemyIsFar EnemyIsNotTurret
 	response		AlyxStartCombatFar
 }

//begin combat when in car
//should we not fire for enemy = 'grenade_helicopter'?
response AlyxStartCombatInVehicle
 {
   	scene "scenes/npc/Alyx/al_startcombat01.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_startcombat03.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_herewego.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_pb_herewego.vcd" respeakdelay 120 odds 50
    	scene "scenes/npc/Alyx/al_combat_sudden08.vcd" respeakdelay 120 odds 50
}
 
rule AlyxStartCombatInVehicle
 {
 	criteria		IsAlyx ConceptAlyxStartCombat IsInVehicle CombatTalk PlayerNear
 	response		AlyxStartCombatInVehicle
 }

// Player kills alyx's enemy 
criterion "AlyxNotPraisedKilledEnemy" "AlyxPraisedKilledEnemy" "!=1" "required" weight 0
response PlayerKilledEnemy
{
	scene "scenes/npc/Alyx/al_thanksforhelp03.vcd"   
	scene "scenes/npc/Alyx/al_combat_yeah01.vcd"  
	scene "scenes/npc/Alyx/al_combat_yeah02.vcd"  
}
 
rule PlayerKilledEnemy
 {
 	criteria		IsAlyx ConceptPlayerKilledNPC ContextPlayerKilledEnemy EnemyIsClose PlayerNear AlyxNotPraisedKilledEnemy AlyxNotPraised  
        applycontext "AlyxPraisedKilledEnemy:1:120,AlyxPraised:1:10"
 	response		PlayerKilledEnemy
 }


// Player kills enemy that actually hit alyx
criterion "AlyxNotPraisedKilledAttacker" "AlyxPraisedKilledAttacker" "!=1" "required" weight 0
response "PlayerKilledAttacker"
{
	scene "scenes/npc/Alyx/al_combat_thanks01.vcd" 
	scene "scenes/npc/Alyx/al_combat_thanks02.vcd" 
	scene "scenes/npc/Alyx/al_combat_thanks03.vcd" 
	scene "scenes/npc/Alyx/al_combat_thanks04.vcd" 
	
}
rule PlayerKilledAttacker
{
	criteria 	IsAlyx ConceptPlayerKilledNPC ContextPlayerKilledAttacker AlyxNotPraisedKilledAttacker AlyxNotPraised
        applycontext "AlyxPraisedKilledAttacker:1:120,AlyxPraised:1:10"
	response	PlayerKilledAttacker
}


response "PlayerKilledAttackerWhileCower"
{
	scene "scenes/npc/Alyx/al_combat_nice.vcd" 
	
}
rule PlayerKilledAttackerWhileCower
{
	criteria 	IsAlyx ConceptPlayerKilledNPC ContextPlayerKilledAttacker ContextActivityCower
        applycontext "AlyxPraisedKilledAttacker:1:120,AlyxPraised:1:10"
	response	PlayerKilledAttackerWhileCower
}
//AlyxNotPraisedKilledAttacker AlyxNotPraised


// Player punts grenade
criterion "AlyxNotPraisedPuntedGrenade" "AlyxPraisedPuntedGrenade" "!=1" "required" weight 0
response "PlayerPuntedGrenade"
{
	scene "scenes/npc/Alyx/al_combat_nicepunt01.vcd" 
	scene "scenes/npc/Alyx/al_combat_nicepunt02.vcd" 
	
}
rule PlayerPuntedGrenade
{
	criteria 	IsAlyx ConceptPlayerKilledNPC ContextPlayerPuntedGrenade AlyxNotPraisedPuntedGrenade
        applycontext "AlyxPraisedPuntedGrenade:1:120,AlyxPraised:1:10"
	response	PlayerPuntedGrenade
}


//Alyx sees zombie waking up
response "AlyxSpottedZombieWaking"
{
	scene "scenes/npc/Alyx/al_zombie_liveone01.vcd" respeakdelay 180
	scene "scenes/npc/Alyx/al_zombie_liveone02.vcd" respeakdelay 180
	scene "scenes/npc/Alyx/al_zombie_itsalive01.vcd" respeakdelay 180
}
rule AlyxSpottedZombieWaking
{
	criteria 	IsAlyx ConceptSpottedZombieWakeup  IsNotInVehicle
	response	AlyxSpottedZombieWaking
}


//Alyx sees a headcrab leaving a zombie
response "AlyxSpottedHeadcrabLeavingZombie"
{
	scene "scenes/npc/Alyx/al_see_headcrabair01.vcd" respeakdelay 120
	scene "scenes/npc/Alyx/al_see_headcrabair02.vcd" respeakdelay 120
	scene "scenes/npc/Alyx/al_see_headcrabair03.vcd" respeakdelay 120
}
rule AlyxSpottedHeadcrabLeavingZombie
{
	criteria 	IsAlyx ConceptSpottedHeadcrabLeavingZombie EnemyIsReallyClose
	response	AlyxSpottedHeadcrabLeavingZombie
}


//Player kills monster with headshot
response "Player1Shot"
{
	scene "scenes/npc/Alyx/al_combat_goodshooting01.vcd"  
	scene "scenes/npc/Alyx/al_combat_goodshooting02.vcd" 
	scene "scenes/npc/Alyx/al_combat_goodshooting03.vcd" 
	scene "scenes/npc/Alyx/al_combat_goodshot01.vcd" 
	scene "scenes/npc/Alyx/al_combat_goodshot02.vcd" 
	scene "scenes/npc/Alyx/al_combat_goodshot03.vcd" 
	scene "scenes/npc/Alyx/al_combat_goodshot04.vcd" 
	scene "scenes/npc/Alyx/al_player_goodshot01.vcd" 
	scene "scenes/npc/Alyx/al_player_goodshot02.vcd" 
	scene "scenes/npc/Alyx/al_player_goodshot03.vcd" 
	scene "scenes/npc/Alyx/al_player_goodshot04.vcd" 
	scene "scenes/npc/Alyx/al_combat_niceshot01.vcd" 
	scene "scenes/npc/Alyx/al_combat_niceshot02.vcd" 
	scene "scenes/npc/Alyx/al_combat_niceshot03.vcd" 
	scene "scenes/npc/Alyx/al_combat_niceshot04.vcd" 
}

rule Player1Shot
{
	criteria 	IsAlyx ConceptPlayerKilledNPC ContextPlayer1Shot AlyxNotPraised1Shot AlyxNotPraised
        applycontext "AlyxPraised1Shot:1:180,AlyxPraised:1:10"
	response	Player1Shot
}

rule PlayerHeadshot
{
	criteria 	IsAlyx ConceptPlayerKilledNPC ContextPlayerHeadShot AlyxNotPraised1Shot AlyxNotPraised
        applycontext "AlyxPraised1Shot:1:180,AlyxPraised:1:10"
	response	Player1Shot
}


//Player is on kill streak
response "PlayerKillStreak"
{
	scene "scenes/npc/Alyx/al_combat_niceshooting01.vcd"  
	scene "scenes/npc/Alyx/al_combat_niceshooting02.vcd"  
	scene "scenes/npc/Alyx/al_combat_goodshooting01.vcd"  
	scene "scenes/npc/Alyx/al_combat_goodshooting02.vcd"  
	scene "scenes/npc/Alyx/al_combat_goodshooting03.vcd"  
}

rule PlayerKillStreak
{
	criteria 	IsAlyx ConceptPlayerKilledNPC ConceptPlayerKillStreak PlayerNear PlayerNotUsingPhysCannon AlyxNotPraisedKillStreak AlyxNotPraised
        applycontext "AlyxPraisedKillStreak:1:180,AlyxPraised:1:10"
	response	PlayerKillStreak
}





//Flashlighth Expired - kleiner speech
response "DarknessFlashlightExpired"
{
	scene "scenes/npc/Alyx/al_darkness_lostenemy_flashlightexpired05.vcd" speakonce
}
rule DarknessFlashlightExpired
{
	criteria 	IsAlyx ConceptDarknessFlashlightExpired NoRecentCombatShort
	response	DarknessFlashlightExpired
}

//Alyx Wounded by Grenade 
response "AlyxWoundedbyGrenade"
{
	norepeat
	scene "scenes/npc/Alyx/al_deaf_what.vcd"   respeakdelay 1200 odds 50
	scene "scenes/npc/Alyx/al_deaf_canthearyou.vcd" respeakdelay 1200 odds 50
	scene "scenes/npc/Alyx/al_deaf_canthearanything.vcd" respeakdelay 1200 odds 50
	scene "scenes/npc/Alyx/al_deaf_saysomething.vcd"  respeakdelay 1200 odds 50
	scene "scenes/npc/Alyx/al_deaf_earsringing.vcd" respeakdelay 1200 odds 50
}
rule AlyxWoundedbyGrenade
{
	criteria 	IsAlyx ConceptShot IsNPCGrenade PlayerNear EnemyIsFar
	response	AlyxWoundedbyGrenade
}



//Alyx sees zombine with grenade
response "DangerZombineGrenade"
{
	scene "scenes/npc/Alyx/al_zombine_grenadewarn01.vcd" respeakdelay 60 odds 20
	scene "scenes/npc/Alyx/al_zombine_grenadewarn02.vcd" respeakdelay 60 odds 20
	scene "scenes/npc/Alyx/al_zombine_grenadewarn03.vcd" respeakdelay 60 odds 20
}
rule DangerZombineGrenade
{
	criteria 	IsAlyx ConceptDangerZombineGrenade
	response	DangerZombineGrenade
}


//Player explodes numerous barrels
response "PlayerBarrelsKill"
{
	scene "scenes/npc/Alyx/al_laugh07.vcd" respeakdelay 120
	scene "scenes/npc/Alyx/al_laugh09.vcd" respeakdelay 120
}
rule PlayerBarrelsKill
{
	criteria 	IsAlyx ConceptPlayerKilledBarrel ConceptPlayerKillsBarrels PlayerNear
	response	PlayerBarrelsKill
}




//==================================
// Custom level start combat
//==================================
response AlyxStartCombat_ep1_c17_01
{
   	scene "scenes/episode_1/al_c17_01_antlionsupheretoo.vcd" respeakdelay 60
}

rule AlyxStartCombat_ep1_c17_01
{
	criteria		IsAlyx ConceptAlyxStartCombat IsAlyxEp1c1701_AntlionReaction
	response		AlyxStartCombat_ep1_c17_01
}

//added to stop alyx from jumping in with combat lines when she is hurt/has other lines to say
response AlyxStartCombat_ep2_05
{
}

rule AlyxStartCombat_ep2_05
{
	criteria		IsAlyx ConceptAlyxStartCombat IsMap_ep2_outland_05
	response		AlyxStartCombat_ep2_05
}




//==================================
// Alyx Warning Gordon
//==================================
response AlyxBehindYou
{
   	scene "scenes/npc/Alyx/al_behindyou01.vcd"
   	scene "scenes/npc/Alyx/al_behindyou02.vcd"
   	scene "scenes/npc/Alyx/al_behindyou03.vcd"
   	scene "scenes/npc/Alyx/al_monsterbehindplayer01.vcd"
   	scene "scenes/npc/Alyx/al_monsterbehindplayer02.vcd"

	
}

rule AlyxBehindYou
{
	criteria		IsAlyx  ConceptTalkWatchout 
	"dangerloc" "behind" required
	response		AlyxBehindYou
}

response AlyxWatchOutUp
{
}

rule AlyxWatchOutUp
{
	criteria		IsAlyx ConceptTalkWatchout
	"dangerloc" "above" required
	response		AlyxWatchOutUp
}

//==================================
// Wounds
//==================================
response AlyxWoundedEpisodic
{
   	scene "scenes/npc/Alyx/al_wound01.vcd" respeakdelay 30 odds 50
   	scene "scenes/npc/Alyx/al_wound02.vcd" respeakdelay 30 odds 50
   	scene "scenes/npc/Alyx/al_wound03.vcd" respeakdelay 30 odds 50
   	scene "scenes/npc/Alyx/al_wound04.vcd" respeakdelay 30 odds 50
}
rule AlyxWoundedEpisodic
{
	criteria		IsAlyx ConceptTalkWound
	response		AlyxWoundedEpisodic
}

//==================================
// Combat detail
//==================================
response "AlyxAllyInBarnacle"
{
	scene "scenes\episode_1\al_playerdeath02.vcd" respeakdelay 30
	scene "scenes\episode_1\al_playerfalls03.vcd" respeakdelay 30
	
}
rule AlyxAllyInBarnacle
{
	criteria IsAlyx ConceptAllyInBarnacle
	response AlyxAllyInBarnacle
}

response AlyxAttacking
{
	scene "scenes/npc/Alyx/al_combat_angry01.vcd"
	scene "scenes/npc/Alyx/al_combat_angry02.vcd"
	scene "scenes/npc/Alyx/al_combat_angry03.vcd"
	scene "scenes/npc/Alyx/al_combat_angry04.vcd"
}
rule AlyxAttacking
{
 	criteria		IsAlyx ConceptTalkAttacking 
 	response		AlyxAttacking
}


criterion "IsLongInCombat" "combat_length" ">10" required
response AlyxAttackingMany
{
	scene "scenes/npc/Alyx/al_combat_angry05.vcd"
 
}
rule AlyxAttackingMany
{
  criteria  IsAlyx ConceptTalkAttacking ConceptSomeEnemies IsLongInCombat
  response  AlyxAttackingMany
}


//==================================
// Reloading
//==================================
response AlyxEpisodicHideAndReload
{
   	scene "scenes/episode_1/al_reload01.vcd" respeakdelay 5		// al_reload01.wav
   	scene "scenes/episode_1/al_reload02.vcd" respeakdelay 5		// al_reload03.wav
   	scene "scenes/episode_1/al_reload03.vcd" respeakdelay 5		// al_reload04.wav
   	scene "scenes/episode_1/al_reload04.vcd" respeakdelay 5		// al_reload05.wav
  	scene "scenes/episode_1/al_reload05.vcd" respeakdelay 5		// al_reload06.wav
  	scene "scenes/episode_1/al_reload06.vcd" respeakdelay 5		// al_reloading_new06.wav
  	scene "scenes/episode_1/al_reload07.vcd" respeakdelay 5		// al_reloading_new07.wav
}

rule AlyxEpisodicHideAndReload
{
	criteria		IsAlyx ConceptHideAndReload PlayerNear RecentCombat
	response		AlyxEpisodicHideAndReload
}


//==================================
// Enemy On Fire
//==================================
response AlyxEnemyBurning
{
   	scene "scenes/npc/alyx/al_combat_lightem.vcd" respeakdelay 300
   	scene "scenes/npc/alyx/al_combat_burnem01.vcd" respeakdelay 300
   	scene "scenes/npc/alyx/al_combat_burnem02.vcd" respeakdelay 300

}

rule AlyxEnemyBurning
{
	criteria		IsAlyx ConceptEnemyBurning
	response		AlyxEnemyBurning
}

response AlyxEnemyBurningZombie
{
   	scene "scenes/npc/alyx/al_combat_zombq01.vcd" respeakdelay 300
   	scene "scenes/npc/alyx/al_combat_zombq02.vcd" respeakdelay 300
}

rule AlyxEnemyBurningZombie
{
	criteria		IsAlyx ConceptEnemyBurning EnemyIsZombie
	response		AlyxEnemyBurningZombie
}







//============================================================================================================
// QUESTIONS AND RESPONSES
//============================================================================================================
response "AlyxQuestionCitizen"
{
	// Should be vcds
	//scene "scenes/episode_1/al_greet_cit05.vcd"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit05.wav"  // It doesn't look good, but Gordon here's worked miracles before.
	// pulled for now due to lack of lines
}

rule AlyxQuestionCitizen
{
	criteria		IsAlyx ConceptTalkQuestion PlayerAlive IsSpeechTargetACitizen
	response 		AlyxQuestionCitizen
}

//------------------------------------------------------------------------------------------------------------
// response to cit 2 Hey!  Youre Alyx Vance!
response "AlyxAnswerHelloCitizen1"
{
	speak "*vo/episode_1/npc/alyx/al_greet_cit02.wav" // Uh...right, can we keep moving please?
	speak "*vo/episode_1/npc/alyx/al_greet_cit06.wav" // I hate to spoil the reunion, but we *really* have to get moving.
	speak "*vo/episode_1/npc/alyx/al_greet_cit07.wav" // Not for much longer if we don't get out of here
	speak "*vo/episode_1/npc/alyx/al_greet_cit08.wav" // I sure am lets go
	speak "*vo/episode_1/npc/alyx/al_greet_cit09.wav" // Yeah, and that's Doctor Freeman in the suit.
}


rule AlyxAnswerHelloCitizen1
{
	criteria		IsAlyx ConceptTalkAnswerHello PlayerAlive IsSpeechTargetACitizen RGroupMore00 RGroupLess10 
	response		AlyxAnswerHelloCitizen1
}


// response to cit 2 I know you!
response "AlyxAnswerHelloCitizen2"
{
	speak "*vo/episode_1/npc/alyx/al_greet_cit02.wav" // Uh...right, can we keep moving please?
	speak "*vo/episode_1/npc/alyx/al_greet_cit10.wav" // Then you probably know we gotta get going.
	speak "*vo/episode_1/npc/alyx/al_greet_cit11.wav" // And trouble's right behind me.
}

rule AlyxAnswerHelloCitizen2
{
	criteria		IsAlyx ConceptTalkAnswerHello PlayerAlive IsSpeechTargetACitizen RGroupMore10 RGroupLess20 
	response		AlyxAnswerHelloCitizen2
}

// response to cit 3 Alyx Vance and Gordon Freeman!  You stayed behind to look after us, didnt you?  or cit 5 I hope you two are here to help.
response "AlyxAnswerHelloCitizen3"
{
	speak "*vo/episode_1/npc/alyx/al_greet_cit06.wav" // I hate to spoil the reunion, but we *really* have to get moving.
	speak "*vo/episode_1/npc/alyx/al_greet_cit12.wav" // We'll help however we can.
	speak "*vo/episode_1/npc/alyx/al_greet_cit13.wav" // Yes!
	speak "*vo/episode_1/npc/alyx/al_greet_cit14.wav" // We stayed behind to get you moving.  Come on!
}

rule AlyxAnswerHelloCitizen3
{
	criteria		IsAlyx ConceptTalkAnswerHello PlayerAlive IsSpeechTargetACitizen RGroupMore20 RGroupLess30 
	response		AlyxAnswerHelloCitizen3
}

// response to cit 4 Who are you again?
response "AlyxAnswerHelloCitizen4"
{
	speak "*vo/episode_1/npc/alyx/al_greet_cit15.wav" // I'm the person who's telling you to get moving.
}

rule AlyxAnswerHelloCitizen4
{
	criteria		IsAlyx ConceptTalkAnswerHello PlayerAlive IsSpeechTargetACitizen RGroupMore30 RGroupLess40 
	response		AlyxAnswerHelloCitizen4
}


//response to cit 6 You're Kleiner's daughter, right?
response "AlyxAnswerHelloCitizen5"
{
	speak "*vo/episode_1/npc/alyx/al_greet_cit02.wav" // Uh...right, can we keep moving please?
	speak "*vo/episode_1/npc/alyx/al_greet_cit16.wav" // No, my dad's Odessa Cubbage.
	speak "*vo/episode_1/npc/alyx/al_greet_cit17.wav" // Um, yeah right. Let's go!
}

rule AlyxAnswerHelloCitizen5
{
	criteria		IsAlyx ConceptTalkAnswerHello PlayerAlive IsSpeechTargetACitizen RGroupMore40 RGroupLess50 
	response		AlyxAnswerHelloCitizen5
}


//response to cit 7 Yeah, yeah, good to see you.  Now, where's Dog?
response "AlyxAnswerHelloCitizen6"
{
	speak "*vo/episode_1/npc/alyx/al_greet_cit18.wav" // He'll be here later.
	speak "*vo/episode_1/npc/alyx/al_greet_cit19.wav" // A better question is why aren't you at the trains yet.  Let's get moving!
}

rule AlyxAnswerHelloCitizen6
{
	criteria		IsAlyx ConceptTalkAnswerHello PlayerAlive IsSpeechTargetACitizen RGroupMore50 RGroupLess60 
	response		AlyxAnswerHelloCitizen6
}

//response to cit 8 Alyx, oh my god, where's Freeman!?! Oh, there he is... cit 9 Oh, hey Freeman. And this is the Mrs., I presume? 
// cit 10 Oh, hey Freeman.  And this must be the little lady.(Male) -  Dr. and Mrs. Freeman, I presume? (Female)
response "AlyxAnswerHelloCitizen7"
{
	speak "*vo/episode_1/npc/alyx/al_greet_cit01.wav" // Ohhhkay....
	speak "*vo/episode_1/npc/alyx/al_greet_cit02.wav" // Uh...right, can we keep moving please?
}

rule AlyxAnswerHelloCitizen7
{
	criteria		IsAlyx ConceptTalkAnswerHello PlayerAlive IsSpeechTargetACitizen RGroupMore60 RGroupLess70 
	response		AlyxAnswerHelloCitizen7
}

//response to cit 11 Alyx - honestly, do you think we have any chance?
response "AlyxAnswerHelloCitizen8"
{

	speak "*vo/episode_1/npc/alyx/al_greet_cit04.wav" // Not if we don't get moving.  C'mon!
	speak "*vo/episode_1/npc/alyx/al_greet_cit05.wav" // It doesn't look good, but Gordon here's worked miracles before.
}

rule AlyxAnswerHelloCitizen8
{
	criteria		IsAlyx ConceptTalkAnswerHello PlayerAlive IsSpeechTargetACitizen RGroupMore70 RGroupLess80 
	response		AlyxAnswerHelloCitizen8
}

//response to cit 13 Alyx - Yap, yap, yap, why don't you let Freeman get a word in for once?`
response "AlyxAnswerHelloCitizen9"
{	
	speak "*vo/episode_1/npc/alyx/al_greet_cit01.wav" // Ohhhkay....
	speak "*vo/episode_1/npc/alyx/al_greet_cit03.wav" // Aren't you going to speak up for me, Gordon?
	speak "*vo/episode_1/npc/alyx/al_greet_cit21.wav" // Gordon's a man of few words.
	speak "*vo/episode_1/npc/alyx/al_greet_cit22.wav" // Gordon's free to say whatever he wants. Gordon?


	
}

rule AlyxAnswerHelloCitizen9
{
	criteria		IsAlyx ConceptTalkAnswerHello PlayerAlive IsSpeechTargetACitizen RGroupMore80 RGroupLess90 
	response		AlyxAnswerHelloCitizen9
}


//response to cit 13 Oh, hey Freeman.  And this must be the little lady.  [male only and female version]
response "AlyxAnswerHelloCitizen10"
{
	speak "*vo/episode_1/npc/alyx/al_greet_cit01.wav" // Ohhhkay....
	speak "*vo/episode_1/npc/alyx/al_greet_cit02.wav" // Uh...right, can we keep moving please?

}

rule AlyxAnswerHelloCitizen10
{
	criteria		IsAlyx ConceptTalkAnswerHello PlayerAlive IsSpeechTargetACitizen RGroupMore90 RGroupLess100 
	response		AlyxAnswerHelloCitizen10
}



//response "AlyxAnswerCitizen"
//{
//	// Should be vcds
//	//scene "scenes/episode_1/al_greet_cit01.vcd"
//	//scene "scenes/episode_1/al_greet_cit02.vcd"
//	//scene "scenes/episode_1/al_greet_cit04.vcd"
//	//scene "scenes/episode_1/al_greet_cit07.vcd"
//	
//	speak "*vo/episode_1/npc/alyx/al_greet_cit01.wav" // Ohhhkay....
//	speak "*vo/episode_1/npc/alyx/al_greet_cit02.wav" // Uh...right, can we keep moving please?
//	speak "*vo/episode_1/npc/alyx/al_greet_cit03.wav" // Aren't you going to speak up for me, Gordon?
//	speak "*vo/episode_1/npc/alyx/al_greet_cit04.wav" // Not if we don't get moving.  C'mon!
//	speak "*vo/episode_1/npc/alyx/al_greet_cit05.wav" // It doesn't look good, but Gordon here's worked miracles before.
//	speak "*vo/episode_1/npc/alyx/al_greet_cit06.wav" // I hate to spoil the reunion, but we *really* have to get moving.
//	speak "*vo/episode_1/npc/alyx/al_greet_cit07.wav" // Not for much longer if we don't get out of here
//	speak "*vo/episode_1/npc/alyx/al_greet_cit08.wav" // I sure am lets go
//	speak "*vo/episode_1/npc/alyx/al_greet_cit09.wav" // Yeah, and that's Doctor Freeman in the suit.
//	speak "*vo/episode_1/npc/alyx/al_greet_cit10.wav" // Then you probably know we gotta get going.
//	speak "*vo/episode_1/npc/alyx/al_greet_cit11.wav" // And trouble's right behind me.
//	speak "*vo/episode_1/npc/alyx/al_greet_cit12.wav" // We'll help however we can.
//	speak "*vo/episode_1/npc/alyx/al_greet_cit13.wav" // Yes!
//	speak "*vo/episode_1/npc/alyx/al_greet_cit14.wav" // We stayed behind to get you moving.  Come on!
//	speak "*vo/episode_1/npc/alyx/al_greet_cit15.wav" // I'm the person who's telling you to get moving.
//	speak "*vo/episode_1/npc/alyx/al_greet_cit16.wav" // No, my dad's Odessa Cubbage.
//	speak "*vo/episode_1/npc/alyx/al_greet_cit17.wav" // Um, yeah right. Let's go!
//	speak "*vo/episode_1/npc/alyx/al_greet_cit18.wav" // He'll be here later.
//	speak "*vo/episode_1/npc/alyx/al_greet_cit19.wav" // A better question is why aren't you at the trains yet.  Let's get moving!
//	speak "*vo/episode_1/npc/alyx/al_greet_cit20.wav" // We didn't make it yet.  C'mon!
//	speak "*vo/episode_1/npc/alyx/al_greet_cit21.wav" // Gordon's a man of few words.
//	speak "*vo/episode_1/npc/alyx/al_greet_cit22.wav" // Gordon's free to say whatever he wants. Gordon?
//	speak "*vo/episode_1/npc/alyx/al_greet_cit23.wav" // Say again?  Never mind - let's move!
//
//}
//
//rule AlyxAnswerCitizen
//{
//	criteria		IsAlyx  ConceptTalkAnswer PlayerAlive IsSpeechTargetACitizen 
//	response		AlyxAnswerCitizen
//}


//============================================================================================================
// Alyx Hello Responses with Citizen
//============================================================================================================
response "AlyxQuestionHelloCitizen"
{
	//scene "scenes/episode_1/npc/$gender01/cit_greet_alyx01.vcd" delay 1
}

rule AlyxQuestionHelloCitizen
{
	criteria		IsAlyx ConceptTalkQuestionHello PlayerAlive IsSpeechTargetACitizen
	response 		AlyxQuestionHelloCitizen
}

//------------------------------------------------------------------------------------------------------------
//response "AlyxAnswerHelloCitizen"
//{
//	sequential
//	
//	// Should be vcds
//	//scene "scenes/episode_1/al_greet_cit01.vcd"
//	//scene "scenes/episode_1/al_greet_cit02.vcd"
//	//scene "scenes/episode_1/al_greet_cit04.vcd"
//	//scene "scenes/episode_1/al_greet_cit07.vcd"
//	
//	speak "*vo/episode_1/npc/alyx/al_greet_cit01.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit02.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit03.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit04.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit05.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit06.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit07.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit08.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit09.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit10.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit11.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit12.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit13.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit14.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit15.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit16.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit17.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit18.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit19.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit20.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit21.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit22.wav"
//	speak "*vo/episode_1/npc/alyx/al_greet_cit23.wav"
//}
//
//rule AlyxAnswerHelloCitizen
//{
//	criteria		IsAlyx ConceptTalkAnswerHello PlayerAlive IsSpeechTargetACitizen RGroupMore30 RGroupLess10 
//	response		AlyxAnswerHelloCitizen
//}





