namespace = f93_galactic_crossing

system_event = {
	id = f93_galactic_crossing.1
	hide_window = yes
	is_triggered_only = yes

	trigger = {
		exists = event_target:system_highway_start
		exists = event_target:system_highway_end
		event_target:system_highway_end = {
			is_same_value = ROOT
		}
	}
	immediate = {
		#log_error = "GalCro event 1 on [GetDate] by [Root.GetName]"
		event_target:system_highway_start = {
			highway_create_system = yes
		}
		clear_global_event_target = system_highway_end
	}
}

country_event = {
	id = f93_galactic_crossing.2
	# mean_time_to_happen = { days = 1 }
	is_triggered_only = yes
	fire_only_once = yes
	hide_window = yes
	immediate = {
		#log_error = "GalCro event 2 on [GetDate] by [Root.GetName]"
		every_country = {
			# Informing the Player about the Results
			country_event = { id = f93_galactic_crossing.8 days = 5 }
		}
		hidden_effect = {
			if = {
				limit = {
					NOT = {
						any_system = { f93_system_has_ancient_relay = yes }
					}
				}
				random_system = {
					limit = {
						f93_valid_gal_crossing_endpoint = yes
					}
					highway_connect_relay_only = yes
					save_global_event_target_as = system_highway_start
					set_star_flag = enigmatic_cache_system # dirty trick to stop crash from ctd when spawning in enigmatic cache at midgame
				}
			}
			#Should someone play with 0 fallen empires, this would generate random GalCro Endpoints
			get_galaxy_setup_value = { which = num_fallen_empires setting = num_fallen_empires }
			if = {
				limit = {
					check_variable = { which = num_fallen_empires value = 0 }
				}
				while = {
					count = f93_gal_size
					random_system = { set_star_flag = f93_used_in_case_of_0_less_FE }
				}
			}
			else_if = {
				limit = {
					has_global_flag = f82_button_2_4_on
				}
				divide_variable = { which = f93_gal_size value = 2 }
				while = {
					count = f93_gal_size
					random_system = { set_star_flag = f93_used_in_case_of_really_big_galaxy }
				}
				multiply_variable = { which = f93_gal_size value = 2 }
			}
			while = {
				count = f93_gal_size
				limit = {
					any_system = {
						f93_valid_gal_crossing_endpoint = yes
						f93_system_has_ancient_relay = no
					}
				}
				random_system = {
					limit = {
						f93_valid_gal_crossing_endpoint = yes
						f93_system_has_ancient_relay = no
					}
					save_global_event_target_as = system_highway_end
					event_target:system_highway_start = {
						highway_create_system = yes
					}
					clear_global_event_target = system_highway_end
				}
			}
			if = {
				limit = { any_system = { has_megastructure = ring_world_ruined NOT = { exists = owner } } }
				random_system = {
					limit = {
						has_megastructure = ring_world_ruined
						NOT = { exists = owner }
						f93_system_has_ancient_relay = no
					}
					save_global_event_target_as = system_highway_end
					event_target:system_highway_start = {
						highway_create_system = yes
					}
					clear_global_event_target = system_highway_end
				}
			}
			if = {
				limit = {
					any_system = {
						exists = owner
						owner = { is_country_type = fallen_empire }
						is_capital_system = yes
						f93_system_has_ancient_relay = no
					}
				}
				every_system = {
					limit = {
						exists = owner
						owner = { is_country_type = fallen_empire }
						is_capital_system = yes
						f93_system_has_ancient_relay = no
					}
					save_global_event_target_as = system_highway_end
					closest_system = {
						limit = {
							NOT = { is_same_value = prev }
							f93_system_has_ancient_relay = yes
						}
						save_global_event_target_as = system_highway_start
						highway_create_system = yes
					}
					clear_global_event_target = system_highway_end
				}
			}
			clear_global_event_target = system_highway_start
		}
		country_event = { id = f93_galactic_crossing.3 }
		country_event = { id = f93_galactic_crossing.7 days = 1 }
	}
}
#this event causes the major map changes.
#it sets the flag f93_shroud_region_flag and fires event f93_shroud.1 in valid systems
country_event = {
	id = f93_galactic_crossing.3
	hide_window = yes
	is_triggered_only = yes

	immediate = {
		f93_mark_highway_systems = yes
		#log_error = "GalCro event 3 on [GetDate] by [Root.GetName]"
		every_system = {
			limit = {
				distance_to_core_percent > 0.30
				NOR = {
					exists = owner
					any_neighbor_system = { has_star_flag = empire_cluster }
					any_neighbor_system = { exists = owner owner = { is_country_type = dormant_marauders } }
					any_system = {
						f93_system_has_ancient_relay = yes
						distance = {
							source = prev
							max_jumps = @galactic_crossing_outskirts
							type = hyperlane
						}
					}
					# any_system = {
					# 	has_star_flag = normal_region
					# 	distance = {
					# 		source = prev
					# 		max_jumps = 8
					# 		type = hyperlane
					# 	}
					# }
					has_star_flag = chosen_system
					has_star_flag = crisis_spawn_exclude
					has_star_flag = lcluster
					has_star_flag = empire_cluster
					has_star_flag = surveillance_supercomputer_system
					has_star_flag = unplugged_machine_legacy_flag
				}
			}
			set_star_flag = f93_shroud_region_flag
			every_system = {
				limit = {
					invalid_shrouded_system = yes
				}
				remove_star_flag = f93_shroud_region_flag
			}
			every_system = {
				limit = { has_hyperlane_to = prev }
				remove_hyperlane = { from = this to = prev }
			}
			system_event = { id = f93_shroud.1 }
		}
		
		if = {
			limit = { has_global_flag = f82_button_2_3_on }
			every_system = {
				limit = {
					f93_system_has_ancient_relay = no
					closest_system = {
						f93_system_has_ancient_relay = yes
						max_steps = 5
						exists = this
					}
				} 
				random_neighbor_system_euclidean = {
					limit = { f93_system_has_ancient_relay = no }
					if = {
						limit = { NOT = { has_hyperlane_to = prev } }
						add_hyperlane = { from = this to = prev }
					}
					remove_star_flag = f93_shroud_region_flag
				}
			}
		}
	}
}

