// Alyx nags for episodic

#include "talker/response_criteria.txt"

criterion "AlyxGetToTrain" "concept" "ConceptGetToTrain" required

criterion "IsWaitForPlayerTakeGravGun1" "concept" "GravGun1Nag" "required"
criterion "IsWaitForPlayerFollowLedge1" "concept" "Ledge1Nag" "required"
criterion "IsWaitForPlayerJumpLedge1" "concept" "Ledge1Nag" "required"
criterion "IsWaitForPlayerInVan" "concept" "InVanNag" "required"
criterion "IsWaitForPlayerPostVan" "concept" "PostVanNag" "required"

criterion "IsWaitForPlayerMoveBlockedHallway" "concept" "MoveBlockedHallway" "required"
criterion "NagPlayerLeaveBlockedHallway" "concept" "LeaveBlockedHallway" "required"

criterion "IsWaitForPlayerTakeGravGun2" "concept" "GravGun2Nag" "required"
criterion "IsWaitForPlayerBringRollermine" "concept" "BringRollermineNag" "required"
criterion "IsWaitForPlayerTossRollermine" "concept" "TossRollermineNag" "required"
criterion "IsWaitForPlayerTrappedStalkerPod" "concept" "TrappedStalkerNag" "required"
criterion "IsWaitForPlayerDestroyStalker" "concept" "StalkerNag" "required"
criterion "IsWaitForPlayerSocketBall" "concept" "BallNag" "required"
criterion "IsWaitForPlayerOnElevator" "concept" "ElevatorNag" "required"
criterion "IsWaitForPlayerAtExit" "concept" "ExitNag" "required"
criterion "IsWaitForPlayeratScaffolding" "concept" "HelpMeNag" "required"
criterion "IsWaitForPlayertoSeeAlyxSniper" "concept" "LookAtMeImASniperNag" "required"
criterion "IsWaitForPlayerToGetInGarrison" "concept" "GetInGarrisonNag" "required"
criterion "IsWaitForPlayerToFixElevator" "concept" "FixElevatorNag" "required"
criterion "IsWaitForPlayerToGetInElevator" "concept" "GetInElevatorNag" "required"
criterion "IsWaitForPlayerAtGate" "concept" "GateIsOpenNag" "required"
criterion "IsWaitForPlayerToLure" "concept" "SniperLureNag" "required"
criterion "IsWaitForPlayerShineFlashlight" "concept" "ShineLightOnPowerbox" "required"
criterion "IsWaitForPlayerToAtWire" "concept" "FollowWireNag" "required"
criterion "IsWaitForPlayerFindPowerbox" "concept" "FindPowerbox" "required"
criterion "IsWaitForPlayerEvacNextGroup" "concept" "ConceptEvacNextGroup" "required"

criterion "PlayerNear" "distancetoplayer" "<500" required

//============================================================================================================
// Ep1_citadel_00

//============================================================================================================
// Nag TakeGravGun
//============================================================================================================
response "TakeGravGun1Nag"
{
	scene "scenes/episode_1/al_citadel_takegravgunnag_01.vcd" defaultdelay
	scene "scenes/episode_1/al_citadel_takegravgunnag_02.vcd" defaultdelay
} 

rule NagTakeGravGun1
{
	criteria		IsWaitForPlayerTakeGravGun1
	response		TakeGravGun1Nag
}


//============================================================================================================
// Nag Ledge 1
//============================================================================================================
response "FollowLedge1Nag"
{
	scene "scenes/episode_1/al_citadel_LedgeNag1_01.vcd" defaultdelay
	scene "scenes/episode_1/al_citadel_LedgeNag1_02.vcd" defaultdelay
	scene "scenes/episode_1/al_citadel_LedgeNag1_03.vcd" defaultdelay
} 

rule NagFollowLedge1
{
	criteria		IsWaitForPlayerFollowLedge1
	response		FollowLedge1Nag
}

//============================================================================================================
// Nag To Get in Van
//============================================================================================================
response "InVanNag"
{
	scene "scenes/episode_1/al_citadel_InVanNag_01.vcd" defaultdelay
	scene "scenes/episode_1/al_citadel_InVanNag_02.vcd" defaultdelay displayfirst
	scene "scenes/episode_1/al_citadel_InVanNag_03.vcd" defaultdelay
} 

rule NagInVan
{
	criteria		IsWaitForPlayerInVan
	response		InVanNag
}

//============================================================================================================
// Post Van
//============================================================================================================
response "PostVanNag"
{
	scene "scenes/episode_1/al_citadel_PostVanNag1_01.vcd" defaultdelay displayfirst
	scene "scenes/episode_1/al_citadel_PostVanNag1_02.vcd" defaultdelay
	scene "scenes/episode_1/al_citadel_PostVanNag1_03.vcd" defaultdelay
} 

