namespace = rg_skill

# fleet_event = {
#     id = rg_skill.1
#     hide_window = yes
#     is_triggered_only = yes
# 
#     trigger = {
#         NOT = { has_global_flag = rg_grayskill_cooldown }
#         any_owned_fleet = {
# 					exists = leader
# 					leader = { has_leader_flag = gray_leader_admiral }
# 					is_in_combat = yes
# 				}
#     }
# 
#     immediate = {
# 		if = {
# 			limit = {
# 				any_owned_fleet = {
# 					exists = leader
# 					leader = { has_leader_flag = gray_leader_admiral }
# 					is_in_combat = yes
# 				}
# 			}
# 			random_owned_fleet = {
# 				if = {
# 					limit = { leader = { has_leader_flag = gray_leader_admiral }}
# 					save_event_target_as = gray_warship_location
# 				}
# 			}
# 			create_fleet = {
# 				name = "NAME_RG_carrier"
# 				settings = { 
# 					can_disband = yes
# 					can_upgrade = no 
# 					can_change_composition = yes 
# 					can_change_leader = no 
# 					uses_naval_capacity = no
# 					spawn_debris = no
# 				}				
# 				effect = {
# 					set_owner = event_target:gray_owner
# 					while = {
# 						count = 4
# 						create_ship = {
# 							name = random
# 							design = "RG_carrier_Interdictor"
# 							graphical_culture = "pirate_01"
# 							prefix = no
# 							upgradable = no
# 						}
# 					}
# 					set_location = {
# 						target = event_target:gray_warship_location
# 						distance = 55
# 						angle = 270
# 					}
# 					set_fleet_flag = RG_carrier_fleet
# 					save_global_event_target_as = RG_carrier_fleet
# 				}
# 			}
# 			
# 			set_timed_global_flag = { 
# 				flag = rg_grayskill_cooldown days = 120
# 			}
# 		}	
# 	}	
# }

# fleet_event = {
#     id = rg_skill.2
#     hide_window = yes
#     is_triggered_only = yes
# 
#     trigger = {
#         any_owned_fleet = {
# 					has_fleet_flag = RG_carrier_fleet
# 					is_in_combat = no
# 				}
#     }
# 
#     immediate = {
# 		if = {
# 			limit = {
# 				any_owned_fleet = {
# 					has_fleet_flag = RG_carrier_fleet
# 					is_in_combat = no
# 				}
# 			}	
# 			event_target:RG_carrier_fleet = { delete_ship = this }	
# 		}
# 	}
# }

ship_event = {
	id = rg_skill.3
	hide_window = yes
	is_triggered_only = yes
	trigger = {
		OR = {
			AND = {
				is_ship_size = RG_armed_science_ship
				OR = {
					has_component = RG_AUTOCONST_HANGER
				}
			}
		}
		solar_system = {
			OR = {
				NOT = {
					exists = space_owner
				}
				AND = {
					space_owner = {
						is_same_empire = root.controller
					}
					any_system_planet = {
						RG_planet_can_auto_build = yes
					}
				}
			}
			NOT = {
				any_neighbor_system = {
					has_owner = yes
					owner = {
						OR = {
							is_fallen_empire_xenophobe = yes
							has_ai_personality = fallen_empire_xenophobe
							has_ai_personality = awakened_fallen_empire_xenophobe
						}
					}
				}
			}
		}
	}
	immediate = {
		if = {
			limit = {
				owner = {
					NOT = {
						is_same_value = origin_rg_gray_country
					}
				}
				solar_system = {
					NOT = {
						any_fleet_in_system = {
							exists = controller
							controller = {
								is_hostile = root.controller
							}
						}
					}
				}
			}
			RG_const_auto_build_effect_event = yes
		}
		else_if = {
			limit = {
				owner = {
					is_same_value = origin_rg_gray_country
					NOT = {
						has_global_flag = l_cluster_opened
					}
				}
				solar_system = {
					has_star_flag = lcluster
					NOT = {	
						any_fleet_in_system = {
							exists = controller
							controller = {
								is_hostile = root.controller
							}
						}
					}
				}
			}
			RG_const_auto_build_effect_event = yes
		}
		else_if = {
			limit = {
				owner = {
					is_same_value = origin_rg_gray_country					# 是小灰起源
					has_global_flag = l_cluster_opened					# L星门已开启
				}
				solar_system = {
					# has_star_flag = lcluster
					NOT = {	
						any_fleet_in_system = {
							exists = controller
							controller = {
								is_hostile = root.controller
							}
						}
					}
				}
			}
			RG_const_auto_build_effect_event = yes
		}
		ship_event = {
			id = rg_skill.3
			days = 10
		}
	}
}