# country_event = {
# 	id = f93_galactic_crossing.4
# 	hide_window = yes
# 	is_triggered_only = yes

# 	immediate = {
# 		random_system = {
# 			limit = {
# 				exists = owner
# 				owner = { is_country_type = fallen_empire }
# 				is_capital_system = yes
# 				f93_system_has_ancient_relay = no
# 			}
# 			save_global_event_target_as = system_highway_end
# 			closest_system = {
# 				limit = {
# 					NOT = { is_same_value = prev }
# 					f93_system_has_ancient_relay = yes
# 				}
# 				save_global_event_target_as = system_highway_start
# 				highway_create_system = yes
# 			}
# 			clear_global_event_target = system_highway_end
# 			clear_global_event_target = system_highway_start
# 		}
# 	}
# }
# country_event = {
# 	id = f93_galactic_crossing.5
# 	hide_window = yes
# 	is_triggered_only = yes

# 	immediate = {
# 		every_owned_megastructure = {
# 			limit = { is_megastructure_type = dandelion_relay }
# 			remove_megastructure = this
# 		}
# 	}
# }
# this event empties systems and places ancient relays in them, requires overlord DLC
country_event = {
	id = f93_galactic_crossing.7
	hide_window = yes
	is_triggered_only = yes
	fire_only_once = yes
	immediate = {
		#log_error = "GalCro event 7 on [GetDate] by [Root.GetName]"
		if = {
			limit = {
				NOT = { has_global_flag = f82_button_2_2_off }
			}
			if = {
				limit = { has_global_flag = f82_button_2_1_off }
				every_system = {
					limit = { f93_system_has_ancient_relay = yes }
					every_system_megastructure = {
						limit = { is_megastructure_type = dandelion_relay }
						remove_megastructure = this
					}
				}
			}
			else_if = {
				limit = { has_overlord_dlc = yes }
				every_system = {
					limit = {
						f93_system_has_ancient_relay = yes
						f93_ok_to_be_destroyed = yes
						NOR = {
							exists = space_owner
							any_system_planet_colony = { exists = this }
							has_star_flag = empire_cluster
							any_fleet_in_system = { exists = this }
							any_system_megastructure = {
								NOT = { is_megastructure_type = dandelion_relay }
								exists = this
							}
						}
					}
					set_star_class = sc_hyper_relay_star
					set_star_flag = f93_empty_system_on_galcrossing
					# set_name = BLANK_STRING
					every_system_planet = { remove_planet = yes }
					every_ambient_object = { destroy_ambient_object = this }
					f93_replace_relay_with_relay_star = yes
				}
			}
		}
		every_country = {
			save_event_target_as = current_country
			limit = { exists = capital_scope OR = { is_country_type = dormant_marauders is_country_type = default } }
			capital_scope = { solar_system = { save_event_target_as = current_source } }
			if = {
				limit = {
					NOR = {
						any_system = {
							# NEW ISOLATION DETECTION
							distance = {
								source = event_target:current_source
								type = hyperlane
								max_jumps = 30
							}
							has_star_flag = normal_region
						}
						has_country_flag = chosen_empire
					}
				}
				capital_scope = {
					closest_system = {
						limit = { NOT = { exists = owner } }
						min_steps = 2
						if = {
							limit = {
								any_system = {
									NOT = { exists = owner }
									f93_system_has_ancient_relay = yes
									has_natural_wormhole = no
								}
							}
							random_system = {
								limit = {
									NOT = { exists = owner }
									f93_system_has_ancient_relay = yes
									has_natural_wormhole = no
								}
								prev = {
									set_star_flag = Womrhole_maker_10
									spawn_natural_wormhole = {
										bypass_type = wormhole
										random_pos = yes
										orbit_angle = 360
									}
								}
								set_star_flag = Womrhole_maker_11
								spawn_natural_wormhole = {
									bypass_type = wormhole
									random_pos = yes
									orbit_angle = 360
								}
								link_wormholes = prev
							}
						}
						else = {
							random_system = {
								limit = {
									NOT = { exists = owner }
									f93_system_winthin_20_steps_of_galcro = yes
									has_natural_wormhole = no
								}
								prev = {
									set_star_flag = Womrhole_maker_12
									spawn_natural_wormhole = {
										bypass_type = wormhole
										random_pos = yes
										orbit_angle = 360
									}
								}
								set_star_flag = Womrhole_maker_13
								spawn_natural_wormhole = {
									bypass_type = wormhole
									random_pos = yes
									orbit_angle = 360
								}
								link_wormholes = prev
							}
						}
					}
					owner = {
						country_event = { id = f93_galactic_crossing.11 }
					}
				}
			}
		}
	}
}
#Checks if the galaxy is good and how many stars are shrouded
country_event = {
	id = f93_galactic_crossing.8
	title = f93_galactic_crossing.8.name
	picture = GFX_evt_alien_hieroglyphics
	is_triggered_only = yes
	desc = {
		trigger = {
			NOT = { any_system = { has_star_flag = f93_potential_ralis_spawn } }
			NOT = { has_global_flag = f82_button_1_1_off }
		}
		text = f93_ralis_failed_to_form
	}
	desc = {
		trigger = {
			OR ={
				owner = { is_shrouded_player = no }
				NOT = { has_global_flag = f82_button_2_1_off }
			}
		}
		text = f93_galactic_crossing.8.green
	}
	desc = {
		trigger = {
			owner = { is_shrouded_player = yes }
			NOT = { has_global_flag = f82_button_2_1_off }
		}
		text = f93_galactic_crossing.8.red
	}
	trigger = {
		is_ai = no
	}
	immediate = {
		#log_error = "GalCro event 8 on [GetDate] by [Root.GetName]"
		export_trigger_value_to_variable = {
			trigger = count_system
			parameters = { limit = { has_star_flag = f93_shroud_region_flag } }
			variable = f93_num_shrouded_systems
		}
		export_trigger_value_to_variable = {
			trigger = count_system
			variable = f93_num_systems
		}
		set_variable = { which = f93_star_ration_percent value = f93_num_shrouded_systems }
		divide_variable = { which = f93_star_ration_percent value = f93_num_systems }
		multiply_variable = { which = f93_star_ration_percent value = 100 }
		round_variable = f93_star_ration_percent
		
	}
	option = {
		name = f93_galactic_crossing.8.a
	}
}

