################################ # # Origin Events # ############################### namespace = origin ######################### # FRUITFUL PARTNERSHIP ## By Giada Zavarise ######################### # Initial event to study the Tiyanki country_event = { id = origin.7000 title = origin.7000.name desc = { trigger = { owner = { is_beastmasters_empire = no } } text = origin.7000.desc.default } desc = { trigger = { owner = { is_beastmasters_empire = yes } } text = origin.7000.desc.beastmasters } picture = GFX_evt_tiyanki_family show_sound = evn_ove_tiyanki_family is_triggered_only = yes trigger = { has_origin = origin_fruitful } option = { name = "origin.7000.a" enable_special_project = { name = "TIYANKIS_PROJECT" owner = root } } option = { name = "origin.7000.b" } } # Follow-up | Fired by TIYANKIS_PROJECT on_success country_event = { id = origin.7005 title = origin.7005.name desc = origin.7005.desc picture = GFX_evt_tiyanki_family show_sound = evn_ove_tiyanki_family is_triggered_only = yes trigger = { has_origin = origin_fruitful } option = { name = "EXCELLENT" add_monthly_resource_mult = { resource = society_research value = @tier3researchreward min = @tier3researchmin max = @tier3researchmax } if = { limit = { has_tech_option = tech_space_whale_weapon_1 } add_tech_progress = { tech = tech_space_whale_weapon_1 progress = 0.6 } } else = { add_research_option = tech_space_whale_weapon_1 add_tech_progress = { tech = tech_space_whale_weapon_1 progress = 0.2 } } } } # Tutorial country_event = { id = origin.7100 title = origin.7100.name desc = origin.7100.desc picture = GFX_evt_fruitful_partnership show_sound = evn_ove_tiyanki_family is_triggered_only = yes trigger = { has_origin = origin_fruitful NOT = { has_country_flag = fruitful_partnership_tutorial } } immediate = { set_country_flag = fruitful_partnership_tutorial } option = { name = EXCELLENT } } # Seed Bombing stance creates blockers | Fired by on_planet_bombarded # This = Planet # From = Bombarder planet_event = { id = origin.7200 hide_window = yes is_triggered_only = yes trigger = { has_orbital_bombardment_stance = seed_bombing OR = { AND = { planet_devastation >= 10 NOT = { is_variable_set = seed_bomb_blockers } } AND = { is_variable_set = seed_bomb_blockers check_variable_arithmetic = { which = seed_bomb_blockers add = 1 divide = trigger:planet_devastation value <= 0.1 } } } } immediate = { # Set variables if = { limit = { NOT = { is_variable_set = seed_bomb_blockers } } set_variable = { which = seed_bomb_blockers value = 1 } } else = { change_variable = { which = seed_bomb_blockers value = 1 } } # Add the blockers if = { limit = { from.owner_main_species = { is_species_class = FUN } } add_blocker = { type = d_seed_bombing_fungoid_blocker blocked_deposit = random } } else = { add_blocker = { type = d_seed_bombing_plantoid_blocker blocked_deposit = random } } # Notify player if = { limit = { owner = { has_country_flag = seed_bombing_tutorial } } create_message = { type = MESSAGE_FRUITFUL_SEED_BOMBING localization = MESSAGE_FRUITFUL_SEED_BOMBING days = 30 target = this variable = { type = name localization = PLANET scope = this } } } # Tutorial event for the first time it happens else = { planet_event = { id = origin.7201 } } } } # Seed Bombing stance creates blockers - tutorial event for the first time | Fired by on_planet_bombarded # This = Planet # From = Bombarder planet_event = { id = origin.7201 title = origin.7201.name desc = origin.7201.desc picture = GFX_evt_aggressive_flora show_sound = event_collapsing_ruins location = this is_triggered_only = yes immediate = { owner = { set_country_flag = seed_bombing_tutorial } } option = { name = DISTURBING tooltip = { if = { limit = { from.owner_main_species = { is_species_class = FUN } } add_blocker = { type = d_seed_bombing_fungoid_blocker blocked_deposit = random } } else = { add_blocker = { type = d_seed_bombing_plantoid_blocker blocked_deposit = random } } } } } ## Space Critters Behaviour # Luring critters to space station | fired by on_monthly_pulse_country # this = country country_event = { id = origin.7300 hide_window = yes is_triggered_only = yes trigger = { has_origin = origin_fruitful any_owned_starbase = { OR = { has_starbase_building = feeder has_starbase_building = ring_feeder } } } immediate = { random_owned_starbase = { limit = { OR = { has_starbase_building = feeder has_starbase_building = ring_feeder } } save_event_target_as = feeder_starbase solar_system = { save_event_target_as = feeder_starbase_system } } # first, check if there are valid critters in the system if = { limit = { event_target:feeder_starbase_system = { any_valid_lured_critter_fleet = yes } } event_target:feeder_starbase_system = { lure_valid_critter_fleet = yes } } # if not, look for neighbor systems else_if = { limit = { # Looking for pacified critters that aren't guarding a system or carrying seeds event_target:feeder_starbase_system = { any_neighbor_system = { any_valid_lured_critter_fleet = yes } } } # Prioritize the nearby critters if there's a valid target event_target:feeder_starbase_system = { random_neighbor_system = { limit = { any_valid_lured_critter_fleet = yes } lure_valid_critter_fleet = yes } } } # if there are no critters nearby, choose a random one in the galaxy else = { random_country = { limit = { is_pacified_space_critter_country_type = yes } random_owned_fleet = { limit = { NOR = { has_fleet_flag = fruitful_lured_critter has_fleet_flag = fruitful_seeded_critter has_fleet_flag = is_garrison_fleet } } save_event_target_as = lured_critter } } } # push the lured critter towards the starbase if = { limit = { exists = event_target:lured_critter } event_target:lured_critter = { set_fleet_flag = fruitful_lured_critter auto_move_to_planet = { target = event_target:feeder_starbase.star clear_auto_move_on_arrival = yes } } } } } # Lured critters eat the seed | fired by on_fleet_auto_move_arrival # This = owner of fleet # From = fleet # FromFrom = planet (if any) country_event = { id = origin.7301 hide_window = yes is_triggered_only = yes trigger = { OR = { is_amoeba_country_type = yes is_tiyanki_country_type = yes is_country_type = crystal } from = { has_fleet_flag = fruitful_lured_critter NOT = { has_fleet_flag = fruitful_seeded_critter } } } immediate = { # immediately remove the flag so the critter won't get stuck in the system if there's no starbase from = { remove_fleet_flag = fruitful_lured_critter # If the starbase is still there, the critter eats a fruit and gets a seed if = { limit = { exists = solar_system.starbase solar_system.starbase = { OR = { has_starbase_building = feeder has_starbase_building = ring_feeder } } } set_fleet_flag = fruitful_seeded_critter save_event_target_as = seeded_fleet solar_system.owner = { set_country_flag = put_seed_on@event_target:seeded_fleet # used to notify players once the seed lands on a planet if = { limit = { has_country_flag = fruitful_partnership_tutorial } create_message = { type = MESSAGE_FRUITFUL_SEED_CRITTER localization = MESSAGE_FRUITFUL_SEED_CRITTER days = 30 target = fromfrom variable = { type = name localization = SYSTEM scope = fromfrom } } } # Tutorial event for the first time it happens else = { country_event = { id = origin.7100 } } } } } } } # Space critters see a feeding station and approach it. om nom. | fired by on_entering_system_fleet # Scope = Fleet # From = System fleet_event = { id = origin.7302 hide_window = yes is_triggered_only = yes trigger = { owner = { OR = { is_amoeba_country_type = yes is_tiyanki_country_type = yes is_country_type = crystal } } from = { exists = starbase starbase = { OR = { has_starbase_building = feeder has_starbase_building = ring_feeder } } } NOR = { has_fleet_flag = fruitful_lured_critter has_fleet_flag = fruitful_seeded_critter has_fleet_flag = is_garrison_fleet } } immediate = { set_fleet_flag = fruitful_seeded_critter save_event_target_as = seeded_fleet from.owner = { set_country_flag = put_seed_on@event_target:seeded_fleet # used to notify players once the seed lands on a planet create_message = { type = MESSAGE_FRUITFUL_SEED_CRITTER localization = MESSAGE_FRUITFUL_SEED_CRITTER days = 30 target = fromfrom variable = { type = name localization = SYSTEM scope = fromfrom } } } } } # Bubbles and friends can carry the seed | Fired by on_fleet_enter_orbit #From = Planet/Starbase/Megastructure scope #This = Fleet scope fleet_event = { id = origin.7303 hide_window = yes is_triggered_only = yes trigger = { any_owned_ship = { is_space_fauna = yes } from = { is_scope_type = starbase OR = { has_starbase_building = feeder has_starbase_building = ring_feeder } owner = { has_origin = origin_fruitful } } NOR = { has_fleet_flag = fruitful_lured_critter has_fleet_flag = fruitful_seeded_critter has_fleet_flag = is_garrison_fleet } } immediate = { set_fleet_flag = fruitful_seeded_critter save_event_target_as = seeded_fleet from.owner = { set_country_flag = put_seed_on@event_target:seeded_fleet # used to notify players once the seed lands on a planet if = { limit = { has_country_flag = fruitful_partnership_tutorial_bubbles } create_message = { type = MESSAGE_FRUITFUL_SEED_CRITTER localization = MESSAGE_FRUITFUL_SEED_CRITTER days = 30 target = fromfrom variable = { type = name localization = SYSTEM scope = fromfrom } } } # Tutorial event for the first time it happens else = { country_event = { id = origin.7304 } } } } } country_event = { id = origin.7304 title = origin.7304.name desc = origin.7304.desc picture = GFX_evt_fruitful_partnership show_sound = evn_ove_tiyanki_family is_triggered_only = yes trigger = { has_origin = origin_fruitful NOT = { has_country_flag = fruitful_partnership_tutorial_bubbles } } immediate = { set_country_flag = fruitful_partnership_tutorial_bubbles } option = { name = EXCELLENT } } # Spawn seeds on newly built fauna ship # Root = Ship # From = Planet ship_event = { id = origin.7305 hide_window = yes is_triggered_only = yes trigger = { is_space_fauna = yes owner = { has_origin = origin_fruitful } } immediate = { fleet = { fleet_event = { id = origin.7303 scopes = { from = from } } } } } # Seeded critters have a chance of leaving seed on planet (HIDDEN) | fired by on_entering_system_fleet # Scope = Fleet # From = System fleet_event = { id = origin.7310 hide_window = yes is_triggered_only = yes trigger = { controller = { is_fauna_country = yes # random seeding is only for wild space fauna } has_fleet_flag = fruitful_seeded_critter from = { # we're looking for an habitable planet with no seeds. any_system_planet = { is_valid_planet_for_seed = yes } } } immediate = { random_list = { 40 = { fleet_event = { id = origin.7311 } # Higher chances of happening the first time, to reinforce how the origin works modifier = { factor = 4 NOT = { has_global_flag = fruitful_first_colony } } # Lower chances of happening in systems you already own modifier = { factor = 0.5 from = { exists = owner owner = { has_country_flag = put_seed_on@root } } } # Avoid systems with a solar station owned by another country, # we don't want split ownership of systems or QA will yell at us. modifier = { factor = 0 from = { exists = owner owner = { NOT = { has_country_flag = put_seed_on@root } } } } } 60 = { } #nothing happens } } } # Seeded critters leave seed on planet (AI country) # Scope = Fleet # Fromfrom = System fleet_event = { id = origin.7311 hide_window = yes is_triggered_only = yes trigger = { fromfrom = { any_system_planet = { is_valid_planet_for_seed = yes } } } immediate = { save_event_target_as = seeded_fleet # grab the owner of the seeds being dropped random_playable_country = { limit = { has_origin = origin_fruitful has_country_flag = put_seed_on@event_target:seeded_fleet } save_event_target_as = seeds_owner } # find planet fromfrom = { random_system_planet = { limit = { is_valid_planet_for_seed = yes } save_event_target_as = seeded_planet } } # go to the planet clear_orders = yes clear_fleet_actions = THIS queue_actions = { find_closest_planet = { trigger = { id = garden.critters.1@root is_planet = event_target:seeded_planet } found_planet = { move_to = this orbit_planet = this wait = { duration = 10 random = 25 } effect = { id = garden.critters.2@root plant_fruitful_seeds = { SEEDS_OWNER = event_target:seeds_owner SEEDED_FLEET = event_target:seeded_fleet } } } } } } after = { if = { limit = { NOT = { has_global_flag = fruitful_first_colony } } set_global_flag = fruitful_first_colony } } } # Seeded critters leave seed on planet (player country) #From = Planet/Starbase/Megastructure scope #This = Fleet scope fleet_event = { id = origin.7315 hide_window = yes is_triggered_only = yes trigger = { is_space_fauna = yes controller = { is_fauna_country = no } has_fleet_flag = fruitful_seeded_critter from = { is_scope_type = planet is_valid_planet_for_seed = yes } } immediate = { from = { plant_fruitful_seeds = { SEEDS_OWNER = root.controller SEEDED_FLEET = root } } } } # Special project completed: opening the seed pods | fired by OPEN_SEED_PODS_PROJECT planet_event = { id = origin.7320 hide_window = yes is_triggered_only = yes immediate = { remove_modifier = seeded_planet_0_modifier start_colony = { owner = event_target:new_planet_owner species = event_target:new_planet_owner.species } solar_system = { set_star_flag = fruitful_colonization } } after = { event_target:new_planet_owner = { country_event = { id = origin.7321 } # We do this so the completed project won't stay in the event chain list abort_special_project = { type = OPEN_SEED_PODS_PROJECT location = ROOT } } } } country_event = { id = origin.7321 title = origin.7321.name desc = origin.7321.desc picture = GFX_evt_alien_nature show_sound = event_default location = from is_triggered_only = yes option = { name = EXCELLENT } } # Seeds lost (planet was destroyed or colonized) country_event = { id = origin.7325 hide_window = yes is_triggered_only = yes trigger = { event_target:seeded_planet = { exists = owner owner = { NOT = { is_same_value = prev } } } } immediate = { create_message = { type = MESSAGE_FRUITFUL_SEED_LOST localization = MESSAGE_FRUITFUL_SEED_LOST days = 30 target = event_target:seeded_planet variable = { type = name localization = PLANET scope = event_target:seeded_planet } } } after = { # We do this so the completed project won't stay in the event chain list abort_special_project = { type = OPEN_SEED_PODS_PROJECT location = event_target:seeded_planet } } } # Someone else colonizes the planet - seeds open | Fired by on_colonization_started planet_event = { id = origin.7326 title = origin.7326.name desc = { trigger = { owner = { has_communications = event_target:seeds_owner } } text = origin.7326.desc.knowowner } desc = { trigger = { OR = { NOT = { exists = event_target:seeds_owner } owner = { NOT = { has_communications = event_target:seeds_owner } } } } text = origin.7326.desc.notknowowner } picture = GFX_evt_alien_nature show_sound = event_default location = root is_triggered_only = yes trigger = { has_modifier = seeded_planet_0_modifier owner = { NOT = { has_country_flag = seed_on_planet@root } } any_playable_country = { has_country_flag = seed_on_planet@root } } immediate = { random_playable_country = { limit = { has_country_flag = seed_on_planet@root } save_event_target_as = seeds_owner } } option = { name = { text = FASCINATING trigger = { owner = { is_xenophile = yes } } } name = { text = WORRYING trigger = { owner = { is_xenophile = no } } } remove_modifier = seeded_planet_0_modifier add_modifier = { modifier = seeded_planet_1_modifier } } after = { create_pop_group = { species = event_target:seeds_owner } owner = { if = { limit = { NOT = { has_communications = event_target:seeds_owner } } establish_communications = event_target:seeds_owner } } } } # # Seeds rain on already-colonized planet planet_event = { id = origin.7327 title = origin.7327.name desc = { trigger = { owner = { has_communications = event_target:seeds_owner } } text = origin.7327.desc.knowowner } desc = { trigger = { OR = { NOT = { exists = event_target:seeds_owner } owner = { NOT = { has_communications = event_target:seeds_owner } } } } text = origin.7327.desc.notknowowner } picture = GFX_evt_alien_nature show_sound = event_default location = root is_triggered_only = yes immediate = { random_playable_country = { limit = { has_country_flag = seed_on_planet@root } save_event_target_as = seeds_owner } } option = { name = { text = FASCINATING trigger = { owner = { is_xenophile = yes } } } name = { text = WORRYING trigger = { owner = { is_xenophile = no } } } } after = { create_pop_group = { species = event_target:seeds_owner } owner = { if = { limit = { NOT = { has_communications = event_target:seeds_owner } } establish_communications = event_target:seeds_owner } } } } # We colonize a planet with our own seeds - seeds open | Fired by on_colonization_started planet_event = { id = origin.7328 title = origin.7328.name desc = origin.7328.desc picture = GFX_evt_alien_nature show_sound = event_default location = root is_triggered_only = yes trigger = { has_modifier = seeded_planet_0_modifier owner = { has_country_flag = seed_on_planet@root } } option = { name = EXCELLENT remove_modifier = seeded_planet_0_modifier add_modifier = { modifier = seeded_planet_1_modifier } } after = { create_pop_group = { species = root.owner } } } # # Colonization started | Building outpost planet_event = { id = origin.7400 title = origin.7400.name desc = origin.7400.desc inline_script = { script = events/biogenesis_event_art OWNER = owner REGULAR_PICTURE = GFX_evt_space_station BIOSHIP_PICTURE = GFX_evt_bioship_hangar } show_sound = event_default location = root is_triggered_only = yes immediate = { remove_planet_flag = seed_pods_colonization solar_system = { create_starbase = { size = starbase_outpost owner = root.owner } if = { limit = { root.owner = { is_specialist_subject_type = { TYPE = bulwark } } } starbase = { add_starbase_component = { component = "STARBASE_AURA_BULWARK_ARRAY" } } } } } option = { name = OK tooltip = { solar_system = { create_starbase = { size = starbase_outpost owner = root.owner } } } } } # Galcom - Pest control or protection act passed country_event = { id = origin.7500 title = origin.7500.name desc = origin.7500.desc picture = GFX_evt_galactic_senate show_sound = event_galactic_community is_triggered_only = yes trigger = { has_origin = origin_fruitful OR = { last_resolution_changed = resolution_amoeba_conservation_act last_resolution_changed = resolution_tiyanki_conservation_act last_resolution_changed = resolution_repeal_tiyanki_pest_control } } option = { name = EXCELLENT every_playable_country = { limit = { has_communications = root position_on_last_resolution = support } root = { add_opinion_modifier = { modifier = opinion_voted_to_help_tiyanki who = prev } } } } } # Galcom - Pest control or protection act passed country_event = { id = origin.7510 title = origin.7510.name desc = origin.7510.desc picture = GFX_evt_galactic_senate show_sound = event_assembly_fight is_triggered_only = yes trigger = { has_origin = origin_fruitful OR = { last_resolution_changed = resolution_tiyanki_pest_control last_resolution_changed = resolution_repeal_tiyanki_conservation_act last_resolution_changed = resolution_repeal_amoeba_conservation_act } } option = { name = EXCELLENT every_playable_country = { limit = { has_communications = root position_on_last_resolution = support } root = { add_opinion_modifier = { modifier = opinion_voted_to_kill_tiyanki who = prev } } } } } # Possibility of spawning armies | Fired by on_war_beginning # Root = Country # From = War country_event = { id = origin.7600 title = origin.7600.name desc = origin.7600.desc picture = GFX_evt_aggressive_flora show_sound = event_assembly_fight is_triggered_only = yes trigger = { has_origin = origin_fruitful } option = { name = EXCELLENT save_event_target_as = fruitful_project_owner begin_event_chain = { event_chain = fruitful_partnership_war_chain target = this } # Special projects on your planets every_owned_planet = { limit = { has_seeded_modifier = yes has_planet_flag = seeds_planted_by@root } enable_special_project = { name = WEEDS_ARMY_PROJECT owner = root location = this } } # Special projects on your enemy's planets from = { every_war_participant = { limit= { NOT = { is_same_value = root } } every_owned_planet = { limit = { has_seeded_modifier = yes has_planet_flag = seeds_planted_by@root } enable_special_project = { name = WEEDS_ARMY_PROJECT owner = root location = this } } } } } } # Spawn invasive army | Fired by WEEDS_ARMY_PROJECT on_complete country_event = { id = origin.7700 hide_window = yes is_triggered_only = yes immediate = { from = { switch = { trigger = has_modifier seeded_planet_1_modifier = { while = { count = 4 create_army = { name = random owner = event_target:fruitful_project_owner species = event_target:fruitful_project_owner type = "fruitful_army" } } remove_modifier = seeded_planet_1_modifier } seeded_planet_2_modifier = { while = { count = 8 create_army = { name = random owner = event_target:fruitful_project_owner species = event_target:fruitful_project_owner type = "fruitful_army" } } remove_modifier = seeded_planet_2_modifier } seeded_planet_3_modifier = { while = { count = 12 create_army = { name = random owner = event_target:fruitful_project_owner species = event_target:fruitful_project_owner type = "fruitful_army" } } remove_modifier = seeded_planet_3_modifier } } } create_message = { type = MESSAGE_FRUITFUL_WEED_ARMY localization = MESSAGE_FRUITFUL_WEED_ARMY days = 30 target = from variable = { type = name localization = PLANET scope = from } } } after = { event_target:fruitful_project_owner = { # We do this so the completed project won't stay in the event chain list abort_special_project = { type = WEEDS_ARMY_PROJECT location = from } } } } # Spawn invasive army - tell the planet owner | Fired by WEEDS_ARMY_PROJECT on_complete country_event = { id = origin.7710 title = origin.7710.name desc = origin.7710.desc picture = GFX_evt_aggressive_flora show_sound = event_ground_battle location = from is_triggered_only = yes option = { name = WORRYING } }