rule NagPostVan
{
	criteria		IsWaitForPlayerPostVan
	response		PostVanNag
}

//============================================================================================================
// Move the debris from the blocked hallway
//============================================================================================================
response "MoveBlockedHallway"
{
	scene "scenes/episode_1/al_citadel_01_deadendnag_01.vcd" defaultdelay displayfirst
	scene "scenes/episode_1/al_citadel_01_deadendnag_02.vcd" defaultdelay
	scene "scenes/episode_1/al_citadel_01_deadendnag_03.vcd" defaultdelay
} 

rule NagMoveBlockedHallway
{
	criteria		IsWaitForPlayerMoveBlockedHallway
	response		MoveBlockedHallway
}

//============================================================================================================
// Player leaves the blocked hallway area
//============================================================================================================
response "LeaveBlockedHallway"
{
	scene "scenes/episode_1/al_citadel_01_deadendleave_01.vcd" defaultdelay displayfirst
	scene "scenes/episode_1/al_citadel_01_deadendleave_02.vcd" defaultdelay
	scene "scenes/episode_1/al_citadel_01_deadendleave_03.vcd" defaultdelay
} 

rule NagLeaveBlockedHallway
{
	criteria		NagPlayerLeaveBlockedHallway
	response		LeaveBlockedHallway
}

//============================================================================================================
// Nag TakeGravGun2
//============================================================================================================
response "TakeGravGun2Nag"
{
	scene "scenes/episode_1/al_citadel_takegravgunnagb_01.vcd" defaultdelay
	scene "scenes/episode_1/al_citadel_takegravgunnagb_02.vcd" defaultdelay
} 

rule NagTakeGravGun2
{
	criteria		IsWaitForPlayerTakeGravGun2
	response		TakeGravGun2Nag
}



//============================================================================================================
// Ep1_citadel_02


//============================================================================================================
// Stalker Ball Burst Nag
//============================================================================================================
response "NagStalker"
{
	scene "scenes/episode_1/al_citadel_stillstalkers01.vcd"
	scene "scenes/episode_1/al_citadel_stillstalkers02.vcd"
	scene "scenes/episode_1/al_citadel_stillstalkers03.vcd"
}

rule NagStalker
{
	criteria		IsWaitForPlayerDestroyStalker
	response		NagStalker
}




//============================================================================================================
// Core Ball Socket Nag
//============================================================================================================
response "NagBall"
{
	scene "scenes/episode_1/al_citadel_BallSocket01.vcd"

}

rule NagBall
{
	criteria		IsWaitForPlayerSocketBall
	response		NagBall
}




//============================================================================================================
// Get On Elevator Nag
//============================================================================================================
response "NagElevator"
{
	scene "scenes/episode_1/al_citadel_ElevatorNag01.vcd"
	scene "scenes/episode_1/al_citadel_ElevatorNag02.vcd"
	scene "scenes/episode_1/al_citadel_ElevatorNag03.vcd"
}

rule NagElevator
{
	criteria		IsWaitForPlayerOnElevator
	response		NagElevator
}


//============================================================================================================
// come to Exit Nag
//============================================================================================================
response "NagExit"
{
	scene "scenes/episode_1/al_citadel_ExitNag01.vcd"
	scene "scenes/episode_1/al_citadel_ExitNag02.vcd"
	scene "scenes/episode_1/al_citadel_ExitNag03.vcd"
}

rule NagExit
{
	criteria		IsWaitForPlayerAtExit
	response		NagExit
}




//============================================================================================================
// Ep1_citadel_03


//============================================================================================================
// Rollermine Hack Nag
//============================================================================================================
response "NagBringRollermine"
{
	scene "scenes/episode_1/razortrain_alyx_BringRollermine_Nag01.vcd"
	scene "scenes/episode_1/citadel/al_grabroll02.vcd"  // grab one of those roller mines and bring it over to me.
	scene "scenes/episode_1/citadel/al_roll_grab01.vcd"  // grab one of those roller mines gordon
    	scene "scenes/episode_1/citadel/al_roll_bring.vcd"  //  bring me a roller mine gordon

}

rule NagBringRollermine
{
	criteria		IsWaitForPlayerBringRollermine
	response		NagBringRollermine
}


//============================================================================================================
// Rollermine Toss Nag
//============================================================================================================
response "NagTossRollermine"
{
	scene "scenes/episode_1/razortrain_alyx_TossRollermine_Nag01.vcd"
	scene "scenes/episode_1/razortrain_alyx_TossRollermine_Nag02.vcd"
}

