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

@ascension_path_base_weight = 500
@ascension_path_synergy_weight = 2
@ascension_path_anti_synergy_weight = 0.25
@ascension_path_mindwardens_present = 0.3

# Genetic Ascension  (regular empires & Hive Minds)
ap_engineered_evolution = {
	on_enabled = {
		if = {
			limit = {
				has_biogenesis_dlc = yes
				is_wilderness_empire = no
			}
			hidden_effect = {
				country_event = { id = bio.1 }
			}
			custom_tooltip = "engineered_evolution_biogenesis_tt"
			set_country_flag = genomic_research_facility_unlocked
		}
		else_if = {
			limit = {
				has_biogenesis_dlc = yes
				is_wilderness_empire = yes
			}
			hidden_effect = {
				country_event = { id = bio.1 }
			}
			custom_tooltip = "engineered_evolution_wilderness_tt"
		}
		else = {
			custom_tooltip = "engineered_evolution_tooltip"
		}
	}
	possible = {
		custom_tooltip = {
			fail_text = "synthetic_empire_biological_ascension"
			NOT = { has_trait = trait_mechanical }
		}
		if = {
			limit = {
                NOT = {
					has_origin = origin_clone_army
				}
			}
			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_organo_machine_interfacing"
        #     NOT = { has_ascension_perk = ap_organo_machine_interfacing }
        # }
        # custom_tooltip = {
        #     fail_text = "requires_not_ap_mind_over_matter"
        #     has_psionic_ascension = no
        # }
        # 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
        # }
		if = {
			limit = {
				has_origin = origin_clone_army
			}
			custom_tooltip = {
				fail_text = "clone_soldier_locked_genes"
				OR = {
					has_country_flag = clone_army_fertility_unlocked
					has_country_flag = clone_army_full_potential
				}
			}
		}
	}

	potential = {
		NOR = {
			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_organo_machine_interfacing_assimilator
            # has_ascension_perk = ap_synthetic_evolution
            # has_ascension_perk = ap_mind_over_matter
            # has_ascension_perk = ap_synthetic_age
			is_machine_empire = yes
            # has_origin = origin_shroudwalker_apprentice
            # has_origin = origin_cybernetic_creed
            # has_origin = origin_synthetic_fertility
            # has_origin = origin_endbringers
		}
		is_mechanical_empire = no
		is_individual_machine = no
        # is_cyborg_empire = no
		is_natural_design_empire = no
        # NOT = { has_valid_civic = civic_augmentation_bazaars }
        # is_chosen_empire = no
        # is_entropy_drinkers_empire = no
	}

	tradition_swap = {
		inherit_effects = yes
		inherit_icon = yes
		name = ap_engineered_evolution_wilderness
		trigger = {
			is_wilderness_empire = yes
		}
	}

	ai_weight = {
		factor = @ascension_path_base_weight
		modifier = {
			factor = @ascension_path_synergy_weight
			has_engineered_evolution_synergy = yes
		}
        modifier = {
            factor = @ascension_path_mindwardens_present
            any_country = {
                has_origin = origin_mindwardens
            }
        }
		modifier = {
			factor = 0
            aap_ai_has_any_ascension_path_or_origin = yes
		}
	}
}

# 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
				has_origin = origin_unplugged
			}
		}
        # custom_tooltip = {
        #     fail_text = "requires_not_ap_engineered_evolution"
        #     NOT = { has_ascension_perk = ap_engineered_evolution }
        # }
        # custom_tooltip = {
        #     fail_text = "requires_not_ap_mind_over_matter"
        #     has_psionic_ascension = no
        # }
        # 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 = {
		NOR = {
            # 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_organo_machine_interfacing_assimilator
            # has_ascension_perk = ap_synthetic_evolution
            # has_ascension_perk = ap_mind_over_matter
            # has_ascension_perk = ap_synthetic_age
            # has_origin = origin_shroudwalker_apprentice
            # has_origin = origin_cybernetic_creed
            # has_origin = origin_synthetic_fertility
            # has_origin = origin_evolutionary_predators
            # has_origin = origin_endbringers
            # AND = {
            #     has_origin = origin_unplugged
            #     OR = {
            #         has_country_flag = is_decyberized
            #         has_country_flag = is_cyberized
            #     }
            # }
		}
		is_gestalt = no
        is_individual_machine = no
        is_natural_design_empire = no
        # is_chosen_empire = no
        # owner_species = {
        #     NOT = { has_trait = trait_unplugged_decyberized }
        # }
        # is_entropy_drinkers_empire = no
	}

	ai_weight = {
		factor = @ascension_path_base_weight
        modifier = {
            factor = @ascension_path_synergy_weight
            is_materialist = yes
        }
		modifier = {
			factor = @ascension_path_anti_synergy_weight
			has_flesh_is_weak_anti_synergy = yes
		}
        modifier = {
            factor = @ascension_path_mindwardens_present
            any_country = {
                has_origin = origin_mindwardens
            }
        }
		modifier = {
			factor = 0
            aap_ai_has_any_ascension_path_or_origin = yes
		}
	}
}

