# -----------------------------------------------------------------------------
# AI territory selection
# -----------------------------------------------------------------------------

# ROOT = AI proposer. Candidate lists were created by pde_open_treaty_effect.
# Claims and counties bordering ROOT's realm receive a strong preference.
pde_ai_select_demand_county_effect = {
	random_in_list = {
		list = pde_demand_candidates
		limit = {
			NOT = { this = scope:pde_ai_opponent.capital_county }
		}
		weight = {
			base = 10
			modifier = {
				add = 90
				root = { has_claim_on = prev }
			}
			modifier = {
				add = 50
				any_neighboring_county = {
					exists = holder
					holder = { top_liege = root }
				}
			}
		}
		save_scope_as = pde_ai_selected_county
	}
	if = {
		limit = { exists = scope:pde_ai_selected_county }
		add_to_variable_list = {
			name = pde_demand_counties
			target = scope:pde_ai_selected_county
		}
	}
}

pde_ai_select_offer_county_effect = {
	random_in_list = {
		list = pde_offer_candidates
		weight = {
			base = 10
			modifier = {
				add = 90
				scope:pde_ai_opponent = { has_claim_on = prev }
			}
			modifier = {
				add = 50
				any_neighboring_county = {
					exists = holder
					holder = { top_liege = scope:pde_ai_opponent }
				}
			}
		}
		save_scope_as = pde_ai_selected_county
	}
	if = {
		limit = { exists = scope:pde_ai_selected_county }
		add_to_variable_list = {
			name = pde_offer_counties
			target = scope:pde_ai_selected_county
		}
	}
}

# -----------------------------------------------------------------------------
# AI resource selection
# -----------------------------------------------------------------------------

pde_ai_set_max_demand_resource_effect = {
	if = { limit = { pde_ai_can_demand_herd_trigger = yes } set_variable = { name = pde_demand_herd value = pde_max_demand_herd_value } }
	else = { set_variable = { name = pde_demand_gold value = pde_max_demand_gold_value } }
}

pde_ai_set_half_demand_resource_effect = {
	if = { limit = { pde_ai_can_demand_herd_trigger = yes } set_variable = { name = pde_demand_herd value = pde_ai_half_demand_herd_value } }
	else = { set_variable = { name = pde_demand_gold value = pde_ai_half_demand_gold_value } }
}

pde_ai_set_quarter_demand_resource_effect = {
	if = { limit = { pde_ai_can_demand_herd_trigger = yes } set_variable = { name = pde_demand_herd value = pde_ai_quarter_demand_herd_value } }
	else = { set_variable = { name = pde_demand_gold value = pde_ai_quarter_demand_gold_value } }
}

pde_ai_set_max_offer_resource_effect = {
	if = { limit = { pde_ai_can_offer_herd_trigger = yes } set_variable = { name = pde_offer_herd value = pde_max_offer_herd_value } }
	else = { set_variable = { name = pde_offer_gold value = pde_max_offer_gold_value } }
}

pde_ai_set_half_offer_resource_effect = {
	if = { limit = { pde_ai_can_offer_herd_trigger = yes } set_variable = { name = pde_offer_herd value = pde_ai_half_offer_herd_value } }
	else = { set_variable = { name = pde_offer_gold value = pde_ai_half_offer_gold_value } }
}

pde_ai_set_quarter_offer_resource_effect = {
	if = { limit = { pde_ai_can_offer_herd_trigger = yes } set_variable = { name = pde_offer_herd value = pde_ai_quarter_offer_herd_value } }
	else = { set_variable = { name = pde_offer_gold value = pde_ai_quarter_offer_gold_value } }
}
# -----------------------------------------------------------------------------
# Winning-side packages
# -----------------------------------------------------------------------------

pde_ai_compose_overwhelming_demands_effect = {
	set_variable = { name = pde_extended_truce value = 1 }
	random_list = {
		20 = {
			trigger = { pde_opponent_can_become_tributary_trigger = yes }
			set_variable = { name = pde_demand_suzerainty value = 1 }
		}
		25 = {
			trigger = { pde_ai_can_demand_county_trigger = yes }
			pde_ai_select_demand_county_effect = yes
			if = {
				limit = { pde_ai_can_demand_tribute_trigger = yes }
				set_variable = { name = pde_demand_tribute value = 1 }
			}
			set_variable = { name = pde_demand_humiliation value = 1 }
		}
		20 = {
			trigger = { pde_ai_can_demand_conversion_trigger = yes }
			set_variable = { name = pde_demand_conversion value = 1 }
			set_variable = { name = pde_demand_disarmament value = 1 }
		}
		20 = {
			set_variable = { name = pde_demand_disarmament value = 1 }
			set_variable = { name = pde_demand_humiliation value = 1 }
			if = {
				limit = { pde_ai_can_demand_claims_trigger = yes }
				set_variable = { name = pde_demand_claims value = 1 }
			}
		}
		15 = {
			pde_ai_set_max_demand_resource_effect = yes
			if = {
				limit = { pde_ai_can_demand_claims_trigger = yes }
				set_variable = { name = pde_demand_claims value = 1 }
			}
		}
	}
}

