﻿namespace = nmt_marriage

# A new marriage/betrothal tie with a foreign ruler was found. Ask the player what to do about it.
# Saved scopes passed in: nmt_player, nmt_ruler, nmt_through_owner, nmt_through_target
nmt_marriage.0001 = {
	# Also reject old, queued courtier-only choices after upgrading.
	trigger = {
		# Drop stale queued choices if the couple is now a direct ruler union.
		NOT = { nmt_direct_ruler_union_trigger = { RULER = scope:nmt_ruler } }

		exists = scope:nmt_through_owner
		scope:nmt_through_owner = {
			nmt_spouse_reaches_player_trigger = { PLAYER = root }
		}
	}
	on_trigger_fail = {
		if = {
			limit = { exists = scope:nmt_ruler }
			remove_list_variable = {
				name = nmt_pending_partners_v2
				target = scope:nmt_ruler
			}
		}

		if = {
			limit = { nmt_direct_ruler_union_trigger = { RULER = scope:nmt_ruler } }
			nmt_handle_direct_ruler_union_effect = { RULER = scope:nmt_ruler }
		}
	}

	immediate = { set_variable = nmt_trace_delivered }
	type = character_event
	title = nmt_marriage.0001.t
	desc = {
		desc = nmt_info_popup_intro
		first_valid = {
			triggered_desc = {
				trigger = { root = scope:nmt_through_owner }
				desc = nmt_info_player_is_spouse
			}
			desc = nmt_info_player_family
		}
		first_valid = {
			triggered_desc = {
				trigger = { scope:nmt_through_target = scope:nmt_ruler }
				desc = nmt_info_ruler_is_spouse
			}
			desc = nmt_info_foreign_connection
		}
		triggered_desc = {
			trigger = {
				nmt_other_tie_with_ruler_trigger = { RULER = scope:nmt_ruler TARGET = scope:nmt_through_target }
			}
			desc = nmt_info_other_couples
		}
		first_valid = {
			triggered_desc = {
				trigger = { exists = scope:nmt_ruler scope:nmt_ruler = { is_at_war = yes } }
				desc = nmt_info_war_active
			}
			triggered_desc = {
				trigger = { exists = scope:nmt_ruler }
				desc = nmt_info_war_peace
			}
			desc = nmt_info_war_unknown
		}
		desc = nmt_info_popup_question
	}
	theme = diplomacy

	left_portrait = {
		character = root
		animation = idle
	}
	right_portrait = {
		character = scope:nmt_ruler
		animation = idle
	}

	# Alliance
	option = {
		name = nmt_marriage.0001.a
		nmt_mark_choice_completed_effect = { RULER = scope:nmt_ruler }
		nmt_apply_alliance_effect = {
			RULER = scope:nmt_ruler
			PLAYER = root
			OWNER = scope:nmt_through_owner
			TARGET = scope:nmt_through_target
		}
	}

	# Truce only
	option = {
		name = nmt_marriage.0001.b
		# Also protect an already-open choice loaded from an older save.
		trigger = { NOT = { nmt_direct_ruler_union_trigger = { RULER = scope:nmt_ruler } } }

		nmt_mark_choice_completed_effect = { RULER = scope:nmt_ruler }
		nmt_apply_truce_effect = {
			RULER = scope:nmt_ruler
			PLAYER = root
		}
	}

	# Neither
	option = {
		name = nmt_marriage.0001.c
		# Also protect an already-open choice loaded from an older save.
		trigger = { NOT = { nmt_direct_ruler_union_trigger = { RULER = scope:nmt_ruler } } }

		nmt_mark_choice_completed_effect = { RULER = scope:nmt_ruler }
		# No alliance wanted: cancel one the game made by itself, and remember the choice.
		nmt_apply_neither_effect = { RULER = scope:nmt_ruler PLAYER = root }
	}
}

# Always-open diagnostics event. A button press in Decisions triggers this.
nmt_marriage.0099 = {
	type = character_event
	title = nmt_marriage.0099.t
	desc = nmt_marriage.0099.desc
	theme = diplomacy
	left_portrait = {
		character = root
		animation = idle
	}
	option = { name = nmt_marriage.0099.a }
}

# Explains what a review will do before scanning.
nmt_marriage.0098 = {
	type = character_event
	title = nmt_marriage.0098.t
	desc = nmt_marriage.0098.desc
	theme = diplomacy
	left_portrait = { character = root animation = idle }
	option = {
		name = nmt_marriage.0098.a
		nmt_manual_review_effect = yes
	}
	option = { name = nmt_marriage.0098.b }
}

# No family members are married/betrothed at all.
nmt_marriage.0097 = {
	type = character_event
	title = nmt_marriage.0097.t
	desc = nmt_marriage.0097.desc
	theme = diplomacy
	left_portrait = { character = root animation = idle }
	option = { name = nmt_marriage.0097.a }
}

# Ties exist, but no foreign landed in-law ruler met the conditions.
nmt_marriage.0096 = {
	type = character_event
	title = nmt_marriage.0096.t
	desc = nmt_marriage.0096.desc
	theme = diplomacy
	left_portrait = { character = root animation = idle }
	option = { name = nmt_marriage.0096.a }
}

