﻿# All actions use the player character as ROOT. The active war is supplied only
# to the opening and sending actions; editing actions use the persisted context.

pde_open_treaty_gui = {
	scope = character
	saved_scopes = { war }
	is_valid = {
		exists = scope:war
		trigger_if = {
			limit = { exists = scope:war }
			scope:war = {
				OR = { primary_attacker = root primary_defender = root }
			}
		}
		trigger_else = { always = no }
	}
	effect = { pde_open_treaty_effect = yes }
}

# Gold — player offers
pde_offer_gold_add_1_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_offer_gold_add_1_effect = yes } }
pde_offer_gold_add_10_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_offer_gold_add_10_effect = yes } }
pde_offer_gold_add_100_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_offer_gold_add_100_effect = yes } }
pde_offer_gold_subtract_1_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_offer_gold_subtract_1_effect = yes } }
pde_offer_gold_subtract_10_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_offer_gold_subtract_10_effect = yes } }
pde_offer_gold_subtract_100_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_offer_gold_subtract_100_effect = yes } }
pde_offer_gold_max_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_offer_gold_max_effect = yes } }
pde_offer_gold_clear_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_offer_gold_clear_effect = yes } }

# Gold — player demands
pde_demand_gold_add_1_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_demand_gold_add_1_effect = yes } }
pde_demand_gold_add_10_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_demand_gold_add_10_effect = yes } }
pde_demand_gold_add_100_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_demand_gold_add_100_effect = yes } }
pde_demand_gold_subtract_1_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_demand_gold_subtract_1_effect = yes } }
pde_demand_gold_subtract_10_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_demand_gold_subtract_10_effect = yes } }
pde_demand_gold_subtract_100_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_demand_gold_subtract_100_effect = yes } }
pde_demand_gold_max_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_demand_gold_max_effect = yes } }
pde_demand_gold_clear_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_demand_gold_clear_effect = yes } }

# Herd â€” only between nomadic rulers
pde_toggle_offer_herd_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes pde_can_offer_herd_trigger = yes } effect = { pde_toggle_offer_herd_effect = yes } }
pde_offer_herd_add_10_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes pde_can_offer_herd_trigger = yes } effect = { pde_offer_herd_add_10_effect = yes } }
pde_offer_herd_add_100_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes pde_can_offer_herd_trigger = yes } effect = { pde_offer_herd_add_100_effect = yes } }
pde_offer_herd_subtract_10_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes pde_nomadic_herd_exchange_available_trigger = yes } effect = { pde_offer_herd_subtract_10_effect = yes } }
pde_offer_herd_subtract_100_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes pde_nomadic_herd_exchange_available_trigger = yes } effect = { pde_offer_herd_subtract_100_effect = yes } }
pde_offer_herd_max_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes pde_can_offer_herd_trigger = yes } effect = { pde_offer_herd_max_effect = yes } }
pde_offer_herd_clear_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_offer_herd_clear_effect = yes } }

