//============================================================================================================
// Commander mode criteria
//============================================================================================================
criterion "IsOnlySelected" "numselected" "1" required
criterion "NotOnlySelected" "numselected" ">1" required
criterion "Is_03_first" "name" "citizen_c17_03_first" required

criterion "UseRadio" "useradio" "1" required

criterion "SquadNearPlayer"            "distancetoplayer"               "<240"   required
criterion "SquadNotNearPlayer"         "distancetoplayer"               ">=240"  required
criterion "SquadNearCommandPoint"      "commandpoint_dist_to_npc"       "<240"   required
criterion "SquadNotNearCommandPoint"   "commandpoint_dist_to_npc"       ">=240"  required
criterion "CommandPointNearPlayer"     "commandpoint_dist_to_player"    "<144"   required
criterion "CommandPointNotNearPlayer"   "commandpoint_dist_to_player"   ">=144"  required
criterion "JoinSquadIndividual"        "numjoining"                     "1"      required
criterion "JoinSquadMultiple"          "numjoining"                     ">1"     required
criterion "TrailingReinforcement"      "reinforcement"                  "1"     required

//============================================================================================================
// Commander mode selection speech
//============================================================================================================
response "CitizenSelected"
{
	scene "scenes/npc/$gender01/ok01.vcd"
	scene "scenes/npc/$gender01/ok02.vcd"
	scene "scenes/npc/$gender01/okimready01.vcd"
	scene "scenes/npc/$gender01/okimready02.vcd"
	scene "scenes/npc/$gender01/okimready03.vcd"
	scene "scenes/npc/$gender01/readywhenyouare01.vcd"
	scene "scenes/npc/$gender01/readywhenyouare02.vcd"

}

rule CitizenSelected
{
	criteria		IsCitizen ConceptTalkSelected
	response 		CitizenSelected
}

//------------------------------------------------------------------------------------------------------------
response "CitizenGroupSelectedRadio"
{
}

rule CitizenGroupSelectedRadio
{
	criteria		IsCitizen ConceptTalkSelected NotOnlySelected UseRadio
	response 	CitizenGroupSelectedRadio
}

//------------------------------------------------------------------------------------------------------------
response "CitizenSoloSelectedRadio"
{
}

rule CitizenSoloSelectedRadio
{
	criteria		IsCitizen ConceptTalkSelected UseRadio
	response 	CitizenSoloSelectedRadio
}


//============================================================================================================
// Commander mode orders speech
//============================================================================================================

response CitizenSquadNearToFarIndividual
{
   scene "scenes/npc/$gender01/squad_affirm01.vcd"
   scene "scenes/npc/$gender01/squad_affirm02.vcd"
   scene "scenes/npc/$gender01/squad_affirm03.vcd"
   scene "scenes/npc/$gender01/squad_affirm04.vcd"
   scene "scenes/npc/$gender01/squad_affirm05.vcd"
   scene "scenes/npc/$gender01/squad_affirm06.vcd"
   scene "scenes/npc/$gender01/squad_affirm07.vcd"
   scene "scenes/npc/$gender01/squad_affirm08.vcd"
   scene "scenes/npc/$gender01/squad_affirm09.vcd"
   // speak "npc_citizen.squad_affirm01"
   // speak "npc_citizen.squad_affirm02"
   // speak "npc_citizen.squad_affirm03"
   // speak "npc_citizen.squad_affirm04"
   // speak "npc_citizen.squad_affirm05"
   // speak "npc_citizen.squad_affirm06"
   // speak "npc_citizen.squad_affirm07"
   // speak "npc_citizen.squad_affirm08"
   // speak "npc_citizen.squad_affirm09"
	scene "scenes/npc/$gender01/letsgo01.vcd"
	scene "scenes/npc/$gender01/letsgo02.vcd"
	scene "scenes/npc/$gender01/yougotit02.vcd"
}