# Gray Breeds(?
fleet_event = {
	id = rg_skill.4
	hide_window = yes
	mean_time_to_happen = {
		years = 1
	}
	trigger = {
		any_controlled_ship = {
			has_ship_flag = rg_mothership
		}
		num_ships < 20
		is_ship_size = RG_graygoo_mothership
	}
	immediate = {
		random_list = {
			14 = {
				create_ship = {
					name = random
					design = "RG_aircruiser_Interdictor"
					upgradable = yes
				}
			}
			12 = {
				create_ship = {
					name = random
					design = "RG_carrier_Interdictor"
					upgradable = yes
				}
			}
			12 = {
				create_ship = {
					name = random
					design = "RG_battleship_Interdictor"
					upgradable = yes
				}
			}
			12 = {
				create_ship = {
					name = random
					design = "RG_titan_interdictor"
					upgradable = yes
				}
			}
			12 = {
				create_ship = {
					name = random
					design = "RG_torpedo_interdictor"
					upgradable = yes
				}
			}
			12 = {
				create_ship = {
					name = random
					design = "RG_AA_interdictor"
					upgradable = yes
				}
			}
			12 = {
				create_ship = {
					name = random
					design = "RG_Arsenal_Interdictor"
					upgradable = yes
				}
			}
			12 = {
				create_ship = {
					name = random
					design = "RG_torpedocruiser_interdictor"
					upgradable = yes
				}
			}
		}
	}
}

#Tempest Breeds(?
fleet_event = {
	id = rg_skill.5
	hide_window = yes
	mean_time_to_happen = {
		months = 5
	}
	trigger = {
		any_controlled_ship = {
			OR = {
				OR = {
					is_ship_size = RG_graygoo_mothership
					is_ship_size = graygoo_mothership
				}
				has_ship_flag = rg_nanite_mothership
			}
			owner = {
				is_country_type = gray_goo
			}
		}
		num_ships < 40
	}
	immediate = {
		random_list = {
			14 = {
				create_ship = {
					name = random
					design = "RG_aircruiser_Interdictor"
					upgradable = yes
				}
			}
			12 = {
				create_ship = {
					name = random
					design = "RG_carrier_Interdictor"
					upgradable = yes
				}
			}
			12 = {
				create_ship = {
					name = random
					design = "RG_battleship_Interdictor"
					upgradable = yes
				}
			}
			12 = {
				create_ship = {
					name = random
					design = "RG_titan_interdictor"
					upgradable = yes
				}
			}
			12 = {
				create_ship = {
					name = random
					design = "RG_torpedo_interdictor"
					upgradable = yes
				}
			}
			12 = {
				create_ship = {
					name = random
					design = "RG_AA_interdictor"
					upgradable = yes
				}
			}
			12 = {
				create_ship = {
					name = random
					design = "RG_Arsenal_Interdictor"
					upgradable = yes
				}
			}
			12 = {
				create_ship = {
					name = random
					design = "RG_icebreaker_interdictor"
					upgradable = yes
				}
			}
		}
	}
}

# Tempest incoming traits
# Recursive check every X days
# This = planet
# From = country attacking
planet_event = {
	id = rg_skill.6
	hide_window = yes
	is_triggered_only = yes
	immediate = {
		save_event_target_as = tempest_incoming_battlefield_planet
		if = {
			# planet
			limit = {
				has_ground_combat = no
			}
			remove_planet_flag = checking_tempest_incoming
		}
		else = {
			#planet
			any_ground_combat_attacker = {
				#army
				exists = leader
				leader = {
					#leader
					has_trait = RG_leader_trait_admiral_nanorebuild_gray
					owner = {
						#country
						save_event_target_as = attacking_general_country
					}
				}
			}
			# Do the same check again in X days
			country_event = {
				id = rg_skill.10
			}			# NOTE: Update custom loc for effect when changing days
		}
	}
}