pde_toggle_demand_herd_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes pde_can_demand_herd_trigger = yes } effect = { pde_toggle_demand_herd_effect = yes } }
pde_demand_herd_add_10_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes pde_can_demand_herd_trigger = yes } effect = { pde_demand_herd_add_10_effect = yes } }
pde_demand_herd_add_100_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes pde_can_demand_herd_trigger = yes } effect = { pde_demand_herd_add_100_effect = yes } }
pde_demand_herd_subtract_10_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes pde_nomadic_herd_exchange_available_trigger = yes } effect = { pde_demand_herd_subtract_10_effect = yes } }
pde_demand_herd_subtract_100_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes pde_nomadic_herd_exchange_available_trigger = yes } effect = { pde_demand_herd_subtract_100_effect = yes } }
pde_demand_herd_max_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes pde_can_demand_herd_trigger = yes } effect = { pde_demand_herd_max_effect = yes } }
pde_demand_herd_clear_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_demand_herd_clear_effect = yes } }
# Directional clauses
pde_toggle_offer_tribute_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes NOT = { has_variable = pde_tribute_receiver } } effect = { pde_toggle_offer_tribute_effect = yes } }
pde_toggle_demand_tribute_gui = {
	scope = character
	is_valid = {
		pde_treaty_is_editable_trigger = yes
		has_variable = pde_treaty_opponent
		trigger_if = {
			limit = { has_variable = pde_treaty_opponent }
			var:pde_treaty_opponent = { NOT = { has_variable = pde_tribute_receiver } }
		}
		trigger_else = { always = no }
	}
	effect = { pde_toggle_demand_tribute_effect = yes }
}
pde_toggle_offer_suzerainty_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes custom_tooltip = { text = pde_clause_suzerainty_offer_tt pde_can_become_tributary_of_opponent_trigger = yes } } effect = { pde_toggle_offer_suzerainty_effect = yes } }
pde_toggle_demand_suzerainty_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes custom_tooltip = { text = pde_clause_suzerainty_demand_tt pde_opponent_can_become_tributary_trigger = yes } } effect = { pde_toggle_demand_suzerainty_effect = yes } }
pde_toggle_offer_claims_gui = {
	scope = character
	is_valid = {
		pde_treaty_is_editable_trigger = yes
		OR = {
			has_variable = pde_offer_claims
			AND = {
				has_variable = pde_treaty_opponent
				any_claim = {
					explicit = yes
					exists = holder
					holder = { top_liege = root.var:pde_treaty_opponent }
				}
			}
		}
	}
	effect = { pde_toggle_offer_claims_effect = yes }
}
pde_toggle_demand_claims_gui = {
	scope = character
	is_valid = {
		pde_treaty_is_editable_trigger = yes
		OR = {
			has_variable = pde_demand_claims
			AND = {
				has_variable = pde_treaty_opponent
				var:pde_treaty_opponent = {
					any_claim = {
						explicit = yes
						exists = holder
						holder = { top_liege = root }
					}
				}
			}
		}
	}
	effect = { pde_toggle_demand_claims_effect = yes }
}
pde_toggle_offer_hostage_gui = {
	scope = character
	is_valid = {
		pde_treaty_is_editable_trigger = yes
		OR = {
			has_variable = pde_offer_hostage
			any_close_family_member = {
				bp2_valid_to_offer_as_hostage_trigger = { SENDER = root }
			}
		}
	}
	effect = { pde_toggle_offer_hostage_effect = yes }
}
pde_toggle_demand_hostage_gui = {
	scope = character
	is_valid = {
		pde_treaty_is_editable_trigger = yes
		OR = {
			has_variable = pde_demand_hostage
			AND = {
				has_variable = pde_treaty_opponent
				var:pde_treaty_opponent = {
					any_close_family_member = {
						bp2_valid_to_offer_as_hostage_trigger = { SENDER = root.var:pde_treaty_opponent }
					}
				}
			}
		}
	}
	effect = { pde_toggle_demand_hostage_effect = yes }
}
pde_toggle_offer_break_alliances_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes OR = { has_variable = pde_offer_break_alliances any_ally = { always = yes } } } effect = { pde_toggle_offer_break_alliances_effect = yes } }
pde_toggle_demand_break_alliances_gui = {
	scope = character
	is_valid = {
		pde_treaty_is_editable_trigger = yes
		OR = {
			has_variable = pde_demand_break_alliances
			AND = {
				has_variable = pde_treaty_opponent
				var:pde_treaty_opponent = { any_ally = { always = yes } }
			}
		}
	}
	effect = { pde_toggle_demand_break_alliances_effect = yes }
}
pde_toggle_offer_humiliation_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_toggle_offer_humiliation_effect = yes } }
pde_toggle_demand_humiliation_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_toggle_demand_humiliation_effect = yes } }
pde_toggle_offer_prisoner_release_gui = {
	scope = character
	is_valid = {
		pde_treaty_is_editable_trigger = yes
		OR = {
			has_variable = pde_offer_prisoner_release
			AND = {
				has_variable = pde_treaty_opponent
				any_prisoner = { is_close_family_of = root.var:pde_treaty_opponent }
			}
		}
	}
	effect = { pde_toggle_offer_prisoner_release_effect = yes }
}
pde_toggle_demand_prisoner_release_gui = {
	scope = character
	is_valid = {
		pde_treaty_is_editable_trigger = yes
		OR = {
			has_variable = pde_demand_prisoner_release
			AND = {
				has_variable = pde_treaty_opponent
				var:pde_treaty_opponent = {
					any_prisoner = { is_close_family_of = root }
				}
			}
		}
	}
	effect = { pde_toggle_demand_prisoner_release_effect = yes }
}
pde_toggle_offer_conversion_gui = {
	scope = character
	is_valid = {
		pde_treaty_is_editable_trigger = yes
		OR = {
			has_variable = pde_offer_conversion
			AND = {
				has_variable = pde_treaty_opponent
				var:pde_treaty_opponent = { NOT = { faith = root.faith } }
			}
		}
	}
	effect = { pde_toggle_offer_conversion_effect = yes }
}
pde_toggle_demand_conversion_gui = {
	scope = character
	is_valid = {
		pde_treaty_is_editable_trigger = yes
		OR = {
			has_variable = pde_demand_conversion
			AND = {
				has_variable = pde_treaty_opponent
				var:pde_treaty_opponent = {
					NOT = { faith = root.faith }
				}
			}
		}
	}
	effect = { pde_toggle_demand_conversion_effect = yes }
}
pde_toggle_offer_disarmament_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_toggle_offer_disarmament_effect = yes } }
pde_toggle_demand_disarmament_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_toggle_demand_disarmament_effect = yes } }
pde_toggle_forced_alliance_gui = {
	scope = character
	is_valid = {
		pde_treaty_is_editable_trigger = yes
		OR = {
			has_variable = pde_forced_alliance
			AND = {
				has_variable = pde_treaty_opponent
				is_independent_ruler = yes
				NOT = { is_allied_to = var:pde_treaty_opponent }
				var:pde_treaty_opponent = { is_independent_ruler = yes }
			}
		}
	}
	effect = { pde_toggle_forced_alliance_effect = yes }
}
pde_toggle_long_truce_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_toggle_long_truce_effect = yes } }
pde_toggle_extended_truce_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_toggle_extended_truce_effect = yes } }
pde_clear_offer_counties_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_clear_offer_counties_effect = yes } }
pde_clear_demand_counties_gui = { scope = character is_valid = { pde_treaty_is_editable_trigger = yes } effect = { pde_clear_demand_counties_effect = yes } }