response CitizenSquadNearToFarGroup
{
   scene "scenes/npc/$gender01/squad_affirm01.vcd"
   scene "scenes/npc/$gender01/squad_affirm02.vcd"
   scene "scenes/npc/$gender01/squad_affirm03.vcd"
   scene "scenes/npc/$gender01/squad_affirm05.vcd"
   scene "scenes/npc/$gender01/squad_affirm06.vcd"
   scene "scenes/npc/$gender01/squad_affirm07.vcd"
   scene "scenes/npc/$gender01/squad_affirm08.vcd"
   scene "scenes/npc/$gender01/squad_affirm09.vcd"
   scene "scenes/npc/$gender01/squad_away01.vcd"
   scene "scenes/npc/$gender01/squad_away02.vcd"
   scene "scenes/npc/$gender01/squad_away03.vcd"
   // speak "npc_citizen.squad_affirm01"
   // speak "npc_citizen.squad_affirm02"
   // speak "npc_citizen.squad_affirm03"
   // speak "npc_citizen.squad_affirm05"
   // speak "npc_citizen.squad_affirm06"
   // speak "npc_citizen.squad_affirm07"
   // speak "npc_citizen.squad_affirm08"
   // speak "npc_citizen.squad_affirm09"
   // speak "npc_citizen.squad_away01"
   // speak "npc_citizen.squad_away02"
   // speak "npc_citizen.squad_away03"
	scene "scenes/npc/$gender01/letsgo01.vcd"
	scene "scenes/npc/$gender01/letsgo02.vcd"
	scene "scenes/npc/$gender01/yougotit02.vcd"
}

response CitizenSquadFarToNearIndividual
{
   scene "scenes/npc/$gender01/squad_affirm01.vcd"
   scene "scenes/npc/$gender01/squad_affirm02.vcd"
   scene "scenes/npc/$gender01/squad_affirm03.vcd"
   scene "scenes/npc/$gender01/squad_affirm07.vcd"
   scene "scenes/npc/$gender01/squad_affirm08.vcd"
   scene "scenes/npc/$gender01/squad_affirm09.vcd"
   //scene "scenes/npc/$gender01/squad_approach04.vcd"
   // speak "npc_citizen.squad_affirm01"
   // speak "npc_citizen.squad_affirm02"
   // speak "npc_citizen.squad_affirm03"
   // speak "npc_citizen.squad_affirm07"
   // speak "npc_citizen.squad_affirm08"
   // speak "npc_citizen.squad_affirm09"
   // speak "npc_citizen.squad_approach04"
	scene "scenes/npc/$gender01/yougotit02.vcd"
}

response CitizenSquadFarToNearGroup
{
   scene "scenes/npc/$gender01/squad_affirm01.vcd"
   scene "scenes/npc/$gender01/squad_affirm02.vcd"
   scene "scenes/npc/$gender01/squad_affirm03.vcd"
   scene "scenes/npc/$gender01/squad_affirm07.vcd"
   scene "scenes/npc/$gender01/squad_affirm08.vcd"
   scene "scenes/npc/$gender01/squad_affirm09.vcd"
   scene "scenes/npc/$gender01/squad_approach01.vcd"
   scene "scenes/npc/$gender01/squad_approach02.vcd"
   scene "scenes/npc/$gender01/squad_approach03.vcd"
   scene "scenes/npc/$gender01/squad_approach04.vcd"
   // speak "npc_citizen.squad_affirm01"
   // speak "npc_citizen.squad_affirm02"
   // speak "npc_citizen.squad_affirm03"
   // speak "npc_citizen.squad_affirm07"
   // speak "npc_citizen.squad_affirm08"
   // speak "npc_citizen.squad_affirm09"
   // speak "npc_citizen.squad_approach01"
   // speak "npc_citizen.squad_approach02"
   // speak "npc_citizen.squad_approach03"
   // speak "npc_citizen.squad_approach04"
	scene "scenes/npc/$gender01/letsgo01.vcd"
	scene "scenes/npc/$gender01/letsgo02.vcd"
	scene "scenes/npc/$gender01/yougotit02.vcd"
}

