################### # Basic Jobs ################### colonist = { inline_script = { script = shroud/jobs/colonist_job CATEGORY = worker CONDITION_STRING = WORKER_JOB_TRIGGER POSSIBLE_PRECALC = can_fill_worker_job } possible = { hidden_trigger = { exists = owner } owner = { is_tankbound_empire = no } } } clerk = { category = worker swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = building_residence } } tags = { amenities trade } possible_pre_triggers = { has_owner = yes is_being_purged = no is_being_assimilated = no is_sapient = yes } possible_precalc = can_fill_worker_job resources = { category = planet_clerks produces = { trade = 3 } } planet_modifier = { planet_jobs_trade_produces_mult = 0.01 } triggered_planet_modifier = { potential = { exists = owner owner = { NOT = { has_valid_civic = civic_dystopian_society } } } planet_amenities_add = 300 mult = value:scripted_modifier_mult|MODIFIER|pop_job_amenities_mult| } weight = { weight = @clerk_job_weight mult = value:job_weights_modifier|JOB|clerk|RESOURCE|trade| mult = value:scripted_modifier_job_weight_mult|MODIFIER|pop_job_amenities_mult| modifier = { factor = 0.25 is_enslaved = yes can_take_servant_job = no } modifier = { factor = 2 OR = { is_non_sapient_robot = yes is_shackled_robot = yes } can_take_servant_job = no } modifier = { factor = 10 OR = { is_non_sapient_robot = yes is_shackled_robot = yes } can_take_servant_job = no can_fill_specialist_job_trigger = no } modifier = { factor = 0.1 can_take_servant_job = yes } modifier = { factor = 1.1 exists = owner owner = { is_megacorp = yes } } modifier = { factor = 0.5 exists = owner owner = { is_fallen_empire = yes } } } inline_script = "jobs/automodding_priority_trade" promotion = { time = @standard_promotion_time effect = { pop_amount_change_category = { CATEGORY = worker AMOUNT = local_pop_amount } } } } technician = { category = worker swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = building_energy_grid } swap_type = { trigger = { technician_is_mote_harvester_trigger = yes } icon = mote_harvester name = mote_harvester desc = mote_harvester building_icon = building_mote_harvesting_traps weight = 20 } } tags = { energy } possible_pre_triggers = { has_owner = yes is_being_purged = no is_being_assimilated = no is_sapient = yes } possible_precalc = can_fill_worker_job possible = { hidden_trigger = { exists = owner } owner = { is_gestalt = no } } resources = { category = planet_technician produces = { energy = 6 } produces = { trigger = { exists = owner owner = { is_robot_empire = yes } } energy = 2 } produces = { trigger = { planet = { has_planet_flag = has_energy_requisitorium } } energy = @requisitorium_energy_reduction } } overlord_resources = { category = planet_requisitioned_energy produces = { trigger = { planet = { has_planet_flag = has_energy_requisitorium } } energy = @requisitorium_energy_overlord } } weight = { weight = @worker_job_weight mult = value:job_weights_modifier|JOB|technician|RESOURCE|energy| modifier = { factor = 100 OR = { is_non_sapient_robot = yes is_shackled_robot = yes } can_take_servant_job = no can_fill_specialist_job_trigger = no } modifier = { factor = 8 is_enslaved = yes can_take_servant_job = no OR = { has_trait = trait_syncretic_proles has_trait = trait_robot_superconductive has_trait = trait_ingenious } } modifier = { factor = 2 OR = { is_non_sapient_robot = yes is_shackled_robot = yes } can_take_servant_job = no } modifier = { factor = 0.25 can_take_servant_job = yes } # low income modifier modifier = { factor = 3 exists = planet planet = { has_available_jobs = technician } exists = owner owner = { has_monthly_income = { resource = energy value < 10 } } } modifier = { factor = 5 has_trait = trait_cyborg_creed_of_labor } } inline_script = "jobs/automodding_priority_energy" promotion = { time = @standard_promotion_time effect = { pop_amount_change_category = { CATEGORY = worker AMOUNT = local_pop_amount } } } } miner = { category = worker swappable_data = { default = { icon = miner condition_string = WORKER_JOB_TRIGGER building_icon = building_mineral_purification_plant } swap_type = { trigger = { miner_is_scrap_miner_trigger = yes } name = scrap_miner desc = scrap_miner weight = 5 } swap_type = { trigger = { miner_is_cave_cleaner_trigger = yes } name = cave_cleaner desc = cave_cleaner weight = 10 } swap_type = { trigger = { miner_is_turtle_miner_trigger = yes } name = turtle_miner desc = turtle_miner weight = 20 } swap_type = { trigger = { miner_is_crystal_miner_trigger = yes } icon = crystal_miner name = crystal_miner desc = crystal_miner building_icon = building_crystal_mines weight = 20 } swap_type = { trigger = { miner_is_thermoforger_trigger = yes } icon = miner name = melt_extractor desc = melt_extractor weight = 35 } } tags = { minerals strategic_resource } possible_pre_triggers = { has_owner = yes is_being_purged = no is_being_assimilated = no is_sapient = yes } possible_precalc = can_fill_worker_job possible = { hidden_trigger = { exists = owner } owner = { is_gestalt = no } } resources = { category = planet_miners produces = { minerals = 4 } # Job Swap - Scrap Miners produces = { trigger = { exists = planet planet = { miner_is_scrap_miner_trigger = yes } } minerals = -2 alloys = 1 } # Job Swap - Cave Cleaners produces = { trigger = { exists = planet planet = { miner_is_cave_cleaner_trigger = yes } } minerals = 2 } # Job Swap - Turtle produces = { trigger = { exists = planet planet = { miner_is_turtle_miner_trigger = yes } } minerals = -1 food = 3 } produces = { trigger = { planet = { has_planet_flag = has_material_requisitorium } } minerals = @requisitorium_minerals_reduction } # Job Swap - Thermoforger produces = { trigger = { exists = planet planet = { miner_is_thermoforger_trigger = yes } } minerals = 1 alloys = 0.5 } upkeep = { trigger = { exists = planet planet = { miner_is_thermoforger_trigger = yes } } energy = 1 } } triggered_planet_modifier = { # Gives some Stability per "Mining Guild" Councilor level. potential = { has_councilor = { COUNCILOR = "councilor_mining_guilds" } } planet_stability_add = @councilor_mining_guilds_miner_stability mult = value:councilor_level|TYPE|councilor_mining_guilds| } overlord_resources = { category = planet_requisitioned_minerals produces = { trigger = { planet = { has_planet_flag = has_material_requisitorium } } minerals = @requisitorium_minerals_overlord } } weight = { weight = @worker_job_weight mult = value:job_weights_modifier|JOB|miner|RESOURCE|minerals| modifier = { factor = 10 is_enslaved = yes can_take_servant_job = no NOT = { has_slavery_type = { type = slavery_indentured } } } modifier = { factor = 3 OR = { is_non_sapient_robot = yes is_shackled_robot = yes } can_take_servant_job = no owner = { has_technology = tech_droid_workers } } modifier = { factor = 200 OR = { is_non_sapient_robot = yes is_shackled_robot = yes } can_take_servant_job = no owner = { NOT = { has_technology = tech_droid_workers } } } modifier = { factor = 0.25 can_take_servant_job = yes } # low income modifier modifier = { factor = 3 exists = planet planet = { has_available_jobs = miner } exists = owner owner = { has_monthly_income = { resource = minerals value < 10 } } } modifier = { factor = 5 has_trait = trait_cyborg_creed_of_labor } } inline_script = "jobs/automodding_priority_minerals" promotion = { time = @standard_promotion_time effect = { pop_amount_change_category = { CATEGORY = worker AMOUNT = local_pop_amount } } } } crystal_miner = { category = worker possible = { always = no } swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = building_crystal_mines } } } gas_extractor = { category = worker possible = { always = no } swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = building_gas_extractors } } } mote_harvester = { category = worker possible = { always = no } swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = building_mote_harvesting_traps } } } farmer = { category = worker swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = building_food_processing_facility } swap_type = { trigger = { farmer_is_titan_hunter_trigger = yes } name = titan_hunter desc = titan_hunter icon = hunter_gatherer weight = 10 } swap_type = { trigger = { farmer_is_puddle_technician_trigger = yes } name = puddle_technician desc = puddle_technician icon = puddle_technician weight = 15 } swap_type = { trigger = { farmer_is_gas_extractor_trigger = yes } name = gas_extractor desc = gas_extractor icon = gas_extractor building_icon = building_gas_extractors weight = 20 } swap_type = { trigger = { farmer_is_angler_trigger = yes } name = angler desc = angler icon = angler weight = 50 } } tags = { food } possible_pre_triggers = { has_owner = yes is_being_purged = no is_being_assimilated = no is_sapient = yes } possible_precalc = can_fill_worker_job possible = { hidden_trigger = { exists = owner } owner = { is_gestalt = no } } resources = { category = planet_farmers produces = { food = 6 } produces = { trigger = { exists = owner owner = { is_robot_empire = yes } } food = -1 } # Job Swap - Anglers produces = { trigger = { exists = planet planet = { farmer_is_angler_trigger = yes } } trade = 2 } # Job Swap - Titan Hunters produces = { trigger = { farmer_is_titan_hunter_trigger = yes } food = 2 trade = 8 } # Job Swap - Puddle Technician produces = { trigger = { farmer_is_puddle_technician_trigger = yes } alloys = 1 } produces = { trigger = { planet = { has_planet_flag = has_produce_requisitorium } } food = @requisitorium_food_reduction } } overlord_resources = { category = planet_requisitioned_food produces = { trigger = { planet = { has_planet_flag = has_produce_requisitorium } } food = @requisitorium_food_overlord } } triggered_planet_modifier = { potential = { exists = owner owner = { has_valid_civic = civic_agrarian_idyll NOT = { has_valid_civic = civic_dystopian_society } } } planet_amenities_add = 200 mult = value:scripted_modifier_mult|MODIFIER|pop_job_amenities_mult| } weight = { weight = @worker_job_weight mult = value:job_weights_modifier|JOB|farmer|RESOURCE|food| modifier = { factor = 1.1 owner = { has_valid_civic = civic_agrarian_idyll } } modifier = { factor = 10 is_enslaved = yes can_take_servant_job = no NOT = { has_slavery_type = { type = slavery_indentured } } } modifier = { factor = 3 OR = { is_non_sapient_robot = yes is_shackled_robot = yes } can_take_servant_job = no owner = { has_technology = tech_droid_workers } } modifier = { factor = 200 OR = { is_non_sapient_robot = yes is_shackled_robot = yes } can_take_servant_job = no owner = { NOT = { has_technology = tech_droid_workers } } } modifier = { factor = 0.25 can_take_servant_job = yes } modifier = { factor = value:scripted_modifier_job_weight_mult|MODIFIER|pop_job_amenities_mult| owner = { has_valid_civic = civic_agrarian_idyll } } # low income modifier modifier = { factor = 3 exists = planet planet = { has_available_jobs = farmer } exists = owner owner = { has_monthly_income = { resource = food value < 10 } } } modifier = { factor = 0.5 has_trait = trait_lithoid owner = { is_lithoid_empire = yes country_uses_food = no has_monthly_income = { resource = food value >= 0 } } } modifier = { factor = 0.5 has_trait = trait_infernal owner = { is_infernal_empire = yes country_uses_food = no has_monthly_income = { resource = food value >= 0 } } } modifier = { factor = 5 has_trait = trait_cyborg_creed_of_labor } } inline_script = "jobs/automodding_priority_food" promotion = { time = @standard_promotion_time effect = { pop_amount_change_category = { CATEGORY = worker AMOUNT = local_pop_amount } } } } mortal_initiate = { category = worker swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = building_sacrificial_temple_1 icon = mortal_initiate } } can_be_automated = no tags = { unity research amenities } possible_pre_triggers = { has_owner = yes is_sapient = yes is_enslaved = no is_being_purged = no is_being_assimilated = no } possible_precalc = can_fill_worker_job possible = { NOR = { has_trait = trait_mechanical #No robots has_trait = trait_zombie #How do you kill that which has no life? has_virtual_species_trait = yes #You'd just print more } } resources = { category = planet_bureaucrats produces = { unity = 1 society_research = 0.5 } } triggered_planet_modifier = { potential = { exists = owner owner = { NOT = { has_valid_civic = civic_dystopian_society } } } planet_amenities_add = 200 mult = value:scripted_modifier_mult|MODIFIER|pop_job_amenities_mult| } weight = { weight = @specialist_job_weight mult = value:job_weights_multiple_resources_modifier|JOB|mortal_initiate|RESOURCE1|unity|WEIGHT1|0.5|RESOURCE2|society_research|WEIGHT2|0.3| mult = value:scripted_modifier_job_weight_mult|MODIFIER|pop_job_amenities_mult| modifier = { factor = 0.2 has_citizenship_rights = no NOT = { has_trait = trait_mechanical } } modifier = { factor = 0.1 can_take_servant_job = yes } } inline_script = "jobs/automodding_priority_unity" promotion = { time = @standard_promotion_time effect = { pop_amount_change_category = { CATEGORY = worker AMOUNT = local_pop_amount } } } } scrap_miner = { possible = { always = no } swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = building_mineral_purification_plant icon = miner } } } angler = { category = worker swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = building_food_processing_facility } } possible = { always = no } } ranger = { category = worker swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = holding_park_ranger_lodge } } possible = { always = no } } squire = { category = worker swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = building_order_keep } } tags = { soldier amenities } is_capped_by_modifier = no count_as_available_for_ai = yes possible_pre_triggers = { has_owner = yes is_being_purged = no is_being_assimilated = no is_sapient = yes is_enslaved = no } possible_precalc = can_fill_specialist_job #deliberate, they are baby knights possible = { hidden_trigger = { exists = owner } owner = { is_gestalt = no } exists = planet planet = { OR = { has_active_building = building_order_keep has_active_building = building_order_castle } } } triggered_planet_modifier = { planet_defense_armies_add = 0.5 pop_knight_bonus_workforce_mult = 0.025 planet_knights_upkeep_mult = 0.005 pop_knight_commander_bonus_workforce_mult = 0.0125 } triggered_planet_modifier = { potential = { exists = owner owner = { NOT = { has_valid_civic = civic_dystopian_society } } } planet_amenities_add = 200 mult = value:scripted_modifier_mult|MODIFIER|pop_job_amenities_mult| } triggered_planet_pop_group_modifier_for_all = { potential = { has_modifier = syamelles_curse_habitat } bonus_pop_growth = 0.1 } triggered_planet_modifier = { potential = { exists = planet planet = { has_modifier = syamelles_curse_habitat } } fake_pop_growth_mod = 0.1 } resources = { category = planet_squires upkeep = { alloys = 0.5 } upkeep = { trigger = { planet = { has_modifier = syamelles_curse_habitat } } alloys = 0.5 } } triggered_country_modifier = { potential = { exists = planet planet = { exists = owner owner = { has_technology = "tech_ground_defense_planning" } } } modifier = { country_naval_cap_add = 1 } } triggered_country_modifier = { potential = { exists = owner owner = { any_owned_leader = { is_councilor = yes has_trait = leader_trait_bellicose } } } modifier = { country_naval_cap_add = 0.5 } mult = value:bellicose_naval_cap } triggered_planet_modifier = { potential = { exists = owner owner = { any_owned_leader = { is_councilor = yes has_trait = leader_trait_bellicose } } } modifier = { planet_defense_armies_add = 0.5 } mult = value:bellicose_naval_cap } weight = { weight = @worker_job_weight factor = 1.2 } promotion = { time = @standard_promotion_time effect = { pop_amount_change_category = { CATEGORY = worker AMOUNT = local_pop_amount } } } } foundry_prison_worker = { category = worker swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = building_foundry_1 icon = foundry } } tags = { alloys } possible_pre_triggers = { has_owner = yes is_being_purged = no is_being_assimilated = no is_sapient = yes } possible_precalc = can_fill_worker_job possible = { hidden_trigger = { exists = owner } owner = { is_gestalt = no } } resources = { category = planet_metallurgists produces = { alloys = 1.5 } upkeep = { minerals = 3 } produces = { trigger = { planet = { has_planet_flag = has_material_requisitorium } } alloys = @requisitorium_alloys_reduction } upkeep = { trigger = { planet = { has_planet_flag = has_material_requisitorium } } minerals = 2 } } overlord_resources = { category = planet_requisitioned_alloys produces = { trigger = { planet = { has_planet_flag = has_material_requisitorium } } alloys = @requisitorium_alloys_overlord } } weight = { weight = @specialist_job_weight # Fairly important job mult = value:job_weights_modifier|JOB|foundry|RESOURCE|alloys| modifier = { factor = 2 is_enslaved = yes can_take_servant_job = no } } promotion = { time = @standard_promotion_time effect = { pop_amount_change_category = { CATEGORY = worker AMOUNT = local_pop_amount } } } } catalytic_technician_prison_worker = { category = worker swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = building_foundry_1 icon = catalytic_technician } } tags = { alloys } possible_pre_triggers = { has_owner = yes is_being_purged = no is_being_assimilated = no is_sapient = yes } possible_precalc = can_fill_worker_job possible = { hidden_trigger = { exists = owner } owner = { is_gestalt = no } } resources = { category = planet_metallurgists produces = { alloys = 1.875 } upkeep = { food = 6 } produces = { trigger = { planet = { has_planet_flag = has_material_requisitorium } } alloys = @requisitorium_alloys_reduction } upkeep = { trigger = { planet = { has_planet_flag = has_material_requisitorium } } food = 3 } } overlord_resources = { category = planet_requisitioned_alloys produces = { trigger = { planet = { has_planet_flag = has_material_requisitorium } } alloys = @requisitorium_alloys_overlord } } weight = { weight = @specialist_job_weight # Fairly important job mult = value:job_weights_modifier|JOB|catalytic_technician|RESOURCE|alloys| modifier = { factor = 2 is_enslaved = yes can_take_servant_job = no } } promotion = { time = @standard_promotion_time effect = { pop_amount_change_category = { CATEGORY = worker AMOUNT = local_pop_amount } } } } artisan_prison_worker = { category = worker swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = building_factory_1 icon = artisan } } tags = { consumer_goods } possible_pre_triggers = { has_owner = yes is_being_purged = no is_being_assimilated = no is_sapient = yes } possible_precalc = can_fill_worker_job possible = { hidden_trigger = { exists = owner } owner = { is_gestalt = no } } resources = { category = planet_artisans produces = { consumer_goods = 3 } upkeep = { minerals = 3 } produces = { trigger = { planet = { has_planet_flag = has_produce_requisitorium exists = owner.overlord owner.overlord = { country_uses_consumer_goods = yes } } } consumer_goods = @requisitorium_consumer_goods_reduction } upkeep = { trigger = { planet = { has_planet_flag = has_produce_requisitorium exists = owner.overlord owner.overlord = { country_uses_consumer_goods = yes } } } minerals = 1 } } overlord_resources = { category = planet_requisitioned_consumer_goods produces = { trigger = { planet = { has_planet_flag = has_produce_requisitorium exists = owner.overlord owner.overlord = { country_uses_consumer_goods = yes } } } consumer_goods = @requisitorium_consumer_goods_overlord } } weight = { weight = @specialist_job_weight mult = value:job_weights_modifier|JOB|artisan|RESOURCE|consumer_goods| modifier = { factor = 2 is_enslaved = yes can_take_servant_job = no } # low income modifier modifier = { factor = 1.2 exists = planet planet = { has_available_jobs = "artisan" } exists = owner owner = { is_ai = yes has_monthly_income = { resource = consumer_goods value < 5 } } } } promotion = { time = @standard_promotion_time effect = { pop_amount_change_category = { CATEGORY = worker AMOUNT = local_pop_amount } } } } artificer_prison_worker = { category = worker swappable_data = { default = { condition_string = WORKER_JOB_TRIGGER building_icon = building_factory_1 icon = artificer } } tags = { consumer_goods } possible_pre_triggers = { has_owner = yes is_being_purged = no is_being_assimilated = no is_sapient = yes } possible_precalc = can_fill_worker_job possible = { hidden_trigger = { exists = owner } owner = { is_gestalt = no } } resources = { category = planet_artisans produces = { consumer_goods = 3.5 } upkeep = { minerals = 3 } produces = { trigger = { planet = { has_planet_flag = has_produce_requisitorium exists = owner.overlord owner.overlord = { country_uses_consumer_goods = yes } } } consumer_goods = @requisitorium_consumer_goods_reduction } upkeep = { trigger = { planet = { has_planet_flag = has_produce_requisitorium exists = owner.overlord owner.overlord = { country_uses_consumer_goods = yes } } } minerals = 1 } } overlord_resources = { category = planet_requisitioned_consumer_goods produces = { trigger = { planet = { has_planet_flag = has_produce_requisitorium exists = owner.overlord owner.overlord = { country_uses_consumer_goods = yes } } } consumer_goods = @requisitorium_consumer_goods_overlord } } weight = { weight = @specialist_job_weight mult = value:job_weights_multiple_resources_modifier|JOB|artificer|RESOURCE1|consumer_goods|WEIGHT1|0.8|RESOURCE2|engineering_research|WEIGHT2|0.2| modifier = { factor = 2 is_enslaved = yes can_take_servant_job = no } } inline_script = "jobs/automodding_priority_trade" promotion = { time = @standard_promotion_time effect = { pop_amount_change_category = { CATEGORY = worker AMOUNT = local_pop_amount } } } }