# 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_not_ap_engineered_evolution"
        #     NOT = { has_ascension_perk = ap_engineered_evolution }
        # }
        if = {
            limit = { has_shroud_dlc = yes }
            # custom_tooltip = {
            #     fail_text = "requires_not_ap_mind_over_matter"
            #     has_psionic_ascension = no
            # }
            NOT = { country_has_situation = { SITUATION = situation_shroud_forged } }
        }
        # custom_tooltip = {
        #     fail_text = "requires_free_tradition_tree"
        #     num_tradition_categories < @max_tradition_trees
        # }
	}

	potential = {
        NOR = {
            # 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_organo_machine_interfacing_assimilator
            # has_ascension_perk = ap_synthetic_evolution
            # has_ascension_perk = ap_mind_over_matter
            # has_ascension_perk = ap_synthetic_age
            # has_origin = origin_evolutionary_predators
            # has_origin = origin_wilderness
            # has_origin = origin_endbringers
		}
		is_hive_empire = yes
        is_natural_design_empire = no
        # is_chosen_empire = no
        # is_entropy_drinkers_empire = no
	}

	ai_weight = {
		factor = @ascension_path_base_weight
        modifier = {
            factor = @ascension_path_mindwardens_present
            any_country = {
                has_origin = origin_mindwardens
            }
        }
		modifier = {
			factor = 0
            aap_ai_has_any_ascension_path_or_origin = yes
		}
	}
}

# 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_not_ap_synthetic_age"
        #     NOT = { has_ascension_perk = ap_synthetic_age }
        # }
        if = {
            limit = { has_shroud_dlc = yes }
            # custom_tooltip = {
            #     fail_text = "requires_not_ap_interdimensional_processing"
            #     has_psionic_ascension = no
            # }
            NOT = { country_has_situation = { SITUATION = situation_shroud_forged } }
        }
        # custom_tooltip = {
        #     fail_text = "requires_free_tradition_tree"
        #     num_tradition_categories < @max_tradition_trees
        # }
	}

	potential = {
        NOR = {
            # 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_organo_machine_interfacing_assimilator
            # has_ascension_perk = ap_synthetic_evolution
            # has_ascension_perk = ap_mind_over_matter
            # has_ascension_perk = ap_synthetic_age
            # has_origin = origin_endbringers
		}
		has_civic = civic_machine_assimilator
        # is_chosen_empire = no
        # is_entropy_drinkers_empire = no
	}

	ai_weight = {
		factor = @ascension_path_base_weight
		modifier = {
			factor = @ascension_path_synergy_weight
			has_organo_machine_interfacing_assimilator_synergy = yes
		}
        modifier = {
            factor = @ascension_path_mindwardens_present
            any_country = {
                has_origin = origin_mindwardens
            }
        }
		modifier = {
			factor = 0
            aap_ai_has_any_ascension_path_or_origin = yes
		}
	}
}

