#################
# ASCENSION PATHS
#################

@ascension_path_base_weight = 100
@ascension_path_synergy_weight = 2
@ascension_path_anti_synergy_weight = 0.5

# Genetic Ascension  (regular empires & Hive Minds)
ap_engineered_evolution = {
	on_enabled = {
		custom_tooltip = "engineered_evolution_tooltip"
		if = {
			limit = {
				has_origin = origin_clone_army
				OR = {
					has_trait = trait_clone_soldier_infertile
					has_trait = trait_clone_soldier_infertile_full_potential
				}
			}
			custom_tooltip = clone_soldier_locked_genes
		}
	}
	possible = {
		custom_tooltip = {
			fail_text = "synthetic_empire_biological_ascension"
			OR = {
				NOT = { has_trait = trait_mechanical }
				has_civic = civic_machine_servitor
				has_civic = civic_machine_assimilator
				AND = {
					is_materus_bm_installed = yes
					has_ascension_perk = ap_organo_machine_interfacing_assimilator
				}
			}
		}
		custom_tooltip = {
			fail_text = "requires_ascension_perks_2"
			num_ascension_perks > 1
		}
		custom_tooltip = {
			fail_text = "requires_free_tradition_tree"
			num_tradition_categories < @max_tradition_trees
		}
	}

	potential = {
		has_utopia = yes
		NOR = {
			has_ascension_perk = ap_engineered_evolution
			has_origin = origin_synthetic_fertility
		}
		OR = {
			is_robot_empire = no
			has_civic = civic_machine_servitor
			has_civic = civic_machine_assimilator
			AND = {
				is_materus_bm_installed = yes
				has_ascension_perk = ap_organo_machine_interfacing_assimilator
			}
		}
		is_natural_design_empire = no
	}

	ai_weight = {
		factor = @ascension_path_base_weight
		modifier = {
			factor = @ascension_path_synergy_weight
			has_engineered_evolution_synergy = yes
		}
		modifier = {
			factor = 0.1
			num_ascension_perks < 3
		}
		modifier = {
			factor = 10
			num_ascension_perks > 4
		}
		modifier = {
			factor = 0.1
			OR = {
				has_ascension_perk = ap_the_flesh_is_weak
				has_ascension_perk = ap_organo_machine_interfacing
				has_ascension_perk = ap_mind_over_matter
			}
		}
		modifier = {
			factor = 0
			has_ascension_perk = ap_synthetic_evolution
		}
	}
}

# Cyborg Ascension (regular empires)
ap_the_flesh_is_weak = {
	on_enabled = {
		custom_tooltip = "flesh_is_weak_tooltip"
	}
	possible = {
		custom_tooltip = {
			fail_text = "synthetic_empire_synthetic_ascension"
			NOT = { has_trait = trait_mechanical }
		}
		custom_tooltip = {
			fail_text = "requires_ascension_perks_2"
			OR = {
				num_ascension_perks > 1
				has_origin = origin_cybernetic_creed
			}
		}
		custom_tooltip = {
			fail_text = "requires_not_ap_mind_over_matter"
			NOT = { has_ascension_perk = ap_mind_over_matter }
		}
		custom_tooltip = {
			fail_text = "requires_not_ap_synthetic_evolution"
			NOT = { has_ascension_perk = ap_synthetic_evolution }
		}
		custom_tooltip = {
			fail_text = "requires_free_tradition_tree"
			num_tradition_categories < @max_tradition_trees
		}
	}

	potential = {
		OR = {
			has_utopia = yes
			has_machine_age_dlc = yes
		}
		NOR = {
			has_ascension_perk = ap_the_flesh_is_weak
			has_origin = origin_shroudwalker_apprentice
			has_origin = origin_cybernetic_creed
			has_origin = origin_synthetic_fertility
		}
		is_gestalt = no
		is_individual_machine = no
		is_natural_design_empire = no
	}

	ai_weight = {
		factor = @ascension_path_base_weight
		modifier = {
			factor = @ascension_path_anti_synergy_weight
			has_flesh_is_weak_anti_synergy = yes
		}
		modifier = {
			factor = 0.5
			has_ethic = ethic_spiritualist
		}
		modifier = {
			factor = 0
			has_ethic = ethic_fanatic_spiritualist
		}
		modifier = {
			factor = 0.1
			num_ascension_perks < 3
		}
		modifier = {
			factor = 10
			num_ascension_perks > 4
		}
		modifier = {
			factor = 0.1
			OR = {
				has_ascension_perk = ap_engineered_evolution
				has_ascension_perk = ap_organo_machine_interfacing
				has_ascension_perk = ap_mind_over_matter
			}
		}
		
		modifier = {
			factor = 0
			has_ascension_perk = ap_synthetic_evolution
		}
	}
}

