/*
Synced Melee between AI data.
This list should be sorted by attacker/defender pairs.
*/

/*
engageAngleThreshold - How much turntable blending the defender is willing to do.
Larger values increase the likelihood that the melee occurs, but at the cost of more blending.
*/






// ----- grunt VS grunt ----- //
// front
{
	attackerClass:	"human"
	defenderClass:	"human"
	attackerSeq:	"pt_synced_melee_F_punch_A"
	defenderSeq:	"pt_synced_melee_F_punch_D"
	engageAngleThreshold:	40
}

{
	attackerClass:	"human"
	defenderClass:	"human"
	attackerSeq:	"pt_synced_melee_F_throw_A"
	defenderSeq:	"pt_synced_melee_F_throw_D"
	engageAngleThreshold:	40
}

{
	attackerClass:	"human"
	defenderClass:	"human"
	attackerSeq:	"pt_synced_melee_knife_kick_A"
	defenderSeq:	"pt_synced_melee_knife_kick_D"
	engageAngleThreshold:	40
}

{
	attackerClass:	"human"
	defenderClass:	"human"
	attackerSeq:	"pt_synced_melee_knife_struggle_A"
	defenderSeq:	"pt_synced_melee_knife_struggle_D"
	engageAngleThreshold:	40
}


// side
{
	attackerClass:	"human"
	defenderClass:	"human"
	attackerSeq:	"pt_synced_melee_R_disarm_A"
	defenderSeq:	"pt_synced_melee_R_disarm_D"
	engageAngleThreshold:	40
}

{
	attackerClass:	"human"
	defenderClass:	"human"
	attackerSeq:	"pt_synced_melee_L_tackle_A"
	defenderSeq:	"pt_synced_melee_L_tackle_D"
	engageAngleThreshold:	40
}


// back
{
	attackerClass:	"human"
	defenderClass:	"human"
	attackerSeq:	"pt_synced_melee_back_backstab_A"
	defenderSeq:	"pt_synced_melee_back_backstab_D"
	engageAngleThreshold:	40
}

{
	attackerClass:	"human"
	defenderClass:	"human"
	attackerSeq:	"pt_synced_melee_back_cheststab_A"
	defenderSeq:	"pt_synced_melee_back_cheststab_D"
	engageAngleThreshold:	40
}

{
	attackerClass:	"human"
	defenderClass:	"human"
	attackerSeq:	"pt_synced_melee_back_neckstab_A"
	defenderSeq:	"pt_synced_melee_back_neckstab_D"
	engageAngleThreshold:	40
}

{
	attackerClass:	"human"
	defenderClass:	"human"
	attackerSeq:	"pt_synced_melee_back_throw_A"
	defenderSeq:	"pt_synced_melee_back_throw_D"
	engageAngleThreshold:	40
}






// ----- spectre VS spectre ----- //
{
	attackerClass:	"spectre"
	defenderClass:	"spectre"
	attackerSeq:	"sp_stand_melee_A"
	defenderSeq:	"sp_stand_melee_V"
	engageAngleThreshold:	70
}

{
	attackerClass:	"spectre"
	defenderClass:	"spectre"
	attackerSeq:	"sp_stand_melee_headrip_A"
	defenderSeq:	"sp_stand_melee_headrip_V"
	engageAngleThreshold:	70
}

{
	attackerClass:	"spectre"
	defenderClass:	"spectre"
	attackerSeq:	"sp_stand_melee_behind_A"
	defenderSeq:	"sp_stand_melee_behind_V"
	engageAngleThreshold:	70
}

{
	attackerClass:	"spectre"
	defenderClass:	"spectre"
	attackerSeq:	"sp_stand_melee_left_A"
	defenderSeq:	"sp_stand_melee_left_V"
	engageAngleThreshold:	40
}






// ----- crawling stalker VS grunt ----- //
{
	attackerClass:	"stalker_crawling"
	defenderClass:	"human"
	attackerSeq:	"st_synced_melee_F_grunt_crawl"
	defenderSeq:	"pt_synced_melee_F_grunt_crawl"
	engageAngleThreshold:	70
}






// ----- stalker VS grunt ----- //
{
	attackerClass:	"stalker"
	defenderClass:	"human"
	attackerSeq:	"st_synced_melee_F_chestpunch_A"
	defenderSeq:	"pt_synced_melee_F_chestpunch_D"
	engageAngleThreshold:	70
}

