﻿# EOTM Martial inheritance/progression triggers.
#
# V1 expansion scope: base CK3 Martial lifestyle only. These helpers support
# dependency-safe Martial progression, debug validation, and death inheritance.

eotm_is_valid_martial_death_inheritance_child = {
	exists = scope:eotm_deceased_parent
	exists = scope:eotm_deceased_parent.dynasty
	exists = dynasty
	is_alive = yes
	NOT = { this = scope:eotm_deceased_parent }
	any_parent = { this = scope:eotm_deceased_parent }
	dynasty = scope:eotm_deceased_parent.dynasty
}

eotm_parent_has_martial_strategy_final_unlock = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = strategist_perk }
		has_variable = eotm_pending_parent_had_martial_strategist_perk
	}
}

eotm_parent_has_martial_authority_final_unlock = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = overseer_perk }
		has_variable = eotm_pending_parent_had_martial_overseer_perk
	}
}

eotm_parent_has_martial_chivalry_final_unlock = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = gallant_perk }
		has_variable = eotm_pending_parent_had_martial_gallant_perk
	}
}

eotm_child_has_martial_strategy_normal_branch_perks = {
	has_perk = bellum_justum_perk
	has_perk = parthian_tactics_perk
	has_perk = envelopment_perk
	has_perk = organized_retreat_perk
	has_perk = hit_and_run_perk
	has_perk = engineered_for_destruction_perk
	has_perk = living_off_the_land_perk
	has_perk = sappers_perk
}

eotm_child_has_martial_authority_normal_branch_perks = {
	has_perk = serve_the_crown_perk
	has_perk = a_mans_home_perk
	has_perk = enduring_hardships_perk
	has_perk = prepared_conscription_perk
	has_perk = strict_organization_perk
	has_perk = hard_rule_perk
	has_perk = soldiers_of_lesser_fortune_perk
	has_perk = absolute_control_perk
}

eotm_child_has_martial_chivalry_normal_branch_perks = {
	has_perk = stalwart_leader_perk
	has_perk = courtship_perk
	has_perk = promising_prospects_perk
	has_perk = loyalty_and_respect_perk
	has_perk = chivalric_dominance_perk
	has_perk = never_back_down_perk
	has_perk = kingsguard_perk
	has_perk = peacemaker_perk
}

eotm_can_inherit_martial_strategy_final_unlock = {
	eotm_parent_has_martial_strategy_final_unlock = yes
	eotm_child_has_martial_strategy_normal_branch_perks = yes
	NOT = { has_perk = strategist_perk }
}

eotm_can_inherit_martial_authority_final_unlock = {
	eotm_parent_has_martial_authority_final_unlock = yes
	eotm_child_has_martial_authority_normal_branch_perks = yes
	NOT = { has_perk = overseer_perk }
}

eotm_can_inherit_martial_chivalry_final_unlock = {
	eotm_parent_has_martial_chivalry_final_unlock = yes
	eotm_child_has_martial_chivalry_normal_branch_perks = yes
	NOT = { has_perk = gallant_perk }
}

eotm_any_martial_final_unlock_available = {
	OR = {
		eotm_can_inherit_martial_strategy_final_unlock = yes
		eotm_can_inherit_martial_authority_final_unlock = yes
		eotm_can_inherit_martial_chivalry_final_unlock = yes
	}
}

eotm_can_inherit_martial_bellum_justum_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = bellum_justum_perk }
		has_variable = eotm_pending_parent_had_martial_bellum_justum_perk
	}
	NOT = { has_perk = bellum_justum_perk }
}

eotm_can_inherit_martial_parthian_tactics_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = parthian_tactics_perk }
		has_variable = eotm_pending_parent_had_martial_parthian_tactics_perk
	}
	NOT = { has_perk = parthian_tactics_perk }
	has_perk = bellum_justum_perk
}

eotm_can_inherit_martial_envelopment_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = envelopment_perk }
		has_variable = eotm_pending_parent_had_martial_envelopment_perk
	}
	NOT = { has_perk = envelopment_perk }
	has_perk = parthian_tactics_perk
}

eotm_can_inherit_martial_organized_retreat_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = organized_retreat_perk }
		has_variable = eotm_pending_parent_had_martial_organized_retreat_perk
	}
	NOT = { has_perk = organized_retreat_perk }
	has_perk = bellum_justum_perk
}

eotm_can_inherit_martial_hit_and_run_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = hit_and_run_perk }
		has_variable = eotm_pending_parent_had_martial_hit_and_run_perk
	}
	NOT = { has_perk = hit_and_run_perk }
	has_perk = organized_retreat_perk
}

