namespace = f93_shroud
#Finding the most isolated systems
#Flagging All Shrouded Periphery Systems
system_event = {
	id = f93_shroud.1
	hide_window = yes
	is_triggered_only = yes
	
	trigger = {
		f93_is_in_a_cluster = no
		has_natural_wormhole = no
		has_star_flag = f93_shroud_region_flag
	}

	immediate = {
		#log_error = "shroud event 1 on [GetDate] by [Root.GetName]"
		every_system_planet = {
			reroll_deposits = yes
		}
		if = {
			limit = { is_inside_nebula = no }
			create_nebula = {
				name = Shrouded_Region_NAME
				radius = @f93_nebulae_radiuis
				effect = {
					add_modifier = { modifier = f93_shrouded_region_star multiplier = 0.5 }
				}
			}
			random_country = {
				limit = { is_ai = no }
				country_event = { id = f93_game_start.50 days = 5 }
			}
		}
		
		# set_name = "Shrouded"
		set_star_flag = f93_shroud_periphery_flag
		system_event = { id = f93_shroud.2 }
		#events depending on the srhoud and ralis cluster being formed should fire on the 4th day
		system_event = { id = f93_shroud.8 days = 3 }
		
		every_system = {
			limit = { NOT = { has_star_flag = crisis_spawn_exclude } has_star_flag = f93_shroud_region_flag }
			set_star_flag = crisis_spawn_exclude
		}
	}

}
#Flagging Core Shrouded Systems
system_event = {
	id = f93_shroud.2
	hide_window = yes
	is_triggered_only = yes
	
	trigger = {
		NOT = { has_star_flag = f93_shroud_core_flag }
		count_neighbor_system_euclidean = {
			count = all
			limit = { OR = { has_star_flag = f93_shroud_periphery_flag has_star_flag = f93_shroud_core_flag } }
		}
	}

	immediate = {
		#log_error = "shroud event 2 on [GetDate] by [Root.GetName]"
		# set_name = "core"
		remove_star_flag = f93_shroud_periphery_flag
		set_star_flag = f93_shroud_core_flag
		system_event = { id = f93_shroud.3 }
		# system_event = { id = f93_shroud.4 days = 1 }
		# f93_add_random_megastrcutre = yes
		random_list = {
			250 = {}
			100 = { if = { limit = { has_megacorp = yes is_star_class = sc_black_hole } spawn_megastructure = { type = matter_decompressor_ruined } } }
			10 = { if = { limit = { has_federations_dlc = yes } spawn_megastructure = { type = mega_shipyard_ruined } } }
			10 = { if = { limit = { has_megacorp = yes } spawn_megastructure = { type = mega_art_installation_ruined } } }
			3 = { if = { limit = { always = yes } spawn_megastructure = { type = dyson_sphere_ruined planet = star } } }
			8 = { if = { limit = { always = yes } spawn_megastructure = { type = think_tank_ruined } } }
			1 = { if = { limit = { always = yes } spawn_megastructure = { type = spy_orb_ruined } } }
		}
	}

}
#Flagging Deep cores
system_event = {
	id = f93_shroud.3
	hide_window = yes
	is_triggered_only = yes
	
	trigger = {
		NOT = { has_star_flag = f93_shroud_core_core_flag }
		count_neighbor_system_euclidean = {
			count = all
			limit = {
				OR = {
					has_star_flag = f93_shroud_core_core_flag
					has_star_flag = f93_shroud_core_flag
				}
			}
		}
	}

	immediate = {
		#log_error = "shroud event 3 on [GetDate] by [Root.GetName]"
		# set_name = "core core"
		remove_star_flag = f93_shroud_core_flag
		set_star_flag = f93_shroud_core_core_flag
		system_event = {
			id = f93_shroud.301
			days = 1
		}
	}
}

system_event = { #marking ralis cluster
	id = f93_shroud.301
	hide_window = yes
	is_triggered_only = yes
	trigger = {
		NAND = {
			any_neighbor_system_euclidean = {
				or = {
					any_neighbor_system = { has_hyperlane_to = prev }
					has_natural_wormhole = yes
				}
			}
			any_system_planet = { is_colony = yes }
			has_star_flag = f93_shrouded_cluster
		}
	}
	immediate = {
		#log_error = "shroud event 301 on [GetDate] by [Root.GetName]"
		set_star_flag = f93_potential_ralis_spawn
	}
}