pde_ai_compose_major_demands_effect = {
	set_variable = { name = pde_long_truce value = 1 }
	random_list = {
		25 = {
			trigger = { pde_ai_can_demand_county_trigger = yes }
			pde_ai_select_demand_county_effect = yes
			if = {
				limit = { pde_ai_can_demand_tribute_trigger = yes }
				set_variable = { name = pde_demand_tribute value = 1 }
			}
		}
		20 = {
			trigger = { pde_ai_can_demand_conversion_trigger = yes }
			set_variable = { name = pde_demand_conversion value = 1 }
		}
		20 = {
			set_variable = { name = pde_demand_disarmament value = 1 }
			set_variable = { name = pde_demand_humiliation value = 1 }
		}
		20 = {
			trigger = { pde_ai_can_demand_tribute_trigger = yes }
			set_variable = { name = pde_demand_tribute value = 1 }
			if = {
				limit = { pde_ai_can_demand_claims_trigger = yes }
				set_variable = { name = pde_demand_claims value = 1 }
			}
		}
		15 = {
			pde_ai_set_max_demand_resource_effect = yes
		}
	}
}

pde_ai_compose_moderate_demands_effect = {
	set_variable = { name = pde_long_truce value = 1 }
	random_list = {
		25 = {
			trigger = { pde_ai_can_demand_county_trigger = yes }
			pde_ai_select_demand_county_effect = yes
			pde_ai_set_quarter_demand_resource_effect = yes
		}
		25 = {
			trigger = { pde_ai_can_demand_tribute_trigger = yes }
			set_variable = { name = pde_demand_tribute value = 1 }
		}
		20 = {
			set_variable = { name = pde_demand_disarmament value = 1 }
		}
		15 = {
			set_variable = { name = pde_demand_humiliation value = 1 }
			if = {
				limit = { pde_ai_can_demand_prisoners_trigger = yes }
				set_variable = { name = pde_demand_prisoner_release value = 1 }
			}
		}
		15 = {
			pde_ai_set_half_demand_resource_effect = yes
		}
	}
}

pde_ai_compose_minor_demands_effect = {
	set_variable = { name = pde_long_truce value = 1 }
	random_list = {
		25 = {
			set_variable = { name = pde_demand_humiliation value = 1 }
		}
		20 = {
			trigger = { pde_ai_can_demand_claims_trigger = yes }
			set_variable = { name = pde_demand_claims value = 1 }
		}
		15 = {
			trigger = { pde_ai_can_demand_hostage_trigger = yes }
			set_variable = { name = pde_demand_hostage value = 1 }
		}
		15 = {
			trigger = { pde_ai_can_demand_prisoners_trigger = yes }
			set_variable = { name = pde_demand_prisoner_release value = 1 }
		}
		15 = {
			trigger = { pde_ai_can_demand_break_alliances_trigger = yes }
			set_variable = { name = pde_demand_break_alliances value = 1 }
		}
		10 = {
			pde_ai_set_quarter_demand_resource_effect = yes
		}
	}
}

# -----------------------------------------------------------------------------
# Losing-side packages
# -----------------------------------------------------------------------------

# Complete-defeat packages are defined in zz_pde_ai_balance_effects.txt.

