############################
#
# 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.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.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
	}
}