eotm_can_inherit_martial_engineered_for_destruction_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = engineered_for_destruction_perk }
		has_variable = eotm_pending_parent_had_martial_engineered_for_destruction_perk
	}
	NOT = { has_perk = engineered_for_destruction_perk }
	has_perk = bellum_justum_perk
}

eotm_can_inherit_martial_living_off_the_land_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = living_off_the_land_perk }
		has_variable = eotm_pending_parent_had_martial_living_off_the_land_perk
	}
	NOT = { has_perk = living_off_the_land_perk }
	has_perk = engineered_for_destruction_perk
}

eotm_can_inherit_martial_sappers_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = sappers_perk }
		has_variable = eotm_pending_parent_had_martial_sappers_perk
	}
	NOT = { has_perk = sappers_perk }
	has_perk = envelopment_perk
	has_perk = hit_and_run_perk
	has_perk = living_off_the_land_perk
}

eotm_can_inherit_martial_serve_the_crown_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = serve_the_crown_perk }
		has_variable = eotm_pending_parent_had_martial_serve_the_crown_perk
	}
	NOT = { has_perk = serve_the_crown_perk }
}

eotm_can_inherit_martial_a_mans_home_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = a_mans_home_perk }
		has_variable = eotm_pending_parent_had_martial_a_mans_home_perk
	}
	NOT = { has_perk = a_mans_home_perk }
	has_perk = serve_the_crown_perk
}

eotm_can_inherit_martial_enduring_hardships_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = enduring_hardships_perk }
		has_variable = eotm_pending_parent_had_martial_enduring_hardships_perk
	}
	NOT = { has_perk = enduring_hardships_perk }
	has_perk = a_mans_home_perk
}

eotm_can_inherit_martial_prepared_conscription_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = prepared_conscription_perk }
		has_variable = eotm_pending_parent_had_martial_prepared_conscription_perk
	}
	NOT = { has_perk = prepared_conscription_perk }
	has_perk = enduring_hardships_perk
}

eotm_can_inherit_martial_strict_organization_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = strict_organization_perk }
		has_variable = eotm_pending_parent_had_martial_strict_organization_perk
	}
	NOT = { has_perk = strict_organization_perk }
	has_perk = serve_the_crown_perk
}

eotm_can_inherit_martial_hard_rule_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = hard_rule_perk }
		has_variable = eotm_pending_parent_had_martial_hard_rule_perk
	}
	NOT = { has_perk = hard_rule_perk }
	has_perk = strict_organization_perk
}

eotm_can_inherit_martial_soldiers_of_lesser_fortune_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = soldiers_of_lesser_fortune_perk }
		has_variable = eotm_pending_parent_had_martial_soldiers_of_lesser_fortune_perk
	}
	NOT = { has_perk = soldiers_of_lesser_fortune_perk }
	has_perk = hard_rule_perk
}

eotm_can_inherit_martial_absolute_control_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = absolute_control_perk }
		has_variable = eotm_pending_parent_had_martial_absolute_control_perk
	}
	NOT = { has_perk = absolute_control_perk }
	NOT = { eotm_has_pending_absolute_control_perk = yes }
	has_perk = soldiers_of_lesser_fortune_perk
	has_perk = prepared_conscription_perk
}

eotm_can_inherit_martial_stalwart_leader_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = stalwart_leader_perk }
		has_variable = eotm_pending_parent_had_martial_stalwart_leader_perk
	}
	NOT = { has_perk = stalwart_leader_perk }
}

eotm_can_inherit_martial_courtship_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = courtship_perk }
		has_variable = eotm_pending_parent_had_martial_courtship_perk
	}
	NOT = { has_perk = courtship_perk }
	has_perk = stalwart_leader_perk
}

eotm_can_inherit_martial_promising_prospects_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = promising_prospects_perk }
		has_variable = eotm_pending_parent_had_martial_promising_prospects_perk
	}
	NOT = { has_perk = promising_prospects_perk }
	has_perk = courtship_perk
}

eotm_can_inherit_martial_loyalty_and_respect_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = loyalty_and_respect_perk }
		has_variable = eotm_pending_parent_had_martial_loyalty_and_respect_perk
	}
	NOT = { has_perk = loyalty_and_respect_perk }
	has_perk = promising_prospects_perk
}

eotm_can_inherit_martial_chivalric_dominance_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = chivalric_dominance_perk }
		has_variable = eotm_pending_parent_had_martial_chivalric_dominance_perk
	}
	NOT = { has_perk = chivalric_dominance_perk }
	has_perk = stalwart_leader_perk
}