country_event = {
	id = f93_galactic_crossing.9
	hide_window = yes
	# mean_time_to_happen = 360
	is_triggered_only = yes

	trigger = {
		exists = capital_scope
		is_country_type = default
	}
	immediate = {
		# #log_error = "GalCro event 9 on [GetDate] by [Root.GetName]"
		every_system_within_border = {
			remove_star_flag = f93_crossing_capital_route_flag
		}
		capital_scope.solar_system = {
			if = {
				limit = {
					f93_system_has_ancient_relay = no
					NOT = { has_megastructure = hyper_relay }
					any_neighbor_system = {
						OR = {
							f93_system_has_ancient_relay = yes
							has_megastructure = hyper_relay
						}
					}
				}
				set_star_flag = f93_crossing_capital_route_flag
			}
			else = {
				closest_system = {
					limit = {
						exists = owner
						space_owner = { is_same_value = root }
						f93_system_has_ancient_relay = no
						NOT = { has_megastructure = hyper_relay }
						any_neighbor_system = {
							OR = {
								f93_system_has_ancient_relay = yes
								has_megastructure = hyper_relay
							}
						}
					}
					set_star_flag = f93_crossing_capital_route_flag
				}
			}
		}
		#prpevent ai form making enclaves
		# add_modifier = {
		# 	modifier = country_enclave_capacity_decrease_modifier
		# 	mult = 100
		# }
		if = {
			limit = { NOT = { has_country_flag = f93_remove_enclave_100_cap_dec } }
			remove_modifier = country_enclave_capacity_decrease_modifier
			set_country_flag = f93_remove_enclave_100_cap_dec
		}
		#make community admin open borders
		if = {
			limit = { exists = event_target:f93_community_ralis_admin_country }
			every_country = {
				event_target:f93_community_ralis_admin_country = {
					set_closed_borders = {
						who = prev
						status = no
					}
				}
			}
		}
	}
}

