############################
#
# Gray Goo Events
#
# Written by Henrik Thyrwall
#
############################
namespace = graygoo
# Entering Empty Cluster
ship_event = {
	id = graygoo.550
	title = "graygoo.550.name"
	desc = "graygoo.550.desc"
	picture = GFX_evt_ruined_system
	show_sound = event_radio_chatter
	is_triggered_only = yes
	trigger = {
		NOR = {
			has_global_flag = gray_goo_crisis_set
			has_global_flag = dragon_season
			has_global_flag = gray_goo_empire_set
			has_global_flag = rg_l_cluster
		}
		from = {
			has_star_flag = lcluster1
		}
		owner = {
			NOT = {
				has_country_flag = origin_gray_country
			}
		}
	}
	option = {
		name = graygoo.550.a
	}
}

# Invasion begins
country_event = {
	id = graygoo.1
	hide_window = yes
	is_triggered_only = yes
	immediate = {
		set_update_modifiers_batch = begin
		awaken_guardians_of_the_galaxy = yes
		set_global_flag = gray_goo_crisis_active
		every_megastructure = {
			limit = {
				is_megastructure_type = lgate_base
			}
			activate_gateway = this
			set_megastructure_flag = lgate_activated
		}
		event_target:graygoo_factory_system = {
			random_system_planet = {
				limit = {
					has_planet_flag = main_star
				}
				save_event_target_as = main_star
			}
			create_country = {
				name = "NAME_Gray_Goo"
				type = "gray_goo"
				name_list = "graygoo"
				flag = {
					icon = {
						category = "special"
						file = "gray_goo.dds"
					}
					background = {
						category = "backgrounds"
						file = "sinus.dds"
					}
					colors = {
						"grey"
						"dark_grey"
						"null"
						"null"
					}
				}
				effect = {
					save_event_target_as = graygoo_country
					create_ship_design = {
						design = "NAME_RG_armed_transport_ship"
					}
					add_ship_design = last_created_design
					create_ship_design = {
						design = "NAME_RG_GRAY_scienceship"
					}
					add_ship_design = last_created_design
					create_ship_design = {
						design = "NAME_RG_GRAY_constructor"
					}
					add_ship_design = last_created_design
					create_ship_design = {
						design = "NAME_Gatebuilder_Starbase"
					}
					add_ship_design = last_created_design
				}
			}
			create_fleet = {
				effect = {
					set_owner = event_target:graygoo_country
					create_ship = {
						name = random
						design = "NAME_Nanite_Factory"
						graphical_culture = "pirate_01"
					}
					set_location = {
						target = event_target:main_star
						distance = 55
						angle = 270
					}
					save_event_target_as = nanite_factory
				}
			}
			every_country = {
				establish_communications_no_message = event_target:graygoo_country
			}
			create_fleet = {
				name = "NAME_Tempest_Fleet"
				effect = {
					set_owner = event_target:graygoo_country
					rg_create_graygoo_ships_1 = yes
					set_formation_scale = 2
					set_fleet_stance = aggressive
					set_aggro_range_measure_from = self
					set_aggro_range = 250
					set_location = {
						target = event_target:nanite_factory
						distance = 80
						angle = 0
					}
				}
				settings = {
					garrison = yes
				}
			}
			create_fleet = {
				name = "NAME_Tempest_Fleet"
				effect = {
					set_owner = event_target:graygoo_country
					rg_create_graygoo_ships_1 = yes
					set_formation_scale = 2
					set_fleet_stance = aggressive
					set_aggro_range_measure_from = self
					set_aggro_range = 250
					set_location = {
						target = event_target:nanite_factory
						distance = 80
						angle = 90
					}
				}
				settings = {
					garrison = yes
				}
			}
			create_fleet = {
				name = "NAME_Tempest_Fleet"
				effect = {
					set_owner = event_target:graygoo_country
					rg_create_graygoo_ships_1 = yes
					set_formation_scale = 2
					set_fleet_stance = aggressive
					set_aggro_range_measure_from = self
					set_aggro_range = 250
					set_location = {
						target = event_target:nanite_factory
						distance = 80
						angle = 180
					}
				}
				settings = {
					garrison = yes
				}
			}
			create_fleet = {
				name = "NAME_Tempest_Fleet"
				effect = {
					set_owner = event_target:graygoo_country
					rg_create_graygoo_ships_1 = yes
					set_formation_scale = 2
					set_fleet_stance = aggressive
					set_aggro_range_measure_from = self
					set_aggro_range = 250
					set_location = {
						target = event_target:nanite_factory
						distance = 80
						angle = 270
					}
				}
				settings = {
					garrison = yes
				}
			}
			every_system = {
				limit = {
					has_star_flag = lcluster
				}
				every_system_planet = {
					limit = {
						is_planet_class = pc_gray_goo
					}
					create_fleet = {
						name = "NAME_Tempest_Fleet"
						effect = {
							set_owner = event_target:graygoo_country
							rg_create_graygoo_ships_1 = yes
							set_formation_scale = 2
							set_fleet_stance = aggressive
							set_aggro_range_measure_from = self
							set_aggro_range = 250
							set_location = {
								target = prev
								distance = 15
								angle = random
							}
						}
						settings = {
							garrison = yes
						}
					}
				}
			}
			event_target:lcluster1 = {
				random_system_planet = {
					limit = {
						is_planet_class = pc_gray_goo
					}
					save_event_target_as = start_1
				}
			}
			event_target:lcluster2 = {
				random_system_planet = {
					limit = {
						is_planet_class = pc_gray_goo
					}
					save_event_target_as = start_2
				}
			}
			event_target:lcluster3 = {
				random_system_planet = {
					limit = {
						is_planet_class = pc_gray_goo
					}
					save_event_target_as = start_3
				}
			}
			event_target:lcluster4 = {
				random_system_planet = {
					limit = {
						is_planet_class = pc_gray_goo
					}
					save_event_target_as = start_4
				}
			}
			event_target:lcluster5 = {
				random_system_planet = {
					limit = {
						is_planet_class = pc_gray_goo
					}
					save_event_target_as = start_5
				}
			}
			event_target:lcluster1b = {
				random_system_planet = {
					limit = {
						is_planet_class = pc_gray_goo
					}
					save_event_target_as = start_6
				}
			}
			rg_create_graygoo_roamers_1 = yes
			rg_create_graygoo_roamers_2 = yes
			rg_create_graygoo_roamers_3 = yes
			rg_create_graygoo_roamers_4 = yes
			rg_create_graygoo_roamers_5 = yes
			rg_create_graygoo_roamers_6 = yes
			rg_create_graygoo_roamers_7 = yes
		}
		event_target:graygoo_country = {
			country_event = {
				id = graygoo.3
				days = 3600
			}
		}
		every_megastructure = {
			limit = {
				is_megastructure_type = lgate_base
				solar_system = {
					NOR = {
						has_star_flag = lcluster_lgate
						has_star_flag = lgate_originating_system
					}
				}
			}
			create_fleet = {
				name = "NAME_Tempest_Fleet"
				effect = {
					set_owner = event_target:graygoo_country
					rg_create_graygoo_ships_1 = yes
					set_formation_scale = 2
					set_fleet_stance = aggressive
					set_aggro_range_measure_from = self
					set_aggro_range = 250
					set_location = {
						target = prev
						distance = 0
						angle = 0
					}
				}
			}
		}
		set_update_modifiers_batch = end
		country_event = {
			id = graygoo.10
		}
		every_playable_country = {
			limit = {
				NOR = {
					has_event_chain = l_cluster_chain
					has_special_project = RG_LCLUSTER_PROJECT
					is_same_value = root
				}
			}
			country_event = {
				id = graygoo.13
			}
		}
		every_playable_country = {
			limit = {
				OR = {
					has_event_chain = l_cluster_chain
					has_special_project = RG_LCLUSTER_PROJECT
				}
				NOT = {
					is_same_value = root
				}
			}
			country_event = {
				id = graygoo.11
			}
		}
		observer_event = {
			id = observer.64
		}
	}
}