{
	attackerClass:	"stalker"
	defenderClass:	"human"
	attackerSeq:	"st_synced_melee_F_facepunch"
	defenderSeq:	"pt_synced_melee_F_facepunch"
	engageAngleThreshold:	90
}

{
	attackerClass:	"stalker"
	defenderClass:	"human"
	attackerSeq:	"st_synced_melee_B_chestpunch_A"
	defenderSeq:	"pt_synced_melee_B_chestpunch_D"
	engageAngleThreshold:	90
}

{
	attackerClass:	"stalker"
	defenderClass:	"human"
	attackerSeq:	"st_synced_melee_F_spinepunch"
	defenderSeq:	"pt_synced_melee_B_spinepunch"
	engageAngleThreshold:	40
}






// ----- spectre VS grunt ----- //
{
	attackerClass:	"spectre"
	defenderClass:	"human"
	attackerSeq:	"sp_stand_melee_A"
	defenderSeq:	"pt_stand_melee_V"
	engageAngleThreshold:	70
}

{
	attackerClass:	"spectre"
	defenderClass:	"human"
	attackerSeq:	"sp_stand_melee_headrip_A"
	defenderSeq:	"pt_stand_melee_headrip_V"
	engageAngleThreshold:	70
}

{
	attackerClass:	"spectre"
	defenderClass:	"human"
	attackerSeq:	"sp_stand_melee_behind_A"
	defenderSeq:	"pt_stand_melee_behind_V"
	engageAngleThreshold:	70
}

{
	attackerClass:	"spectre"
	defenderClass:	"human"
	attackerSeq:	"sp_stand_melee_left_A"
	defenderSeq:	"pt_stand_melee_left_V"
	engageAngleThreshold:	40
}






// ----- prowler VS grunt ----- //
{
	attackerClass:	"prowler"
	defenderClass:	"human"
	attackerSeq:	"pr_grunt_attack_F"
	defenderSeq:	"pt_prowler_attack_F"
	engageAngleThreshold:	70
}






// ----- grunt VS pilot ----- //
{
	attackerClass:	"human"
	defenderClass:	"pilot_assassin"
	attackerSeq:	"pt_synced_melee_B_neckstab_V"
	defenderSeq:	"ninja_synced_melee_B_neckstab_A"
	engageAngleThreshold:	40
}

{
	attackerClass:	"human"
	defenderClass:	"pilot_assassin"
	attackerSeq:	"pt_synced_melee_R_chestleap_V"
	defenderSeq:	"ninja_synced_melee_R_chestleap_A"
	engageAngleThreshold:	40
}

{
	attackerClass:	"human"
	defenderClass:	"pilot_assassin"
	attackerSeq:	"pt_synced_melee_F_chestslam_V"
	defenderSeq:	"ninja_synced_melee_F_chestslam_A"
	engageAngleThreshold:	40
}

{
	attackerClass:	"human"
	defenderClass:	"pilot_assassin"
	attackerSeq:	"pt_synced_melee_F_chestkick_V"
	defenderSeq:	"ninja_synced_melee_F_chestkick_A"
	engageAngleThreshold:	40
}

{
	attackerClass:	"human"
	defenderClass:	"pilot_assassin"
	attackerSeq:	"pt_synced_melee_L_headcut_V"
	defenderSeq:	"ninja_synced_melee_L_headcut_A"
	engageAngleThreshold:	40
}






// ----- titan VS grunt ----- //
{
	attackerClass:	"titan"
	defenderClass:	"human"
	attackerSeq:	"at_synced_melee_F_toss_A"
	defenderSeq:	"pt_synced_melee_F_toss_V"
	engageAngleThreshold:	60
}

{
	attackerClass:	"titan"
	defenderClass:	"human"
	attackerSeq:	"at_synced_melee_B_toss_A"
	defenderSeq:	"pt_synced_melee_B_toss_V"
	engageAngleThreshold:	60
}






// ----- titan VS spectre ----- //
{
	attackerClass:	"titan"
	defenderClass:	"spectre"
	attackerSeq:	"at_synced_melee_F_toss_A"
	defenderSeq:	"pt_synced_melee_F_toss_V"
	engageAngleThreshold:	60
}

{
	attackerClass:	"titan"
	defenderClass:	"spectre"
	attackerSeq:	"at_synced_melee_B_toss_A"
	defenderSeq:	"pt_synced_melee_B_toss_V"
	engageAngleThreshold:	60
}