country_event = {
	id = f93_galactic_crossing.901
	hide_window = yes
	# mean_time_to_happen = 30
	is_triggered_only = yes

	trigger = {
		exists = event_target:f93_ralis_country
		is_same_value = event_target:f93_ralis_country
	}

	immediate = {
		# #log_error = "GalCro event 901 on [GetDate] by [Root.GetName]"
		remove_modifier = f93_megastructure_build_speed_mult
		if = {
			limit = {
				count_owned_leader = {
					count < 4
					limit = { leader_class = scientist }
				}
			}
			create_leader = { name = random species = last_created_species class = scientist }
		}
		if = {
			limit = {
				count_owned_leader = {
					count < 4
					limit = { leader_class = official }
				}
			}
			create_leader = { name = random species = last_created_species class = official }
		}
		if = {
			limit = {
				count_owned_leader = {
					count < 4
					limit = { leader_class = commander }
				}
			}
			create_leader = { name = random species = last_created_species class = commander }
		}
		if = {
			limit = {
				NOT = { has_global_flag = f93_ralis_awoken }
				event_target:f93_ralis_planet = { owner = { is_ai = yes } }
			}
			event_target:f93_ralis_planet = {
				set_name = ralis_planet_NAME
				solar_system = { set_name = ralis_system_NAME }
			}
		}
		# if = {
		# 	limit = {
		# 		exists = event_target:f93_ralis_country
		# 		NOT = { has_global_flag = f93_ralis_awoken }
		# 	}
		# 	every_country = {
		# 		remove_communications = event_target:f93_ralis_country
		# 	}
		# }
		if = {
			limit = { is_at_war = yes }
			every_war = {
				limit = { any_war_participant = { is_same_value = event_target:f93_ralis_country } }
				every_war_participant = {
					limit = { OR { is_country_type = fallen_empire is_country_type = awakened_fallen_empire } }
					prev = { remove_war_participant = prev }
				}
			}
		}
		event_target:f93_ralis_country = { remove_from_galactic_community = yes }
	}
}