# Cyborg Ascension (Hive Minds)
ap_organo_machine_interfacing = {
	on_enabled = {
		custom_tooltip = "organo_machine_interfacing_tooltip"
	}
	possible = {
		custom_tooltip = {
			fail_text = "requires_ascension_perks_2"
			num_ascension_perks > 1
		}
		custom_tooltip = {
			fail_text = "requires_free_tradition_tree"
			num_tradition_categories < @max_tradition_trees
		}
	}

	potential = {
		OR = {
			has_utopia = yes
			has_machine_age_dlc = yes
		}
		NOT = {
			has_ascension_perk = ap_organo_machine_interfacing
		}
		has_authority = auth_hive_mind
		is_natural_design_empire = no
	}

	ai_weight = {
		factor = @ascension_path_base_weight
		modifier = {
			factor = 0.1
			num_ascension_perks < 3
		}
		modifier = {
			factor = 10
			num_ascension_perks > 4
		}
		modifier = {
			factor = 0.1
			OR = {
				has_ascension_perk = ap_engineered_evolution
				has_ascension_perk = ap_the_flesh_is_weak
				has_ascension_perk = ap_mind_over_matter
			}
		}
		modifier = {
			factor = 0
			has_ascension_perk = ap_synthetic_evolution
		}
	}
}

