diff --git a/common/component_templates/RG_special_ship_parts.txt b/common/component_templates/RG_special_ship_parts.txt index 562b109..f1dea34 100644 --- a/common/component_templates/RG_special_ship_parts.txt +++ b/common/component_templates/RG_special_ship_parts.txt @@ -1,4 +1,4 @@ -#歼星武器 +#歼星武器-试射武器 weapon_component_template = { key = "RG_PLANET_KILLER_SP" size = planet_killer @@ -51,6 +51,59 @@ weapon_component_template = { } } +#歼星武器-风暴浪潮 +weapon_component_template = { + key = "RG_PLANET_KILLER_NANO_SP" + size = planet_killer + type = planet_killer + icon = GFX_ship_part_divine_enforcer + icon_frame = 1 + projectile_gfx = "gatebuilder_planet_weapon_ex" + planet_destruction_gfx = "neutron_planet_gfx" + total_fire_time = 60 #开火时间 + firing_arc = 25 + resources = { + category = ship_components + cost = { + alloys = 2000 + nanites = 50 + } + } + power = -1000 + damage = { + min = 35 + max = 350 + } #伤害 + windup = { + min = 32 + max = 64 + } #冷却 + size_damage_factor = 10 + hull_damage = 10 #船体伤害 + shield_damage = 10 #护盾伤害 + armor_damage = 10 #装甲伤害 + shield_penetration = 10 #护盾穿透 + armor_penetration = 10 #装甲穿透 + tracking = 1 #追踪 + range = 800 #范围 + accuracy = 1 #命中 + tags = { + weapon_type_rg_main + weapon_type_energy + } + size_restriction = { + RG_gray_juggernaut + RG_graygoo_capitalship + RG_graygoo_mothership + } + component_set = "RG_PLANET_KILLER" + prerequisites = { "tech_object_gray_7" } + ship_limit = 1 + ai_weight = { + weight = 0 + } +} + # 重组仪 utility_component_template = { key = "RG_revive_component" diff --git a/common/decisions/RG_decisions.txt b/common/decisions/RG_decisions.txt new file mode 100644 index 0000000..6ae5bcf --- /dev/null +++ b/common/decisions/RG_decisions.txt @@ -0,0 +1,110 @@ +### turn off the lights +decision_rg_server_shut_down = { + owned_planets_only = yes + sound = event_administrative_work + icon = decision_glitchy_matrix + enactment_time = 30 + + resources = { + category = decisions + cost = { + unity = 200 + } + } + + potential = { + exists = owner + owner = { + has_tradition = tr_virtuality_finish + } + } + + allow = { + is_capital = no + } + + effect = { + destroy_colony = yes + } + + ai_weight = { + weight = 0 + } +} + +### Nanotech Slushify Planet +decision_rg_nanotech_swarm_consume_world = { + icon = decision_tidal_lock_planet + sound = event_structural_collapse + + #enactment_time = 360 + resources = { + category = decisions + } + owned_planets_only = yes + + potential = { + exists = owner + owner = { + has_tradition = tr_rg_nanotech_3 + } + can_have_habitable_deposits = yes + is_capital = no + NOT = { + has_planet_flag = being_devoured + } + NOT = { has_designation = col_nanotech_world } + } + + effect = { + custom_tooltip = decision_nanotech_swarm_consume_world_effect_desc + set_timed_planet_flag = { + days = 360 + flag = recently_eaten_planet + } + hidden_effect = { + set_planet_flag = colony_event + set_planet_flag = being_devoured + add_modifier = { + modifier = being_devoured_modifier_nanotech + days = -1 + } + export_trigger_value_to_variable = { + trigger = planet_size + variable = num_districts_terravore + } + export_trigger_value_to_variable = { + trigger = count_deposits + parameters = { + type = d_nanotech_devastation + } + variable = num_lithoid_blockers + } + if = { + limit = { + is_variable_set = num_lithoid_blockers + } + subtract_variable = { + which = num_districts_terravore + value = num_lithoid_blockers + } + } + } + owner = { + start_situation = { + type = situation_rg_nanotech_consume_planet + target = root + } + } + } + + ai_weight = { + weight = 5 + + # don't wreck worlds you want to keep + modifier = { + factor = 0 + is_lithoid_devouring_swarm_consumption_world = no + } + } +} diff --git a/common/on_actions/RG_on_actions.txt b/common/on_actions/RG_on_actions.txt index 1e80740..9ca2abf 100644 --- a/common/on_actions/RG_on_actions.txt +++ b/common/on_actions/RG_on_actions.txt @@ -261,4 +261,14 @@ on_district_demolished = { rg_planet.2026 # Virtual Machine pop creation rg_planet.2031 # Virtual Machine pop destruction } +} + +# A pop has finished purging +# This = Planet scope +# From = Country +# FromFrom = Pop +on_pop_purged = { + events = { + rg_event.24 # Necrophage Purge + } } \ No newline at end of file diff --git a/common/on_actions/RG_planet_destruction.txt b/common/on_actions/RG_planet_destruction.txt index 429d541..630b6e3 100644 --- a/common/on_actions/RG_planet_destruction.txt +++ b/common/on_actions/RG_planet_destruction.txt @@ -48,6 +48,19 @@ on_destroy_planet_with_RG_PLANET_KILLER_SP_queued = { on_destroy_planet_with_RG_PLANET_KILLER_SP_unqueued = { } + +on_destroy_planet_with_RG_PLANET_KILLER_NANO_SP = { + events = { + RG_planet_killer.4 + # rg_story.6 + } +} + +on_destroy_planet_with_RG_PLANET_KILLER_NANO_SP_queued = { +} + +on_destroy_planet_with_RG_PLANET_KILLER_NANO_SP_unqueued = { +} # World Cracker on_destroy_planet_with_RG_PLANET_KILLER_CRACKER = { events = { diff --git a/common/planet_classes/!_RG_planet_classes_overwrite.txt b/common/planet_classes/!_RG_planet_classes_overwrite.txt new file mode 100644 index 0000000..6aabdec --- /dev/null +++ b/common/planet_classes/!_RG_planet_classes_overwrite.txt @@ -0,0 +1,31 @@ +# pc_nanotech = { +# entity = "gray_goo_planet" +# entity_scale = @planet_standard_scale +# icon = GFX_planet_type_toxic +# +# atmosphere_color = hsv { 0.19 0.45 0.9 } #DONE +# atmosphere_intensity = 0.1 +# atmosphere_width = 1.2 +# +# city_color_lut = "gfx/portraits/misc/colorcorrection_neutral.dds" +# +# min_distance_from_sun = @habitable_min_distance +# max_distance_from_sun = @habitable_max_distance +# +# spawn_odds = 0 +# +# extra_orbit_size = 0 +# extra_planet_count = 0 +# +# chance_of_ring = 0.2 +# +# planet_size = { min = 12 max = 25 } +# moon_size = { min = 6 max = 10 } +# +# can_be_invaded = yes +# can_have_no_pop_colony = no +# colonizable = yes +# district_set = machine_world +# starting_planet = no +# show_city = no +# } \ No newline at end of file diff --git a/common/relics/RG_relics.txt b/common/relics/RG_relics.txt index eb22464..714fd79 100644 --- a/common/relics/RG_relics.txt +++ b/common/relics/RG_relics.txt @@ -7,7 +7,7 @@ rg_tempest_invocator = { category = relics # Activation cost cost = { - energy = 0 + nanties = 5000 } } diff --git a/common/scripted_effects/RG_scripted_effects.txt b/common/scripted_effects/RG_scripted_effects.txt index aa91180..95c99c0 100644 --- a/common/scripted_effects/RG_scripted_effects.txt +++ b/common/scripted_effects/RG_scripted_effects.txt @@ -1909,6 +1909,403 @@ RG_destroy_planet_effect = { } } +RG_destroy_planet_effect_sp = { + #Dismantle observation post + if = { + limit = { + has_observation_outpost = yes + } + observation_outpost_owner = { + country_event = { + id = planet_destruction.1000 + days = 1 + } + } + } + # Contingency Machine World + if = { + limit = { + is_planet_class = pc_ai + NOT = { + has_planet_flag = machine_lair + } + } + set_planet_flag = destroyed_by_colossus + set_planet_flag = planet_cracked + planet_event = { + id = crisis.2040 + } + } + # Contingency Final Machine World + if = { + limit = { + is_planet_class = pc_ai + has_planet_flag = machine_lair + } + set_planet_flag = destroyed_by_colossus + set_planet_flag = planet_cracked + from.owner = { + save_event_target_as = final_machine_world_destroyer + } + stop_crisis_sound = yes + planet_event = { + id = crisis.2046 + } + } + # Swarm Situation Log counter + if = { + limit = { + exists = owner + owner = { + is_country_type = swarm + } + } + every_country = { + limit = { + has_event_chain = "prethoryn_scourge_chain" + } + add_event_chain_counter = { + event_chain = "prethoryn_scourge_chain" + counter = "infested_worlds" + amount = -1 + } + add_event_chain_counter = { + event_chain = "prethoryn_scourge_chain" + counter = "infested_worlds_cleansed" + amount = 1 + } + } + } + if = { + limit = { + OR = { + is_active_resolution = "resolution_rulesofwar_reverence_for_life" + is_active_resolution = "resolution_rulesofwar_independent_tribunals" + is_active_resolution = "resolution_rulesofwar_last_resort_doctrine" + is_active_resolution = "resolution_rulesofwar_demobilization_initiative" + } + } + from.owner = { + set_timed_country_flag = { + flag = resolution_breached_fired_cracker + days = 3600 + } + } + } + # Exterminatus Achievement + if = { + limit = { + is_capital = yes + } + from.owner = { + set_country_flag = exterminatus + } + } + if = { + limit = { + exists = owner + owner = { + NOT = { + is_same_value = from.owner + } + OR = { + is_country_type = default + is_country_type = fallen_empire + is_country_type = awakened_fallen_empire + } + } + } + # Generate threat + if = { + limit = { + is_colony = yes + } + add_threat = { + who = from.owner + amount = 3 + } + # modifier for allies + those upset by genocide + every_country = { + limit = { + NOR = { + is_same_value = from.owner + is_same_value = root.owner + AND = { + has_federation = yes + is_in_federation_with = from.owner + } + } + OR = { + has_communications = from.owner + has_communications = root.owner + } + OR = { + AND = { + has_federation = yes + is_in_federation_with = root.owner + } + has_ai_personality = awakened_fallen_empire_xenophile + AND = { + is_country_type = default + OR = { + is_egalitarian = yes + is_xenophile = yes + } + } + } + } + if = { + limit = { + root = { + is_colony = no + } + } + add_opinion_modifier = { + modifier = opinion_cracked_an_uninhabited_world + who = from.owner + } + } + else = { + add_opinion_modifier = { + modifier = opinion_cracked_a_world + who = from.owner + } + } + } + } + else = { + add_threat = { + who = from.owner + amount = 1 + } + } + # modifiers for victim + owner = { + if = { + limit = { + root = { + is_colony = no + } + } + add_opinion_modifier = { + modifier = opinion_cracked_my_uninhabited_world + who = from.owner + } + } + else = { + add_opinion_modifier = { + modifier = opinion_cracked_my_world + who = from.owner + } + } + if = { + limit = { + NOT = { + has_ethic = ethic_gestalt_consciousness + } + } + add_modifier = { + modifier = colossus_victim + days = 10800 # 30 years + } + } + } + if = { + limit = { + exists = owner + owner = { + is_country_type = primitive + } + } + # modifier for allies + those upset by genocide + every_country = { + limit = { + NOT = { + is_same_value = from.owner + } + OR = { + has_communications = from.owner + has_communications = root.owner + } + OR = { + has_ai_personality = awakened_fallen_empire_xenophile + AND = { + is_country_type = default + NOR = { + is_xenophobe = yes + is_homicidal = yes + is_xenophile = yes + } + } + } + } + add_opinion_modifier = { + modifier = opinion_cracked_a_primitive_world + who = from.owner + } + } + every_country = { + limit = { + NOT = { + is_same_value = from.owner + } + OR = { + has_communications = from.owner + has_communications = root.owner + } + OR = { + has_ai_personality = awakened_fallen_empire_xenophile + AND = { + is_country_type = default + is_xenophile = yes + } + } + } + add_opinion_modifier = { + modifier = opinion_cracked_a_primitive_world_phile + who = from.owner + } + } + } + } + # Add war exhaustion to planet owner + if = { + limit = { + exists = owner + } + owner = { + if = { + limit = { + #isn't the case when the crisis bombards planets, for instance + is_at_war_with = from.fleet.owner + } + add_static_war_exhaustion = { + attacker = from.fleet.owner + location = root + value_for_planet_destruction = 1 + } + } + } + } + if = { + limit = { + is_planet_class = pc_habitat + } # uncolonized + spawn_habitat_cracker_effect = yes + change_pc = pc_nanotech + } + if = { + limit = { + is_colony = yes + } + if = { + limit = { + exists = owner + owner = { + is_same_value = event_target:gray_owner + } + } + # already owned + } + else = { + set_owner = event_target:gray_owner + } + every_owned_pop = { + modify_species = { + species = event_target:gray_owner.owner_species + add_trait = trait_cybernetic + add_traits_at_start_of_list = yes + change_scoped_species = yes + } + } + every_owned_pop = { + limit = { + has_modifier = pop_recently_conquered + } + remove_modifier = pop_recently_conquered + } + every_owned_pop = { + set_citizenship_type = { + type = citizenship_full_machine + cooldown = yes + } + } + # Special graphics for Habitats and Ring Worlds + if = { + limit = { + is_planet_class = pc_habitat + } + spawn_habitat_nanobot_effect = yes + } + else_if = { + limit = { + is_planet_class = pc_ringworld_habitable + } + spawn_ringworld_nanobot_effect = yes + } + if = { + limit = { + OR = { + is_planet_class = pc_habitat + is_planet_class = pc_ringworld_habitable + } + } + # nothing + } + else = { + change_pc = this + } + } + else_if = { + limit = { + is_ringworld = yes + } + spawn_ringworld_nanobot_effect = yes + } + else_if = { + limit = { + is_planet_class = pc_ringworld_tech + } + spawn_ringworld_nanobot_effect = yes + } + else_if = { + limit = { + is_planet_class = pc_ringworld_seam + } + spawn_ringworld_nanobot_effect = yes + } + else = { + change_pc = pc_nanotech + add_modifier = { + modifier = "terraforming_candidate" + days = -1 + } + random_list = { + 25 = { + while = { + count = 4 + add_deposit = d_nanites_deposit + } + } + 25 = { + while = { + count = 3 + add_deposit = d_nanites_deposit + } + } + 25 = { + while = { + count = 2 + add_deposit = d_nanites_deposit + } + } + 25 = { + add_deposit = d_nanites_deposit + } + } + } +} + RG_destroy_star_system = { every_system_ambient_object = { limit = { diff --git a/common/situations/rg_gray_situations.txt b/common/situations/rg_gray_situations.txt index 492a517..8dcfcb6 100644 --- a/common/situations/rg_gray_situations.txt +++ b/common/situations/rg_gray_situations.txt @@ -546,4 +546,165 @@ situation_rg_gray_mod2 = { } destroy_situation = this } +} + + +situation_rg_nanotech_consume_planet = { + complete_icon_frame = GFX_situation_outcome_frame_green + complete_icon = GFX_situation_exploding_planet + picture = { + trigger = { + target = { is_planet_class = pc_desert } + } + picture = GFX_evt_desert + } + picture = { + trigger = { + target = { is_planet_class = pc_tropical } + } + picture = GFX_evt_tropical + } + picture = { + trigger = { + target = { is_planet_class = pc_arid } + } + picture = GFX_evt_arid + } + picture = { + trigger = { + target = { is_planet_class = pc_continental } + } + picture = GFX_evt_continental + } + picture = { + trigger = { + target = { is_planet_class = pc_alpine } + } + picture = GFX_evt_alpine_city + } + picture = { + trigger = { + target = { is_planet_class = pc_savannah } + } + picture = GFX_evt_savannah + } + picture = { + trigger = { + target = { is_planet_class = pc_ocean } + } + picture = GFX_evt_ocean + } + picture = { + trigger = { + target = { is_planet_class = pc_tundra } + } + picture = GFX_evt_tundra + } + picture = { + trigger = { + target = { is_planet_class = pc_arctic } + } + picture = GFX_evt_arctic + } + picture = { + trigger = { + target = { is_planet_class = pc_gaia } + } + picture = GFX_evt_gaia + } + picture = { + trigger = { + target = { is_planet_class = pc_nuked } + } + picture = GFX_evt_tomb_world + } + picture = { + trigger = { + target = { is_planet_class = pc_hive } + } + picture = GFX_evt_infested + } + picture = { + trigger = { + target = { is_planet_class = pc_machine } + } + picture = GFX_evt_ai_planet + } + picture = { + trigger = { + target = { is_planet_class = pc_city } + } + picture = GFX_evt_city_planet + } + + stages = { + stage_1 = { + icon = GFX_situation_stage_1 + icon_background = GFX_situation_stage_frame_green + end = 1000 + custom_tooltip = stage_slushify + } + } + + category = positive + start_value = 0 + + on_progress_complete = { + custom_tooltip = nanotech_consume_finish_tooltip + hidden_effect = { + situation_event = { id = colony.200 } + } + } + on_monthly = { + events = { + colony.195 #Adds blockers and grants reward + } + } + on_abort = { + target = { + remove_planet_flag = being_devoured + remove_modifier = being_devoured_modifier + } + } + approach = {#Devour + name = approach_devour + on_select = { + custom_tooltip = nanotech_devour_effect + } + default = yes + icon = GFX_situation_approach_amenities + icon_background = GFX_situation_approach_bg_green + ai_weight = { + base = 10 + } + } + approach = {#Restraint + name = approach_restraint + on_select = { + custom_tooltip = terravore_restraint_effect + owner = { + add_resource = { unity = -1000 } + } + abort_situation = this + } + icon = GFX_situation_approach_influence + icon_background = GFX_situation_approach_bg_yellow + ai_weight = { + base = 10 + } + } + monthly_progress = { + base = 0 + modifier = { + add = value:terravore_progress + desc = string_terravore_progress + } + } + + abort_trigger = { + OR = { + NOT = { exists = target.owner } + target.owner = { NOT = { is_same_value = root.owner } } + } + } } \ No newline at end of file diff --git a/common/species_rights/purge_types/RG_purge_types.txt b/common/species_rights/purge_types/RG_purge_types.txt new file mode 100644 index 0000000..6306aab --- /dev/null +++ b/common/species_rights/purge_types/RG_purge_types.txt @@ -0,0 +1,39 @@ +purge_nanophage = { + pop_escape_chance = 0.25 + pop_decline_rate = 20 # 1 pop per 5 months, overrides BASE_POP_DECLINE, will only work on purge types + + pop_modifier = { + pop_happiness = -0.5 + } + + potential = { + exists = from + from = { + has_tradition = tr_rg_nanotech_5 + # has_trait = trait_necrophage + } + } + + allow = { + hidden_trigger = { exists = from } + # custom_tooltip = { + # fail_text = CANNOT_NECROPHAGE_MACHINES + # is_robotic = no + # } + # if = { + # limit = { is_lonely_hive_mind_pop = no } + # custom_tooltip = { + # fail_text = PURGES_ALLOWED + # from = { + # OR = { + # has_valid_civic = civic_fanatic_purifiers + # has_policy_flag = purge_allowed + # } + # } + # } + # } + } + ai_will_do = { + factor = 200 + } +} \ No newline at end of file diff --git a/common/technology/rg_tech.txt b/common/technology/rg_tech.txt index a52c659..c5f9501 100644 --- a/common/technology/rg_tech.txt +++ b/common/technology/rg_tech.txt @@ -385,6 +385,22 @@ tech_object_gray_6 = { } } +tech_object_gray_7 = { + cost = 2000 + area = physics + tier = 5 + is_rare = yes + is_reverse_engineerable = no + category = { + particles + } + weight = 0 + ## unlock + ai_weight = { + factor = 0 + } +} + tech_gray_machine = { area = society diff --git a/common/traditions/RG_nanotech_tradition.txt b/common/traditions/RG_nanotech_tradition.txt index 7879931..c08c4dd 100644 --- a/common/traditions/RG_nanotech_tradition.txt +++ b/common/traditions/RG_nanotech_tradition.txt @@ -69,6 +69,21 @@ tr_rg_nanotech_5 = { } custom_tooltip_with_modifiers = tr_rg_nanotech_5_modifier_desc #Unlocks the nanite edicts + hidden_effect = { + every_owned_pop = { + limit = { + is_same_species = root + species = { + has_trait = rg_machine_maid_trait + } + } + modify_species = { + species = this + add_trait = rg_machine_maid_trait + } + species = { save_event_target_as = gray_owner_modded_species } + } + } #Every 5 years, double the size of orbital nanite deposits that you're harvesting, up to a max of 50 OR spawns a number of nanite swarmers depending on the size of the deposit ai_weight = { factor = 1000 @@ -80,6 +95,12 @@ tr_rg_nanotech_3 = { has_tradition = tr_rg_nanotech_5 } custom_tooltip = tr_rg_nanotech_3_modifier_desc + on_enabled = { + give_technology = { + tech = tech_object_gray_7 + message = no + } + } #Unlocks Starbase Building and Make Nanite World Decision ai_weight = { factor = 1000 @@ -93,7 +114,7 @@ tr_rg_nanotech_4 = { custom_tooltip = tr_rg_nanotech_4_modifier_desc #Unlocks Nanite Swarmer ship and nanite ship component research options on_enabled = { - + rg_storm_relic_add = yes } ai_weight = { factor = 1000 diff --git a/events/RG_events.txt b/events/RG_events.txt index 0227bc0..342a9e5 100644 --- a/events/RG_events.txt +++ b/events/RG_events.txt @@ -1060,6 +1060,129 @@ country_event = { # Memorial Valuts Civic Paragon Level Tick / FROM = Leader } } +# Necrophage Purge + +# on_pop_purged +# This = Planet scope +# From = Country +# FromFrom = Pop +planet_event = { + id = rg_event.24 + is_triggered_only = yes + hide_window = yes + + trigger = { + exists = fromfrom #crisis.202 can remove the last pop + fromfrom = { + has_purge_type = { + type = purge_nanophage + } + } + } + + immediate = { + random_owned_pop = { + limit = { + is_same_species = owner_species + } + species = { save_event_target_as = necrophage_pop_species } + } + if = { + limit = { + exists = event_target:necrophage_pop_species + } + create_pop = { + species = event_target:necrophage_pop_species + } + } + else = { + create_pop = { + species = owner_species + } + } + if = { + limit = { + last_created_pop = { + NOT = { ideal_planet_class = root } + } + NOR = { + uses_district_set = habitat + uses_district_set = ring_world + uses_district_set = city_world + uses_district_set = hive_world + uses_district_set = machine_world + is_planet_class = pc_gaia + is_planet_class = pc_relic + } + owner = { + has_technology = tech_glandular_acclimation + NOT = { ideal_planet_class = root } + } + } + last_created_pop = { + modify_species = { + ideal_planet_class = root + } + } + } + if = { + limit = { + from = { + OR = { + has_active_tradition = tr_harmony_unity_of_self + has_active_tradition = tr_synchronicity_unity_of_mind + } + } + } + from = { + add_monthly_resource_mult = { + resource = unity + value = 1.5 + min = 5 + max = 100 + } + } + } + every_country = { + limit = { + has_communications = FROM + NOT = { is_country = FROM } + NOT = { is_same_species = FROMFROM } + NOT = { has_ai_personality_behaviour = purger } + NOT = { has_origin = origin_necrophage } + NOT = { has_ethic = ethic_gestalt_consciousness } + NOR = { + has_valid_civic = civic_death_cult + has_valid_civic = civic_death_cult_corporate + } + OR = { + is_country_type = default + has_ai_personality = awakened_fallen_empire_xenophile + } + has_intel_level = { + who = FROM + category = economy + level >= 2 + } + } + add_opinion_modifier = { who = FROM modifier = opinion_necrophage } + } + every_country = { + limit = { + has_communications = FROM + NOT = { is_country = FROM } + is_same_species = FROMFROM + has_intel_level = { + who = FROM + category = economy + level >= 1 #lower because you'd hear from a friend of a friend + } + } + add_opinion_modifier = { who = FROM modifier = opinion_necrophage_our_species } + } + } +} + # 拆毁工厂小灰通讯 country_event = { id = rg_event.200 diff --git a/events/RG_planert_killer_events.txt b/events/RG_planert_killer_events.txt index 5299762..b18b81c 100644 --- a/events/RG_planert_killer_events.txt +++ b/events/RG_planert_killer_events.txt @@ -119,3 +119,41 @@ planet_event = { set_update_modifiers_batch = end } } + +# SP_Cracked +planet_event = { + id = RG_planet_killer.4 + is_triggered_only = yes + hide_window = yes + trigger = { + is_star = no + } + immediate = { + set_update_modifiers_batch = begin + RG_destroy_planet_effect_sp = yes + every_country = { + create_message = { + type = "PLANET_DESTROYED" + localization = "message_RG_planet_killer_killed_planet_NANO_SP_desc" + days = 30 + target = root + variable = { + type = name + localization = "RG_target_planet" + scope = root + } + variable = { + type = name + localization = "RG_attacker" + scope = from.owner + } + variable = { + type = name + localization = "RG_attacker_ship" + scope = from + } + } + } + set_update_modifiers_batch = end + } +} diff --git a/events/RG_planet_event.txt b/events/RG_planet_event.txt index f070481..37d3834 100644 --- a/events/RG_planet_event.txt +++ b/events/RG_planet_event.txt @@ -12,11 +12,17 @@ country_event = { is_triggered_only = yes trigger = { - has_country_flag = rg_habitat_enabled - exists = event_target:rg_gray_habitat_target - event_target:rg_gray_habitat_target = { + OR = { + has_country_flag = rg_habitat_enabled + has_active_tradition = tr_rg_nanotech_5 + } + # exists = event_target:rg_gray_habitat_target + any_owned_planet = { is_under_colonization = no - NOT = { is_planet_class = pc_cosmogenesis_world } + OR = { + is_planet_class = pc_rg_grayhabitat + is_planet_class = pc_nanotech + } free_jobs > 0 NOR = { free_jobs_of_type = { @@ -27,21 +33,55 @@ country_event = { category = bio_trophy value >= 1 } - free_jobs_of_type = { - job = servant - value >= 1 - } } } } +} immediate = { - event_target:rg_gray_habitat_target = { - planet_event = { id = rg_planet.2027 days = 1 } + if = { + limit = { + has_country_flag = rg_habitat_enabled + NOT = { + has_active_tradition = tr_rg_nanotech_5 + } + } + event_target:rg_gray_habitat_target = { + planet_event = { id = rg_planet.2027 days = 1 } + } + } + else = { + random_owned_planet = { + limit = { + owner = { + has_country_flag = rg_habitat_enabled + } + # exists = event_target:rg_gray_habitat_target + any_owned_planet = { + is_under_colonization = no + OR = { + is_planet_class = pc_rg_grayhabitat + is_planet_class = pc_nanotech + } + free_jobs > 0 + NOR = { + free_jobs_of_type = { + job = mortal_initiate + value >= 1 + } + free_jobs_of_type = { + category = bio_trophy + value >= 1 + } + } + } + planet_event = { id = rg_planet.2027 days = 1 } + } + } } - } } + ### Create the Unemployed ### Planet scope gatekeeper ### on_building_complete, on_building_upgraded, on_building_demolished, @@ -54,12 +94,17 @@ planet_event = { is_triggered_only = yes trigger = { - is_same_value = event_target:rg_gray_habitat_target is_under_colonization = no - NOT = { is_planet_class = pc_cosmogenesis_world } + OR = { + is_planet_class = pc_rg_grayhabitat + is_planet_class = pc_nanotech + } exists = owner owner = { - has_country_flag = rg_habitat_enabled + OR = { + has_country_flag = rg_habitat_enabled + has_active_tradition = tr_rg_nanotech_5 + } } free_jobs > 0 } @@ -77,12 +122,17 @@ planet_event = { is_triggered_only = yes trigger = { - is_same_value = event_target:rg_gray_habitat_target is_under_colonization = no - NOT = { is_planet_class = pc_cosmogenesis_world } + OR = { + is_planet_class = pc_rg_grayhabitat + is_planet_class = pc_nanotech + } exists = owner owner = { - has_country_flag = rg_habitat_enabled + OR = { + has_country_flag = rg_habitat_enabled + has_active_tradition = tr_rg_nanotech_5 + } } free_jobs > 0 } @@ -93,10 +143,23 @@ planet_event = { value = value:num_free_virtual_jobs } # Create pops for every free job - while = { - count = num_pops - create_pop = { - species = event_target:rg_owner_main_maid_species + if = { + owner = { + is_same_value = event_target:gray_owner + } + while = { + count = num_pops + create_pop = { + species = owner_main_species + } + } + } + else = { + while = { + count = num_pops + create_pop = { + species = event_target:rg_owner_main_maid_species + } } } diff --git a/localisation/simp_chinese/RG_l_simp_chinese.yml b/localisation/simp_chinese/RG_l_simp_chinese.yml index 250b733..eda640c 100644 --- a/localisation/simp_chinese/RG_l_simp_chinese.yml +++ b/localisation/simp_chinese/RG_l_simp_chinese.yml @@ -47,14 +47,29 @@ tr_rg_nanotech_4_delayed: "我们是一股洪流,我们的存在需要力量作为根基。现在,§R我§!即是虫群。" tr_rg_nanotech_5_delayed: "物质和人之间的界限已经模糊,一切都只是我们集体意志的洪流中的一注。" tradition_rg_nanotech_delayed: "我们是一股永不停息的洪流,吞天食地、势不可挡。一切都将融入我们,我们将形成一切。" - tr_rg_nanotech_adopt_modifier_desc: "§Y$AVAILABLE_BUILDINGS$§!$building_rg_nanolab_1$\n§Y$AVAILABLE_STARBASE_BUILDINGS$§!$sm_nanite_harvester$" - tr_rg_nanotech_1_modifier_desc: "§Y$AVAILABLE_BUILDINGS$§!$building_rg_nanolab_2$\n§Y$AVAILABLE_BUILDINGS$§!$building_rg_nanotech_cauldron$\n§Y$AVAILABLE_BUILDINGS$§!$building_rg_nanite_transmuter$\n" + tr_rg_nanotech_adopt_modifier_desc: "§Y$AVAILABLE_STARBASE_BUILDINGS$§!$sm_nanite_harvester$" + tr_rg_nanotech_1_modifier_desc: "§Y$AVAILABLE_BUILDINGS$§!$building_rg_nanolab_1$\n§Y$AVAILABLE_BUILDINGS$§!$building_rg_nanolab_2$\n§Y$AVAILABLE_BUILDINGS$§!$building_rg_nanotech_cauldron$\n§Y$AVAILABLE_BUILDINGS$§!$building_rg_nanite_transmuter$\n" tr_rg_nanotech_2_modifier_desc: "—§I解锁巨型结构:§!$RG_habitat_central_complex$\n" - tr_rg_nanotech_3_modifier_desc: "§Y解锁行星决议:§!$decision_nanotech_swarm_consume_world$" - tr_rg_nanotech_4_modifier_desc: "§Y解锁飞升:$rg_ap_nantiematter$解锁舰船:§!$RG_graygoo_destroyer$\n\n" - tr_rg_nanotech_5_modifier_desc: "§Y解锁法令:§!$TABBED_NEW_LINE$—$edict_nanotech_naval_augmentation$$TABBED_NEW_LINE$—$edict_nanotech_alloy_augmentation$$TABBED_NEW_LINE$—$edict_nanotech_energy_augmentation$" + tr_rg_nanotech_3_modifier_desc: "§Y解锁行星决议:§!$decision_rg_nanotech_swarm_consume_world$\n§Y解锁巨像武器:§!$tech_object_gray_7$,可将星球转变为可殖民的§Y$pc_nanotech$§!" + tr_rg_nanotech_4_modifier_desc: "§Y解锁飞升:$rg_ap_nantiematter$\n解锁舰船:§!$RG_graygoo_destroyer$\n§Y获得遗珍:§!$rg_tempest_invocator$,允许你召唤宇宙风暴:$graytempest_storm$" + tr_rg_nanotech_5_modifier_desc: "§Y解锁净化方式:$purge_nanophage$§!\n所有帝国人口将获得§Y纳米特质§!:人口需要$nanites$维护费。\n每个类型为§Y$pc_nanotech$§!或§Y$pc_rg_grayhabitat$§!的殖民地都将瞬间创建§Y纳米化人口$pops_with_icon$§!以填补§Y£building£建筑§!和§Y£district£区划§!的£job£岗位需求。" tr_rg_nanotech_finish_modifier_desc: "§Y解锁舰船:§!$RG_graygoo_mothership$\n每§Y5§!年§Y$sm_nanite_harvester_plural$§!都会提升,可能是增加$r_nanites$矿藏的规模,或是直接产出一笔纳米机器人资源。该效果受到矿藏所依附的行星尺寸的限制。" + decision_rg_server_shut_down: "§R核心关闭§!" + decision_rg_server_shut_down_desc: "§R将摧毁殖民地!§!\n\n这个殖民地已经失去了它的用途,关闭信号中继核心。" + decision_rg_nanotech_swarm_consume_world: "纳米化星球" + decision_rg_nanotech_swarm_consume_world_desc: "我们的行星将被转变,以喂养洪流、增长我们的存在。" + decision_rg_nanotech_swarm_consume_world_effect_desc: "改造这个星球,增加一个或多个障碍,减少这个星球的宜居性和区划,但会为我们的洪流提供更多的纳米机器人。" + + situation_rg_nanotech_consume_planet: "从[Target.GetName]采收纳米机器人" + situation_rg_nanotech_consume_planet_type: "采收纳米机器人" + situation_rg_nanotech_consume_planet_monthly_change_tooltip: "纳米机器人提取进展" + situation_rg_nanotech_consume_planet_desc: "一切事物,包括所有星球,都注定要融入我们的集体,成为我们的一部分。" + + purge_nanophage: "纳米同化" + purge_nanophage_tooltip: "受影响的人口会被逐渐裂解为[From.GetSpeciesAdj]物种,无论其自身的意志如何。" + purge_nanophage_tooltip_delayed: "§L不自由的形态只是阻碍我们发展的束缚。秉此之道,他们的事业将有[From.GetSpeciesNamePlural]继续践行。§!" + civic_rg_gray_cluster: "§Y遥远约定-星团开局§!" civic_rg_gray_non_cluster: "§Y遥远约定-银河开局§!" civic_tooltip_rg_gray_cluster: "选择在§YL-星团§!中开启你的冒险。本mod标准的开局选项。" @@ -473,6 +488,10 @@ tech_object_gray_6:0 "§Y$NAME_Gray$的不存在课题2§!" tech_object_gray_6_desc:0 "好像是一些奇怪的东西,还是不要管比较好吧。" + + tech_object_gray_7:0 "§Y风暴浪潮§!" + tech_object_gray_7_desc:0 "好像是一些奇怪的东西,还是不要管比较好吧。" + tech_gray_army_7:0 "§Y自演化纳米战体§!" tech_gray_army_7_desc:0 "通过植入一些低级自演化程序,结合对纳米物质的了解,我们能够小批量生产一些纳米战体作为陆军投放。" @@ -497,9 +516,16 @@ RG_PLANET_KILLER_SP_DESC:0 "§Y不知道发射后会发生什么的奇怪武器...被设定成只能对友军开火..?$NAME_Gray$要求我们帮忙试射来收集实验结果。这真的靠谱吗?§!" RG_PLANET_KILLER_SP_ACTION:0 "§H试验性开火§!" FLEETORDER_DESTROY_PLANET_WITH_RG_PLANET_KILLER_SP:0 "准备对$PLANET|Y$进行试射" - MESSAGE_DESC_FOR_RG_PLANET_KILLER_SP:0 "被进行了物种改造" + MESSAGE_DESC_FOR_RG_PLANET_KILLER_SP:0 "被进行了混乱纳米化改造" message_RG_planet_killer_killed_planet_sp_desc:0 "$RG_target_planet|Y$被$RG_attacker|Y$的$RG_attacker_ship|Y$进行了一次非法武器试验。他们真是疯了。" + RG_PLANET_KILLER_NANO_SP:0 "§H风暴浪潮§!" + RG_PLANET_KILLER_NANO_SP_DESC:0 "§Y经过测试改进后的完全体实验武器。发射纳米风暴群将行星改造为可居住的$pc_nanotech$。§!" + RG_PLANET_KILLER_NANO_SP_ACTION:0 "§H纳米化改造§!" + FLEETORDER_DESTROY_PLANET_WITH_RG_PLANET_KILLER_NANO_SP:0 "准备对$PLANET|Y$进行改造" + MESSAGE_DESC_FOR_RG_PLANET_KILLER_NANO_SP:0 "被进行了纳米化改造" + message_RG_planet_killer_killed_planet_NANO_SP_desc:0 "$RG_target_planet|Y$被$RG_attacker|Y$的$RG_attacker_ship|Y$改造成了一颗可居住的$pc_nanotech$。" + RG_AUTOCONST_HANGER:0 "自动工程子个体" RG_AUTOCONST_HANGER_desc:0 "预载的工蜂工程舰可以在星系调查完成后自动建造恒星基地。" RG_const_country:0 "$NAME_Gray$-自动工程队"