country_event = {
	id = f93_galactic_crossing.10
	hide_window = yes
	is_triggered_only = yes
	fire_only_once = yes

	immediate = {
		#log_error = "GalCro event 10 on [GetDate] by [Root.GetName]"
		while = {
			count = 5
			random_system = {
				limit = {
					has_star_flag = f93_shroud_region_flag
					NOR = {
						has_star_flag = f93_ralisgate_cluster
						has_star_flag = f93_ralisgate
						any_neighbor_system = { has_hyperlane_to = prev }
					}
				}
				f93_place_shroud_gate_node_and_cluster = yes
			}
		}
		f93_place_shroud_hyperlane_in_isolated_wormhole_region = yes
	}
}

country_event = {
	id = f93_galactic_crossing.11
	hide_window = yes
	is_triggered_only = yes
	trigger = {
		exists = capital_scope
	}
	immediate = {
		#log_error = "GalCro event 11 on [GetDate] by [Root.GetName]"
		if = {
			limit = { NOR = { has_technology = tech_wormhole_stabilization has_tech_option = tech_wormhole_stabilization } }
			add_research_option = tech_wormhole_stabilization
		}
		add_tech_progress = { #create a small event chain to obtain this tech early on.
			tech = tech_wormhole_stabilization
			progress = 0.75
		}
		if = {
			limit = { is_ai = yes NOT = { has_country_flag = chosen_empire } }
			give_technology = { tech = tech_wormhole_stabilization message = no }
		}
		if = {
			limit = { has_origin = origin_void_dwellers }
			closest_system = {
				min_steps = 1
				random_system_planet = {
					save_event_target_as = target_planet
				}
				if = {
					limit = {
						event_target:target_planet = {
							is_star = yes
						}
					}
					spawn_habitat_effect = {
						HABITAT_OWNER = root
						TARGET_PLANET = event_target:target_planet
						DISTANCE = 19.798
					}
				}
				else = {
					spawn_habitat_effect = {
						HABITAT_OWNER = root
						TARGET_PLANET = event_target:target_planet
						DISTANCE = 9.899
					}
				}
				event_target:target_planet.solar_system = {
					set_star_flag = has_habitat
				}
			}
		}
		else_if = {
			limit = { closest_system = { min_steps = 2 exists = this } }
			closest_system = {
				limit = {
					NOR = {
						has_star_flag = neighbor_t1
						has_star_flag = neighbor_t2
						has_star_flag = neighbor_t1_first_colony
						has_star_flag = neighbor_t2_second_colony
					}
					any_system_planet = { is_planet_class = pc_barren }
				}
				min_steps = 2
				random_system_planet = {
					limit = { is_planet_class = pc_barren }
					change_pc = root.owner_species
					reroll_deposits = yes
				}
			}
		}
		else = {
			capital_scope.solar_system = {
				random_neighbor_system = {
					limit = {
						NOR = {
							has_star_flag = neighbor_t1_first_colony
							has_star_flag = neighbor_t2_second_colony
						}
						any_system_planet = { is_planet_class = pc_barren }
					}
					random_system_planet = {
						limit = { is_planet_class = pc_barren }
						change_pc = root.owner_species
						reroll_deposits = yes
					}
				}
			}
		}
	}
}

country_event = {
	id = f93_galactic_crossing.14
	hide_window = yes
	# mean_time_to_happen = 360
	is_triggered_only = yes
	trigger = {
		mid_game_years_passed >= value:halfway_to_mid_game_year
		is_ai = yes
		NOR = {
			has_global_flag = galactic_community_founded
			has_global_flag = galcom_founding_begun
		}
	}

	immediate = {
		#log_error = "GalCro event 14 on [GetDate] by [Root.GetName]"
		random_playable_country = {
			limit = {
				NOT = { has_communications = root }
				is_ai = yes
			}
			establish_communications_no_message = root
		}
	}
}