# Territorial selection. ROOT remains the player character and each list row
# supplies its county title as scope:county.
pde_begin_offer_land_selection_gui = {
	scope = character
	is_valid = { pde_treaty_is_editable_trigger = yes }
	effect = { set_variable = { name = pde_land_selection_mode value = 1 } }
}

pde_begin_demand_land_selection_gui = {
	scope = character
	is_valid = { pde_treaty_is_editable_trigger = yes }
	effect = { set_variable = { name = pde_land_selection_mode value = 2 } }
}

pde_end_land_selection_gui = {
	scope = character
	is_valid = { has_variable = pde_land_selection_mode }
	effect = { remove_variable = pde_land_selection_mode }
}

pde_map_offer_county_toggle_gui = {
	scope = character
	saved_scopes = { county }
	is_shown = {
		pde_treaty_is_editable_trigger = yes
		exists = scope:county
		scope:county = {
			tier = tier_county
			is_landless_type_title = no
			is_noble_family_title = no
			exists = holder
			holder = { top_liege = root }
			NOT = { this = root.capital_county }
		}
	}
	is_valid = {
		pde_treaty_is_editable_trigger = yes
		exists = scope:county
		OR = {
			is_target_in_variable_list = { name = pde_offer_counties target = scope:county }
			AND = {
				pde_offer_county_count_value < 5
				pde_offer_county_count_value < realm_size
			}
		}
	}
	effect = {
		if = {
			limit = { is_target_in_variable_list = { name = pde_offer_counties target = scope:county } }
			remove_list_variable = { name = pde_offer_counties target = scope:county }
		}
		else = { add_to_variable_list = { name = pde_offer_counties target = scope:county } }
	}
}