system_event = { #creating ralis cluster
	id = f93_shroud.4
	hide_window = yes
	is_triggered_only = yes
	fire_only_once = yes
	trigger = {
		OR = {
			NOR = {
				exists = event_target:f93_ralis_system
				any_neighbor_system_euclidean = {
					any_neighbor_system = { has_hyperlane_to = prev }
				}
				any_system_planet = { is_colony = yes }
			}
			has_star_flag = f93_potential_ralis_spawn
			has_star_flag = f93_shroud_core_core_flag # remove this in a future version
		}
	}
	immediate = {
		#log_error = "shroud event 4 on [GetDate] by [Root.GetName]"
		save_global_event_target_as = f93_ralis_system
		set_star_flag = f93_ralis_system
		set_star_flag = f93_ralis_empire_cluster
		set_star_flag = sealed_system
		# set_star_flag = changed
		every_system_planet = {
			limit = { is_star = no }
			remove_planet = yes
		}
		if = {
			limit = { NOT = { has_global_flag = f82_button_1_1_off } }
			spawn_planet = {
				name = ralis_planet_NAME
				class = pc_city
				orbit_location = yes
				orbit_distance_offset = 32
				orbit_angle_offset = 291
				size = 28
			}
		}
		else = {
			spawn_planet = {
				name = ralis_planet_NAME
				class = pc_ruin
				orbit_location = yes
				orbit_distance_offset = 32
				orbit_angle_offset = 291
				size = 28
			}
		}
		every_system_planet = {
			limit = { is_star = no }
			planet_event = { id = f93_shroud.6 days = 1 }
			set_planet_flag = has_orbital_debris
		}
		every_system_megastructure = {
			remove_megastructure = this
		}
		every_fleet_in_system = {
			destroy_fleet = this
		}
		# if = {
		# 	limit = { has_nemesis = yes }
		# 	spawn_megastructure = {
		# 		type = crisis_sphere_ruined
		# 		planet = star
		# 	}
		# }
		every_system = { remove_star_flag = f93_current_cluster }
		f93_random_cluster_generator = yes
		every_system = {
			limit = { has_star_flag = f93_current_cluster has_natural_wormhole = yes }
			remove_star_flag = f93_current_cluster
			every_neighbor_system = {
				limit = { has_star_flag = f93_current_cluster }
				remove_hyperlane = { from = this to = prev }
			}
		}
		every_system = {
			limit = { has_star_flag = f93_current_cluster }
			set_star_flag = f93_ralis_empire_cluster
			set_star_flag = sealed_system
			remove_star_flag = f93_current_cluster
			every_system_megastructure = {
				remove_megastructure = this
			}
			set_star_flag = star_cracked
			set_star_class = sc_black_hole
			if = {
				limit = { NOT = { is_same_value = event_target:f93_ralis_system } }
				set_star_class = sc_black_hole
				every_system_planet = {
					if = {
						limit = { is_star = yes }
						change_pc = pc_black_hole
					}
					if = {
						limit = { is_star = no is_asteroid = no }
						change_pc = pc_shattered
					}
					if = {
						limit = { NOR = { is_planet_class = pc_black_hole is_planet_class = pc_shattered } }
						remove_planet = yes
					}
					random_list = {
						5 = { add_deposit = random }
						5 = { }
					}
				}
			}
		}
		set_name = ralis_system_NAME
	}
}
#Find a good or at least some place for Ralis to spawn
event = {
	id = f93_shroud.5
	hide_window = yes
	is_triggered_only = yes
	fire_only_once = yes
	immediate = {
		#log_error = "shroud event 5 on [GetDate] by [Root.GetName]"
		set_global_flag = f93_mid_game_done
		#final cleanup of false placed flags
		every_system = {
			limit = {
				has_star_flag = f93_potential_ralis_spawn
				any_neighbor_system = {
					has_hyperlane_to = prev
				}
			}
			remove_star_flag = f93_potential_ralis_spawn
		}
		if = {
			limit = { NOT = { has_global_flag = f82_button_1_1_off } }
			if = {
				limit = {
					any_system = {
						has_star_flag = f93_potential_ralis_spawn
						count_neighbor_system_euclidean = {
							count = all
							limit = {
								has_star_flag = f93_shroud_core_core_flag
							}
						}
					}
				}
				random_system = {
					limit = {
						has_star_flag = f93_potential_ralis_spawn
						count_neighbor_system_euclidean = {
							count = all
							limit = {
								has_star_flag = f93_shroud_core_core_flag
							}
						}
					}
					system_event = { id = f93_shroud.4 }
				}
			}
			else_if = {
				limit = {
					any_system = {
						has_star_flag = f93_potential_ralis_spawn
						count_neighbor_system_euclidean = {
							count = all
							limit = {
								OR ={
									has_star_flag = f93_shroud_core_core_flag
									has_star_flag = f93_shroud_core_flag
								}
							}
						}
					}
				}
				random_system = {
					limit = {
						has_star_flag = f93_potential_ralis_spawn
						count_neighbor_system_euclidean = {
							count = all
							limit = {
								OR ={
									has_star_flag = f93_shroud_core_core_flag
									has_star_flag = f93_shroud_core_flag
								}
							}
						}
					}
					system_event = { id = f93_shroud.4 }
				}
			}
			else = {
				random_system = {
					limit = {
						has_star_flag = f93_potential_ralis_spawn
					}
					system_event = { id = f93_shroud.4 }
				}
			}
		}
	}
}