# tempest incoming traits
# Inital event started by on_ground_combat_started
# to kick of the recursive check in X days
# This = planet
# From = country attacking
planet_event = {
	id = rg_skill.7
	hide_window = yes
	is_triggered_only = yes
	# Prevent duplicate events
	trigger = {
		not = {
			has_planet_flag = checking_tempest_incoming
		}
	}
	immediate = {
		set_planet_flag = checking_tempest_incoming		# Prevent duplicate events
		planet_event = {
			id = rg_skill.6
			days = 1
		}
	}
}

# On army killed in combat.
# This = owner
# From = army
# FromFrom = opponent
# FromFromFrom = planet
country_event = {
	id = rg_skill.8
	hide_window = yes
	is_triggered_only = yes
	immediate = {
		FROMFROMFROM = {
			# Planet where ground combat is taking place.
			# Check if dead army is a defensive army.
			if = {
				limit = {
					any_ground_combat_defender = {
						is_same_value = ROOT.FROM
					}
				}
				# Check if attacking army has general with Crusader trait.
				random_ground_combat_attacker = {
					limit = {
						exists = leader
						leader = {
							OR = {
								has_trait = RG_leader_trait_admiral_nanorebuild_gray
							}
						}
					}
					leader = {
						save_event_target_as = attacking_general
						owner = {
							save_event_target_as = attacking_general_country
						}
					}
				}
			}
			if = {
				# planet where ground combat is taking place.
				limit = {
					exists = event_target:attacking_general
				}
				if = {
					limit = {
						event_target:attacking_general_country = {
							# attacking general country
							NOT = {
								check_variable = {
									which = rg_general_skill_combat_killed_variable
									value = 100
								}
							}
						}
					}
					event_target:attacking_general_country = {
						change_variable = {
							which = rg_general_skill_combat_killed_variable
							value = 1
						}
						change_variable = {
							which = rg_general_skill_combat_daypassed_variable
							value = 1
						}
					}
				}
				# Handle both sides of the ground combat
				RG_leader_trait_tempest_incoming_random_kill_effect = {
					SIDE_A = attacker
					SIDE_B = defender
				}
				RG_leader_trait_tempest_incoming_random_kill_effect = {
					SIDE_A = defender
					SIDE_B = attacker
				}
			}
		}
	}
}

country_event = {
	id = rg_skill.9
	hide_window = yes
	is_triggered_only = yes
	trigger = {
		any_owned_army = {
			army_type = gray_army
			if = {
				limit = {
					exists = planet
				}
				planet = {
					has_ground_combat = no
				}
			}
		}
	}
	immediate = {
		set_variable = {
			# country
			which = rg_general_skill_combat_daypassed_variable
			value = 1
		}
		set_variable = {
			# country
			which = rg_general_skill_combat_killed_variable
			value = 0
		}
	}
}

country_event = {
	id = rg_skill.10
	hide_window = yes
	is_triggered_only = yes
	trigger = {
		any_owned_army = {
			army_type = gray_army
			exists = leader
			leader = {
				OR = {
					has_trait = RG_leader_trait_admiral_nanorebuild_gray
				}
			}
			if = {
				limit = {
					exists = planet
				}
				planet = {
					has_ground_combat = yes
				}
			}
		}
	}
	immediate = {
		event_target:attacking_general_country = {
			change_variable = {
				which = rg_general_skill_combat_daypassed_variable
				value = 1
			}
		}
		country_event = {
			id = rg_skill.10
			days = 1
		}
	}
}

# 重组仪
country_event = {
	id = rg_skill.11
	hide_window = yes
	is_triggered_only = yes
	trigger = {
		FromFromFrom = {
			is_in_combat = yes
			has_component = RG_revive_component
		}
	}
	immediate = {
		FromFromFrom = {
			save_event_target_as = event_ship
		}
		FromFromFrom.fleet = {
			create_ship = {
				name = event_target:event_ship
				design = event_target:event_ship
			}
		}
	}
}