eotm_can_inherit_martial_never_back_down_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = never_back_down_perk }
		has_variable = eotm_pending_parent_had_martial_never_back_down_perk
	}
	NOT = { has_perk = never_back_down_perk }
	has_perk = chivalric_dominance_perk
}

eotm_can_inherit_martial_kingsguard_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = kingsguard_perk }
		has_variable = eotm_pending_parent_had_martial_kingsguard_perk
	}
	NOT = { has_perk = kingsguard_perk }
	has_perk = never_back_down_perk
}

eotm_can_inherit_martial_peacemaker_perk = {
	OR = {
		scope:eotm_deceased_parent ?= { has_perk = peacemaker_perk }
		has_variable = eotm_pending_parent_had_martial_peacemaker_perk
	}
	NOT = { has_perk = peacemaker_perk }
	has_perk = loyalty_and_respect_perk
	has_perk = kingsguard_perk
}

eotm_has_valid_martial_strategy_normal_inheritance_perk = {
	OR = {
		eotm_can_inherit_martial_bellum_justum_perk = yes
		eotm_can_inherit_martial_parthian_tactics_perk = yes
		eotm_can_inherit_martial_envelopment_perk = yes
		eotm_can_inherit_martial_organized_retreat_perk = yes
		eotm_can_inherit_martial_hit_and_run_perk = yes
		eotm_can_inherit_martial_engineered_for_destruction_perk = yes
		eotm_can_inherit_martial_living_off_the_land_perk = yes
		eotm_can_inherit_martial_sappers_perk = yes
	}
}

eotm_has_valid_martial_authority_normal_inheritance_perk = {
	OR = {
		eotm_can_inherit_martial_serve_the_crown_perk = yes
		eotm_can_inherit_martial_a_mans_home_perk = yes
		eotm_can_inherit_martial_enduring_hardships_perk = yes
		eotm_can_inherit_martial_prepared_conscription_perk = yes
		eotm_can_inherit_martial_strict_organization_perk = yes
		eotm_can_inherit_martial_hard_rule_perk = yes
		eotm_can_inherit_martial_soldiers_of_lesser_fortune_perk = yes
		eotm_can_inherit_martial_absolute_control_perk = yes
	}
}

eotm_has_valid_martial_chivalry_normal_inheritance_perk = {
	OR = {
		eotm_can_inherit_martial_stalwart_leader_perk = yes
		eotm_can_inherit_martial_courtship_perk = yes
		eotm_can_inherit_martial_promising_prospects_perk = yes
		eotm_can_inherit_martial_loyalty_and_respect_perk = yes
		eotm_can_inherit_martial_chivalric_dominance_perk = yes
		eotm_can_inherit_martial_never_back_down_perk = yes
		eotm_can_inherit_martial_kingsguard_perk = yes
		eotm_can_inherit_martial_peacemaker_perk = yes
	}
}

eotm_has_any_valid_martial_normal_inheritance_perk = {
	OR = {
		eotm_has_valid_martial_strategy_normal_inheritance_perk = yes
		eotm_has_valid_martial_authority_normal_inheritance_perk = yes
		eotm_has_valid_martial_chivalry_normal_inheritance_perk = yes
	}
}

eotm_any_martial_inheritance_candidate_available = {
	OR = {
		eotm_any_martial_final_unlock_available = yes
		eotm_has_any_valid_martial_normal_inheritance_perk = yes
	}
}

eotm_can_debug_grant_martial_strategy_final_unlock = {
	eotm_child_has_martial_strategy_normal_branch_perks = yes
	NOT = { has_perk = strategist_perk }
}

eotm_can_debug_grant_martial_authority_final_unlock = {
	eotm_child_has_martial_authority_normal_branch_perks = yes
	NOT = { has_perk = overseer_perk }
}

eotm_can_debug_grant_martial_chivalry_final_unlock = {
	eotm_child_has_martial_chivalry_normal_branch_perks = yes
	NOT = { has_perk = gallant_perk }
}

eotm_any_debug_martial_final_unlock_available = {
	OR = {
		eotm_can_debug_grant_martial_strategy_final_unlock = yes
		eotm_can_debug_grant_martial_authority_final_unlock = yes
		eotm_can_debug_grant_martial_chivalry_final_unlock = yes
	}
}

eotm_can_debug_grant_martial_bellum_justum_perk = {
	NOT = { has_perk = bellum_justum_perk }
}

eotm_can_debug_grant_martial_parthian_tactics_perk = {
	NOT = { has_perk = parthian_tactics_perk }
	has_perk = bellum_justum_perk
}

