﻿# Keeps the player's succession law through the 1.20 succession handover.

on_death = {
	on_actions = { epg_on_death_store_succession_law }
}

on_title_gain_inheritance = {
	on_actions = {
		delay = { days = 1 }
		epg_restore_succession_law
	}
}

# root = dying character (still the player at this point)
epg_on_death_store_succession_law = {
	trigger = {
		is_ai = no
		exists = primary_title
		exists = player_heir
	}
	effect = {
		player_heir = {
			# Lets the heir pass can_keep/can_have while still AI-controlled
			add_character_flag = { flag = epg_player_successor days = 30 }
			set_variable = { name = epg_predecessor_title value = root.primary_title days = 30 }
		}
		if = { limit = { has_realm_law = confederate_partition_succession_law }
			player_heir = { set_variable = { name = epg_inherited_succession_law value = flag:confederate_partition_succession_law days = 30 } }
		}
		else_if = { limit = { has_realm_law = partition_succession_law }
			player_heir = { set_variable = { name = epg_inherited_succession_law value = flag:partition_succession_law days = 30 } }
		}
		else_if = { limit = { has_realm_law = high_partition_succession_law }
			player_heir = { set_variable = { name = epg_inherited_succession_law value = flag:high_partition_succession_law days = 30 } }
		}
		else_if = { limit = { has_realm_law = single_heir_succession_law }
			player_heir = { set_variable = { name = epg_inherited_succession_law value = flag:single_heir_succession_law days = 30 } }
		}
		else_if = { limit = { has_realm_law = single_heir_succession_law_youngest }
			player_heir = { set_variable = { name = epg_inherited_succession_law value = flag:single_heir_succession_law_youngest days = 30 } }
		}
		else_if = { limit = { has_realm_law = single_heir_dynasty_house }
			player_heir = { set_variable = { name = epg_inherited_succession_law value = flag:single_heir_dynasty_house days = 30 } }
		}
		else_if = { limit = { has_realm_law = acclamation_succession_law }
			player_heir = { set_variable = { name = epg_inherited_succession_law value = flag:acclamation_succession_law days = 30 } }
		}
		else_if = { limit = { has_realm_law = appointment_succession_law }
			player_heir = { set_variable = { name = epg_inherited_succession_law value = flag:appointment_succession_law days = 30 } }
		}
		else_if = { limit = { has_realm_law = clan_antagonistic_partition_succession_law }
			player_heir = { set_variable = { name = epg_inherited_succession_law value = flag:clan_antagonistic_partition_succession_law days = 30 } }
		}
		else_if = { limit = { has_realm_law = clan_competitive_partition_succession_law }
			player_heir = { set_variable = { name = epg_inherited_succession_law value = flag:clan_competitive_partition_succession_law days = 30 } }
		}
		else_if = { limit = { has_realm_law = clan_impassive_partition_succession_law }
			player_heir = { set_variable = { name = epg_inherited_succession_law value = flag:clan_impassive_partition_succession_law days = 30 } }
		}
		else_if = { limit = { has_realm_law = clan_friendly_partition_succession_law }
			player_heir = { set_variable = { name = epg_inherited_succession_law value = flag:clan_friendly_partition_succession_law days = 30 } }
		}
		else_if = { limit = { has_realm_law = clan_harmonious_partition_succession_law }
			player_heir = { set_variable = { name = epg_inherited_succession_law value = flag:clan_harmonious_partition_succession_law days = 30 } }
		}
	}
}

# root = heir, one day after inheriting. Re-applies the law if the engine reset it anyway.
# Not gated on is_ai here: delayed on_actions re-check their trigger when they fire.
epg_restore_succession_law = {
	trigger = {
		has_variable = epg_inherited_succession_law
	}
	effect = {
		if = {
			limit = {
				is_ai = no
				exists = primary_title
				exists = var:epg_predecessor_title
				primary_title = var:epg_predecessor_title
			}
			switch = {
				trigger = var:epg_inherited_succession_law
				flag:confederate_partition_succession_law = {
					if = { limit = { NOT = { has_realm_law = confederate_partition_succession_law } } add_realm_law_skip_effects = confederate_partition_succession_law }
				}
				flag:partition_succession_law = {
					if = { limit = { NOT = { has_realm_law = partition_succession_law } } add_realm_law_skip_effects = partition_succession_law }
				}
				flag:high_partition_succession_law = {
					if = { limit = { NOT = { has_realm_law = high_partition_succession_law } } add_realm_law_skip_effects = high_partition_succession_law }
				}
				flag:single_heir_succession_law = {
					if = { limit = { NOT = { has_realm_law = single_heir_succession_law } } add_realm_law_skip_effects = single_heir_succession_law }
				}
				flag:single_heir_succession_law_youngest = {
					if = { limit = { NOT = { has_realm_law = single_heir_succession_law_youngest } } add_realm_law_skip_effects = single_heir_succession_law_youngest }
				}
				flag:single_heir_dynasty_house = {
					if = { limit = { NOT = { has_realm_law = single_heir_dynasty_house } } add_realm_law_skip_effects = single_heir_dynasty_house }
				}
				flag:acclamation_succession_law = {
					if = { limit = { NOT = { has_realm_law = acclamation_succession_law } } add_realm_law_skip_effects = acclamation_succession_law }
				}
				flag:appointment_succession_law = {
					if = { limit = { NOT = { has_realm_law = appointment_succession_law } } add_realm_law_skip_effects = appointment_succession_law }
				}
				flag:clan_antagonistic_partition_succession_law = {
					if = { limit = { NOT = { has_realm_law = clan_antagonistic_partition_succession_law } } add_realm_law_skip_effects = clan_antagonistic_partition_succession_law }
				}
				flag:clan_competitive_partition_succession_law = {
					if = { limit = { NOT = { has_realm_law = clan_competitive_partition_succession_law } } add_realm_law_skip_effects = clan_competitive_partition_succession_law }
				}
				flag:clan_impassive_partition_succession_law = {
					if = { limit = { NOT = { has_realm_law = clan_impassive_partition_succession_law } } add_realm_law_skip_effects = clan_impassive_partition_succession_law }
				}
				flag:clan_friendly_partition_succession_law = {
					if = { limit = { NOT = { has_realm_law = clan_friendly_partition_succession_law } } add_realm_law_skip_effects = clan_friendly_partition_succession_law }
				}
				flag:clan_harmonious_partition_succession_law = {
					if = { limit = { NOT = { has_realm_law = clan_harmonious_partition_succession_law } } add_realm_law_skip_effects = clan_harmonious_partition_succession_law }
				}
			}
			remove_variable = epg_inherited_succession_law
			remove_variable = epg_predecessor_title
		}
	}
}
