namespace = qyv_marriage

# Bootstrap: give rulers a marriage goal flag based on stability/strength
character_event = {
	id = qyv_marriage.0001
	hidden = yes
	is_triggered_only = no

	trigger = { is_ruler = yes }
	immediate = { qyv_ai_set_marriage_goal = yes }
}

# Quarterly: send proposals for eligible unwed children/close kin
character_event = {
	id = qyv_marriage.0100
	hidden = yes

	trigger = {
		is_ai = yes
		is_ruler = yes
		any_courtier_or_guest = {
			is_adult = no
			is_betrothed = no
			is_married = no
			age >= 8
		}
	}

	immediate = {
		# Pick a child
		random_courtier_or_guest = {
			limit = { is_adult = no is_betrothed = no is_married = no age >= 8 }
			save_scope_as = child
		}

		# Find candidate recipient realm (player or AI) with either genetics or power
		random_realm_ruler = {
			limit = {
				OR = {
					AND = { has_character_flag = qyv_marriage_goal_genetics  any_courtier_or_guest = { qyv_candidate_good_genetics = yes is_adult = yes is_married = no } }
					AND = { has_character_flag = qyv_marriage_goal_alliance  total_soldiers >= 8000 }
				}
			}
			save_scope_as = target_ruler
		}

		# Choose the spouse candidate in target realm
		scope:target_ruler.random_courtier_or_guest = {
			limit = { is_adult = yes is_married = no NOT = { is_close_family_of = scope:child } }
			save_scope_as = candidate
		}

# Send marriage offer if we have both child and candidate
        if = {
            limit = { exists = scope:candidate exists = scope:target_ruler exists = scope:child }
            qyv_send_marriage_offer = { target = scope:target_ruler third = scope:candidate child = scope:child }
        }
	}
}