rule TossBringRollermine
{
	criteria		IsWaitForPlayerTossRollermine
	response		NagTossRollermine
}

//============================================================================================================
// Alyx Trapped by Stalker Pod
//============================================================================================================
response "NagTrappedStalkerPod"
{
	scene "scenes/episode_1/al_stalkertrain_trapped_01.vcd"
	scene "scenes/episode_1/al_stalkertrain_trapped_02.vcd"
	scene "scenes/episode_1/al_stalkertrain_trapped_03.vcd"
	scene "scenes/episode_1/al_stalkertrain_trapped_04.vcd"
}

rule TrappedStalkerPodNag
{
	criteria		IsWaitForPlayerTrappedStalkerPod
	response		NagTrappedStalkerPod
}



//============================================================================================================
// Ep1_c17_00

//============================================================================================================
// Nag FindThePowerbox
//============================================================================================================
response "FindPowerboxNag"
{
	scene "scenes/episode_1/al_c17_00_dark_findpowerboxnag_01.vcd" defaultdelay
	scene "scenes/episode_1/al_c17_00_dark_findpowerboxnag_02.vcd" defaultdelay 
//	scene "scenes/episode_1/al_c17_00_dark_findpowerboxnag_03.vcd" defaultdelay  Alyx saying she can hack the powerbox if you find it
} 

rule NagFindPowerbox
{
	criteria		IsWaitForPlayerFindPowerbox NotInCombat
	response		FindPowerboxNag
}

//============================================================================================================
// Nag ShineLightOnPowerbox
//============================================================================================================
response "ShineLightOnPowerboxNag"
{
	scene "scenes/episode_1/al_c17_00_dark_needlight_01.vcd" defaultdelay
	scene "scenes/episode_1/al_c17 _00_dark_needlight_02.vcd" defaultdelay
	scene "scenes/episode_1/al_c17_00_dark_needlight_03.vcd" defaultdelay
} 

rule NagShineLightOnPowerbox
{
	criteria		IsWaitForPlayerShineFlashlight NotInCombat
	response		ShineLightOnPowerboxNag
}


//============================================================================================================
// Ep1_c17_01

//============================================================================================================
// Where Alyx gets traps and requires Gordon's presence / assistance.
//============================================================================================================
response "Response_HelpMeNag"
{
	scene "scenes/episode_1/al_c17_01_comeherehelpme_nag_01.vcd"
	scene "scenes/episode_1/al_c17_01_comeherehelpme_nag_02.vcd"
	scene "scenes/episode_1/al_c17_01_comeherehelpme_nag_03.vcd"
}

rule Rule_HelpMeNag
{
	criteria		IsWaitForPlayeratScaffolding
	response		Response_HelpMeNag
}

//============================================================================================================
// Where Alyx becomes a sniper and wants Gordon to see her.
//============================================================================================================
response "Response_LookAtMeImASniperNag"
{
	scene "scenes/episode_1/al_c17_01_snipe_nag01.vcd" displayfirst
	scene "scenes/episode_1/al_c17_01_snipe_nag02.vcd"
}

rule Rule_LookAtMeImASniperNag
{
	criteria		IsWaitForPlayertoSeeAlyxSniper
	response		Response_LookAtMeImASniperNag
}


//============================================================================================================
// Ep1_c17_03

//============================================================================================================
// Where Alyx urges Gordon to get into the garisson.
//============================================================================================================
response "Response_GetInGarrisonNag"
{
  scene "scenes/episode_1/al_c17_03_GetInGarrison_nag_01.vcd"
  scene "scenes/episode_1/al_c17_03_GetInGarrison_nag_02.vcd"
  scene "scenes/episode_1/al_c17_03_GetInGarrison_nag_03.vcd"
  scene "scenes/episode_1/al_c17_03_GetInGarrison_nag_04.vcd"
  scene "scenes/episode_1/al_c17_03_GetInGarrison_nag_05.vcd"
}

rule Rule_GetInGarrisonNag
{
	criteria		IsWaitForPlayerToGetInGarrison SeePlayer
	response		Response_GetInGarrisonNag
}


//============================================================================================================
// Where Alyx urges Gordon to back into the streets and find the missing gears.
//============================================================================================================
response "Response_FixElevatorNag"
{
	scene "scenes/episode_1/al_c17_03_FixElevator_nag_01.vcd"
  scene "scenes/episode_1/al_c17_03_FixElevator_nag_02.vcd"
  scene "scenes/episode_1/al_c17_03_FixElevator_nag_03.vcd"
  scene "scenes/episode_1/al_c17_03_FixElevator_nag_04.vcd"
  scene "scenes/episode_1/al_c17_03_FixElevator_nag_05.vcd"
}