// ----- titan VS titan ----- //
{
	attackerClass:	"titan"
	defenderClass:	"titan"
	attackerSeq:	"mt_ai_sync_melee_kick_knockback_A"
	defenderSeq:	"mt_ai_sync_melee_kick_knockback_V"
	engageAngleThreshold:	60
	attackerSeq_sparselyAvailable:	true
	//defenderHealthThreshold_above:	0.3
}

{
	attackerClass:	"titan"
	defenderClass:	"titan"
	attackerSeq:	"mt_ai_synced_melee_kick_finisher_A"
	defenderSeq:	"mt_ai_synced_melee_kick_finisher_V"
	engageAngleThreshold:	90
	attackerSeq_sparselyAvailable:	true
	defenderHealthThreshold_below:	0.3
}

/*
{
	attackerClass:	"titan"
	defenderClass:	"titan"
	attackerSeq:	"at_synced_melee_F_bash_A"
	defenderSeq:	"at_synced_melee_F_bash_V"
	engageAngleThreshold:	60
}

{
	attackerClass:	"titan"
	defenderClass:	"titan"
	attackerSeq:	"at_synced_melee_F_punch_A"
	defenderSeq:	"at_synced_melee_F_punch_V"
	engageAngleThreshold:	60
}
*/
{
	attackerClass:	"titan"
	defenderClass:	"titan"
	attackerSeq:	"mt_ai_synced_finisher_B_armrip_A"
	defenderSeq:	"mt_ai_synced_finisher_B_armrip_V"
	engageAngleThreshold:	60
	defenderHealthThreshold_below:	0.3
}

{
	attackerClass:	"titan"
	defenderClass:	"titan"
	attackerSeq:	"mt_ai_synced_knockback_B_slam_A"
	defenderSeq:	"mt_ai_synced_knockback_B_slam_V"
	engageAngleThreshold:	60
}



// ----- BT VS titan (melee) ----- //
{
	attackerClass:	"titan_buddy"
	defenderClass:	"titan"
	attackerSeq:	"bt_synced_titan_uppercut_A"
	defenderSeq:	"titan_synced_bt_uppercut_D"
	engageAngleThreshold:	60
	defenderHealthThreshold_above:	0.3
}

{
	attackerClass:	"titan_buddy"
	defenderClass:	"titan"
	attackerSeq:	"bt_synced_titan_kickshoot_A"
	defenderSeq:	"titan_synced_bt_kickshoot_D"
	engageAngleThreshold:	60
	defenderHealthThreshold_above:	0.3
}

{
	attackerClass:	"titan_buddy"
	defenderClass:	"titan"
	attackerSeq:	"bt_synced_titan_2hitcombo_A"
	defenderSeq:	"titan_synced_bt_2hitcombo_D"
	engageAngleThreshold:	60
	defenderHealthThreshold_above:	0.3
}






// ----- BT VS titan (executions) ----- //
{
	attackerClass:	"titan_buddy"
	defenderClass:	"titan"
	attackerSeq:	"bt_synced_titan_execute_kickshoot_AI_A"
	defenderSeq:	"titan_synced_bt_execute_kickshoot_AI_V"
	engageAngleThreshold:	60
	defenderHealthThreshold_below:	0.3
}

{
	attackerClass:	"titan_buddy"
	defenderClass:	"titan"
	attackerSeq:	"bt_synced_titan_execute_flip_takedown_AI_A"
	defenderSeq:	"titan_synced_bt_execute_flip_takedown_AI_V"
	engageAngleThreshold:	60
	defenderHealthThreshold_below:	0.3
}

{
	attackerClass:	"titan_buddy"
	defenderClass:	"titan"
	attackerSeq:	"bt_synced_titan_execute_pilot_rip_A"
	defenderSeq:	"titan_synced_bt_execute_pilot_rip_V"
	engageAngleThreshold:	60
	defenderHealthThreshold_below:	0.3
}






// ----- titan VS BT (melee) ----- //
// generic titan
{
	attackerClass:	"titan"
	defenderClass:	"titan_buddy"
	attackerSeq:	"at_synced_melee_F_punch_A"
	defenderSeq:	"at_synced_melee_F_punch_V"
	engageAngleThreshold:	60
}

// medium titan only
{
	attackerClass:	"titan"
	defenderClass:	"titan_buddy"
	attackerSeq:	"mt_ai_sync_melee_kick_knockback_A"
	defenderSeq:	"bt_ai_sync_melee_kick_knockback_V"
	engageAngleThreshold:	60
	attackerSeq_sparselyAvailable:	true
	defenderHealthThreshold_above:	0.3
}