# 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_engineered_evolution"
        #     NOT = { has_ascension_perk = ap_engineered_evolution }
        # }
        # 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"
        #     has_psionic_ascension = no
        # }
        # custom_tooltip = {
        #     fail_text = "requires_free_tradition_tree"
        #     num_tradition_categories < @max_tradition_trees
        # }
	}

	potential = {
		NOR = {
            # 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_organo_machine_interfacing_assimilator
			has_ascension_perk = ap_synthetic_evolution
            # has_ascension_perk = ap_mind_over_matter
            # has_ascension_perk = ap_synthetic_age
			is_machine_empire = yes
            # has_origin = origin_shroudwalker_apprentice
            # has_origin = origin_cybernetic_creed
            # has_origin = origin_synthetic_fertility
            # has_origin = origin_evolutionary_predators
            # has_origin = origin_endbringers
            # has_tradition = tr_cybernetics_adopt
		}
		is_gestalt = no
		is_mechanical_empire = no
		is_natural_design_empire = no
        # NOT = { has_valid_civic = civic_augmentation_bazaars }
		is_individual_machine = no
        # owner_species = {
        #     NOT = { has_trait = trait_unplugged_decyberized }
        # }
        # is_chosen_empire = no
        # is_galvanic_empire = no
        # is_entropy_drinkers_empire = 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 = @ascension_path_mindwardens_present
            any_country = {
                has_origin = origin_mindwardens
            }
        }
        modifier = {
            factor = 0
            blocks_ai_synthetic_evolution = yes
        }
		modifier = {
			factor = 0
            aap_ai_has_any_ascension_path_or_origin = yes
		}
	}
}