# The Dessanu Consonance
country_event = {
	id = graygoo.110
	title = "distar.10951.name"
	desc = "graygoo.110.desc"
	picture = GFX_evt_l-gateway
	show_sound = event_radio_chatter
	is_triggered_only = yes
	after = {
		hidden_effect = {
			every_playable_country = {
				limit = {
					OR = {
						has_special_project = RG_LCLUSTER_PROJECT
						has_event_chain = l_cluster_chain
					}
					NOT = {
						is_same_value = root
					}
				}
				country_event = {
					id = graygoo.111
				}
			}
			every_playable_country = {
				limit = {
					NOR = {
						has_event_chain = l_cluster_chain
						has_special_project = RG_LCLUSTER_PROJECT
						is_same_value = root
					}
				}
				country_event = {
					id = graygoo.112
				}
			}
		}
	}
	option = {
		name = graygoo.10.a
		hidden_effect = {
			country_event = {
				id = graygoo.115
			}
		}
	}
}

# Reinforcements 1
country_event = {
	id = graygoo.3
	hide_window = yes
	is_triggered_only = yes
	trigger = {
		event_target:graygoo_factory_system = {
			any_fleet_in_system = {
				is_ship_size = graygoo_factory
			}
		}
	}
	immediate = {
		if = {
			limit = {
				any_system = {
					has_star_flag = lcluster
					any_fleet_in_system = {
						owner = {
							NOT = {
								is_same_value = root
							}
						}
					}
				}
			}
			# Reinforce at factory if someone else is in the cluster...
			country_event = {
				id = graygoo.4
			}
			# Else spawn reinforcements...
		}
		else = {
			every_megastructure = {
				limit = {
					is_megastructure_type = lgate_base
					solar_system = {
						NOR = {
							has_star_flag = lcluster_lgate
							has_star_flag = lgate_originating_system
						}
					}
				}
				create_ambient_object = {
					type = "horror_spawn_object"
					location = THIS
					use_3d_location = yes
					duration = 10
				}
				create_fleet = {
					name = "NAME_Tempest_Fleet"
					effect = {
						set_owner = event_target:graygoo_country
						rg_create_graygoo_roamers_1 = yes
						set_formation_scale = 2
						set_fleet_stance = aggressive
						set_aggro_range_measure_from = self
						set_aggro_range = 250
						set_location = {
							target = prev
							distance = 0
							angle = 0
						}
					}
				}
				create_fleet = {
					name = "NAME_Tempest_Fleet"
					effect = {
						set_owner = event_target:graygoo_country
						rg_create_graygoo_roamers_2 = yes
						set_formation_scale = 2
						set_fleet_stance = aggressive
						set_aggro_range_measure_from = self
						set_aggro_range = 250
						set_location = {
							target = prev
							distance = 0
							angle = 0
						}
					}
				}
				create_fleet = {
					name = "NAME_Tempest_Fleet"
					effect = {
						set_owner = event_target:graygoo_country
						rg_create_graygoo_roamers_3 = yes
						set_formation_scale = 2
						set_fleet_stance = aggressive
						set_aggro_range_measure_from = self
						set_aggro_range = 250
						set_location = {
							target = prev
							distance = 0
							angle = 0
						}
					}
				}
				create_fleet = {
					name = "NAME_Tempest_Fleet"
					effect = {
						set_owner = event_target:graygoo_country
						rg_create_graygoo_roamers_4 = yes
						set_formation_scale = 2
						set_fleet_stance = aggressive
						set_aggro_range_measure_from = self
						set_aggro_range = 250
						set_location = {
							target = prev
							distance = 0
							angle = 0
						}
					}
				}
				create_fleet = {
					name = "NAME_Tempest_Fleet"
					effect = {
						set_owner = event_target:graygoo_country
						rg_create_graygoo_roamers_5 = yes
						set_formation_scale = 2
						set_fleet_stance = aggressive
						set_aggro_range_measure_from = self
						set_aggro_range = 250
						set_location = {
							target = prev
							distance = 0
							angle = 0
						}
					}
				}
				create_fleet = {
					name = "NAME_Tempest_Fleet"
					effect = {
						set_owner = event_target:graygoo_country
						rg_create_graygoo_roamers_6 = yes
						set_formation_scale = 2
						set_fleet_stance = aggressive
						set_aggro_range_measure_from = self
						set_aggro_range = 250
						set_location = {
							target = prev
							distance = 0
							angle = 0
						}
					}
				}
				create_fleet = {
					name = "NAME_Tempest_Fleet"
					effect = {
						set_owner = event_target:graygoo_country
						rg_create_graygoo_roamers_7 = yes
						set_formation_scale = 2
						set_fleet_stance = aggressive
						set_aggro_range_measure_from = self
						set_aggro_range = 250
						set_location = {
							target = prev
							distance = 0
							angle = 0
						}
					}
				}
			}
			country_event = {
				id = graygoo.3
				days = 3600
			}
		}
	}
}