pde_ai_compose_major_concessions_effect = {
	set_variable = { name = pde_long_truce value = 1 }
	random_list = {
		20 = {
			trigger = { pde_can_become_tributary_of_opponent_trigger = yes }
			set_variable = { name = pde_offer_suzerainty value = 1 }
		}
		25 = {
			trigger = { pde_ai_can_offer_county_trigger = yes }
			pde_ai_select_offer_county_effect = yes
			if = {
				limit = { pde_ai_can_offer_tribute_trigger = yes }
				set_variable = { name = pde_offer_tribute value = 1 }
			}
			set_variable = { name = pde_offer_humiliation value = 1 }
		}
		20 = {
			trigger = { pde_ai_can_offer_conversion_trigger = yes }
			set_variable = { name = pde_offer_conversion value = 1 }
			if = {
				limit = { pde_ai_can_offer_tribute_trigger = yes }
				set_variable = { name = pde_offer_tribute value = 1 }
			}
		}
		20 = {
			set_variable = { name = pde_offer_disarmament value = 1 }
			set_variable = { name = pde_offer_humiliation value = 1 }
			if = {
				limit = { pde_ai_can_offer_tribute_trigger = yes }
				set_variable = { name = pde_offer_tribute value = 1 }
			}
		}
		15 = {
			pde_ai_set_max_offer_resource_effect = yes
			if = {
				limit = { pde_ai_can_offer_tribute_trigger = yes }
				set_variable = { name = pde_offer_tribute value = 1 }
			}
		}
	}
}

pde_ai_compose_moderate_concessions_effect = {
	set_variable = { name = pde_long_truce value = 1 }
	random_list = {
		25 = {
			pde_ai_set_max_offer_resource_effect = yes
		}
		25 = {
			trigger = { pde_ai_can_offer_tribute_trigger = yes }
			set_variable = { name = pde_offer_tribute value = 1 }
			set_variable = { name = pde_offer_humiliation value = 1 }
		}
		20 = {
			trigger = { pde_ai_can_offer_county_trigger = yes }
			pde_ai_select_offer_county_effect = yes
			if = {
				limit = { pde_ai_can_offer_tribute_trigger = yes }
				set_variable = { name = pde_offer_tribute value = 1 }
			}
		}
		20 = {
			set_variable = { name = pde_offer_disarmament value = 1 }
			set_variable = { name = pde_offer_humiliation value = 1 }
		}
		10 = {
			trigger = { pde_ai_can_offer_conversion_trigger = yes }
			set_variable = { name = pde_offer_conversion value = 1 }
			if = {
				limit = { pde_ai_can_offer_prisoners_trigger = yes }
				set_variable = { name = pde_offer_prisoner_release value = 1 }
			}
		}
	}
}

pde_ai_compose_minor_concessions_effect = {
	set_variable = { name = pde_long_truce value = 1 }
	random_list = {
		25 = {
			trigger = { pde_ai_can_offer_tribute_trigger = yes }
			set_variable = { name = pde_offer_tribute value = 1 }
		}
		20 = {
			set_variable = { name = pde_offer_disarmament value = 1 }
		}
		20 = {
			set_variable = { name = pde_offer_humiliation value = 1 }
			if = {
				limit = { pde_ai_can_offer_prisoners_trigger = yes }
				set_variable = { name = pde_offer_prisoner_release value = 1 }
			}
		}
		15 = {
			trigger = { pde_ai_can_offer_county_trigger = yes }
			pde_ai_select_offer_county_effect = yes
			pde_ai_set_quarter_offer_resource_effect = yes
		}
		10 = {
			trigger = { pde_ai_can_offer_claims_trigger = yes }
			set_variable = { name = pde_offer_claims value = 1 }
			set_variable = { name = pde_offer_humiliation value = 1 }
		}
		10 = {
			pde_ai_set_max_offer_resource_effect = yes
		}
	}
}

# ROOT = AI proposer with scope:war and scope:pde_ai_opponent available.
pde_ai_compose_treaty_effect = {
	if = {
		limit = { pde_actor_warscore_value >= 75 }
		pde_ai_compose_overwhelming_demands_effect = yes
	}
	else_if = {
		limit = { pde_actor_warscore_value >= 50 }
		pde_ai_compose_major_demands_effect = yes
	}
	else_if = {
		limit = { pde_actor_warscore_value >= 30 }
		pde_ai_compose_moderate_demands_effect = yes
	}
	else_if = {
		limit = { pde_actor_warscore_value >= 15 }
		pde_ai_compose_minor_demands_effect = yes
	}
	else_if = {
		limit = { pde_actor_warscore_value <= -75 }
		pde_ai_compose_desperate_concessions_effect = yes
	}
	else_if = {
		limit = { pde_actor_warscore_value <= -50 }
		pde_ai_compose_major_concessions_effect = yes
	}
	else_if = {
		limit = { pde_actor_warscore_value <= -30 }
		pde_ai_compose_moderate_concessions_effect = yes
	}
	else_if = {
		limit = { pde_actor_warscore_value <= -15 }
		pde_ai_compose_minor_concessions_effect = yes
	}
}