# Psionic Ascension
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 }
        # }
        if = {
            limit = {
                OR = {
                    is_synthetic_empire = no
                    has_origin = origin_shroud_forged
                    is_chosen_empire = yes
                }
            }
            custom_tooltip = {
                fail_text = "requires_ascension_perks_2"
                num_ascension_perks > 1
            }
        }
        else_if = {
            custom_tooltip = {
                fail_text = "requires_ascension_perks_3"
                num_ascension_perks > 2
            }
        }
        # custom_tooltip = {
        #     fail_text = "requires_not_ap_engineered_evolution"
        #     NOT = { has_ascension_perk = ap_engineered_evolution }
        # }
        # 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_not_ap_synthetic_age"
        #     NOT = { has_ascension_perk = ap_synthetic_age }
        # }
        # custom_tooltip = {
        #     fail_text = "requires_not_ap_organo_machine_interfacing"
		# 	  NOR = {
		# 		  has_ascension_perk = ap_organo_machine_interfacing
		# 		  has_ascension_perk = ap_organo_machine_interfacing_assimilator
		# 	  }
        # }
        # custom_tooltip = {
        #     fail_text = "requires_free_tradition_tree"
        #     num_tradition_categories < @max_tradition_trees
        # }
        # if = {
        #     limit = {
        #         has_origin = origin_unplugged
        #     }
        #     custom_tooltip = {
        #         fail_text = "requires_unplugged_decyberized"
        #         has_country_flag = is_decyberized
        #     }
        # }
        if = {
            limit = { has_origin = origin_shroud_forged }
            if = {
                limit = {
                    any_situation = {
                        is_situation_type = situation_shroud_forged
                    }
                }
                custom_tooltip = {
                    fail_text = "shroud_forged_situation_ongoing"
                    always = no
                }
            }
            else = {
                custom_tooltip = {
                    fail_text = "shroud_forged_liberation_acquired"
                    NOT = { has_country_flag = finish_shroud_forged_liberation_flag }
                }
            }
        }
	}

	potential = {
		NOR = {
            has_country_flag = ratling_country
            # 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_organo_machine_interfacing_assimilator
            # has_ascension_perk = ap_synthetic_evolution
			has_ascension_perk = ap_mind_over_matter
            # has_ascension_perk = ap_synthetic_age
			has_origin = origin_shroudwalker_apprentice
            # has_origin = origin_cybernetic_creed
            # has_origin = origin_synthetic_fertility
            # has_origin = origin_evolutionary_predators
            # has_origin = origin_wilderness
            # has_valid_civic = civic_augmentation_bazaars
            has_origin = origin_mindwardens
            has_origin = origin_endbringers
		}
        OR = {
            has_shroud_dlc = yes # Shroud DLC allows gestalt/machines to become Psionic
            AND = {
                is_gestalt = no
                is_mechanical_empire = no
                # OR = {
                #     is_cyborg_empire = no
                #     AND = {
                #         has_origin = origin_unplugged
                #         NOT = { has_country_flag = is_cyberized }
                #     }
                # }
                is_individual_machine = no
            }
        }
		is_natural_design_empire = no
        if = {
            limit = { has_origin = origin_shroud_forged }
            NOT = { has_country_flag = finish_shroud_forged_control_flag }
        }
	}

    tradition_swap = {
        name = ap_interdimensional_processing
        inherit_name = no
        inherit_icon = no
        inherit_effects = yes
        trigger = {
            has_shroud_dlc = yes
            is_synthetic_empire = yes
        }
        weight = { factor = 1 }
    }

	ai_weight = {
        factor = @ascension_path_base_weight
        modifier = {
            factor = @ascension_path_synergy_weight
            is_spiritualist = yes
        }
        modifier = {
            factor = @ascension_path_synergy_weight
            OR = {
                has_mind_over_matter_synergy = yes
                any_country = {
                    has_origin = origin_mindwardens
                    NOT = { is_same_value = prev }
                }
            }
        }
        modifier = {
            factor = @ascension_path_synergy_weight
            # We want more psionic AIs when someone's playing Mindwardens, so you should ascend if at least you're not materialist
            is_materialist = no
            any_country = {
                has_origin = origin_mindwardens
            }
        }
		modifier = {
			factor = @ascension_path_anti_synergy_weight
			has_mind_over_matter_anti_synergy = yes
		}
		modifier = {
			factor = value:psionic_offices_mind_over_matter_mult
			any_owned_planet = {
				exists = branch_office_owner
				has_holding = {
					holding = building_psionic_offices
					owner = branch_office_owner
				}
			}
		}
        modifier = {
            factor = 0
            has_origin = origin_mindwardens
        }
		modifier = {
			factor = 0
            aap_ai_has_any_ascension_path_or_origin = yes
		}
	}
}

# Synthetic Ascension (Machine Intelligence or Individualistic Machine)
ap_synthetic_age = {
	potential = {
		OR = {
            is_machine_empire = yes
			is_individual_machine = yes
		}
        NOR = {
            # 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_organo_machine_interfacing_assimilator
            # has_ascension_perk = ap_synthetic_evolution
            # has_ascension_perk = ap_mind_over_matter
            has_ascension_perk = ap_synthetic_age
            # has_origin = origin_shroudwalker_apprentice
            # has_origin = origin_endbringers
        }
		is_natural_design_empire = no
        # is_chosen_empire = no
        # is_entropy_drinkers_empire = no
	}

	possible = {
		custom_tooltip = {
			fail_text = "requires_ascension_perks_2"
			num_ascension_perks > 1
		}
        # custom_tooltip = {
        #     fail_text = "requires_not_ap_organo_machine_interfacing"
        #     NOT = { has_ascension_perk = ap_organo_machine_interfacing_assimilator }
        # }
        if = {
            limit = { has_shroud_dlc = yes }
            # custom_tooltip = {
            #     fail_text = "requires_not_ap_interdimensional_processing"
            #     has_psionic_ascension = no
            # }
            NOT = { country_has_situation = { SITUATION = situation_shroud_forged } }
        }
        # 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 = @ascension_path_mindwardens_present
            any_country = {
                has_origin = origin_mindwardens
            }
        }
        modifier = {
            factor = 0
            aap_ai_has_any_ascension_path_or_origin = yes
        }
	}
}