pde_map_offer_county_selected_gui = {
	scope = character
	saved_scopes = { county }
	is_shown = { is_target_in_variable_list = { name = pde_offer_counties target = scope:county } }
}

pde_map_demand_county_toggle_gui = {
	scope = character
	saved_scopes = { county }
	is_shown = {
		pde_treaty_is_editable_trigger = yes
		has_variable = pde_treaty_opponent
		exists = scope:county
		scope:county = {
			tier = tier_county
			is_landless_type_title = no
			is_noble_family_title = no
			exists = holder
		}
		trigger_if = {
			limit = { has_variable = pde_treaty_opponent }
			scope:county = { holder = { top_liege = root.var:pde_treaty_opponent } }
		}
		trigger_else = { always = no }
	}
	is_valid = {
		pde_treaty_is_editable_trigger = yes
		has_variable = pde_treaty_opponent
		exists = scope:county
		OR = {
			is_target_in_variable_list = { name = pde_demand_counties target = scope:county }
			AND = {
				pde_demand_county_count_value < 5
				trigger_if = {
					limit = { has_variable = pde_treaty_opponent }
					var:pde_treaty_opponent = { root.pde_demand_county_count_value < realm_size }
				}
				trigger_else = { always = no }
			}
		}
	}
	effect = {
		if = {
			limit = { is_target_in_variable_list = { name = pde_demand_counties target = scope:county } }
			remove_list_variable = { name = pde_demand_counties target = scope:county }
		}
		else = { add_to_variable_list = { name = pde_demand_counties target = scope:county } }
	}
}

pde_map_demand_county_selected_gui = {
	scope = character
	saved_scopes = { county }
	is_shown = { is_target_in_variable_list = { name = pde_demand_counties target = scope:county } }
}

pde_send_treaty_gui = {
	scope = character
	saved_scopes = { war }
	is_valid = {
		has_variable = pde_treaty_war
		has_variable = pde_treaty_opponent
		has_variable = pde_offer_gold
		has_variable = pde_demand_gold
		has_variable = pde_offer_herd
		has_variable = pde_demand_herd
		trigger_if = {
			limit = {
				has_variable = pde_treaty_war
				has_variable = pde_treaty_opponent
				has_variable = pde_offer_gold
				has_variable = pde_demand_gold
				has_variable = pde_offer_herd
				has_variable = pde_demand_herd
			}
			pde_treaty_is_editable_trigger = yes
			var:pde_treaty_war = scope:war
			custom_tooltip = { text = pde_at_least_one_clause_tt pde_has_any_treaty_clause_trigger = yes }
			custom_tooltip = { text = pde_gold_caps_valid_tt var:pde_offer_gold <= pde_max_offer_gold_value var:pde_demand_gold <= pde_max_demand_gold_value }
			custom_tooltip = { text = pde_herd_caps_valid_tt var:pde_offer_herd <= pde_max_offer_herd_value var:pde_demand_herd <= pde_max_demand_herd_value }
			custom_tooltip = {
				text = pde_ai_will_accept_tt
				OR = {
					var:pde_treaty_opponent = { is_ai = no }
					pde_deal_acceptance_value >= 0
				}
			}
		}
		trigger_else = { always = no }
	}
	effect = {
		hidden_effect = {
			if = {
				limit = {
					has_variable = pde_treaty_opponent
					var:pde_treaty_opponent = { is_ai = yes }
				}
				pde_end_negotiated_war_effect = yes
				pde_apply_negotiated_treaty_effect = yes
			}
			else_if = {
				limit = { has_variable = pde_treaty_opponent }
				set_variable = { name = pde_treaty_locked value = 1 }
				var:pde_treaty_opponent = {
					set_variable = { name = pde_pending_treaty_proposer value = root }
					trigger_event = { id = peace_deals_expanded.0200 }
				}
			}
		}
	}
}