# Ties exist, but they were already marked as offered/handled in an earlier scan.
nmt_marriage.0095 = {
	type = character_event
	title = nmt_marriage.0095.t
	desc = nmt_marriage.0095.desc
	theme = diplomacy
	left_portrait = { character = root animation = idle }
	option = { name = nmt_marriage.0095.a }
	option = {
		name = nmt_marriage.0095.b
		trigger = { has_variable = nmt_verbose_debug }
		# TEST SAVES ONLY: this restores prompts for all still-valid in-law rulers.
		# An existing truce is not cancelled here.
		clear_variable_list = nmt_partners_v2
		clear_variable_list = nmt_pending_partners_v2
		nmt_manual_review_effect = yes
	}
}


# Settings menu. The current choice policy and debug state display
# in the description. All settings are saved on the human ruler.
nmt_marriage.0100 = {
	type = character_event
	title = nmt_marriage.0100.t
	desc = {
		first_valid = {
			triggered_desc = {
				trigger = { has_variable = nmt_policy_manual_choice }
				desc = nmt_marriage.0100.policy_manual
			}
			triggered_desc = {
				trigger = { has_variable = nmt_policy_auto_alliance }
				desc = nmt_marriage.0100.policy_alliance
			}
			triggered_desc = {
				trigger = { has_variable = nmt_policy_auto_truce }
				desc = nmt_marriage.0100.policy_truce
			}
			triggered_desc = {
				trigger = { has_variable = nmt_policy_auto_neither }
				desc = nmt_marriage.0100.policy_neither
			}
			desc = nmt_marriage.0100.policy_manual
		}
		desc = nmt_marriage.0100.intro
		desc = nmt_policy_inheritance_settings_note
		first_valid = {
			triggered_desc = {
				trigger = { has_variable = nmt_verbose_debug }
				desc = nmt_marriage.0100.debug_on
			}
			desc = nmt_marriage.0100.debug_off
		}
	}
	theme = diplomacy
	left_portrait = { character = root animation = idle }
	option = {
		name = nmt_marriage.0100.a
		nmt_clear_diplomacy_policy_effect = yes
		# Persistent explicit selection, even if a migrated save has stale variables.
		set_variable = nmt_policy_manual_choice
	}
	option = {
		name = nmt_marriage.0100.b
		nmt_clear_diplomacy_policy_effect = yes
		set_variable = nmt_policy_auto_truce
	}
	option = {
		name = nmt_marriage.0100.c
		nmt_clear_diplomacy_policy_effect = yes
		set_variable = nmt_policy_auto_neither
	}
	option = {
		name = nmt_marriage.0100.d
		nmt_clear_diplomacy_policy_effect = yes
		set_variable = nmt_policy_auto_alliance
	}
	option = {
		name = nmt_marriage.0100.e
		trigger = { NOT = { has_variable = nmt_verbose_debug } }
		set_variable = nmt_verbose_debug
	}
	option = {
		name = nmt_marriage.0100.f
		trigger = { has_variable = nmt_verbose_debug }
		remove_variable = nmt_verbose_debug
	}
	option = { name = nmt_marriage.0100.g }
}

# Test-only reset, used when the existing playthrough has
# already reviewed every foreign in-law under automatic policy.
nmt_marriage.0101 = {
	type = character_event
	title = nmt_marriage.0101.t
	desc = nmt_marriage.0101.desc
	theme = diplomacy
	left_portrait = { character = root animation = idle }
	option = {
		name = nmt_marriage.0101.a
		trigger = { has_variable = nmt_verbose_debug }
		nmt_clear_diplomacy_policy_effect = yes
		set_variable = nmt_policy_manual_choice
		clear_variable_list = nmt_partners_v2
		clear_variable_list = nmt_pending_partners_v2
		trigger_event = { id = nmt_marriage.0098 }
	}
	option = { name = nmt_marriage.0101.b }
}

# Diagnostic markers record progress since the player last cleared them.
# They do not clear policy, completed history, or pending popup locks.
nmt_marriage.0102 = {
	type = character_event
	title = nmt_trace.title
	desc = {
		desc = nmt_trace.intro
		first_valid = {
			triggered_desc = {
				trigger = { has_variable = nmt_trace_direct_union }
				desc = nmt_trace.direct_union
			}
			triggered_desc = {
				trigger = { has_variable = nmt_trace_delivered }
				desc = nmt_trace.delivered
			}
			triggered_desc = {
				trigger = { has_variable = nmt_trace_queued }
				desc = nmt_trace.queued
			}
			triggered_desc = {
				trigger = { has_variable = nmt_trace_auto }
				desc = nmt_trace.auto
			}
			triggered_desc = {
				trigger = { has_variable = nmt_trace_reviewed }
				desc = nmt_trace.reviewed
			}
			triggered_desc = {
				trigger = { has_variable = nmt_trace_pending }
				desc = nmt_trace.pending
			}
			triggered_desc = {
				trigger = { has_variable = nmt_trace_found }
				desc = nmt_trace.found
			}
			triggered_desc = {
				trigger = { has_variable = nmt_trace_wedding }
				desc = nmt_trace.wedding
			}
			triggered_desc = {
				trigger = { has_variable = nmt_trace_scan }
				desc = nmt_trace.scan
			}
			desc = nmt_trace.none
		}
	}
	theme = diplomacy
	option = { name = nmt_trace.close }
	option = {
		name = nmt_trace.clear
		remove_variable = nmt_trace_direct_union
		remove_variable = nmt_trace_delivered
		remove_variable = nmt_trace_queued
		remove_variable = nmt_trace_auto
		remove_variable = nmt_trace_reviewed
		remove_variable = nmt_trace_pending
		remove_variable = nmt_trace_found
		remove_variable = nmt_trace_wedding
		remove_variable = nmt_trace_scan
	}
}