# Reinforcements 2
country_event = {
	id = graygoo.4
	hide_window = yes
	is_triggered_only = yes
	immediate = {
		random_owned_ship = {
			limit = {
				is_ship_size = graygoo_factory
			}
			save_event_target_as = graygoo_factory
		}
		create_fleet = {
			name = "NAME_Tempest_Fleet"
			effect = {
				set_owner = event_target:graygoo_country
				rg_create_graygoo_roamers_1 = yes
				set_formation_scale = 2
				set_fleet_stance = aggressive
				set_aggro_range_measure_from = self
				set_aggro_range = 250
				set_location = {
					target = event_target:graygoo_factory
					distance = 0
					angle = 0
				}
			}
		}
		create_fleet = {
			name = "NAME_Tempest_Fleet"
			effect = {
				set_owner = event_target:graygoo_country
				rg_create_graygoo_roamers_2 = yes
				set_formation_scale = 2
				set_fleet_stance = aggressive
				set_aggro_range_measure_from = self
				set_aggro_range = 250
				set_location = {
					target = event_target:graygoo_factory
					distance = 0
					angle = 0
				}
			}
		}
		create_fleet = {
			name = "NAME_Tempest_Fleet"
			effect = {
				set_owner = event_target:graygoo_country
				rg_create_graygoo_roamers_3 = yes
				set_formation_scale = 2
				set_fleet_stance = aggressive
				set_aggro_range_measure_from = self
				set_aggro_range = 250
				set_location = {
					target = event_target:graygoo_factory
					distance = 0
					angle = 0
				}
			}
		}
		create_fleet = {
			name = "NAME_Tempest_Fleet"
			effect = {
				set_owner = event_target:graygoo_country
				rg_create_graygoo_roamers_4 = yes
				set_formation_scale = 2
				set_fleet_stance = aggressive
				set_aggro_range_measure_from = self
				set_aggro_range = 250
				set_location = {
					target = event_target:graygoo_factory
					distance = 0
					angle = 0
				}
			}
		}
		create_fleet = {
			name = "NAME_Tempest_Fleet"
			effect = {
				set_owner = event_target:graygoo_country
				rg_create_graygoo_roamers_5 = yes
				set_formation_scale = 2
				set_fleet_stance = aggressive
				set_aggro_range_measure_from = self
				set_aggro_range = 250
				set_location = {
					target = event_target:graygoo_factory
					distance = 0
					angle = 0
				}
			}
		}
		create_fleet = {
			name = "NAME_Tempest_Fleet"
			effect = {
				set_owner = event_target:graygoo_country
				rg_create_graygoo_roamers_6 = yes
				set_formation_scale = 2
				set_fleet_stance = aggressive
				set_aggro_range_measure_from = self
				set_aggro_range = 250
				set_location = {
					target = event_target:graygoo_factory
					distance = 0
					angle = 0
				}
			}
		}
		create_fleet = {
			name = "NAME_Tempest_Fleet"
			effect = {
				set_owner = event_target:graygoo_country
				rg_create_graygoo_roamers_7 = yes
				set_formation_scale = 2
				set_fleet_stance = aggressive
				set_aggro_range_measure_from = self
				set_aggro_range = 250
				set_location = {
					target = event_target:graygoo_factory
					distance = 0
					angle = 0
				}
			}
		}
		country_event = {
			id = graygoo.3
			days = 3600
		}
	}
}