// ----- titan VS BT (executions) ----- //
// light titan only
{
	attackerClass:	"titan"
	defenderClass:	"titan_buddy"
	attackerSeq:	"lt_execution_attacker_sword_01"
	defenderSeq:	"bt_execution_victim_sword_01"
	engageAngleThreshold:	60
	attackerSeq_sparselyAvailable:	true
	defenderHealthThreshold_below:	0.3
}

// medium titan only
{
	attackerClass:	"titan"
	defenderClass:	"titan_buddy"
	attackerSeq:	"mt_ai_synced_melee_kick_finisher_A"
	defenderSeq:	"bt_ai_synced_melee_kick_finisher_V"
	engageAngleThreshold:	60
	attackerSeq_sparselyAvailable:	true
	defenderHealthThreshold_below:	0.3
}

{
	attackerClass:	"titan"
	defenderClass:	"titan_buddy"
	attackerSeq:	"mt_execution_attacker_laser"
	defenderSeq:	"bt_execution_victim_laser"
	engageAngleThreshold:	60
	attackerSeq_sparselyAvailable:	true
	defenderHealthThreshold_below:	0.3
}

{
	attackerClass:	"titan"
	defenderClass:	"titan_buddy"
	attackerSeq:	"mt_execution_attacker_tone"
	defenderSeq:	"bt_execution_victim_tone"
	engageAngleThreshold:	60
	attackerSeq_sparselyAvailable:	true
	defenderHealthThreshold_below:	0.3
}

// heavy titan only
{
	attackerClass:	"titan"
	defenderClass:	"titan_buddy"
	attackerSeq:	"htPRED_MP_Sync_Execution_attacker"
	defenderSeq:	"t_MeleeExecuted_By_htPred"
	engageAngleThreshold:	60
	attackerSeq_sparselyAvailable:	true
	defenderHealthThreshold_below:	0.3
}

{
	attackerClass:	"titan"
	defenderClass:	"titan_buddy"
	attackerSeq:	"htThermite_MP_Sync_Execution_attacker"
	defenderSeq:	"t_MeleeExecuted_By_htThermite"
	engageAngleThreshold:	60
	attackerSeq_sparselyAvailable:	true
	defenderHealthThreshold_below:	0.3
}






// ----- BT VS prowler (executions) ----- //
{
	attackerClass:	"prowler"
	defenderClass:	"titan_buddy"
	attackerSeq:	"prowler_synced_bt_front_01_A"
	defenderSeq:	"bt_synced_prowler_front_01_D"
	engageAngleThreshold:	45
}

{
	attackerClass:	"prowler"
	defenderClass:	"titan_buddy"
	attackerSeq:	"prowler_synced_bt_front_02_A"
	defenderSeq:	"bt_synced_prowler_front_02_D"
	engageAngleThreshold:	45
}

{
	attackerClass:	"prowler"
	defenderClass:	"titan_buddy"
	attackerSeq:	"prowler_synced_bt_45_left_A"
	defenderSeq:	"bt_synced_prowler_45_left_D"
	engageAngleThreshold:	45
}

{
	attackerClass:	"prowler"
	defenderClass:	"titan_buddy"
	attackerSeq:	"prowler_synced_bt_45_right_A"
	defenderSeq:	"bt_synced_prowler_45_right_D"
	engageAngleThreshold:	45
}

{
	attackerClass:	"prowler"
	defenderClass:	"titan_buddy"
	attackerSeq:	"prowler_synced_bt_90_left_A"
	defenderSeq:	"bt_synced_prowler_90_left_D"
	engageAngleThreshold:	45
}

{
	attackerClass:	"prowler"
	defenderClass:	"titan_buddy"
	attackerSeq:	"prowler_synced_bt_90_right_A"
	defenderSeq:	"bt_synced_prowler_90_right_D"
	engageAngleThreshold:	45
}

{
	attackerClass:	"prowler"
	defenderClass:	"titan_buddy"
	attackerSeq:	"prowler_synced_bt_135_left_A"
	defenderSeq:	"bt_synced_prowler_135_left_D"
	engageAngleThreshold:	45
}

{
	attackerClass:	"prowler"
	defenderClass:	"titan_buddy"
	attackerSeq:	"prowler_synced_bt_135_right_A"
	defenderSeq:	"bt_synced_prowler_135_right_D"
	engageAngleThreshold:	45
}

{
	attackerClass:	"prowler"
	defenderClass:	"titan_buddy"
	attackerSeq:	"prowler_synced_bt_back_01_A"
	defenderSeq:	"bt_synced_prowler_back_01_D"
	engageAngleThreshold:	45
}