rule Rule_FixElevatorNag
{
	criteria		IsWaitForPlayerToFixElevator SeePlayer
	response		Response_FixElevatorNag
}

//============================================================================================================
// Where Alyx urges Gordon to get in the elevator.
//============================================================================================================


response "Response_GetInElevatorNag"
{
	scene "scenes/episode_1/al_c17_03_GetInElevator_nag_01.vcd"
  scene "scenes/episode_1/al_c17_03_GetInElevator_nag_02.vcd"
  scene "scenes/episode_1/al_c17_03_GetInElevator_nag_03.vcd"
}

rule Rule_GetInElevatorNag
{
	criteria		IsWaitForPlayerToGetInElevator SeePlayer
	response		Response_GetInElevatorNag
}
//============================================================================================================
// Nags after gate is opened with crank.
//============================================================================================================
response "Response_GateIsOpenNag"
{
	scene "scenes/episode_1/al_c17_01_letsgonag_01.vcd"
	scene "scenes/episode_1/al_c17_01_letsgonag_02.vcd"
	scene "scenes/episode_1/al_c17_01_letsgonag_03.vcd"
}

rule Rule_GateIsOpenNag
{
	criteria		IsWaitForPlayerAtGate
	response		Response_GateIsOpenNag
}
//============================================================================================================
// Nags for lureing out enemies so Alyx can snipe them.
//============================================================================================================
//response "Response_SniperLureNag"
//{
//	scene "scenes/episode_1/al_c17_01_al_snipe_lurenag_01.vcd"
//	scene "scenes/episode_1/al_c17_01_al_snipe_lurenag_02.vcd"
//	scene "scenes/episode_1/al_c17_01_al_snipe_lurenag_03.vcd"
//}
//
//rule Rule_SniperLureNag
//{
//	criteria		AlyxIsSniperFirstEncounter
//	response		Response_SniperLureNag
//}
//============================================================================================================
// Nags to remind player to follow the wire to power box
//============================================================================================================
response "Response_FollowWireNag"
{
	scene "scenes/episode_1/c17/al_elev_power_nag01.vcd"
	scene "scenes/episode_1/c17/al_elev_power_nag02.vcd"
	scene "scenes/episode_1/c17/al_elev_power_nag03.vcd"
	scene "scenes/episode_1/c17/al_elev_hearsomething.vcd"
}

rule Rule_FollowWireNag
{
	criteria		IsWaitForPlayerToAtWire
	response		Response_FollowWireNag
}


//============================================================================================================
// Alyx Evac Next group - spoken when the player needs to get another group of citizens.
//============================================================================================================

criterion "PlayerEvacedCitizens" "Evac05CitizenThanks" "1" "required" weight 0
criterion "FailedPlayerEvacedCitizens" "Evac05CitizenThanks" "!=1" "required" weight 0

response "Response_AlyxEvacNextGroup"
{
	sequential
	scene "scenes/episode_1/al_c17_05_evac_nextgroup01.vcd"
	scene "scenes/episode_1/al_c17_05_evac_nextgroup02.vcd"
	scene "scenes/episode_1/al_c17_05_evac_nextgroup03.vcd"
	scene "scenes/episode_1/al_c17_05_evac_nextgroup04.vcd"
	scene "scenes/episode_1/al_c17_05_evac_nextgroup05.vcd"

}
rule Rule_AlyxEvacNextGroup
{
	criteria IsWaitForPlayerEvacNextGroup PlayerNear  PlayerEvacedCitizens 
	response Response_AlyxEvacNextGroup
}


response "Response_AlyxEvacNextGroupFailed"
{
	sequential
	scene "scenes/episode_1/c17/al_evac_takestand.vcd"
	scene "scenes/episode_1/al_c17_05_evac_nextgroup03.vcd"
	scene "scenes/episode_1/al_c17_05_evac_nextgroup05.vcd"
}
rule Rule_AlyxEvacNextGroupFailed
{
	criteria IsWaitForPlayerEvacNextGroup PlayerNear  FailedPlayerEvacedCitizens 
	response Response_AlyxEvacNextGroupFailed
}


//============================================================================================================
// Alyx Prodding you to get citizens on the train
//============================================================================================================
//----------------------------------------------------------------------------


response "GetToTrain"
{
	scene "scenes/episode_1/c17/al_evac_remind01.vcd" 
	scene "scenes/episode_1/c17/al_evac_remind02.vcd" 
	scene "scenes/episode_1/c17/al_evac_remind03.vcd" 
	scene "scenes/episode_1/c17/al_evac_remind04.vcd" 
 

}
rule GetToTrain
{
	criteria AlyxGetToTrain PlayerNear
	response GetToTrain
}