eotm_can_debug_grant_martial_envelopment_perk = {
	NOT = { has_perk = envelopment_perk }
	has_perk = parthian_tactics_perk
}

eotm_can_debug_grant_martial_organized_retreat_perk = {
	NOT = { has_perk = organized_retreat_perk }
	has_perk = bellum_justum_perk
}

eotm_can_debug_grant_martial_hit_and_run_perk = {
	NOT = { has_perk = hit_and_run_perk }
	has_perk = organized_retreat_perk
}

eotm_can_debug_grant_martial_engineered_for_destruction_perk = {
	NOT = { has_perk = engineered_for_destruction_perk }
	has_perk = bellum_justum_perk
}

eotm_can_debug_grant_martial_living_off_the_land_perk = {
	NOT = { has_perk = living_off_the_land_perk }
	has_perk = engineered_for_destruction_perk
}

eotm_can_debug_grant_martial_sappers_perk = {
	NOT = { has_perk = sappers_perk }
	has_perk = envelopment_perk
	has_perk = hit_and_run_perk
	has_perk = living_off_the_land_perk
}

eotm_can_debug_grant_martial_serve_the_crown_perk = {
	NOT = { has_perk = serve_the_crown_perk }
}

eotm_can_debug_grant_martial_a_mans_home_perk = {
	NOT = { has_perk = a_mans_home_perk }
	has_perk = serve_the_crown_perk
}

eotm_can_debug_grant_martial_enduring_hardships_perk = {
	NOT = { has_perk = enduring_hardships_perk }
	has_perk = a_mans_home_perk
}

eotm_can_debug_grant_martial_prepared_conscription_perk = {
	NOT = { has_perk = prepared_conscription_perk }
	has_perk = enduring_hardships_perk
}

eotm_can_debug_grant_martial_strict_organization_perk = {
	NOT = { has_perk = strict_organization_perk }
	has_perk = serve_the_crown_perk
}

eotm_can_debug_grant_martial_hard_rule_perk = {
	NOT = { has_perk = hard_rule_perk }
	has_perk = strict_organization_perk
}

eotm_can_debug_grant_martial_soldiers_of_lesser_fortune_perk = {
	NOT = { has_perk = soldiers_of_lesser_fortune_perk }
	has_perk = hard_rule_perk
}

eotm_can_debug_grant_martial_absolute_control_perk = {
	NOT = { has_perk = absolute_control_perk }
	NOT = { eotm_has_pending_absolute_control_perk = yes }
	has_perk = soldiers_of_lesser_fortune_perk
	has_perk = prepared_conscription_perk
}

eotm_can_debug_grant_martial_stalwart_leader_perk = {
	NOT = { has_perk = stalwart_leader_perk }
}

eotm_can_debug_grant_martial_courtship_perk = {
	NOT = { has_perk = courtship_perk }
	has_perk = stalwart_leader_perk
}

eotm_can_debug_grant_martial_promising_prospects_perk = {
	NOT = { has_perk = promising_prospects_perk }
	has_perk = courtship_perk
}

eotm_can_debug_grant_martial_loyalty_and_respect_perk = {
	NOT = { has_perk = loyalty_and_respect_perk }
	has_perk = promising_prospects_perk
}

eotm_can_debug_grant_martial_chivalric_dominance_perk = {
	NOT = { has_perk = chivalric_dominance_perk }
	has_perk = stalwart_leader_perk
}

eotm_can_debug_grant_martial_never_back_down_perk = {
	NOT = { has_perk = never_back_down_perk }
	has_perk = chivalric_dominance_perk
}

eotm_can_debug_grant_martial_kingsguard_perk = {
	NOT = { has_perk = kingsguard_perk }
	has_perk = never_back_down_perk
}

eotm_can_debug_grant_martial_peacemaker_perk = {
	NOT = { has_perk = peacemaker_perk }
	has_perk = loyalty_and_respect_perk
	has_perk = kingsguard_perk
}

eotm_has_valid_debug_martial_strategy_normal_perk = {
	OR = {
		eotm_can_debug_grant_martial_bellum_justum_perk = yes
		eotm_can_debug_grant_martial_parthian_tactics_perk = yes
		eotm_can_debug_grant_martial_envelopment_perk = yes
		eotm_can_debug_grant_martial_organized_retreat_perk = yes
		eotm_can_debug_grant_martial_hit_and_run_perk = yes
		eotm_can_debug_grant_martial_engineered_for_destruction_perk = yes
		eotm_can_debug_grant_martial_living_off_the_land_perk = yes
		eotm_can_debug_grant_martial_sappers_perk = yes
	}
}