planet_event = {
	id = f93_shroud.6
	hide_window = yes
	is_triggered_only = yes
	fire_only_once = yes
	immediate = {
		#log_error = "shroud event 6 on [GetDate] by [Root.GetName]"
		if = {
			limit = { NOT = { has_global_flag = f82_button_1_1_off } }
			f93_create_ralis_country = yes
			f93_create_ralis_planet = yes
			solar_system = { f93_create_ralis_vassal_country = yes }
			every_system = {
				limit = { has_star_flag = f93_ralis_empire_cluster }
				create_starbase = {
					owner = event_target:f93_ralis_country
					size = starbase_citadel

					module = missile_battery
					module = missile_battery
					module = hangar_bay
					module = hangar_bay
					module = gun_battery
					module = gun_battery
					
					building = "crew_quarters"
					building = "target_uplink_computer"
					building = "defense_grid"
					effect = {
						while = {
							count = 10
							f93_spawn_ralis_defense_platform = yes
						}
					}
				}
			}
		}
		solar_system = {
			starbase = {
				save_global_event_target_as = f93_ralis_starbase
			}
			set_star_class = sc_black_hole
			star = {
				set_planet_size = 5
			}
			every_neighbor_system_euclidean = {
				limit = {
					has_star_flag = f93_ralis_empire_cluster
				}
				every_system_planet = {
					random_list = {
						5 = { add_deposit = random }
						3 = { }
						1 = { add_deposit = random add_deposit = random }
					}
				}
			}
			set_name = ralis_system_NAME
		}
		set_name = ralis_planet_NAME
		if = {
			limit = { has_global_flag = f82_button_1_1_off }
			change_pc = pc_relic
		}
	}
}
country_event = { #midgame trigger
	id = f93_shroud.7
	title = f93_shroud.7.name
	picture = GFX_evt_fallen_empire
	is_triggered_only = yes

	desc = {
		trigger = {
			NOT = { has_country_flag = ralis_country_flag }
		}
		text = f93_shroud.7.desc
	}
	
	desc = {
		trigger = {
			has_country_flag = ralis_country_flag
		}
		text = f93_shroud.7b.desc
	}
	
	immediate = {
		#log_error = "shroud event 7 on [GetDate] by [Root.GetName]"
		if = {
			limit = { event_target:f93_ralis_country = { is_ai = yes } }
			event_target:f93_ralis_planet = {
				set_name = ralis_planet_NAME
				solar_system = { set_name = ralis_system_NAME }
			}
		}
	}

	option = {
		trigger = { NOT = { has_country_flag = ralis_country_flag } }
		name = f93_shroud.7.a
	}

	option = {
		trigger = { has_country_flag = ralis_country_flag }
		name = f93_shroud.7.b
	}
}
#reconnects voidworms systems to the galactic crossing, so this event chain is not impossible.
system_event = {
	id = f93_shroud.8
	hide_window = yes
	is_triggered_only = yes

	trigger = {
		OR ={ #maybe not too many?
			has_star_flag = voidworms_system
			has_star_flag = guardians_of_zanaam
			# has_star_flag = space_critter_system
			has_star_flag = sealed_entry_system
			has_star_flag = enclave
			has_star_flag = lgate
			has_star_flag = abandoned_gateway
		}
		f93_system_winthin_20_steps_of_galcro = no
		NOT = {
			any_neighbor_system = {
				has_hyperlane_to = root
			}
		}
	}
	immediate = {
		#log_error = "shroud event 8 on [GetDate] by [Root.GetName]"
		if = {
			limit = {
				OR = {
					has_star_flag = enclave
					has_star_flag = voidworms_system
					has_star_flag = guardians_of_zanaam
					has_star_flag = sealed_entry_system
					# has_star_flag = space_critter_system
				}
			}
			f93_connect_system_with_GalCro_within_20_steps_and_generate_cluster = yes
			set_star_flag = f93_shrouded_cluster
		}
		if = {
			limit = {
				OR = {
					has_star_flag = lgate
					has_star_flag = abandoned_gateway
				}
			}
			f93_random_cluster_generator = yes
			set_star_flag = f93_shrouded_cluster
			every_system = { remove_star_flag = f93_current_cluster }
		}
	}
}

system_event = {
	id = f93_shroud.9
	hide_window = yes
	is_triggered_only = yes

	immediate = {
		#log_error = "shroud event 9 on [GetDate] by [Root.GetName]"
		f93_connect_system_with_GalCro_within_20_steps_and_generate_cluster = yes
	}
}