response CitizenSquadNearToNear
{
   scene "scenes/npc/$gender01/squad_affirm01.vcd"
   scene "scenes/npc/$gender01/squad_affirm02.vcd"
   scene "scenes/npc/$gender01/squad_affirm03.vcd"
   scene "scenes/npc/$gender01/squad_affirm07.vcd"
   scene "scenes/npc/$gender01/squad_affirm08.vcd"
   scene "scenes/npc/$gender01/squad_affirm09.vcd"
   // speak "npc_citizen.squad_affirm01"
   // speak "npc_citizen.squad_affirm02"
   // speak "npc_citizen.squad_affirm03"
   // speak "npc_citizen.squad_affirm07"
   // speak "npc_citizen.squad_affirm08"
   // speak "npc_citizen.squad_affirm09"
	scene "scenes/npc/$gender01/illstayhere01.vcd"
	scene "scenes/npc/$gender01/holddownspot01.vcd"
	scene "scenes/npc/$gender01/holddownspot02.vcd"
	scene "scenes/npc/$gender01/imstickinghere01.vcd"
	scene "scenes/npc/$gender01/littlecorner01.vcd"
	scene "scenes/npc/$gender01/yougotit02.vcd"
}

response CitizenSquadFarToFarIndividual
{
   scene "scenes/npc/$gender01/squad_affirm01.vcd"
   scene "scenes/npc/$gender01/squad_affirm02.vcd"
   scene "scenes/npc/$gender01/squad_affirm03.vcd"
   scene "scenes/npc/$gender01/squad_affirm04.vcd"
   scene "scenes/npc/$gender01/squad_affirm07.vcd"
   scene "scenes/npc/$gender01/squad_affirm08.vcd"
   scene "scenes/npc/$gender01/squad_affirm09.vcd"
   // speak "npc_citizen.squad_affirm01"
   // speak "npc_citizen.squad_affirm02"
   // speak "npc_citizen.squad_affirm03"
   // speak "npc_citizen.squad_affirm04"
   // speak "npc_citizen.squad_affirm07"
   // speak "npc_citizen.squad_affirm08"
   // speak "npc_citizen.squad_affirm09"
	scene "scenes/npc/$gender01/yougotit02.vcd"
}

response CitizenSquadFarToFarGroup
{
   scene "scenes/npc/$gender01/squad_affirm01.vcd"
   scene "scenes/npc/$gender01/squad_affirm02.vcd"
   scene "scenes/npc/$gender01/squad_affirm03.vcd"
   scene "scenes/npc/$gender01/squad_affirm07.vcd"
   scene "scenes/npc/$gender01/squad_affirm08.vcd"
   scene "scenes/npc/$gender01/squad_affirm09.vcd"
   scene "scenes/npc/$gender01/squad_away01.vcd"
   scene "scenes/npc/$gender01/squad_away02.vcd"
   scene "scenes/npc/$gender01/squad_away03.vcd"
   // speak "npc_citizen.squad_affirm01"
   // speak "npc_citizen.squad_affirm02"
   // speak "npc_citizen.squad_affirm03"
   // speak "npc_citizen.squad_affirm07"
   // speak "npc_citizen.squad_affirm08"
   // speak "npc_citizen.squad_affirm09"
   // speak "npc_citizen.squad_away01"
   // speak "npc_citizen.squad_away02"
   // speak "npc_citizen.squad_away03"
	scene "scenes/npc/$gender01/letsgo01.vcd"
	scene "scenes/npc/$gender01/letsgo02.vcd"
	scene "scenes/npc/$gender01/yougotit02.vcd"
}