eotm_has_valid_debug_martial_authority_normal_perk = {
	OR = {
		eotm_can_debug_grant_martial_serve_the_crown_perk = yes
		eotm_can_debug_grant_martial_a_mans_home_perk = yes
		eotm_can_debug_grant_martial_enduring_hardships_perk = yes
		eotm_can_debug_grant_martial_prepared_conscription_perk = yes
		eotm_can_debug_grant_martial_strict_organization_perk = yes
		eotm_can_debug_grant_martial_hard_rule_perk = yes
		eotm_can_debug_grant_martial_soldiers_of_lesser_fortune_perk = yes
		eotm_can_debug_grant_martial_absolute_control_perk = yes
	}
}

eotm_has_valid_debug_martial_chivalry_normal_perk = {
	OR = {
		eotm_can_debug_grant_martial_stalwart_leader_perk = yes
		eotm_can_debug_grant_martial_courtship_perk = yes
		eotm_can_debug_grant_martial_promising_prospects_perk = yes
		eotm_can_debug_grant_martial_loyalty_and_respect_perk = yes
		eotm_can_debug_grant_martial_chivalric_dominance_perk = yes
		eotm_can_debug_grant_martial_never_back_down_perk = yes
		eotm_can_debug_grant_martial_kingsguard_perk = yes
		eotm_can_debug_grant_martial_peacemaker_perk = yes
	}
}

eotm_has_any_valid_debug_martial_normal_perk = {
	OR = {
		eotm_has_valid_debug_martial_strategy_normal_perk = yes
		eotm_has_valid_debug_martial_authority_normal_perk = yes
		eotm_has_valid_debug_martial_chivalry_normal_perk = yes
	}
}

eotm_any_debug_martial_candidate_available = {
	OR = {
		eotm_any_debug_martial_final_unlock_available = yes
		eotm_has_any_valid_debug_martial_normal_perk = yes
	}
}

eotm_one_way_martial_focus_is_strategy = {
	has_variable = eotm_one_way_martial_focus
	var:eotm_one_way_martial_focus ?= 1
}

eotm_one_way_martial_focus_is_authority = {
	has_variable = eotm_one_way_martial_focus
	var:eotm_one_way_martial_focus ?= 2
}

eotm_one_way_martial_focus_is_chivalry = {
	has_variable = eotm_one_way_martial_focus
	var:eotm_one_way_martial_focus ?= 3
}

eotm_one_way_martial_focus_can_continue = {
	OR = {
		AND = {
			eotm_one_way_martial_focus_is_strategy = yes
			eotm_has_valid_martial_strategy_normal_inheritance_perk = yes
		}
		AND = {
			eotm_one_way_martial_focus_is_authority = yes
			eotm_has_valid_martial_authority_normal_inheritance_perk = yes
		}
		AND = {
			eotm_one_way_martial_focus_is_chivalry = yes
			eotm_has_valid_martial_chivalry_normal_inheritance_perk = yes
		}
	}
}

eotm_balanced_martial_strategy_is_lowest_valid_branch = {
	eotm_has_valid_martial_strategy_normal_inheritance_perk = yes
	exists = var:eotm_balanced_martial_strategy_count
	exists = var:eotm_balanced_martial_authority_count
	exists = var:eotm_balanced_martial_chivalry_count
	var:eotm_balanced_martial_strategy_count <= var:eotm_balanced_martial_authority_count
	var:eotm_balanced_martial_strategy_count <= var:eotm_balanced_martial_chivalry_count
}

eotm_balanced_martial_authority_is_lowest_valid_branch = {
	eotm_has_valid_martial_authority_normal_inheritance_perk = yes
	exists = var:eotm_balanced_martial_strategy_count
	exists = var:eotm_balanced_martial_authority_count
	exists = var:eotm_balanced_martial_chivalry_count
	var:eotm_balanced_martial_authority_count <= var:eotm_balanced_martial_strategy_count
	var:eotm_balanced_martial_authority_count <= var:eotm_balanced_martial_chivalry_count
}

eotm_balanced_martial_chivalry_is_lowest_valid_branch = {
	eotm_has_valid_martial_chivalry_normal_inheritance_perk = yes
	exists = var:eotm_balanced_martial_strategy_count
	exists = var:eotm_balanced_martial_authority_count
	exists = var:eotm_balanced_martial_chivalry_count
	var:eotm_balanced_martial_chivalry_count <= var:eotm_balanced_martial_strategy_count
	var:eotm_balanced_martial_chivalry_count <= var:eotm_balanced_martial_authority_count
}