# Cyborg Ascension (Machine Intelligence: Driven Assimilators)
ap_organo_machine_interfacing_assimilator = {
	on_enabled = {
		custom_tooltip = "organo_machine_interfacing_tooltip"
	}
	possible = {
		custom_tooltip = {
			fail_text = "requires_ascension_perks_2"
			num_ascension_perks > 1
		}
		custom_tooltip = {
			fail_text = "requires_free_tradition_tree"
			num_tradition_categories < @max_tradition_trees
		}
	}

	potential = {
		OR = {
			has_utopia = yes
			has_machine_age_dlc = yes
		}
		NOT = {
			has_ascension_perk = ap_organo_machine_interfacing_assimilator
			has_civic = civic_machine_servitor
			has_civic = civic_machine_terminator
		}
		OR = { 
			has_civic = civic_machine_assimilator
			AND = {
				has_ascension_perk = ap_mechromancy
				is_materus_bm_installed = yes
			}

		{
	}

	ai_weight = {
		factor = @ascension_path_base_weight
		modifier = {
			factor = @ascension_path_synergy_weight
			has_organo_machine_interfacing_assimilator_synergy = yes
		}
		modifier = {
			factor = 0.1
			num_ascension_perks < 3
		}
		modifier = {
			factor = 10
			num_ascension_perks > 4
		}
		modifier = {
			factor = 0.1
			OR = {
				has_ascension_perk = ap_engineered_evolution
			}
		}
	}
}

# Synthetic Ascension (regular empires)
ap_synthetic_evolution = {
	on_enabled = {
		custom_tooltip = "synthetic_evolution_tooltip"
		if = {
			limit = {
				has_origin = origin_necrophage
				has_trait = trait_necrophage
			}
			custom_tooltip = disables_necrophage_features
		}
		if = {
			limit = {
				has_origin = origin_clone_army
				OR = {
					has_trait = trait_clone_soldier_infertile
					has_trait = trait_clone_soldier_infertile_full_potential
					has_trait = trait_clone_soldier_fertile
				}
			}
			custom_tooltip = disables_clone_army_origin_features
		}
		if = {
			limit = {
				has_origin = origin_overtuned
			}
			custom_tooltip = disables_overtuned_features
		}
		if = {
			limit = {
				OR = {
					has_valid_civic = civic_idyllic_bloom
					has_valid_civic = civic_hive_idyllic_bloom
				}
			}
			custom_tooltip = disables_idyllic_bloom
		}
	}
	possible = {
		custom_tooltip = {
			fail_text = "synthetic_empire_synthetic_ascension"
			NOT = { has_trait = trait_mechanical }
		}
		custom_tooltip = {
			fail_text = "requires_ascension_perks_2"
			num_ascension_perks > 1
		}
		custom_tooltip = {
			fail_text = "requires_not_ap_the_flesh_is_weak"
			NOT = { has_ascension_perk = ap_the_flesh_is_weak }
		}
		custom_tooltip = {
			fail_text = "requires_not_ap_mind_over_matter"
			NOT = { has_ascension_perk = ap_mind_over_matter }
		}
		custom_tooltip = {
			fail_text = "requires_free_tradition_tree"
			num_tradition_categories < @max_tradition_trees
		}
	}

	potential = {
		OR = {
			has_utopia = yes
			has_machine_age_dlc = yes
		}
		NOR = {
			has_ascension_perk = ap_synthetic_evolution
			has_authority = "auth_machine_intelligence"
			has_origin = origin_shroudwalker_apprentice
			has_origin = origin_cybernetic_creed
			has_origin = origin_synthetic_fertility
		}
		is_gestalt = no
		is_mechanical_empire = no
		is_natural_design_empire = no
		NOT = { has_valid_civic = civic_augmentation_bazaars }
		is_individual_machine = no
	}

	ai_weight = {
		factor = @ascension_path_base_weight
		modifier = {
			factor = @ascension_path_synergy_weight
			has_synthetic_evolution_synergy = yes
		}
		modifier = {
			factor = @ascension_path_anti_synergy_weight
			has_synthetic_evolution_anti_synergy = yes
		}
		modifier = {
			factor = 0
			blocks_ai_synthetic_evolution = yes
		}
		modifier = {
			factor = 0
			is_spiritualist = yes
		}
		modifier = {
			factor = 0.1
			num_ascension_perks < 3
		}
		modifier = {
			factor = 10
			num_ascension_perks > 4
		}
		modifier = {
			factor = 0
			OR = {
				has_ascension_perk = ap_engineered_evolution
				has_ascension_perk = ap_the_flesh_is_weak
				has_ascension_perk = ap_organo_machine_interfacing
				has_ascension_perk = ap_mind_over_matter
			}
		}
	}
}

# Psionic Ascension (regular empires)
ap_mind_over_matter = {
	on_enabled = {
		custom_tooltip = "mind_over_matter_tooltip"
	}
	possible = {
		custom_tooltip = {
			fail_text = "synthetic_empire_psionic_ascension"
			NOT = { has_trait = trait_mechanical }
		}
		custom_tooltip = {
			fail_text = "requires_ascension_perks_2"
			num_ascension_perks > 1
		}
		custom_tooltip = {
			fail_text = "requires_not_ap_the_flesh_is_weak"
			NOT = { has_ascension_perk = ap_the_flesh_is_weak }
		}
		custom_tooltip = {
			fail_text = "requires_not_ap_synthetic_evolution"
			NOT = { has_ascension_perk = ap_synthetic_evolution }
		}
		custom_tooltip = {
			fail_text = "requires_free_tradition_tree"
			num_tradition_categories < @max_tradition_trees
		}
	}

	potential = {
		has_utopia = yes
		NOR = {
			has_country_flag = ratling_country
			has_ascension_perk = ap_mind_over_matter
			has_origin = origin_shroudwalker_apprentice
			has_origin = origin_cybernetic_creed
			has_origin = origin_synthetic_fertility
		}
		is_gestalt = no
		is_mechanical_empire = no
		is_cyborg_empire = no
		is_natural_design_empire = no
		is_individual_machine = no
		NOT = { has_valid_civic = civic_augmentation_bazaars }
	}

	ai_weight = {
		factor = @ascension_path_base_weight
		modifier = {
			factor = @ascension_path_synergy_weight
			has_mind_over_matter_synergy = yes
		}
		modifier = {
			factor = @ascension_path_anti_synergy_weight
			has_mind_over_matter_anti_synergy = yes
		}
		modifier = {
			factor = 10
			has_ethic = ethic_fanatic_spiritualist
		}
		modifier = {
			factor = 0.1
			num_ascension_perks < 3
		}
		modifier = {
			factor = 10
			num_ascension_perks > 4
		}
		modifier = {
			factor = 0.1
			OR = {
				has_ascension_perk = ap_engineered_evolution
				has_ascension_perk = ap_the_flesh_is_weak
				has_ascension_perk = ap_organo_machine_interfacing
			}
		}
	}
}

# Synthetic Ascension (Machine Intelligence or Individualistic Machine)
ap_synthetic_age = {
	potential = {
		OR = {
			has_synthetic_dawn = yes
			has_machine_age_dlc = yes
		}
		OR = {
			has_authority = auth_machine_intelligence
			is_individual_machine = yes
			has_country_flag = synthetics_traditions_unlocked
		}
		NOT = {
			has_ascension_perk = ap_synthetic_age
		}
		is_natural_design_empire = no
	}

	possible = {
		custom_tooltip = {
			fail_text = "requires_ascension_perks_2"
			num_ascension_perks > 1
		}
		custom_tooltip = {
			fail_text = "requires_free_tradition_tree"
			num_tradition_categories < @max_tradition_trees
		}
	}

	custom_tooltip = "synthetic_age_tooltip"

	tradition_swap = {
		inherit_name = yes
		inherit_effects = no
		inherit_icon = yes
		trigger = {
			has_machine_age_dlc = yes
		}
		custom_tooltip = "synthetic_age_tooltip_machine_age"
		on_enabled = {
			hidden_effect = {
				country_event = { id = machine_age.4000 }
			}
		}

		weight = {
			factor = 1
		}
	}

	ai_weight = {
		factor = @ascension_path_base_weight
		modifier = {
			factor = @ascension_path_anti_synergy_weight
			has_synthetic_age_anti_synergy = yes
		}
		modifier = {
			factor = 0.1
			num_ascension_perks < 3
		}
		modifier = {
			factor = 10
			num_ascension_perks > 4
		}
	}
}