response CitizenSquadGeneral
{
   scene "scenes/npc/$gender01/squad_affirm01.vcd"
   scene "scenes/npc/$gender01/squad_affirm02.vcd"
   scene "scenes/npc/$gender01/squad_affirm03.vcd"
   scene "scenes/npc/$gender01/squad_affirm05.vcd"
   scene "scenes/npc/$gender01/squad_affirm06.vcd"
   scene "scenes/npc/$gender01/squad_affirm07.vcd"
   scene "scenes/npc/$gender01/squad_affirm08.vcd"
   scene "scenes/npc/$gender01/squad_affirm09.vcd"
   // speak "npc_citizen.squad_affirm01"
   // speak "npc_citizen.squad_affirm02"
   // speak "npc_citizen.squad_affirm03"
   // speak "npc_citizen.squad_affirm05"
   // speak "npc_citizen.squad_affirm06"
   // speak "npc_citizen.squad_affirm07"
   // speak "npc_citizen.squad_affirm08"
   // speak "npc_citizen.squad_affirm09"
	scene "scenes/npc/$gender01/yougotit02.vcd"
}

rule CitizenCommanded
{
	criteria		IsCitizen ConceptTalkCommanded
	response		CitizenSquadGeneral
}

rule CitizenCommandedNearToFarIndividual
{
	criteria		IsCitizen ConceptTalkCommanded IsOnlySelected SquadNearPlayer CommandPointNotNearPlayer
	response		CitizenSquadNearToFarIndividual
}

rule CitizenCommandedNearToFarGroup
{
	criteria		IsCitizen ConceptTalkCommanded NotOnlySelected SquadNearPlayer CommandPointNotNearPlayer
	response		CitizenSquadNearToFarGroup
}

rule CitizenCommandedFarToNearIndividual
{
	criteria		IsCitizen ConceptTalkCommanded IsOnlySelected SquadNotNearPlayer CommandPointNearPlayer
	response		CitizenSquadFarToNearIndividual
}

rule CitizenCommandedFarToNearGroup
{
	criteria		IsCitizen ConceptTalkCommanded NotOnlySelected SquadNotNearPlayer CommandPointNearPlayer
	response		CitizenSquadFarToNearGroup
}

rule CitizenCommandedNearToNearIndividual
{
	criteria		IsCitizen ConceptTalkCommanded SquadNearPlayer CommandPointNearPlayer
	response		CitizenSquadNearToNear
}

rule CitizenCommandedFarToFarIndividual
{
	criteria		IsCitizen ConceptTalkCommanded IsOnlySelected SquadNotNearPlayer CommandPointNotNearPlayer
	response		CitizenSquadFarToFarIndividual
}

rule CitizenCommandedFarToFarGroup
{
	criteria		IsCitizen ConceptTalkCommanded NotOnlySelected SquadNotNearPlayer CommandPointNotNearPlayer
	response		CitizenSquadFarToFarGroup
}

//------------------------------------------------------------------------------------------------------------
response "CitizenCommandedRadio"
{

}

rule CitizenCommandedRadio
{
	criteria		IsCitizen ConceptTalkCommanded UseRadio
	response		CitizenCommandedRadio
}

//------------------------------------------------------------------------------------------------------------
response "CitizenCommandFailedRadio"
{

}

rule CitizenCommandFailedRadio
{
	criteria 		IsCitizen ConceptTalkCommandFailed UseRadio
	response		CitizenCommandFailedRadio
}

//============================================================================================================
// Commander mode follow speech
//============================================================================================================
response CitizenFollowGeneral
{
	scene "scenes/npc/$gender01/leadtheway01.vcd"
	scene "scenes/npc/$gender01/leadtheway02.vcd"
	scene "scenes/npc/$gender01/leadon01.vcd"
	scene "scenes/npc/$gender01/leadon02.vcd"
}

response CitizenFollowGroup
{
	scene "scenes/npc/$gender01/squad_follow01.vcd"
	scene "scenes/npc/$gender01/squad_follow02.vcd"
	scene "scenes/npc/$gender01/squad_follow03.vcd"
	scene "scenes/npc/$gender01/squad_follow04.vcd"
	response CitizenFollowGeneral weight 2
}

rule CitizenFollow
{
	criteria		IsCitizen ConceptTalkStartFollow
	response		CitizenFollowGeneral
}