# Factory Destroyed
country_event = {
	id = graygoo.6
	hide_window = yes
	is_triggered_only = yes
	trigger = {
		is_country_type = gray_goo
		fromfrom = {
			is_ship_size = graygoo_factory
		}
	}
	immediate = {
		remove_global_flag = active_gray_goo
		remove_global_flag = gray_goo_crisis_active
		fromfromfrom = {
			save_event_target_as = goo_slayer_ship
		}
		from = {
			save_event_target_as = goo_slayer
			country_event = {
				id = graygoo.15
			}
			country_event = {
				id = rg_event.200
				days = 80
				random = 120
			}
		}
		every_playable_country = {
			limit = {
				is_ai = no
				NOT = {
					is_same_value = event_target:goo_slayer
				}
			}
			country_event = {
				id = graygoo.16
			}
		}
		observer_event = {
			id = observer.65
		}
		every_galaxy_planet = {
			limit = {
				is_planet_class = pc_gray_goo
			}
			add_modifier = {
				modifier = "terraforming_candidate"
				days = -1
			}
		}
		every_owned_fleet = {
			destroy_fleet = this
		}
		destroy_country = yes
	}
}

# Factory Destroyed (Dessanu)
country_event = {
	id = graygoo.180
	hide_window = yes
	is_triggered_only = yes
	trigger = {
		is_country_type = gate_builders
		fromfrom = {
			is_ship_size = graygoo_factory
		}
	}
	immediate = {
		fromfromfrom = {
			save_event_target_as = goo_slayer_ship
		}
		from = {
			save_event_target_as = goo_slayer
			country_event = {
				id = graygoo.181
			}
			country_event = {
				id = rg_event.200
				days = 80
				random = 120
			}
		}
		every_playable_country = {
			limit = {
				is_ai = no
				NOT = {
					is_same_value = event_target:goo_slayer
				}
			}
			country_event = {
				id = graygoo.182
			}
		}
		observer_event = {
			id = observer.67
		}
		every_owned_planet = {
			limit = {
				is_planet_class = pc_gaia
			}
			change_pc = pc_gray_goo
			reroll_planet = yes
			destroy_colony = yes
			add_modifier = {
				modifier = "terraforming_candidate"
				days = -1
			}
		}
		every_owned_fleet = {
			destroy_fleet = this
		}
		destroy_country = yes
	}
}
