@base_moon_distance = 10 @caravaneerfleetlaunch1 = 9000 # 25 years @caravaneerfleetlaunch2 = 14400 # 40 years @homeworld_min_size = 18 @homeworld_max_size = 21 # Caravaneers megacorp_caravaneer_init = { class = "rl_standard_stars" usage = misc_system_init name = "NAME_Chors_Compass" usage_odds = { base = 0 modifier = { has_megacorp = yes caravaneers_enabled = yes add = 100 } modifier = { factor = 0 OR = { is_fe_cluster = yes is_marauder_cluster = yes } } modifier = { factor = 0 has_star_flag = empire_cluster } } max_instances = 1 spawn_chance = 9999 flags = { caravaneer_home } asteroid_belt = { type = rocky_asteroid_belt radius = 40 } asteroid_belt = { type = icy_asteroid_belt radius = 110 } planet = { class = star orbit_distance = 0 init_effect = { create_ambient_object = { type = caravaneer_billboard_1 scale = 4 location = this entity_offset_height = { min = -9 max = -11 } } last_created_ambient_object = { set_location = { target = prev distance = 40 angle = 45 } } create_ambient_object = { type = caravaneer_billboard_2 scale = 4 location = this entity_offset_height = { min = -9 max = -11 } } last_created_ambient_object = { set_location = { target = prev distance = 40 angle = 135 } } create_ambient_object = { type = caravaneer_billboard_1 scale = 4 location = this entity_offset_height = { min = -9 max = -11 } } last_created_ambient_object = { set_location = { target = prev distance = 40 angle = 225 } } create_ambient_object = { type = caravaneer_billboard_3 scale = 4 location = this entity_offset_height = { min = -9 max = -11 } } last_created_ambient_object = { set_location = { target = prev distance = 40 angle = 315 } } save_global_event_target_as = caravaneer_home_star create_species = { name = random class = random_non_machine portrait = random traits = random effect = { modify_species = { ideal_planet_class = pc_habitat } } } create_country = { name = "NAME_Caravaneer_Home" type = caravaneer_home authority = auth_corporate civics = { civic = civic_free_traders } origin = "origin_default" species = last_created_species flag = { icon = { category = "special" file = "caravaneer_00.dds" } background = { category = "backgrounds" file = "triangle_split.dds" } colors={ "green" "dark_green" "null" "null" } } ethos = { ethic = ethic_egalitarian ethic = ethic_pacifist ethic = ethic_xenophile } ignore_initial_colony_error = yes effect = { set_country_flag = caravaneer_home_country set_graphical_culture = caravaneer_01 save_global_event_target_as = caravaneer_home_country create_fleet = { name = "NAME_Caravaneer_Coalition_Base" settings = { spawn_debris = no } effect = { set_owner = prev create_ship = { name = NAME_Tradestation_Tungle design = "NAME_Tradestation_Tungle" graphical_culture = prev effect = { set_ship_flag = cara_home_tradestation } } set_location = { target = prevprev angle = random distance = 40 } save_global_event_target_as = CaravaneerCustomCapital prev = { set_custom_capital_location = event_target:CaravaneerCustomCapital } } } create_leader = { class = official species = this name = random skill = 5 immortal = yes } set_leader = last_created_leader create_ship_design = { design = "NAME_Caravaneer_Starbase" } add_ship_design = last_created_design } } } } change_orbit = 48 planet = { count = 1 orbit_angle = { min = 355 max = 5 } size = { min = 10 max = 25 } class = "rl_unhabitable_planets" orbit_distance = 12 } planet = { count = 1 orbit_angle = { min = 175 max = 185 } size = { min = 10 max = 25 } class = "rl_unhabitable_planets" orbit_distance = 12 } planet = { count = 1 orbit_angle = { min = 85 max = 95 } size = { min = 10 max = 25 } class = "rl_unhabitable_planets" orbit_distance = 12 } planet = { count = 1 orbit_angle = { min = 175 max = 185 } size = { min = 10 max = 25 } class = "rl_unhabitable_planets" orbit_distance = 12 } init_effect = { # Randomize which fleets are spawned random_list = { 1 = { # 1 - 2 set_global_flag = spawn_caravaneer_1 set_global_flag = spawn_caravaneer_2 } 1 = { # 1 - 3 set_global_flag = spawn_caravaneer_1 set_global_flag = spawn_caravaneer_3 } 1 = { # 2 - 3 set_global_flag = spawn_caravaneer_2 set_global_flag = spawn_caravaneer_3 } } save_global_event_target_as = caravaneer_home_system create_starbase = { size = "starbase_caravaneer" owner = event_target:caravaneer_home_country } # FLEET 1 if = { limit = { has_global_flag = spawn_caravaneer_1 } create_species = { name = NAME_Caravaneer_Fleet1_species class = random_non_machine portrait = random traits = random } create_country = { name = NAME_Caravaneer_Fleet1_country type = caravaneer_fleet authority = auth_corporate civics = { civic = civic_caravaneer_fleet1 } species = last_created_species flag = { icon = { category = "special" file = "caravaneer_01.dds" } background = { category = "backgrounds" file = "vertical.dds" } colors = { "light_blue" "purple" "null" "null" } } ethos = { ethic = ethic_materialist ethic = ethic_pacifist ethic = ethic_xenophile } ignore_initial_colony_error = yes effect = { set_country_flag = caravaneer_fleet1_country set_graphical_culture = caravaneer_01 save_global_event_target_as = caravaneer_fleet1_country create_fleet = { name = "NAME_Caravaneer_Fleet1_fleet" settings = { spawn_debris = no } effect = { set_fleet_stance = passive set_formation_scale = 2.5 set_owner = prev create_ship = { name = "NAME_Schooner" design = NAME_Schooner } while = { count = 10 create_ship = { name = "NAME_Yojimbo" design = NAME_Yojimbo } } while = { count = 6 create_ship = { name = "NAME_Gunslinger" design = NAME_Gunslinger } } set_location = { target = event_target:caravaneer_home_star angle = 90 distance = 40 } set_fleet_flag = cara_fleet1 save_global_event_target_as = caravaneer_fleet1_fleet } } create_leader = { class = commander species = this name = random skill = 5 immortal = yes } set_leader = last_created_leader } } } # FLEET 2 if = { limit = { has_global_flag = spawn_caravaneer_2 } create_species = { name = random class = random_non_machine portrait = random traits = random } create_country = { name = "NAME_Caravaneer_Fleet2" type = caravaneer_fleet authority = auth_corporate civics = { civic = civic_caravaneer_fleet2 } species = last_created_species flag = { icon = { category = "special" file = "caravaneer_02.dds" } background= { category = "backgrounds" file = "new_dawn.dds" } colors={ "dark_purple" "pink" "null" "null" } } ethos = { ethic = ethic_egalitarian ethic = ethic_pacifist ethic = ethic_xenophile } ignore_initial_colony_error = yes effect = { set_country_flag = caravaneer_fleet2_country set_graphical_culture = caravaneer_01 save_global_event_target_as = caravaneer_fleet2_country create_fleet = { name = "NAME_Caravaneer_Fleet2_fleet" settings = { spawn_debris = no } effect = { set_fleet_stance = passive set_formation_scale = 2.5 set_owner = prev create_ship = { name = "NAME_Schooner" design = NAME_Schooner } while = { count = 10 create_ship = { name = "NAME_Yojimbo" design = NAME_Yojimbo } } while = { count = 6 create_ship = { name = "NAME_Gunslinger" design = NAME_Gunslinger } } set_location = { target = event_target:caravaneer_home_star angle = 180 distance = 40 } set_fleet_flag = cara_fleet2 save_global_event_target_as = caravaneer_fleet2_fleet } } create_leader = { class = commander species = this name = random skill = 5 } set_leader = last_created_leader } } } # FLEET 3 if = { limit = { has_global_flag = spawn_caravaneer_3 } create_ratling_species_effect = yes create_country = { name = "NAME_Caravaneer_Fleet3" type = caravaneer_fleet authority = "auth_corporate" civics = { civic = civic_caravaneer_fleet3 } species = event_target:racket_species flag = { icon = { category = "special" file = "caravaneer_03.dds" } background = { category = "backgrounds" file = "double_hemispheres.dds" } colors = { "black" "dark_grey" "null" "null" } } ethos = { ethic = ethic_fanatic_materialist ethic = ethic_authoritarian } ignore_initial_colony_error = yes effect = { set_country_flag = caravaneer_fleet3_country set_graphical_culture = caravaneer_01 save_global_event_target_as = caravaneer_fleet3_country create_fleet = { name = "NAME_Caravaneer_Fleet3_fleet" settings = { spawn_debris = no } effect = { set_fleet_stance = passive set_formation_scale = 2.5 set_owner = prev create_ship = { name = "NAME_Schooner" design = NAME_Schooner } while = { count = 10 create_ship = { name = "NAME_Yojimbo" design = NAME_Yojimbo } } while = { count = 6 create_ship = { name = "NAME_Gunslinger" design = NAME_Gunslinger } } set_location = { target = event_target:caravaneer_home_star angle = 270 distance = 40 } set_fleet_flag = cara_fleet3 save_global_event_target_as = caravaneer_fleet3_fleet } } create_leader = { class = commander species = event_target:racket_species name = random skill = 5 immortal = yes } set_leader = last_created_leader #Create Robot Species for Deals create_racket_robot_effect = yes } } } # Establish communications if = { limit = { exists = event_target:caravaneer_fleet3_country } event_target:caravaneer_fleet3_country = { if = { limit = { exists = event_target:caravaneer_fleet2_country } establish_communications_no_message = event_target:caravaneer_fleet2_country } if = { limit = { exists = event_target:caravaneer_fleet1_country } establish_communications_no_message = event_target:caravaneer_fleet1_country } establish_communications_no_message = event_target:caravaneer_home_country } } if = { limit = { exists = event_target:caravaneer_fleet2_country } event_target:caravaneer_fleet2_country = { if = { limit = { exists = event_target:caravaneer_fleet1_country } establish_communications_no_message = event_target:caravaneer_fleet2_country } establish_communications_no_message = event_target:caravaneer_home_country } } if = { limit = { exists = event_target:caravaneer_fleet1_country } event_target:caravaneer_fleet1_country = { establish_communications_no_message = event_target:caravaneer_home_country } } # Randomize caravan order random_list = { 1 = { # 1 - 2 modifier = { factor = 0 NAND = { has_global_flag = spawn_caravaneer_1 has_global_flag = spawn_caravaneer_2 } } event_target:caravaneer_fleet1_fleet = { fleet_event = { id = cara.1000 days = @caravaneerfleetlaunch1 } } event_target:caravaneer_fleet2_fleet = { fleet_event = { id = cara.2000 days = @caravaneerfleetlaunch2 } } } 1 = { # 1 - 3 modifier = { factor = 0 NAND = { has_global_flag = spawn_caravaneer_1 has_global_flag = spawn_caravaneer_3 } } event_target:caravaneer_fleet1_fleet = { fleet_event = { id = cara.1000 days = @caravaneerfleetlaunch1 } } event_target:caravaneer_fleet3_fleet = { fleet_event = { id = cara.3000 days = @caravaneerfleetlaunch2 } } } 1 = { # 2 - 1 modifier = { factor = 0 NAND = { has_global_flag = spawn_caravaneer_2 has_global_flag = spawn_caravaneer_1 } } event_target:caravaneer_fleet2_fleet = { fleet_event = { id = cara.2000 days = @caravaneerfleetlaunch1 } } event_target:caravaneer_fleet1_fleet = { fleet_event = { id = cara.1000 days = @caravaneerfleetlaunch2 } } } 1 = { # 2 - 3 modifier = { factor = 0 NAND = { has_global_flag = spawn_caravaneer_2 has_global_flag = spawn_caravaneer_3 } } event_target:caravaneer_fleet2_fleet = { fleet_event = { id = cara.2000 days = @caravaneerfleetlaunch1 } } event_target:caravaneer_fleet3_fleet = { fleet_event = { id = cara.3000 days = @caravaneerfleetlaunch2 } } } 1 = { # 3 - 2 modifier = { factor = 0 NAND = { has_global_flag = spawn_caravaneer_3 has_global_flag = spawn_caravaneer_2 } } event_target:caravaneer_fleet3_fleet = { fleet_event = { id = cara.3000 days = @caravaneerfleetlaunch1 } } event_target:caravaneer_fleet2_fleet = { fleet_event = { id = cara.2000 days = @caravaneerfleetlaunch2 } } } 1 = { # 3 - 1 modifier = { factor = 0 NAND = { has_global_flag = spawn_caravaneer_3 has_global_flag = spawn_caravaneer_1 } } event_target:caravaneer_fleet3_fleet = { fleet_event = { id = cara.3000 days = @caravaneerfleetlaunch1 } } event_target:caravaneer_fleet1_fleet = { fleet_event = { id = cara.1000 days = @caravaneerfleetlaunch2 } } } } } } # Ruined Matter Decompressor megacorp_matter_decompressor_init_01 = { class = sc_black_hole usage = misc_system_init flags = { ruined_matter_decompressor_system } usage_odds = { base = 0 modifier = { host_has_dlc = "Megacorp" add = 100 } } max_instances = 1 scaled_spawn_chance = 4 planet = { class = star orbit_distance = 0 init_effect = { save_event_target_as = matter_decompressor_hole clear_deposits = yes } } change_orbit = 200 asteroid_belt = { type = icy_asteroid_belt radius = 110 } init_effect = { spawn_megastructure = { type = "matter_decompressor_ruined" planet = event_target:matter_decompressor_hole init_effect = { create_ambient_object = { type = "large_debris_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 20 angle = 20 } } create_ambient_object = { type = "large_debris_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 20 angle = 150 } } create_ambient_object = { type = "medium_debris_01_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 35 angle = 90 } } create_ambient_object = { type = "medium_debris_02_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 3 angle = 270 } } } } } } # Ruined Strategic Coordination Center megacorp_strategic_coordination_center_init_01 = { class = "rl_standard_stars" usage = misc_system_init flags = { ruined_strategic_coordination_center_system } usage_odds = { base = 0 modifier = { host_has_dlc = "Megacorp" add = 100 } } max_instances = 1 scaled_spawn_chance = 4 planet = { class = star orbit_distance = 0 init_effect = { save_event_target_as = coordination_location } } change_orbit = 55 planet = { class = "pc_barren" size = { min = 10 max = 15 } init_effect = { create_ambient_object = { type = "abandoned_starbase_01_object" location = this } create_ambient_object = { type = "medium_debris_01_object" location = this } } } change_orbit = 25 planet = { class = "pc_gas_giant" orbit_angle = { min = 90 max = 270 } size = 40 init_effect = { create_ambient_object = { type = "abandoned_starbase_01_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 10 angle = 270 } } create_ambient_object = { type = "abandoned_starbase_01_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 10 angle = 180 } } create_ambient_object = { type = "large_debris_object" location = this } } moon = { class = "pc_barren" size = 6 orbit_distance = 20 orbit_angle = { min = 90 max = 270 } has_ring = no init_effect = { create_ambient_object = { type = "abandoned_starbase_01_object" location = this } create_ambient_object = { type = "medium_debris_01_object" location = this } } } } change_orbit = 25 planet = { class = "pc_gas_giant" orbit_angle = { min = 90 max = 270 } size = 30 init_effect = { create_ambient_object = { type = "abandoned_starbase_01_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 7 angle = 270 } } create_ambient_object = { type = "abandoned_starbase_01_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 7 angle = 180 } } create_ambient_object = { type = "abandoned_starbase_01_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 7 angle = 0 } } create_ambient_object = { type = "large_debris_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 15 angle = 0 } } create_ambient_object = { type = "large_debris_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 15 angle = 180 } } } moon = { class = "pc_barren_cold" size = 6 orbit_distance = 20 orbit_angle = { min = 90 max = 270 } has_ring = no } moon = { class = "pc_frozen" size = 6 orbit_distance = 6 orbit_angle = { min = 90 max = 270 } has_ring = no } moon = { class = "pc_barren" size = 6 orbit_distance = 6 orbit_angle = { min = 90 max = 270 } has_ring = no init_effect = { save_event_target_as = sentry_planet } } } change_orbit = 25 planet = { class = "pc_gas_giant" orbit_angle = { min = 90 max = 270 } size = 35 init_effect = { create_ambient_object = { type = "abandoned_starbase_01_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 10 angle = 270 } } create_ambient_object = { type = "abandoned_starbase_01_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 10 angle = 180 } } create_ambient_object = { type = "abandoned_starbase_01_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 10 angle = 0 } } create_ambient_object = { type = "abandoned_starbase_01_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 10 angle = 90 } } create_ambient_object = { type = "large_debris_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 15 angle = 180 } } create_ambient_object = { type = "large_debris_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 15 angle = 0 } } create_ambient_object = { type = "large_debris_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 15 angle = 270 } } } moon = { class = "pc_frozen" size = 6 orbit_distance = 20 orbit_angle = { min = 90 max = 270 } has_ring = no } moon = { class = "pc_frozen" size = 6 orbit_distance = 6 orbit_angle = { min = 90 max = 270 } has_ring = no init_effect = { create_ambient_object = { type = "abandoned_starbase_01_object" location = this } create_ambient_object = { type = "medium_debris_01_object" location = this } } } } change_orbit = 25 planet = { class = "pc_frozen" size = { min = 10 max = 15 } init_effect = { create_ambient_object = { type = "abandoned_starbase_01_object" location = this } create_ambient_object = { type = "medium_debris_02_object" location = this } } } init_effect = { spawn_megastructure = { type = "strategic_coordination_center_ruined" planet = event_target:coordination_location } create_ambient_object = { type = "large_debris_object" location = solar_system } create_ambient_object = { type = "large_debris_object" location = solar_system } create_ambient_object = { type = "large_debris_object" location = solar_system } create_ambient_object = { type = "medium_debris_01_object" location = solar_system } create_ambient_object = { type = "medium_debris_02_object" location = solar_system } create_ambient_object = { type = "medium_debris_01_object" location = solar_system } create_ambient_object = { type = "medium_debris_02_object" location = solar_system } create_ambient_object = { type = "small_debris_object" location = solar_system } } } # Ruined Mega Art Installation megacorp_mega_art_installation_init_01 = { class = "rl_trinary_stars" usage = misc_system_init flags = { ruined_mega_art_installation_system } usage_odds = { base = 0 modifier = { host_has_dlc = "Megacorp" add = 100 } } max_instances = 1 scaled_spawn_chance = 4 planet = { count = 1 class = star orbit_distance = 25 orbit_angle = 0 size = { min = 25 max = 30 } has_ring = no init_effect = { save_event_target_as = installation_star } } planet = { count = 1 class = star orbit_distance = { min = 0 max = 20 } orbit_angle = 120 size = { min = 25 max = 30 } has_ring = no } planet = { count = 1 class = star orbit_distance = { min = 0 max = 20 } orbit_angle = 120 size = { min = 25 max = 30 } has_ring = no } change_orbit = 45 planet = { count = { min = 2 max = 10 } orbit_distance = 20 orbit_angle = { min = 90 max = 270 } change_orbit = @base_moon_distance moon = { count = { min = 0 max = 1 } orbit_angle = { min = 90 max = 270 } orbit_distance = 5 } } init_effect = { spawn_megastructure = { type = "mega_art_installation_ruined" planet = event_target:installation_star } create_ambient_object = { type = "large_debris_object" location = solar_system } create_ambient_object = { type = "large_debris_object" location = solar_system } create_ambient_object = { type = "large_debris_object" location = solar_system } create_ambient_object = { type = "medium_debris_01_object" location = solar_system } create_ambient_object = { type = "medium_debris_02_object" location = solar_system } create_ambient_object = { type = "medium_debris_01_object" location = solar_system } create_ambient_object = { type = "medium_debris_02_object" location = solar_system } create_ambient_object = { type = "small_debris_object" location = solar_system } } } # Ruined Interstellar Assembly # (a former capital system) megacorp_interstellar_assembly_init_01 = { class = "rl_starting_stars" asteroid_belt = { type = rocky_asteroid_belt radius = 50 } usage = misc_system_init usage_odds = { base = 0 modifier = { host_has_dlc = "Megacorp" add = 100 } } max_instances = 1 scaled_spawn_chance = 4 flags = { ruined_interstellar_assembly_system } planet = { count = 1 class = star orbit_distance = 0 orbit_angle = 1 size = { min = 20 max = 30 } has_ring = no } init_effect = { generate_home_system_resources = yes spawn_megastructure = { type = "interstellar_assembly_ruined" planet = star init_effect = { create_ambient_object = { type = "large_debris_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 20 angle = 20 } } create_ambient_object = { type = "large_debris_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 20 angle = 150 } } create_ambient_object = { type = "medium_debris_01_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 35 angle = 90 } } create_ambient_object = { type = "medium_debris_02_object" location = this } last_created_ambient_object = { set_location = { target = prev distance = 3 angle = 270 } } } } } change_orbit = 50 planet = { count = { min = 1 max = 3 } class = pc_asteroid orbit_distance = 0 orbit_angle = { min = 40 max = 100 } } planet = { count = { min = 0 max = 2 } orbit_distance = 20 class = random_non_colonizable orbit_angle = { min = 90 max = 270 } change_orbit = @base_moon_distance moon = { count = { min = 0 max = 1 } class = random_non_colonizable orbit_angle = { min = 90 max = 270 } orbit_distance = 5 } } planet = { count = 1 orbit_distance = 20 home_planet = yes class = ideal_planet_class orbit_angle = { min = 90 max = 270 } size = { min = @homeworld_min_size max = @homeworld_max_size } deposit_blockers = none modifiers = none init_effect = { generate_empire_home_planet = yes } change_orbit = @base_moon_distance moon = { count = { min = 0 max = 1 } class = random_non_colonizable orbit_angle = { min = 90 max = 270 } orbit_distance = 5 } } planet = { count = { min = 2 max = 4 } orbit_distance = 20 class = random_non_colonizable orbit_angle = { min = 90 max = 270 } change_orbit = @base_moon_distance moon = { count = { min = 0 max = 1 } class = random_non_colonizable orbit_angle = { min = 90 max = 270 } orbit_distance = 5 } } planet = { count = { min = 1 max = 2 } orbit_distance = 20 class = pc_gas_giant orbit_angle = { min = 90 max = 270 } change_orbit = @base_moon_distance moon = { count = { min = 0 max = 3 } class = random_non_colonizable orbit_angle = { min = 90 max = 270 } orbit_distance = 5 } } }