rule CitizenFollowGroup
{
	criteria		IsCitizen ConceptTalkStartFollow NotOnlySelected
	response		CitizenFollowGroup
}

//============================================================================================================
// Commander mode join speech
//============================================================================================================


// I'm not sure all these lines will play well when not coming up from behind, so I've made a distinction between trailing & non-trailing
response CitizenJoinIndividual
{
	scene "scenes/npc/$gender01/squad_reinforce_single01.vcd"
	scene "scenes/npc/$gender01/squad_reinforce_single02.vcd"
	scene "scenes/npc/$gender01/squad_reinforce_single03.vcd"
	scene "scenes/npc/$gender01/squad_reinforce_single04.vcd"
}

response CitizenJoinGroup
{
	scene "scenes/npc/$gender01/squad_reinforce_group01.vcd"
	scene "scenes/npc/$gender01/squad_reinforce_group02.vcd"
	scene "scenes/npc/$gender01/squad_reinforce_group03.vcd"
	scene "scenes/npc/$gender01/squad_reinforce_group04.vcd"
}

response CitizenJoinIndividualTrailing
{
	scene "scenes/npc/$gender01/squad_reinforce_single01.vcd"
	scene "scenes/npc/$gender01/squad_reinforce_single02.vcd"
	scene "scenes/npc/$gender01/squad_reinforce_single03.vcd"
	scene "scenes/npc/$gender01/squad_reinforce_single04.vcd"
}

response CitizenJoinGroupTrailing
{
	scene "scenes/npc/$gender01/squad_reinforce_group01.vcd"
	scene "scenes/npc/$gender01/squad_reinforce_group02.vcd"
	scene "scenes/npc/$gender01/squad_reinforce_group03.vcd"
	scene "scenes/npc/$gender01/squad_reinforce_group04.vcd"
}

rule CitizenJoinIndividual
{
	criteria		IsCitizen ConceptJoinPlayer JoinSquadIndividual
	response		CitizenJoinIndividual
}

rule CitizenJoinGroup
{
	criteria		IsCitizen ConceptJoinPlayer JoinSquadMultiple
	response		CitizenJoinGroup
}

rule CitizenJoinIndividualTrailing
{
	criteria		IsCitizen ConceptJoinPlayer JoinSquadIndividual TrailingReinforcement
	response		CitizenJoinIndividualTrailing
}

rule CitizenJoinGroupTrailing
{
	criteria		IsCitizen ConceptJoinPlayer JoinSquadMultiple TrailingReinforcement
	response		CitizenJoinGroupTrailing
}

response CitizenJoin_d3_c17_07
{
   scene "scenes/Streetwar/tunnel/$gender01/d3_c17_07_tenant.vcd"
}

rule CitizenJoin_d3_c17_07
{
	criteria		IsCitizen ConceptJoinPlayer 
	"map" "d3_c17_07" required weight 1000
	response		CitizenJoin_d3_c17_07
	matchonce
}


//============================================================================================================
// Commander mode follow speech SPECIAL CASE: first citizen in d3_17_03
//============================================================================================================
response "CitizenFollow_First"
{
	scene "scenes/npc/$gender01/abouttime01.vcd"

}

rule CitizenFollow_First
{
	criteria		IsCitizen ConceptJoinPlayer JoinSquadIndividual Is_03_first
	response		CitizenFollow_First
}

//------------------------------------------------------------------------------------------------------------
response "CitizenUnFollow"
{

	scene "scenes/npc/$gender01/illstayhere01.vcd"
	scene "scenes/npc/$gender01/holddownspot01.vcd"
	scene "scenes/npc/$gender01/holddownspot02.vcd"
	scene "scenes/npc/$gender01/imstickinghere01.vcd"
	scene "scenes/npc/$gender01/littlecorner01.vcd"

}

rule CitizenUnFollow
{
	criteria		IsCitizen ConceptTalkStopFollow
	response		CitizenUnFollow
}

