﻿# character just about to die in root scope
# if a killer is know, it's set as scope:killer
#Triggered by code

on_death = {
	on_actions = {
		on_dying_before_lover
		on_randomize_next_player_character
	}
}

on_dying_before_lover = {
	trigger = {
		NOT = { has_game_rule = character_remarriage_disabled }
		is_alive = yes
	}
	effect = {
		every_relation = {
			type = lover
			type = soulmate
			limit = {
				is_consort_of = root
				ai_honor > high_negative_ai_value # not the most dishonorable
				opinion = {
					target = root
					value > neutral_opinion
				}
			}
			save_opinion_value_as = {
				name = opinion_of_dead_lover_spouse
				target = root
			}
			save_scope_value_as = {
				name = lover_importance
				value = {
					value = scope:opinion_of_dead_lover_spouse
					add = ai_honor
					min = 0 # to avoid negative years
				}
			}
			if = {
				limit = { NOT = { has_variable = qol_honoring_dead_lover_spouse } }
				set_variable = {
					name = qol_honoring_dead_lover_spouse
					value = scope:lover_importance
					years = scope:lover_importance
				}
			}
			else_if = {
				limit = { scope:lover_importance > var:qol_honoring_dead_lover_spouse }
				remove_variable = qol_honoring_dead_lover_spouse
				set_variable = {
					name = qol_honoring_dead_lover_spouse
					value = scope:lover_importance
					years = scope:lover_importance
				}
			}
			clear_saved_scope = opinion_of_dead_lover_spouse
			clear_saved_scope = lover_importance
		}
		every_consort = {
			trigger_event = { on_action = on_remarriage_status }
		}
	}
}


on_randomize_next_player_character = {
	trigger = {
		is_ai = no
		NOT = { has_game_rule = randomize_player_disabled }
		NOT = { has_variable = mr_qol_rand_player_off }
	}
	effect = {
		find_next_player_character = yes
		if = {
			limit = { exists = scope:chosen_character }
			scope:chosen_character = {
				set_variable = {
					name = mr_qol_last_rand_player
					value = prev
				}
			}
			# record house and set to match;
			# we do this so all previous characters show up in history page...
			hidden_effect = {
				scope:chosen_character = {
					if = {
						limit = { is_lowborn = no }
						house = { save_scope_as = new_house }
					}
					set_house = var:mr_qol_last_rand_player.house
				}
				set_player_character = scope:chosen_character
				
				# return our new character to previous house
				if = {
					limit = { exists = scope:new_house }
					scope:chosen_character = { set_house = scope:new_house }
					clear_saved_scope = new_house
				}
				else = {
					scope:chosen_character = { set_to_lowborn = yes }
				}
			}
			pan_camera_to_province = scope:chosen_character.default_location
			scope:chosen_character = { trigger_event = QOL_new_character.0001 }
			clear_saved_scope = chosen_character
		}
		else = {
			#send notification
		}
	}
}