# 纳米重塑
# This = owner of ship 1 (combatant)
# From = owner of ship 2 (destroyed)
# FromFrom = ship 1
# FromFromFrom = ship 2
country_event = {
	id = rg_skill.12
	hide_window = yes
	is_triggered_only = yes
	trigger = {
		FromFromFrom = {
			is_in_combat = yes
			NOT = {
				is_same_value = event_target:gray_warship_ship
			}
			exists = fleet.leader
		}
		FromFromFrom.fleet.leader = {
			has_trait = RG_leader_trait_admiral_nanorebuild_gray
		}
	}
	immediate = {
		if = {
			limit = {
				From = {
					check_variable = {
						which = rg_nanorebuild_counter
						value >= 1
					}
				}
			}
			FromFromFrom = {
				save_event_target_as = event_ship
			}
			FromFromFrom.fleet = {
				create_ship = {
					name = event_target:event_ship
					design = event_target:event_ship
				}
			}
			From = {
				change_variable = {
					which = rg_nanorebuild_counter
					value = -1
				}
			}
		}
	}
}

# country_event = {
# 	id = rg_skill.13
# 	hide_window = yes
# 	is_triggered_only = yes
# 	trigger = {
# 		FromFromFrom = {
# 			is_in_combat = yes
# 		}
# 		FromFrom.solar_system = {
# 			any_fleet_in_system = {
# 				leader = {
# 					has_trait = RG_leader_trait_admiral_nanorebuild_gray
# 				}
# 			}
# 		}
# 		this = {
# 			NOT = {
# 				is_same_value = event_target:gray_owner
# 				is_in_federation_with = event_target:gray_owner
# 			}
# 		}
# 	}
# 	immediate = {
# 		event_target:gray_owner = {
# 			change_variable = {
# 				which = rg_nanorebuild_counter
# 				value = 1
# 			}
# 		}
# 	}
# }

# On destroying enemy ship.
country_event = {
	id = rg_skill.13
	hide_window = yes
	is_triggered_only = yes

	trigger = {
		FromFrom = {
			is_in_combat = yes
			exists = fleet.leader
		}
		FromFrom.fleet.leader = {
			has_trait = RG_leader_trait_admiral_nanorebuild_gray
		}
	}

	immediate = {
		FROMFROM = { # Winning ship.
			if = {
				limit = { exists = fleet.leader }
				fleet.leader = {
					if = {
						limit = {
							OR = {
								has_trait = RG_leader_trait_admiral_nanorebuild_gray
							}
						}
						ROOT = {
							change_variable = {
								which = rg_nanorebuild_counter
								value = 1
							}
						}
					}
				}
			}
		}
	}
}
# This = owner of fleet 1 (winner)
# From = owner of fleet 2 (loser)
# FromFrom = fleet 1
# FromFromFrom = fleet 2
country_event = {
	id = rg_skill.14
	hide_window = yes
	is_triggered_only = yes
	trigger = {
		OR = {
			fromfrom.leader = {
				has_trait = RG_leader_trait_admiral_nanorebuild_gray
			}
		}
		NOT = {
			This = {
				check_variable = {
					which = rg_nanorebuild_counter
					value = 0
				}
			}
		}
	}
	immediate = {
		This = {
			set_variable = {
				which = rg_nanorebuild_counter
				value = 0
			}
		}
	}
}
# This = owner of fleet 1 (loser)
# From = owner of fleet 2 (winner)
# FromFrom = fleet 1
# FromFromFrom = fleet 2
country_event = {
	id = rg_skill.15
	hide_window = yes
	is_triggered_only = yes
	trigger = {
		OR = {
			fromfrom.leader = {
				has_trait = RG_leader_trait_admiral_nanorebuild_gray
			}
		}
		NOT = {
			This = {
				check_variable = {
					which = rg_nanorebuild_counter
					value = 0
				}
			}
		}
	}
	immediate = {
		This = {
			set_variable = {
				which = rg_nanorebuild_counter
				value = 0
			}
		}
	}
}