event = {
	id = f93_galactic_crossing.15
	hide_window = yes
	# mean_time_to_happen = 360
	is_triggered_only = yes
	trigger = { NOT = { has_global_flag = f82_button_2_1_off } }
	immediate = {
		# #log_error = "GalCro event 15 on [GetDate] by [Root.owner.GetName]"
		random_system = {
			limit = {
				f93_system_has_ancient_relay = no
				has_star_flag = f93_ancient_relay_system
			}
			f93_spawn_ancient_relay = yes
			if = {
				limit = { exists = space_owner space_owner = { NOT = { has_country_flag = f93_recently_saw_oe_8 } } }
				closest_system = {
					limit = { exists = space_owner space_owner = { is_fallen_empire = yes } }
					space_owner = { save_event_target_as = f93_repaired_ancient_relay }
				}
				save_event_target_as = f93_repaired_system
				space_owner = { country_event = { id = f93_oe_event.8 } set_timed_country_flag = { flag = f93_recently_saw_oe_8 days = 360 } }
			}
		}
	}
}

#somehow move enclaves out of the shrouded regions
# event = {
# 	id = f93_galactic_crossing.16
# 	hide_window = yes
# 	# mean_time_to_happen = 360
# 	is_triggered_only = yes
# 	fire_only_once = yes

# 	immediate = {
# 		every_system = {
# 			limit = {
# 				has_star_flag = f93_shroud_region_flag
# 				exists = any_fleet_in_system
# 			}
# 			every_fleet_in_system = {
# 				limit = { is_ai = yes owner = { is_country_type = enclave } }
# 			}
# 		}
# 	}
# }

# hardcore debugger
country_event = {
	id = f93_galactic_crossing.99
	is_triggered_only = yes
	title = f93_galactic_crossing.99.name
	desc = f93_galactic_crossing.99.desc
	picture = GFX_evt_star_chart
	immediate = {
		#log_error = "GalCro event 99 debug"
		}
	option = {
		name = OK
	}
	option = {
		name = f93_galactic_crossing.99.a
		random_country = {
			limit = { 
				OR = {
					is_country_type = enclave_mercenary
					is_country_type = enclave
				}
			}
			destroy_country = yes
		}
	}
	option = {
		name = f93_galactic_crossing.99.b
		every_playable_country = {
			destroy_country = yes
		}
	}
	option = {
		name = f93_galactic_crossing.99.c
		every_country = {
			limit = { NOT = { is_country_type = default } }
			destroy_country = yes
		}
	}
	option = {
		name = f93_galactic_crossing.99.d
		every_country = {
			limit = { 
				OR = {
					is_country_type = enclave_mercenary
					is_country_type = enclave
				}
				NOT = { is_same_value = event_target:f93_community_ralis_admin_country }
			}
			destroy_country = yes
		}
	}
	option = {
		name = f93_galactic_crossing.99.e
		every_country = {
			limit = { 
				OR = {
					is_country_type = dormant_marauders
					is_country_type = awakened_marauders
				}
			}
			destroy_country = yes
		}
	}
	option = {
		name = f93_galactic_crossing.99.f
		every_country = {
			limit = { 
				OR = {
					is_country_type = fallen_empire
					is_country_type = awakened_fallen_empire
				}
			}
			destroy_country = yes
		}
	}
	option = {
		name = f93_galactic_crossing.99.g
		every_country = {
			limit = {
				is_country_type = primitive
			}
			destroy_country = yes
		}
	}
	option = {
		name = f93_galactic_crossing.99.h
		every_country = {
			limit = { is_fauna_country = yes }
			destroy_country = yes
		}
	}
	option = {
		name = f93_galactic_crossing.99.i
		every_country = {
			destroy_country = yes
		}
		every_system = {
			every_fleet_in_system = {
				delete_fleet = this
			}
		}
	}
	option = {
		name = f93_galactic_crossing.99.j
		random_country = {
			limit = { is_ai = yes }
			destroy_country = yes
		}
	}
	option = {
		name = f93_galactic_crossing.99.k
		
		every_system = {
			limit = { has_star_flag = f93_shroud_region_flag }
			every_fleet_in_system = {
				delete_fleet = this
			}
		}
	}
	
	option = {
		name = f93_galactic_crossing.99.l
		every_country = {
			limit = { or = { has_country_flag = ralis_country_flag has_country_flag = f93_ralis_subject } }
			destroy_country = yes
		}
	}
	option = {
		name = f93_galactic_crossing.99.m
		event_target:f93_ralis_country = {
			every_controlled_fleet = {
				limit = { is_in_combat = yes }
				delete_fleet = this
			}
		}
	}
}