From 7f524acbc103fb1e0e44bf55ccdfaf3e4d0c54cf Mon Sep 17 00:00:00 2001 From: notnotmelon Date: Sat, 13 Apr 2024 23:32:52 -0500 Subject: [PATCH 1/2] Frozen (#240) * make smart farms flora possitive * version and changelog * fix that collectors mk02-mk04 didnt get reset fixes pyanodon/pybugreports#461 * i blame theros ass * Smart farm fixes * https://github.com/pyanodon/pybugreports/issues/458 * TURD balance & migrations * Fixed that subcritical-water-01 was not localised when pyAE is missing * Fixed that the alpha dingrits from dingrit turd path 1 could not be used as modules inside the reproductive complex. * Energy drink qol improvements * Fixed several bugs involved with biofluid vessel underground pipes * Fixed several bugs involved with biofluid vessel underground pipes * remove print statements * Reduce earlygame manual wood requirement grind. --------- Co-authored-by: kingarthur91 --- changelog.txt | 29 +++- control.lua | 1 + data-final-fixes.lua | 1 + data-updates.lua | 5 - info.json | 2 +- locale/en/items.cfg | 6 +- locale/en/recipes.cfg | 4 + migrations/2.1.14.lua | 1 - migrations/2.1.26.lua | 9 + prototypes/buildings/rc-mk01.lua | 2 +- prototypes/buildings/rc-mk02.lua | 2 +- prototypes/buildings/rc-mk03.lua | 2 +- prototypes/buildings/rc-mk04.lua | 2 +- prototypes/items/energy-drink.lua | 11 +- .../recipes/recipes-bioreserve-megafarm.lua | 7 - prototypes/recipes/recipes.lua | 1 - prototypes/recipes/sap/recipes-sap.lua | 33 ++-- prototypes/upgrades/kicalk.lua | 2 +- prototypes/upgrades/scrondrix.lua | 4 +- scripts/biofluid/biofluid.lua | 2 +- scripts/biofluid/network-builder.lua | 78 ++++++++- scripts/smart-farm/smart-farm.lua | 158 +++++++++++------- 22 files changed, 242 insertions(+), 120 deletions(-) delete mode 100644 migrations/2.1.14.lua create mode 100644 migrations/2.1.26.lua diff --git a/changelog.txt b/changelog.txt index 30e50adc6..ee02f5238 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,6 +1,32 @@ --------------------------------------------------------------------------------------------------- +Version: 2.1.26 +Date: ? + Fixes: + - Fixed that you could generate infinite landfill by spam placing and replacing the smart farm + - Fixed that the collector check area introduced in 2.1.25 was not big enough (https://github.com/pyanodon/pybugreports/issues/461) + - Smart farms now properly clean up any wood fences when they are destroyed. + - Guano explosives can now be buffed by productivity to match the vanilla recipe. (https://github.com/pyanodon/pybugreports/issues/458) + - Fixed that subcritical-water-01 was not localised when pyAE is missing. (https://github.com/pyanodon/pybugreports/issues/445) + - Fixed that the alpha dingrits from dingrit turd path 1 could not be used as modules inside the reproductive complex. (https://github.com/pyanodon/pybugreports/issues/452) + - Fixed several bugs involved with biofluid vessel underground pipes (https://github.com/pyanodon/pybugreports/issues/437) (https://github.com/pyanodon/pybugreports/issues/409) + - Trees now gives 2 logs when broken instead of 1. + Energy drinks: + - The energy drink now gives you a linearly decreasing speed instead of a linearly increasing speed. Should be much easier to control. + - Removed damage per second from energy drinks. + - Removed fire spread from energy drinks. + - Max speedup of energy drinks reduced from 40X to 20X. + TURD: + - Nerfed kickalk turd path 1. Amount of non-dryed kickalk reduced from floor(75%) -> ceil(35%) + - Nerfed scrondrix turd path 3 from giving 24x brains to 16x. Also returns 1 less basic circuit. + - NOTE: If you already picked kickalk or scrondrix turd, you will have a 5 hour grace period to change them to a diffrent option. +--------------------------------------------------------------------------------------------------- +Version: 2.1.25 +Date: 2024-3-25 + Fixes: + - Fixed that collector mk02-mk04 were not getting reset properly in the smart farm +--------------------------------------------------------------------------------------------------- Version: 2.1.24 -Date: 2024-?-?? +Date: 2024-3-24 Fixes: - Buffed simik scale -> uranium ore atomizer recipe by 5X - Fixed typos in arqad turd descriptions @@ -18,6 +44,7 @@ Date: 2024-?-?? - Fixed that zipir cubs had no uses (https://github.com/pyanodon/pybugreports/issues/432) - Fixed misspelling of genes as "gens" (https://github.com/pyanodon/pybugreports/issues/431) - Fixed yaedols turd path 2 did not return barrels + - removed generic sample from bioreserve smart farm recipes --------------------------------------------------------------------------------------------------- Version: 2.1.23 Date: 2024-3-14 diff --git a/control.lua b/control.lua index 71c364892..5eca7cd2c 100644 --- a/control.lua +++ b/control.lua @@ -170,6 +170,7 @@ script.on_event(on_destroyed, function(event) Vatbrain.events.on_destroyed(event) Biofluid.events.on_destroyed(event) Mounts.events.on_destroyed(event) + Smart_Farm.events.on_destroyed(event) end) script.on_event(defines.events.on_player_removed_equipment, function(event) diff --git a/data-final-fixes.lua b/data-final-fixes.lua index 088b61f0c..f86d70eee 100644 --- a/data-final-fixes.lua +++ b/data-final-fixes.lua @@ -340,6 +340,7 @@ local recipes_list = { "fdtd", "milfe", "mirror-mk04", + 'guano-explosives' } --adding to module limitation list diff --git a/data-updates.lua b/data-updates.lua index ffa9a2d58..4c99de5e7 100644 --- a/data-updates.lua +++ b/data-updates.lua @@ -55,11 +55,6 @@ for food, value in pairs(Digosaurus.favorite_foods) do } end ---RECIPE('digosaurus-helmod-recipe-guts'):add_unlock('nexelit-mk01') ---RECIPE('digosaurus-helmod-recipe-meat'):add_unlock('nexelit-mk01') ---RECIPE('digosaurus-helmod-recipe-workers-food'):add_unlock('nexelit-mk01') ---RECIPE('digosaurus-helmod-recipe-workers-food-02'):add_unlock('nexelit-mk03') - ---------------------------------------------------------------------------------------------------- -- crafting_categories ---------------------------------------------------------------------------------------------------- diff --git a/info.json b/info.json index 38cb915b4..fef2beb41 100644 --- a/info.json +++ b/info.json @@ -1,6 +1,6 @@ { "name": "pyalienlife", - "version": "2.1.23", + "version": "2.1.25", "factorio_version": "1.1", "title": "Pyanodons AlienLife", "author": "Pyanodon, Nexela, Kingarthur, notnotmelon, Mootykins, ShadowGlass, Archezekiel, Quintuple", diff --git a/locale/en/items.cfg b/locale/en/items.cfg index 6bc6b3e3a..4d0f473fb 100644 --- a/locale/en/items.cfg +++ b/locale/en/items.cfg @@ -1111,10 +1111,10 @@ dingrits-alpha=Only the oldest and strongest dingrits can become the alpha. auog-pup=Auog pup. auog-food-01=Basic auog food. auog-food-02=Oak chilli tart with crispy fawogae and bitter seaweed salad. -fish=Bloop bloop. +fish=Bloop. fish-mk02=Bloop bloop. -fish-mk03=Bloop bloop. -fish-mk04=Bloop bloop. +fish-mk03=Bloop bloop bloop. +fish-mk04=Bloop bloop bloop bloop. fish-food-01=Basic fish food. fish-food-02=Premium fish food for better care. Made from fish, for fish. yaedols-spores=These spores had issues, must be complemented. diff --git a/locale/en/recipes.cfg b/locale/en/recipes.cfg index 112af16b1..f133b887a 100644 --- a/locale/en/recipes.cfg +++ b/locale/en/recipes.cfg @@ -5,6 +5,10 @@ lard-combustion=Lard to combustion mixture (__1__°C) bio-oil-combustion=Bio oil to combustion mixture (__1__°C) oleochemical-combustion=Oleochemicals to combustion mixture (__1__°C) +subcritical-water-01=Subcritical water MK 01 +subcritical-water-02=Subcritical water MK 02 +subcritical-water-03=Subcritical water MK 03 + ulric-sex-01=Breed new ulrics ulric-full-rendering=Render ulric ulric-manure-01=Basic farming diff --git a/migrations/2.1.14.lua b/migrations/2.1.14.lua deleted file mode 100644 index b5bca1856..000000000 --- a/migrations/2.1.14.lua +++ /dev/null @@ -1 +0,0 @@ -global.turd_migrations = global.turd_migrations or {} \ No newline at end of file diff --git a/migrations/2.1.26.lua b/migrations/2.1.26.lua new file mode 100644 index 000000000..7d8923419 --- /dev/null +++ b/migrations/2.1.26.lua @@ -0,0 +1,9 @@ +local turd_migrate = require('__pyalienlife__/scripts/turd/turd-migration') + +turd_migrate('kicalk-upgrade', 'wire-netting') +turd_migrate('kicalk-upgrade', 'extra-water') +turd_migrate('kicalk-upgrade', 'crop-rotation') + +turd_migrate('scrondrix-upgrade', 'boronb') +turd_migrate('scrondrix-upgrade', 'hspa') +turd_migrate('scrondrix-upgrade', 'neuron') \ No newline at end of file diff --git a/prototypes/buildings/rc-mk01.lua b/prototypes/buildings/rc-mk01.lua index cf522841a..bc989daa7 100644 --- a/prototypes/buildings/rc-mk01.lua +++ b/prototypes/buildings/rc-mk01.lua @@ -52,7 +52,7 @@ ENTITY { module_info_icon_shift = util.by_pixel(160, 230), module_slots = 2, }, - allowed_effects = {"speed",'consumption','pollution'}, + allowed_effects = {"speed",'consumption','pollution','productivity'}, crafting_categories = {'rc'}, crafting_speed = .333, -- 2 modules + 1 building = target speed of 1 energy_source = { diff --git a/prototypes/buildings/rc-mk02.lua b/prototypes/buildings/rc-mk02.lua index e28fca958..5e8b110d5 100644 --- a/prototypes/buildings/rc-mk02.lua +++ b/prototypes/buildings/rc-mk02.lua @@ -53,7 +53,7 @@ ENTITY { module_info_icon_shift = util.by_pixel(160, 230), module_slots = 4, }, - allowed_effects = {"speed",'consumption','pollution'}, + allowed_effects = {"speed",'consumption','pollution','productivity'}, crafting_categories = {'rc'}, crafting_speed = .4, -- 4 modules + 1 building = target speed of 2 energy_source = { diff --git a/prototypes/buildings/rc-mk03.lua b/prototypes/buildings/rc-mk03.lua index b471452fb..5952535e1 100644 --- a/prototypes/buildings/rc-mk03.lua +++ b/prototypes/buildings/rc-mk03.lua @@ -53,7 +53,7 @@ ENTITY { module_info_icon_shift = util.by_pixel(160, 230), module_slots = 6, }, - allowed_effects = {"speed",'consumption','pollution'}, + allowed_effects = {"speed",'consumption','pollution','productivity'}, crafting_categories = {'rc'}, crafting_speed = .428, -- 6 modules + 1 building = target speed of 3 energy_source = { diff --git a/prototypes/buildings/rc-mk04.lua b/prototypes/buildings/rc-mk04.lua index 634b7dd6b..bc021b81e 100644 --- a/prototypes/buildings/rc-mk04.lua +++ b/prototypes/buildings/rc-mk04.lua @@ -53,7 +53,7 @@ ENTITY { module_info_icon_shift = util.by_pixel(160, 230), module_slots = 8, }, - allowed_effects = {"speed",'consumption','pollution'}, + allowed_effects = {"speed",'consumption','pollution','productivity'}, crafting_categories = {'rc'}, crafting_speed = .444, -- 8 modules + 1 building = target speed of 4 energy_source = { diff --git a/prototypes/items/energy-drink.lua b/prototypes/items/energy-drink.lua index ccb7abe13..54594a26f 100644 --- a/prototypes/items/energy-drink.lua +++ b/prototypes/items/energy-drink.lua @@ -66,14 +66,7 @@ ITEM { local speedup_sticker = table.deepcopy(data.raw['sticker']['slowdown-sticker']) speedup_sticker.name = 'speedup-sticker' -speedup_sticker.spread_fire_entity = 'fire-flame-on-tree' -speedup_sticker.fire_spread_radius = 3 speedup_sticker.duration_in_ticks = 60 * 60 -speedup_sticker.damage_interval = 70 -speedup_sticker.damage_per_tick = { - amount = 8, - type = 'fire' -} -speedup_sticker.target_movement_modifier_from = 1 -speedup_sticker.target_movement_modifier_to = 40 +speedup_sticker.target_movement_modifier_from = 20 +speedup_sticker.target_movement_modifier_to = 1 data:extend{speedup_sticker} \ No newline at end of file diff --git a/prototypes/recipes/recipes-bioreserve-megafarm.lua b/prototypes/recipes/recipes-bioreserve-megafarm.lua index 040773ea3..0745bf9c3 100644 --- a/prototypes/recipes/recipes-bioreserve-megafarm.lua +++ b/prototypes/recipes/recipes-bioreserve-megafarm.lua @@ -7,7 +7,6 @@ RECIPE { enabled = false, energy_required = 100, ingredients = { - {type = 'item', name = 'earth-generic-sample', amount = 10}, {type = 'item', name = 'bio-sample', amount = 2}, {type = 'item', name = 'soil', amount = 1000}, }, @@ -26,7 +25,6 @@ RECIPE { {type = 'fluid', name = 'water', amount = 10000}, {type = 'item', name = 'soil', amount = 1000}, {type = 'item', name = 'bio-sample', amount = 2}, - {type = 'item', name = 'earth-generic-sample', amount = 10}, {type = 'item', name = 'stone', amount = 1500}, }, results = { @@ -44,7 +42,6 @@ RECIPE { {type = 'fluid', name = 'water', amount = 10000}, {type = 'item', name = 'soil', amount = 1000}, {type = 'item', name = 'bio-sample', amount = 2}, - {type = 'item', name = 'earth-generic-sample', amount = 10}, {type = 'item', name = 'stone', amount = 1500}, {type = 'item', name = 'alien-sample01', amount = 2}, }, @@ -63,7 +60,6 @@ RECIPE { {type = 'fluid', name = 'water', amount = 10000}, {type = 'item', name = 'soil', amount = 1000}, {type = 'item', name = 'bio-sample', amount = 2}, - {type = 'item', name = 'earth-generic-sample', amount = 10}, {type = 'item', name = 'stone', amount = 1500}, {type = 'item', name = 'alien-sample01', amount = 2}, {type = 'item', name = 'lignin', amount = 200}, @@ -83,7 +79,6 @@ RECIPE { {type = 'fluid', name = 'water', amount = 10000}, {type = 'item', name = 'soil', amount = 1000}, {type = 'item', name = 'bio-sample', amount = 2}, - {type = 'item', name = 'earth-generic-sample', amount = 10}, {type = 'item', name = 'stone', amount = 1500}, {type = 'item', name = 'alien-sample01', amount = 2}, {type = 'item', name = 'lignin', amount = 200}, @@ -104,7 +99,6 @@ RECIPE { {type = 'fluid', name = 'water', amount = 10000}, {type = 'item', name = 'soil', amount = 1000}, {type = 'item', name = 'bio-sample', amount = 2}, - {type = 'item', name = 'earth-generic-sample', amount = 10}, {type = 'item', name = 'stone', amount = 1500}, {type = 'item', name = 'alien-sample-02', amount = 2}, {type = 'item', name = 'lignin', amount = 200}, @@ -125,7 +119,6 @@ RECIPE { {type = 'fluid', name = 'water', amount = 10000}, {type = 'item', name = 'soil', amount = 1000}, {type = 'item', name = 'bio-sample', amount = 2}, - {type = 'item', name = 'earth-generic-sample', amount = 10}, {type = 'item', name = 'stone', amount = 1500}, {type = 'item', name = 'alien-sample-02', amount = 5}, {type = 'item', name = 'fertilizer', amount = 150}, diff --git a/prototypes/recipes/recipes.lua b/prototypes/recipes/recipes.lua index 94a496815..2f5acb692 100644 --- a/prototypes/recipes/recipes.lua +++ b/prototypes/recipes/recipes.lua @@ -1705,7 +1705,6 @@ RECIPE { enabled = false, energy_required = 30, ingredients = { - {type = 'item', name = 'earth-generic-sample', amount = 5}, {type = 'item', name = 'titanium-plate', amount = 100}, --{type = 'item', name = 'metallic-glass', amount = 2}, {type = 'item', name = 'biofilm', amount = 20}, diff --git a/prototypes/recipes/sap/recipes-sap.lua b/prototypes/recipes/sap/recipes-sap.lua index a236ff152..25ed18819 100644 --- a/prototypes/recipes/sap/recipes-sap.lua +++ b/prototypes/recipes/sap/recipes-sap.lua @@ -1,5 +1,4 @@ -local mine_results_1 = -{ +local mine_results_1 = { type = 'item', name = 'saps', amount = 1, @@ -19,14 +18,14 @@ for _, tree in pairs(data.raw.tree) do { type = 'item', name = 'log', - amount = tree.minable.count / 4.0, + amount = math.ceil(tree.minable.count / 2.0), }, } end if tree.minable ~= nil then if tree.minable.result ~= nil then - --do nothing for now as i dont think the "trees" are the kind we want giving sap + --do nothing for now as i dont think the 'trees' are the kind we want giving sap elseif tree.minable.results[1].amount >= 1 then -- no sap from dead trees table.insert(tree.minable.results, mine_results_1) else @@ -38,30 +37,30 @@ end --log(serpent.block(data.raw.tree['temperate-tree'].minable.results)) RECIPE { - type = "recipe", - name = "sap-seeds", - category = "nursery", + type = 'recipe', + name = 'sap-seeds', + category = 'nursery', enabled = false, energy_required = 5, ingredients = { - {type = "item", name = "saps", amount = 5}, + {type = 'item', name = 'saps', amount = 5}, }, results = { - {type = "item", name = "sap-seeds", amount = 2} + {type = 'item', name = 'sap-seeds', amount = 2} }, -}:add_unlock("sap-mk01") +}:add_unlock('sap-mk01') RECIPE { - type = "recipe", - name = "sap-tree", - category = "nursery", + type = 'recipe', + name = 'sap-tree', + category = 'nursery', enabled = false, energy_required = 45, ingredients = { - {type = "item", name = "sap-seeds", amount = 5}, - {type = "item", name = "planter-box", amount = 1}, + {type = 'item', name = 'sap-seeds', amount = 5}, + {type = 'item', name = 'planter-box', amount = 1}, }, results = { - {type = "item", name = "sap-tree", amount = 1} + {type = 'item', name = 'sap-tree', amount = 1} }, -}:add_unlock("sap-mk01") +}:add_unlock('sap-mk01') diff --git a/prototypes/upgrades/kicalk.lua b/prototypes/upgrades/kicalk.lua index 6a3f9567a..b0a27d50a 100644 --- a/prototypes/upgrades/kicalk.lua +++ b/prototypes/upgrades/kicalk.lua @@ -12,7 +12,7 @@ if data and not yafc_turd_integration then local amount = recipe.results[1].amount recipe.results = { {type = 'item', name = 'kicalk-dry', amount = math.floor(amount / 2)}, - {type = 'item', name = 'kicalk', amount = math.floor(amount * 0.75)}, + {type = 'item', name = 'kicalk', amount = math.ceil(amount * 0.35)}, } recipe.main_product = 'kicalk-dry' recipe.energy_required = math.ceil(recipe.energy_required * 0.8) diff --git a/prototypes/upgrades/scrondrix.lua b/prototypes/upgrades/scrondrix.lua index 030814e6e..1fca501d6 100644 --- a/prototypes/upgrades/scrondrix.lua +++ b/prototypes/upgrades/scrondrix.lua @@ -55,7 +55,7 @@ if data and not yafc_turd_integration then local brains = table.deepcopy(data.raw.recipe['ex-bra-scro']) brains.name = 'scrondrix-brain-slaughterhouse-ex' brains.localised_name = {'recipe-name.ex-bra-scro'} - FUN.multiply_result_amount(brains, 'brain', 24) + FUN.multiply_result_amount(brains, 'brain', 16) FUN.multiply_result_amount(brains, 'pineal-gland', 0.25) local experimental = table.deepcopy(data.raw.recipe['Caged scrondrix 9']) @@ -64,7 +64,7 @@ if data and not yafc_turd_integration then experimental.results = { {name = 'bones', amount = 1, type = 'item', probability = 0.6}, {name = 'cage', amount = 1, type = 'item', probability = 0.6}, - {name = 'electronic-circuit', amount_min = 8, amount_max = 9, type = 'item'}, + {name = 'electronic-circuit', amount_min = 7, amount_max = 8, type = 'item'}, {name = 'brain-caged-scrondrix', amount = 1, type = 'item', probability = 0.4}, } experimental.main_product = 'brain-caged-scrondrix' diff --git a/scripts/biofluid/biofluid.lua b/scripts/biofluid/biofluid.lua index 6e6d83098..bd2dc9a6f 100644 --- a/scripts/biofluid/biofluid.lua +++ b/scripts/biofluid/biofluid.lua @@ -70,7 +70,7 @@ Biofluid.events.on_built = function(event) elseif connection_type == Biofluid.PROVIDER then entity.operable = false end - Biofluid.built_pipe(entity, true) + Biofluid.built_pipe(entity) end function Biofluid.update_bioport_animation(bioport_data) diff --git a/scripts/biofluid/network-builder.lua b/scripts/biofluid/network-builder.lua index 9412c5d33..6f6592ef9 100644 --- a/scripts/biofluid/network-builder.lua +++ b/scripts/biofluid/network-builder.lua @@ -107,12 +107,30 @@ function Biofluid.find_heat_connections(entity) return connections end +function Biofluid.are_two_undergrounds_connected(first, second) + if first.direction == defines.direction.north or first.direction == defines.direction.south then + if first.position.y > second.position.y then + first, second = second, first + end + return first.direction == defines.direction.north and second.direction == defines.direction.south + else + if first.position.x > second.position.x then + first, second = second, first + end + return first.direction == defines.direction.west and second.direction == defines.direction.east + end +end + function Biofluid.find_underground_neighbour(entity) - local neighbours = entity.neighbours[1] - if not neighbours or #neighbours ~= 1 then return end - local neighbor = neighbours[1] - if not Biofluid.connectable[neighbor.name] then return end - if neighbor.force_index ~= entity.force_index then return end + local neighbor + for _, neighbour in pairs(entity.neighbours[1]) do + if neighbour.type == TO_GROUND and Biofluid.connectable[neighbour.name] and Biofluid.are_two_undergrounds_connected(entity, neighbour) then + neighbor = neighbour + break + end + end + if not neighbor then return end + local network_positions = Biofluid.network_positions(entity.surface_index) local position = neighbor.position local x = math.floor(position.x) @@ -148,7 +166,26 @@ function Biofluid.find_nearby_pipes(entity, connections) end -- CONSTRUCTIVE -function Biofluid.built_pipe(entity, update_graphics) +function Biofluid.built_pipe(entity) + if entity.type == TO_GROUND then + -- edge case: if a pipe-to-ground is built that seperates two existing pipe-to-grounds then we need to split the existing network + local neighbor = Biofluid.find_underground_neighbour(entity) + if neighbor then + local previous_position = entity.position + entity.teleport({previous_position.x - 5, previous_position.y - 5}) -- just get it out of the way so we can see what it was previously connected to + local previous_neighbor = Biofluid.find_underground_neighbour(neighbor.entity) + entity.teleport(previous_position) + if previous_neighbor and previous_neighbor.entity ~= entity and previous_neighbor.entity.name == neighbor.entity.name then + local network_positions = Biofluid.network_positions(entity.surface_index) + Biofluid.split_network(previous_neighbor.network_id, network_positions) + end + end + end + + Biofluid.update_pipe(entity, true) +end + +function Biofluid.update_pipe(entity, update_graphics) local connections = Biofluid.find_heat_connections(entity) if #connections == 0 then error() end local network_positions = Biofluid.network_positions(entity.surface_index) @@ -221,10 +258,17 @@ end function Biofluid.join_networks(new_id, old_id, network_positions) local new = global.biofluid_networks[new_id] local old = global.biofluid_networks[old_id] + + if not new or not old then + game.print('ERROR: Attempt to join two non-existant biofluid networks. ' .. new_id .. ' ' .. old_id .. '. Please report this bug on our github.') + return + end + if new.force_index ~= old.force_index then - game.print('ERROR: Attempt to join two biofluid networks with diffrent forces. ' .. new_id .. ' ' .. old_id) + game.print('ERROR: Attempt to join two biofluid networks with diffrent forces. ' .. new_id .. ' ' .. old_id .. '. Please report this bug on our github.') return end + for x, column in pairs(old.positions) do for y, _ in pairs(column) do network_positions[x][y].network_id = new_id @@ -271,6 +315,11 @@ function Biofluid.add_to_network(network_id, entity, connections) local network = global.biofluid_networks[network_id] local network_positions = Biofluid.network_positions(entity.surface_index) + if not network or not network_positions then + game.print('ERROR: Attempt to add entity to non-existant biofluid network. ' .. network_id .. '. Please report this bug on our github.') + return + end + for _, connection in pairs(connections) do local x, y = connection.x, connection.y network_positions[x][y].network_id = network_id @@ -324,6 +373,7 @@ function Biofluid.destroyed_pipe(entity) end if not network then return end + Biofluid.remove_from_network(network_id, entity, connections) local nearby_pipes = Biofluid.find_nearby_pipes(entity, connections) @@ -333,6 +383,16 @@ function Biofluid.destroyed_pipe(entity) Biofluid.split_network(network_id, network_positions) end + if entity.type == TO_GROUND then -- edge case: we destroyed an underground pipe in the middle of two existing underground pipes + local neighbor = Biofluid.find_underground_neighbour(entity) + local position = entity.position + entity.teleport({position.x + 5, position.y + 5}) -- just get it out of the way so we can see what it will be connected to after the teleport + if neighbor then + Biofluid.update_pipe(neighbor.entity, false) + end + entity.teleport(position) + end + for _, pipe in pairs(nearby_pipes) do Biofluid.update_graphics(pipe.entity) end @@ -355,7 +415,7 @@ function Biofluid.split_network(network_id, network_positions) end end - for _, entity in pairs(entities) do Biofluid.built_pipe(entity, false) end + for _, entity in pairs(entities) do Biofluid.update_pipe(entity, false) end end function Biofluid.delete_network(network_id) @@ -397,5 +457,5 @@ function Biofluid.rotated_pipe(entity, previous_direction) entity.direction = previous_direction Biofluid.destroyed_pipe(entity) entity.direction = new_direction - Biofluid.built_pipe(entity, true) + Biofluid.built_pipe(entity) end \ No newline at end of file diff --git a/scripts/smart-farm/smart-farm.lua b/scripts/smart-farm/smart-farm.lua index 357b56bd9..398810ee8 100644 --- a/scripts/smart-farm/smart-farm.lua +++ b/scripts/smart-farm/smart-farm.lua @@ -1,43 +1,87 @@ Smart_Farm = {} Smart_Farm.events = {} -local farms = { - farm1 = require('farm-ralesia'), - farm2 = require('farm-rennea'), - farm3 = require('farm-tuuphra'), - farm4 = require('farm-grod'), - farm5 = require('farm-yotoi'), - farm6 = require('farm-kicalk'), - farm7 = require('farm-arum'), - farm8 = require('farm-yotoi-fruit'), - farm9 = require('farm-bioreserve'), - farm10 = script.active_mods['pyalternativeenergy'] and require('__pyalternativeenergy__/scripts/crops/farm-mova') +local farm_filenames = { + 'farm-ralesia', + 'farm-rennea', + 'farm-tuuphra', + 'farm-grod', + 'farm-yotoi', + 'farm-kicalk', + 'farm-arum', + 'farm-yotoi-fruit', + 'farm-bioreserve', + script.active_mods['pyalternativeenergy'] and '__pyalternativeenergy__/scripts/crops/farm-mova' } +local farms = {} +for _, filename in pairs(farm_filenames) do + local farm = require(filename) + farms[farm.seed] = farm +end + Smart_Farm.events.on_built = function(event) local entity = event.created_entity or event.entity if entity.name ~= 'mega-farm' then return end + local surface = entity.surface - local posx = -13 - local posy = -13 local position = entity.position - repeat - if posx == -13 or posy == -13 or posx == 13 or posy == 13 then - entity.surface.create_entity{ + position.y = position.y - 15 + local positions = {} + for x = -13, 13 do + table.insert(positions, {position.x + x, position.y + 13}) + table.insert(positions, {position.x + x, position.y - 13}) + end + for y = -13, 13 do + table.insert(positions, {position.x + 13, position.y + y}) + table.insert(positions, {position.x - 13, position.y + y}) + end + + for _, position in pairs(positions) do + if not surface.entity_prototype_collides('wood-fence', position, false) then + surface.create_entity{ name = 'wood-fence', - position = {position.x + posx, (position.y - 15) + posy}, + position = position, force = entity.force } end - --create landfill - entity.surface.set_tiles{{name = 'landfill', position = {position.x + posx, (position.y - 15) + posy}}} + end + + local landfill_tiles = {} + for x = -12, 12 do + for y = -12, 12 do + local position = {position.x + x, position.y + y} + if not surface.get_tile(position).collides_with('water-tile') then + table.insert(landfill_tiles, {name = 'landfill', position = position}) + end + end + end + surface.set_tiles(landfill_tiles) +end - posx = posx + 1 - if posx == 14 then - posx = -13 - posy = posy + 1 +Smart_Farm.events.on_destroyed = function(event) + local entity = event.entity + if entity.name ~= 'mega-farm' then return end + local surface = entity.surface + + local position = entity.position + position.y = position.y - 15 + local positions = {} + for x = -13, 13 do + table.insert(positions, {position.x + x, position.y + 13}) + table.insert(positions, {position.x + x, position.y - 13}) + end + for y = -13, 13 do + table.insert(positions, {position.x + 13, position.y + y}) + table.insert(positions, {position.x - 13, position.y + y}) + end + + for _, position in pairs(positions) do + local fence = surface.find_entity('wood-fence', position) + if fence and fence.force_index == entity.force_index then + fence.destroy() end - until posy == 14 + end end Smart_Farm.events.on_rocket_launched = function(event) @@ -45,48 +89,46 @@ Smart_Farm.events.on_rocket_launched = function(event) if silo.name ~= 'mega-farm' then return end local surface = silo.surface local position = silo.position + position.y = position.y - 15 - local items = {} - for k, _ in pairs(event.rocket.get_inventory(defines.inventory.rocket).get_contents()) do - items['item1'] = k + local replicator = next(event.rocket.get_inventory(defines.inventory.rocket).get_contents()) + if not replicator then return end + local farm = farms[replicator] + if not farm then return end + + local output + local recipe_name = silo.get_recipe().name + for _, recipe in pairs(farm.recipes) do + if recipe.recipe_name == recipe_name then + output = recipe.crop_output + break + end end + if not output then return end - for _, farm in pairs(farms) do - if items['item1'] == farm.seed then - local recipes = {} - local output = {} - for _, recipe in pairs(farm.recipes) do - recipes[recipe.recipe_name] = true - output[recipe.recipe_name] = recipe.crop_output - end - if recipes[silo.get_recipe().name] == true then - local posx = -11 - local posy = -11 - repeat - if not surface.find_entity(farm.crop, {position.x + posx, (position.y - 15) + posy}) then - surface.create_entity{ - name = farm.crop, - position = {position.x + posx, (position.y - 15) + posy}, - amount = output[silo.get_recipe().name] - } - else - local ore = surface.find_entity(farm.crop, {position.x + posx, (position.y - 15) + posy}) - ore.amount = ore.amount + output[silo.get_recipe().name] - end - posx = posx + 1 - if posx == 12 then - posx = -11 - posy = posy + 1 - end - until posy == 12 + for x = -11, 11 do + for y = -11, 11 do + local ore_location = {position.x + x, position.y + y} + if not surface.get_tile(ore_location).collides_with('resource-layer') then + local ore = surface.find_entity(farm.crop, ore_location) + + if ore then + ore.amount = ore.amount + output + else + surface.create_entity{ + name = farm.crop, + position = ore_location, + amount = output, + force = 'neutral' + } + end end - break end end for _, harvester in pairs(surface.find_entities_filtered{ - area = {{position.x - 11, (position.y - 15) - 11}, {position.x + 11, (position.y - 15) + 11}}, - name = {'harvester', 'collector'} + area = {{position.x - 12, position.y - 12}, {position.x + 12, position.y + 12}}, + name = {'harvester', 'collector', 'collector-mk02', 'collector-mk03', 'collector-mk04'} }) do harvester.update_connections() if harvester.get_control_behavior() or next(harvester.circuit_connected_entities.red) or next(harvester.circuit_connected_entities.green) then From 3ecf0cf640cd584644b885e899bf159b3cb34c38 Mon Sep 17 00:00:00 2001 From: Wisey <44213571+Wiseyuk@users.noreply.github.com> Date: Sun, 14 Apr 2024 05:34:03 +0100 Subject: [PATCH 2/2] Fixed returned cages (#235) * Add files via upload * Fixed returned cages * Fixed returned cages * Fixed returned cages * Returned cages fixed * Fixed cage return --- .../arthurian/recipes-arthurian-modules.lua | 1 + .../recipes/kmauts/recipes-kmauts-modules.lua | 507 +++++----- .../recipes/vonix/recipes-vonix-raising.lua | 904 +++++++++--------- .../recipes/xeno/recipes-xeno-modules.lua | 509 +++++----- .../zungror/recipes-zungror-modules.lua | 4 +- 5 files changed, 968 insertions(+), 957 deletions(-) diff --git a/prototypes/recipes/arthurian/recipes-arthurian-modules.lua b/prototypes/recipes/arthurian/recipes-arthurian-modules.lua index 6f9b30cd8..89f1163b1 100644 --- a/prototypes/recipes/arthurian/recipes-arthurian-modules.lua +++ b/prototypes/recipes/arthurian/recipes-arthurian-modules.lua @@ -24,6 +24,7 @@ RECIPE { {type = 'item', name = 'arthurian-egg-mk02', amount = 1, probability = 0.005}, {type = 'item', name = 'arthurian-egg', amount = 1, probability = 0.5}, {type = 'item', name = 'empty-barrel', amount = 4}, + {type = 'item', name = 'cage', amount = 1}, }, --main_product = "arthurian-mk02", icons = diff --git a/prototypes/recipes/kmauts/recipes-kmauts-modules.lua b/prototypes/recipes/kmauts/recipes-kmauts-modules.lua index 96db08765..451b28ac9 100644 --- a/prototypes/recipes/kmauts/recipes-kmauts-modules.lua +++ b/prototypes/recipes/kmauts/recipes-kmauts-modules.lua @@ -1,253 +1,256 @@ - ---Secondary Upgrade Recipes-- ---SUR-- ---WIP-- - ---mk02-- ---WIP-- - -RECIPE { - type = 'recipe', - name = 'kmauts-mk02', - category = 'rc', - allowed_module_categories = {'kmauts'}, - enabled = false, - energy_required = 30, - ingredients = { - {type = 'item', name = 'kmauts', amount = 2}, - {type = 'item', name = 'kmauts-ration', amount = 2}, - {type = 'item', name = 'bedding', amount = 4}, - {type = 'item', name = 'rennea', amount = 5}, - {type = 'item', name = 'caged-ulric', amount = 1}, - {type = 'item', name = 'water-barrel', amount = 4}, - }, - results = { - {type = 'item', name = 'kmauts-mk02', amount = 1, probability = 0.005}, - {type = 'item', name = 'kmauts', amount = 1, probability = 0.5}, - {type = 'item', name = 'empty-barrel', amount = 4}, - }, - --main_product = "kmauts-mk02", - icons = - { - {icon = "__pyalienlifegraphics2__/graphics/icons/c-mk02.png", icon_size = 64}, - {icon = '__pyalienlifegraphics__/graphics/icons/kmauts.png', icon_size = 64, scale = 0.35}, - }, - icon_size = 64, - subgroup = 'py-alienlife-kmauts', - order = 'za' -}:add_unlock("kmauts-mk02") - ---mk03-- ---WIP-- - -RECIPE { - type = 'recipe', - name = 'kmauts-mk03', - category = 'rc', - allowed_module_categories = {'kmauts'}, - enabled = false, - energy_required = 30, - ingredients = { - {type = 'item', name = 'kmauts', amount = 2}, - {type = 'item', name = 'alien-sample-03', amount = 1}, - {type = 'item', name = 'kmauts-ration', amount = 2}, - {type = 'item', name = 'bedding', amount = 4}, - {type = 'item', name = 'rennea', amount = 5}, - {type = 'item', name = 'caged-ulric', amount = 1}, - {type = 'item', name = 'water-barrel', amount = 4}, - }, - results = { - {type = 'item', name = 'kmauts-mk03', amount = 1, probability = 0.004}, - {type = 'item', name = 'kmauts', amount = 1, probability = 0.6}, - {type = 'item', name = 'empty-barrel', amount = 4}, - }, - --main_product = "kmauts-mk03", - icons = - { - {icon = "__pyalienlifegraphics2__/graphics/icons/c-mk03.png", icon_size = 64}, - {icon = '__pyalienlifegraphics__/graphics/icons/kmauts.png', icon_size = 64, scale = 0.35}, - }, - icon_size = 64, - subgroup = 'py-alienlife-kmauts', - order = 'zb' -}:add_unlock("kmauts-mk03") - ---mk04-- ---WIP-- - -RECIPE { - type = 'recipe', - name = 'kmauts-mk04', - category = 'rc', - allowed_module_categories = {'kmauts'}, - enabled = false, - energy_required = 30, - ingredients = { - {type = 'item', name = 'kmauts', amount = 2}, - {type = 'item', name = 'zinc-finger-proteins', amount = 1}, - {type = 'item', name = 'kmauts-ration', amount = 2}, - {type = 'item', name = 'bedding', amount = 4}, - {type = 'item', name = 'rennea', amount = 5}, - {type = 'item', name = 'caged-ulric', amount = 1}, - {type = 'item', name = 'water-barrel', amount = 4}, - }, - results = { - {type = 'item', name = 'kmauts-mk04', amount = 1, probability = 0.003}, - {type = 'item', name = 'kmauts', amount = 1, probability = 0.6}, - {type = 'item', name = 'empty-barrel', amount = 4}, - }, - --main_product = "kmauts-mk04", - icons = - { - {icon = "__pyalienlifegraphics2__/graphics/icons/c-mk04.png", icon_size = 64}, - {icon = '__pyalienlifegraphics__/graphics/icons/kmauts.png', icon_size = 64, scale = 0.35}, - }, - icon_size = 64, - subgroup = 'py-alienlife-kmauts', - order = 'zc' -}:add_unlock("kmauts-mk04") - ---MK02 REPLICATOR--- - -RECIPE { - type = 'recipe', - name = 'kmauts-mk02r', - category = 'bio-printer', - enabled = false, - energy_required = 120, - ingredients = { - {type = 'item', name = 'kmauts-mk02', amount = 4}, - {type = 'item', name = 'kmauts-codex-mk02', amount = 1}, - {type = 'item', name = 'bio-scafold', amount = 5}, - {type = 'item', name = 'animal-sample-01', amount = 2}, - {type = 'item', name = 'cdna', amount = 2}, - {type = 'fluid', name = 'fetal-serum', amount = 80}, - {type = 'fluid', name = 'zogna-bacteria', amount = 50}, - {type = 'fluid', name = 'flavonoids', amount = 50}, - {type = 'item', name = 'dna-polymerase', amount = 1}, - {type = 'item', name = 'agar', amount = 2}, - }, - results = { - {type = 'item', name = 'kmauts-mk02', amount = 5}, - }, - icons = - { - {icon = '__pyalienlifegraphics__/graphics/icons/kmauts.png'}, - {icon = "__pyalienlifegraphics__/graphics/icons/over-mk02.png", icon_size = 64}, - }, - icon_size = 64, - subgroup = 'py-alienlife-kmauts', - order = 'za' -}:add_unlock("kmauts-mk02") - -RECIPE { - type = 'recipe', - name = 'compile-kmauts-codex', - category = 'data-array', - enabled = false, - energy_required = 30, - ingredients = { - {type = 'item', name = 'kmauts-codex', amount = 1}, - {type = 'item', name = 'neuroprocessor', amount = 1}, - }, - results = { - {type = 'item', name = 'kmauts-codex-mk02', amount = 1}, - }, -}:add_unlock("kmauts-mk02") - ---MK03 REPLICATOR--- - -RECIPE { - type = 'recipe', - name = 'kmauts-mk03r', - category = 'bio-printer', - enabled = false, - energy_required = 150, - ingredients = { - {type = 'item', name = 'kmauts-mk03', amount = 4}, - {type = 'item', name = 'kmauts-codex-mk03', amount = 1}, - {type = 'item', name = 'bio-scafold', amount = 8}, - {type = 'item', name = 'cdna', amount = 2}, - {type = 'item', name = 'alien-sample-03', amount = 1}, - {type = 'item', name = 'propeptides', amount = 1}, - {type = 'item', name = 'primers', amount = 1}, - {type = 'fluid', name = 'mutant-enzymes', amount = 20}, - {type = 'fluid', name = 'chelator', amount = 30}, - {type = 'fluid', name = 'oxygen', amount = 50}, - }, - results = { - {type = 'item', name = 'kmauts-mk03', amount = 5}, - }, - icons = - { - {icon = '__pyalienlifegraphics__/graphics/icons/kmauts.png'}, - {icon = "__pyalienlifegraphics__/graphics/icons/over-mk03.png", icon_size = 64}, - }, - icon_size = 64, - subgroup = 'py-alienlife-kmauts', - order = 'za' -}:add_unlock("kmauts-mk03") - - -RECIPE { - type = 'recipe', - name = 'compile-kmauts-im', - category = 'data-array', - enabled = false, - energy_required = 30, - ingredients = { - {type = 'item', name = 'kmauts-codex-mk02', amount = 1}, - {type = 'item', name = 'neuromorphic-chip', amount = 1}, - }, - results = { - {type = 'item', name = 'kmauts-codex-mk03', amount = 1}, - }, -}:add_unlock("kmauts-mk03") - ---MK04 REPLICATOR--- - -RECIPE { - type = 'recipe', - name = 'kmauts-mk04r', - category = 'bio-printer', - enabled = false, - energy_required = 200, - ingredients = { - {type = 'item', name = 'kmauts-mk04', amount = 4}, - {type = 'item', name = 'kmauts-codex-mk04', amount = 1}, - {type = 'item', name = 'cdna', amount = 2}, - {type = 'item', name = 'bio-scafold', amount = 8}, - {type = 'item', name = 'enediyne', amount = 1}, - {type = 'item', name = 'alien-enzymes', amount = 1}, - {type = 'item', name = 'zinc-finger-proteins', amount = 1}, - {type = 'item', name = 'mmp', amount = 1}, - {type = 'fluid', name = 'psc', amount = 100}, - {type = 'fluid', name = 'gta', amount = 50}, - }, - results = { - {type = 'item', name = 'kmauts-mk04', amount = 5}, - }, - icons = - { - {icon = '__pyalienlifegraphics__/graphics/icons/kmauts.png'}, - {icon = "__pyalienlifegraphics__/graphics/icons/over-mk04.png", icon_size = 64}, - }, - icon_size = 64, - subgroup = 'py-alienlife-kmauts', - order = 'za' -}:add_unlock("kmauts-mk04"):add_ingredient({type = 'fluid', name = 'crude-enzyme', amount = 50}) - -RECIPE { - type = 'recipe', - name = 'compile-kmauts-ai', - category = 'data-array', - enabled = false, - energy_required = 30, - ingredients = { - {type = 'item', name = 'kmauts-codex-mk03', amount = 1}, - {type = 'item', name = 'control-unit', amount = 1}, - }, - results = { - {type = 'item', name = 'kmauts-codex-mk04', amount = 1}, - }, + +--Secondary Upgrade Recipes-- +--SUR-- +--WIP-- + +--mk02-- +--WIP-- + +RECIPE { + type = 'recipe', + name = 'kmauts-mk02', + category = 'rc', + allowed_module_categories = {'kmauts'}, + enabled = false, + energy_required = 30, + ingredients = { + {type = 'item', name = 'kmauts', amount = 2}, + {type = 'item', name = 'kmauts-ration', amount = 2}, + {type = 'item', name = 'bedding', amount = 4}, + {type = 'item', name = 'rennea', amount = 5}, + {type = 'item', name = 'caged-ulric', amount = 1}, + {type = 'item', name = 'water-barrel', amount = 4}, + }, + results = { + {type = 'item', name = 'kmauts-mk02', amount = 1, probability = 0.005}, + {type = 'item', name = 'kmauts', amount = 1, probability = 0.5}, + {type = 'item', name = 'empty-barrel', amount = 4}, + {type = 'item', name = 'cage', amount = 1}, + }, + --main_product = "kmauts-mk02", + icons = + { + {icon = "__pyalienlifegraphics2__/graphics/icons/c-mk02.png", icon_size = 64}, + {icon = '__pyalienlifegraphics__/graphics/icons/kmauts.png', icon_size = 64, scale = 0.35}, + }, + icon_size = 64, + subgroup = 'py-alienlife-kmauts', + order = 'za' +}:add_unlock("kmauts-mk02") + +--mk03-- +--WIP-- + +RECIPE { + type = 'recipe', + name = 'kmauts-mk03', + category = 'rc', + allowed_module_categories = {'kmauts'}, + enabled = false, + energy_required = 30, + ingredients = { + {type = 'item', name = 'kmauts', amount = 2}, + {type = 'item', name = 'alien-sample-03', amount = 1}, + {type = 'item', name = 'kmauts-ration', amount = 2}, + {type = 'item', name = 'bedding', amount = 4}, + {type = 'item', name = 'rennea', amount = 5}, + {type = 'item', name = 'caged-ulric', amount = 1}, + {type = 'item', name = 'water-barrel', amount = 4}, + }, + results = { + {type = 'item', name = 'kmauts-mk03', amount = 1, probability = 0.004}, + {type = 'item', name = 'kmauts', amount = 1, probability = 0.6}, + {type = 'item', name = 'empty-barrel', amount = 4}, + {type = 'item', name = 'cage', amount = 1}, + }, + --main_product = "kmauts-mk03", + icons = + { + {icon = "__pyalienlifegraphics2__/graphics/icons/c-mk03.png", icon_size = 64}, + {icon = '__pyalienlifegraphics__/graphics/icons/kmauts.png', icon_size = 64, scale = 0.35}, + }, + icon_size = 64, + subgroup = 'py-alienlife-kmauts', + order = 'zb' +}:add_unlock("kmauts-mk03") + +--mk04-- +--WIP-- + +RECIPE { + type = 'recipe', + name = 'kmauts-mk04', + category = 'rc', + allowed_module_categories = {'kmauts'}, + enabled = false, + energy_required = 30, + ingredients = { + {type = 'item', name = 'kmauts', amount = 2}, + {type = 'item', name = 'zinc-finger-proteins', amount = 1}, + {type = 'item', name = 'kmauts-ration', amount = 2}, + {type = 'item', name = 'bedding', amount = 4}, + {type = 'item', name = 'rennea', amount = 5}, + {type = 'item', name = 'caged-ulric', amount = 1}, + {type = 'item', name = 'water-barrel', amount = 4}, + }, + results = { + {type = 'item', name = 'kmauts-mk04', amount = 1, probability = 0.003}, + {type = 'item', name = 'kmauts', amount = 1, probability = 0.6}, + {type = 'item', name = 'empty-barrel', amount = 4}, + {type = 'item', name = 'cage', amount = 1}, + }, + --main_product = "kmauts-mk04", + icons = + { + {icon = "__pyalienlifegraphics2__/graphics/icons/c-mk04.png", icon_size = 64}, + {icon = '__pyalienlifegraphics__/graphics/icons/kmauts.png', icon_size = 64, scale = 0.35}, + }, + icon_size = 64, + subgroup = 'py-alienlife-kmauts', + order = 'zc' +}:add_unlock("kmauts-mk04") + +--MK02 REPLICATOR--- + +RECIPE { + type = 'recipe', + name = 'kmauts-mk02r', + category = 'bio-printer', + enabled = false, + energy_required = 120, + ingredients = { + {type = 'item', name = 'kmauts-mk02', amount = 4}, + {type = 'item', name = 'kmauts-codex-mk02', amount = 1}, + {type = 'item', name = 'bio-scafold', amount = 5}, + {type = 'item', name = 'animal-sample-01', amount = 2}, + {type = 'item', name = 'cdna', amount = 2}, + {type = 'fluid', name = 'fetal-serum', amount = 80}, + {type = 'fluid', name = 'zogna-bacteria', amount = 50}, + {type = 'fluid', name = 'flavonoids', amount = 50}, + {type = 'item', name = 'dna-polymerase', amount = 1}, + {type = 'item', name = 'agar', amount = 2}, + }, + results = { + {type = 'item', name = 'kmauts-mk02', amount = 5}, + }, + icons = + { + {icon = '__pyalienlifegraphics__/graphics/icons/kmauts.png'}, + {icon = "__pyalienlifegraphics__/graphics/icons/over-mk02.png", icon_size = 64}, + }, + icon_size = 64, + subgroup = 'py-alienlife-kmauts', + order = 'za' +}:add_unlock("kmauts-mk02") + +RECIPE { + type = 'recipe', + name = 'compile-kmauts-codex', + category = 'data-array', + enabled = false, + energy_required = 30, + ingredients = { + {type = 'item', name = 'kmauts-codex', amount = 1}, + {type = 'item', name = 'neuroprocessor', amount = 1}, + }, + results = { + {type = 'item', name = 'kmauts-codex-mk02', amount = 1}, + }, +}:add_unlock("kmauts-mk02") + +--MK03 REPLICATOR--- + +RECIPE { + type = 'recipe', + name = 'kmauts-mk03r', + category = 'bio-printer', + enabled = false, + energy_required = 150, + ingredients = { + {type = 'item', name = 'kmauts-mk03', amount = 4}, + {type = 'item', name = 'kmauts-codex-mk03', amount = 1}, + {type = 'item', name = 'bio-scafold', amount = 8}, + {type = 'item', name = 'cdna', amount = 2}, + {type = 'item', name = 'alien-sample-03', amount = 1}, + {type = 'item', name = 'propeptides', amount = 1}, + {type = 'item', name = 'primers', amount = 1}, + {type = 'fluid', name = 'mutant-enzymes', amount = 20}, + {type = 'fluid', name = 'chelator', amount = 30}, + {type = 'fluid', name = 'oxygen', amount = 50}, + }, + results = { + {type = 'item', name = 'kmauts-mk03', amount = 5}, + }, + icons = + { + {icon = '__pyalienlifegraphics__/graphics/icons/kmauts.png'}, + {icon = "__pyalienlifegraphics__/graphics/icons/over-mk03.png", icon_size = 64}, + }, + icon_size = 64, + subgroup = 'py-alienlife-kmauts', + order = 'za' +}:add_unlock("kmauts-mk03") + + +RECIPE { + type = 'recipe', + name = 'compile-kmauts-im', + category = 'data-array', + enabled = false, + energy_required = 30, + ingredients = { + {type = 'item', name = 'kmauts-codex-mk02', amount = 1}, + {type = 'item', name = 'neuromorphic-chip', amount = 1}, + }, + results = { + {type = 'item', name = 'kmauts-codex-mk03', amount = 1}, + }, +}:add_unlock("kmauts-mk03") + +--MK04 REPLICATOR--- + +RECIPE { + type = 'recipe', + name = 'kmauts-mk04r', + category = 'bio-printer', + enabled = false, + energy_required = 200, + ingredients = { + {type = 'item', name = 'kmauts-mk04', amount = 4}, + {type = 'item', name = 'kmauts-codex-mk04', amount = 1}, + {type = 'item', name = 'cdna', amount = 2}, + {type = 'item', name = 'bio-scafold', amount = 8}, + {type = 'item', name = 'enediyne', amount = 1}, + {type = 'item', name = 'alien-enzymes', amount = 1}, + {type = 'item', name = 'zinc-finger-proteins', amount = 1}, + {type = 'item', name = 'mmp', amount = 1}, + {type = 'fluid', name = 'psc', amount = 100}, + {type = 'fluid', name = 'gta', amount = 50}, + }, + results = { + {type = 'item', name = 'kmauts-mk04', amount = 5}, + }, + icons = + { + {icon = '__pyalienlifegraphics__/graphics/icons/kmauts.png'}, + {icon = "__pyalienlifegraphics__/graphics/icons/over-mk04.png", icon_size = 64}, + }, + icon_size = 64, + subgroup = 'py-alienlife-kmauts', + order = 'za' +}:add_unlock("kmauts-mk04"):add_ingredient({type = 'fluid', name = 'crude-enzyme', amount = 50}) + +RECIPE { + type = 'recipe', + name = 'compile-kmauts-ai', + category = 'data-array', + enabled = false, + energy_required = 30, + ingredients = { + {type = 'item', name = 'kmauts-codex-mk03', amount = 1}, + {type = 'item', name = 'control-unit', amount = 1}, + }, + results = { + {type = 'item', name = 'kmauts-codex-mk04', amount = 1}, + }, }:add_unlock("kmauts-mk04") \ No newline at end of file diff --git a/prototypes/recipes/vonix/recipes-vonix-raising.lua b/prototypes/recipes/vonix/recipes-vonix-raising.lua index b2b9bced4..e0ba715fc 100644 --- a/prototypes/recipes/vonix/recipes-vonix-raising.lua +++ b/prototypes/recipes/vonix/recipes-vonix-raising.lua @@ -1,451 +1,453 @@ -local FUN = require("__pycoalprocessing__/prototypes/functions/functions") - -------------------EGG MAKER------------------ - -FUN.autorecipes { - name = 'vonix-cub', - category = 'rc', - allowed_module_categories = {'vonix'}, - --module_limitations = 'vonix', - subgroup = 'py-alienlife-vonix', - order = 'c', - main_product = "vonix-eggs", - mats = - { - --py - { - ingredients = - { - {name = 'vonix', amount = 1}, - {name = 'caged-mukmoux', amount =1}, - {name = 'caged-auog', amount =1}, - {name = 'meat', amount =5}, - {name = 'guts', amount =10}, - {name = 'arqad-honey-barrel', amount = 2, return_barrel = true}, - }, - results = - { - {name = 'vonix-eggs', amount = 6}, - {name = 'cage', amount = 2}, - }, - crafting_speed = 45, - tech = 'vonix' - }, - --prod - { - ingredients = - { - {name = 'vonix', add_amount = 2}, - {name = 'bedding', amount = 3}, - {name = 'arqad-honey-barrel', add_amount = 2, return_barrel = true}, - }, - results = - { - {name = 'vonix-eggs', add_amount = 12}, - }, - crafting_speed = 40, - tech = 'vonix-mk02' - }, - --utility - { - ingredients = - { - {name = 'vonix', add_amount = 3}, - {name = 'arthurian-egg', amount = 5}, - {name = 'navens', amount =10}, - {name = 'arqad-honey-barrel', add_amount = 2, return_barrel = true}, - }, - results = - { - {name = 'vonix-eggs', add_amount = 18}, - }, - crafting_speed = 30, - tech = 'vonix-mk03' - }, - } -} - ---[[ - -----------------------PHEROMONES----------------------------- - { - ingredients = - { - {name = 'arthurian-egg',remove_item = true}, - {name = 'bedding',remove_item = true}, - {name = 'navens',remove_item = true}, - {name = 'meat',remove_item = true}, - {name = 'pheromones', amount =1}, - --{name = 'caged-auog', amount =4}, - --{name = 'caged-auog', amount = 1}, - }, - results = - { - {name = 'vonix-eggs',remove_item = true}, - {name = 'vonix-eggs', amount =10}, - }, - crafting_speed = 140, - tech = 'pheromones' - }, - --yotoi leaves - { - ingredients = - { - --{name = 'wood-seeds',remove_item = true}, - --{name = 'caged-mukmoux', amount =15}, - {name = 'meat', amount =10}, - }, - results = - { - - }, - crafting_speed = 120, - tech = 'pheromones' - }, - --bedding - { - ingredients = - { - {name = 'bedding', amount = 3}, - }, - results = - { - - }, - crafting_speed = 110, - tech = 'pheromones' - }, - --fiber - { - ingredients = - { - {name = 'arthurian-egg', amount = 5}, - }, - results = - { - - }, - crafting_speed = 100, - tech = 'pheromones' - }, - --navens - { - ingredients = - { - {name = 'navens', amount =5}, - - }, - results = - { - - }, - crafting_speed = 80, - tech = 'pheromones' - }, - } -} -]]-- - ---hatching - -RECIPE { - type = 'recipe', - name = 'vonix-grow-01', - category = 'incubator', - enabled = false, - energy_required = 24, - ingredients = { - {type = 'item', name = 'vonix-eggs', amount = 12}, - {type = 'item', name = 'meat', amount = 8}, - {type = 'fluid', name = 'water', amount = 200}, - }, - results = { - {type = 'item', name = 'vonix-cub', amount_min = 5, amount_max = 10}, - }, - main_product = "vonix-cub", - subgroup = 'py-alienlife-vonix', - order = 'a', -}:add_unlock("vonix") - ---Raising - -FUN.autorecipes { - name = 'vonix-raising', - category = 'vonix', - module_limitations = 'vonix', - subgroup = 'py-alienlife-vonix', - order = 'b', - main_product = "vonix", - mats = - { - --py - { - ingredients = - { - {name = 'vonix-cub', amount = 4}, - {name = 'caged-mukmoux', amount = 1}, - {name = 'meat', amount = 10}, - {name = 'guts', amount = 10}, - {name = 'arqad-honey-barrel', amount = 1, return_barrel = true}, - }, - results = - { - {name = 'vonix', amount_min = 1, amount_max = 4}, - }, - crafting_speed = 250, - tech = 'vonix' - }, - --prod - { - ingredients = - { - {name = 'vonix-cub', add_amount = 4}, - {name = 'bedding', amount = 3}, - {name = 'caged-auog', amount = 1}, - }, - results = - { - {name = 'vonix', amount_min = 3, amount_max = 8}, - }, - crafting_speed = 200, - tech = 'vonix-mk02' - }, - --utility - { - ingredients = - { - {name = 'vonix-cub', add_amount = 4}, - {name = 'arthurian-egg', amount = 5}, - {name = 'navens', amount =5}, - }, - results = - { - {name = 'vonix', amount_min = 6, amount_max = 12}, - }, - crafting_speed = 150, - tech = 'vonix-mk03' - }, - } -} - ---[[ - --gh - { - ingredients = - { - {name = 'gh', amount =1}, - - }, - results = - { - - }, - crafting_speed = 60, - tech = 'growth-hormone' - }, - --antiviral and gh - { - ingredients = - { - {name = 'antiviral', amount =1}, - }, - results = - { - {name = 'vonix', remove_item = true}, - {name = 'vonix', probability = 1, amount_min =2, amount_max =3}, - }, - crafting_speed = 60, - tech = 'antiviral' - }, - --antiviral - { - ingredients = - { - --{name = 'antiviral', amount =1}, - {name = 'gh',remove_item = true}, - }, - results = - { - - }, - crafting_speed = 180, - tech = 'antiviral' - }, - --nanochondria - { - ingredients = - { - {name = 'nanochondria', amount =1}, - --{name = 'antiviral',remove_item = true}, - }, - results = - { - {name = 'vonix', remove_item = true}, - {name = 'brain-vonix', amount = 2}, - }, - crafting_speed = 180, - tech = 'nanochondria' - }, - --nanochondria and gh - { - ingredients = - { - --{name = 'nanochondria', amount =1}, - {name = 'gh', amount =1}, - }, - results = - { - - }, - crafting_speed = 60, - tech = 'nanochondria' - }, - --rna anabolic - { - ingredients = - { - {name = 'gh',remove_item = true}, - {name = 'nanochondria',remove_item = true}, - {name = 'anabolic-rna', amount =1}, - }, - results = - { - {name = 'brain-vonix', remove_item = true}, - {name = 'meat-vonix', amount = 2}, - }, - crafting_speed = 180, - tech = 'anabolic-rna' - }, - --rna anabolic and gh - { - ingredients = - { - --{name = 'nanochondria', amount =1}, - {name = 'gh', amount =1}, - }, - results = - { - - }, - crafting_speed = 60, - tech = 'anabolic-rna' - }, - --antitumor - { - ingredients = - { - {name = 'gh',remove_item = true}, - {name = 'anabolic-rna',remove_item = true}, - {name = 'antitumor', amount =2}, - }, - results = - { - {name = 'meat-vonix', remove_item = true}, - {name = 'guts-vonix', amount = 1}, - }, - crafting_speed = 180, - tech = 'antitumor' - }, - --antitumor and gh - { - ingredients = - { - --{name = 'nanochondria', amount =1}, - {name = 'gh', amount =1}, - }, - results = - { - - }, - crafting_speed = 60, - tech = 'antitumor' - }, - --Recombinant Ery - { - ingredients = - { - {name = 'gh',remove_item = true}, - {name = 'antitumor',remove_item = true}, - {name = 'recombinant-ery', amount =1}, - }, - results = - { - {name = 'guts-vonix', remove_item = true}, - {name = 'blood-vonix', amount = 2}, - }, - crafting_speed = 180, - tech = 'recombinant-ery' - }, - --Recombinant Ery and gh - { - ingredients = - { - {name = 'gh', amount =1}, - }, - results = - { - - }, - crafting_speed = 60, - tech = 'recombinant-ery' - }, - --reca - { - ingredients = - { - {name = 'gh',remove_item = true}, - {name = 'recombinant-ery',remove_item = true}, - {name = 'reca', amount =1}, - }, - results = - { - {name = 'blood-vonix', remove_item = true}, - {name = 'skin-vonix', amount = 2}, - }, - crafting_speed = 180, - tech = 'reca' - }, - --reca and gh - { - ingredients = - { - {name = 'gh', amount =1}, - }, - results = - { - - }, - crafting_speed = 60, - tech = 'reca' - }, - --orexigenic - { - ingredients = - { - {name = 'gh',remove_item = true}, - {name = 'reca',remove_item = true}, - {name = 'orexigenic', amount =1}, - }, - results = - { - {name = 'skin-vonix', remove_item = true}, - {name = 'fat-vonix', amount = 2}, - }, - crafting_speed = 180, - tech = 'orexigenic' - }, - --orexigenic and gh - { - ingredients = - { - {name = 'gh', amount =1}, - }, - results = - { - - }, - crafting_speed = 60, - tech = 'orexigenic' - }, - } -} -]]-- +local FUN = require("__pycoalprocessing__/prototypes/functions/functions") + +------------------EGG MAKER------------------ + +FUN.autorecipes { + name = 'vonix-cub', + category = 'rc', + allowed_module_categories = {'vonix'}, + --module_limitations = 'vonix', + subgroup = 'py-alienlife-vonix', + order = 'c', + main_product = "vonix-eggs", + mats = + { + --py + { + ingredients = + { + {name = 'vonix', amount = 1}, + {name = 'caged-mukmoux', amount =1}, + {name = 'caged-auog', amount =1}, + {name = 'meat', amount =5}, + {name = 'guts', amount =10}, + {name = 'arqad-honey-barrel', amount = 2, return_barrel = true}, + }, + results = + { + {name = 'vonix-eggs', amount = 6}, + {name = 'cage', amount = 2}, + }, + crafting_speed = 45, + tech = 'vonix' + }, + --prod + { + ingredients = + { + {name = 'vonix', add_amount = 2}, + {name = 'bedding', amount = 3}, + {name = 'arqad-honey-barrel', add_amount = 2, return_barrel = true}, + }, + results = + { + {name = 'vonix-eggs', add_amount = 12}, + }, + crafting_speed = 40, + tech = 'vonix-mk02' + }, + --utility + { + ingredients = + { + {name = 'vonix', add_amount = 3}, + {name = 'arthurian-egg', amount = 5}, + {name = 'navens', amount =10}, + {name = 'arqad-honey-barrel', add_amount = 2, return_barrel = true}, + }, + results = + { + {name = 'vonix-eggs', add_amount = 18}, + }, + crafting_speed = 30, + tech = 'vonix-mk03' + }, + } +} + +--[[ + -----------------------PHEROMONES----------------------------- + { + ingredients = + { + {name = 'arthurian-egg',remove_item = true}, + {name = 'bedding',remove_item = true}, + {name = 'navens',remove_item = true}, + {name = 'meat',remove_item = true}, + {name = 'pheromones', amount =1}, + --{name = 'caged-auog', amount =4}, + --{name = 'caged-auog', amount = 1}, + }, + results = + { + {name = 'vonix-eggs',remove_item = true}, + {name = 'vonix-eggs', amount =10}, + }, + crafting_speed = 140, + tech = 'pheromones' + }, + --yotoi leaves + { + ingredients = + { + --{name = 'wood-seeds',remove_item = true}, + --{name = 'caged-mukmoux', amount =15}, + {name = 'meat', amount =10}, + }, + results = + { + + }, + crafting_speed = 120, + tech = 'pheromones' + }, + --bedding + { + ingredients = + { + {name = 'bedding', amount = 3}, + }, + results = + { + + }, + crafting_speed = 110, + tech = 'pheromones' + }, + --fiber + { + ingredients = + { + {name = 'arthurian-egg', amount = 5}, + }, + results = + { + + }, + crafting_speed = 100, + tech = 'pheromones' + }, + --navens + { + ingredients = + { + {name = 'navens', amount =5}, + + }, + results = + { + + }, + crafting_speed = 80, + tech = 'pheromones' + }, + } +} +]]-- + +--hatching + +RECIPE { + type = 'recipe', + name = 'vonix-grow-01', + category = 'incubator', + enabled = false, + energy_required = 24, + ingredients = { + {type = 'item', name = 'vonix-eggs', amount = 12}, + {type = 'item', name = 'meat', amount = 8}, + {type = 'fluid', name = 'water', amount = 200}, + }, + results = { + {type = 'item', name = 'vonix-cub', amount_min = 5, amount_max = 10}, + }, + main_product = "vonix-cub", + subgroup = 'py-alienlife-vonix', + order = 'a', +}:add_unlock("vonix") + +--Raising + +FUN.autorecipes { + name = 'vonix-raising', + category = 'vonix', + module_limitations = 'vonix', + subgroup = 'py-alienlife-vonix', + order = 'b', + main_product = "vonix", + mats = + { + --py + { + ingredients = + { + {name = 'vonix-cub', amount = 4}, + {name = 'caged-mukmoux', amount = 1}, + {name = 'meat', amount = 10}, + {name = 'guts', amount = 10}, + {name = 'arqad-honey-barrel', amount = 1, return_barrel = true}, + }, + results = + { + {name = 'vonix', amount_min = 1, amount_max = 4}, + {name = 'cage', amount = 1}, + }, + crafting_speed = 250, + tech = 'vonix' + }, + --prod + { + ingredients = + { + {name = 'vonix-cub', add_amount = 4}, + {name = 'bedding', amount = 3}, + {name = 'caged-auog', amount = 1}, + }, + results = + { + {name = 'vonix', amount_min = 3, amount_max = 8}, + {name = 'cage', amount = 1}, + }, + crafting_speed = 200, + tech = 'vonix-mk02' + }, + --utility + { + ingredients = + { + {name = 'vonix-cub', add_amount = 4}, + {name = 'arthurian-egg', amount = 5}, + {name = 'navens', amount =5}, + }, + results = + { + {name = 'vonix', amount_min = 6, amount_max = 12}, + }, + crafting_speed = 150, + tech = 'vonix-mk03' + }, + } +} + +--[[ + --gh + { + ingredients = + { + {name = 'gh', amount =1}, + + }, + results = + { + + }, + crafting_speed = 60, + tech = 'growth-hormone' + }, + --antiviral and gh + { + ingredients = + { + {name = 'antiviral', amount =1}, + }, + results = + { + {name = 'vonix', remove_item = true}, + {name = 'vonix', probability = 1, amount_min =2, amount_max =3}, + }, + crafting_speed = 60, + tech = 'antiviral' + }, + --antiviral + { + ingredients = + { + --{name = 'antiviral', amount =1}, + {name = 'gh',remove_item = true}, + }, + results = + { + + }, + crafting_speed = 180, + tech = 'antiviral' + }, + --nanochondria + { + ingredients = + { + {name = 'nanochondria', amount =1}, + --{name = 'antiviral',remove_item = true}, + }, + results = + { + {name = 'vonix', remove_item = true}, + {name = 'brain-vonix', amount = 2}, + }, + crafting_speed = 180, + tech = 'nanochondria' + }, + --nanochondria and gh + { + ingredients = + { + --{name = 'nanochondria', amount =1}, + {name = 'gh', amount =1}, + }, + results = + { + + }, + crafting_speed = 60, + tech = 'nanochondria' + }, + --rna anabolic + { + ingredients = + { + {name = 'gh',remove_item = true}, + {name = 'nanochondria',remove_item = true}, + {name = 'anabolic-rna', amount =1}, + }, + results = + { + {name = 'brain-vonix', remove_item = true}, + {name = 'meat-vonix', amount = 2}, + }, + crafting_speed = 180, + tech = 'anabolic-rna' + }, + --rna anabolic and gh + { + ingredients = + { + --{name = 'nanochondria', amount =1}, + {name = 'gh', amount =1}, + }, + results = + { + + }, + crafting_speed = 60, + tech = 'anabolic-rna' + }, + --antitumor + { + ingredients = + { + {name = 'gh',remove_item = true}, + {name = 'anabolic-rna',remove_item = true}, + {name = 'antitumor', amount =2}, + }, + results = + { + {name = 'meat-vonix', remove_item = true}, + {name = 'guts-vonix', amount = 1}, + }, + crafting_speed = 180, + tech = 'antitumor' + }, + --antitumor and gh + { + ingredients = + { + --{name = 'nanochondria', amount =1}, + {name = 'gh', amount =1}, + }, + results = + { + + }, + crafting_speed = 60, + tech = 'antitumor' + }, + --Recombinant Ery + { + ingredients = + { + {name = 'gh',remove_item = true}, + {name = 'antitumor',remove_item = true}, + {name = 'recombinant-ery', amount =1}, + }, + results = + { + {name = 'guts-vonix', remove_item = true}, + {name = 'blood-vonix', amount = 2}, + }, + crafting_speed = 180, + tech = 'recombinant-ery' + }, + --Recombinant Ery and gh + { + ingredients = + { + {name = 'gh', amount =1}, + }, + results = + { + + }, + crafting_speed = 60, + tech = 'recombinant-ery' + }, + --reca + { + ingredients = + { + {name = 'gh',remove_item = true}, + {name = 'recombinant-ery',remove_item = true}, + {name = 'reca', amount =1}, + }, + results = + { + {name = 'blood-vonix', remove_item = true}, + {name = 'skin-vonix', amount = 2}, + }, + crafting_speed = 180, + tech = 'reca' + }, + --reca and gh + { + ingredients = + { + {name = 'gh', amount =1}, + }, + results = + { + + }, + crafting_speed = 60, + tech = 'reca' + }, + --orexigenic + { + ingredients = + { + {name = 'gh',remove_item = true}, + {name = 'reca',remove_item = true}, + {name = 'orexigenic', amount =1}, + }, + results = + { + {name = 'skin-vonix', remove_item = true}, + {name = 'fat-vonix', amount = 2}, + }, + crafting_speed = 180, + tech = 'orexigenic' + }, + --orexigenic and gh + { + ingredients = + { + {name = 'gh', amount =1}, + }, + results = + { + + }, + crafting_speed = 60, + tech = 'orexigenic' + }, + } +} +]]-- diff --git a/prototypes/recipes/xeno/recipes-xeno-modules.lua b/prototypes/recipes/xeno/recipes-xeno-modules.lua index b5297be64..aee3acbd5 100644 --- a/prototypes/recipes/xeno/recipes-xeno-modules.lua +++ b/prototypes/recipes/xeno/recipes-xeno-modules.lua @@ -1,254 +1,257 @@ - ---Secondary Upgrade Recipes-- ---SUR-- ---WIP-- - ---mk02-- ---WIP-- - -RECIPE { - type = 'recipe', - name = 'xeno-mk02', - category = 'rc', - allowed_module_categories = {'xeno'}, - enabled = false, - energy_required = 30, - ingredients = { - {type = 'item', name = 'xeno', amount = 2}, - {type = 'item', name = 'caged-mukmoux', amount = 1}, - {type = 'item', name = 'bedding', amount = 4}, - {type = 'item', name = 'bones', amount = 10}, - {type = 'item', name = 'fish', amount = 10}, - {type = 'item', name = 'water-barrel', amount = 6}, - }, - results = { - {type = 'item', name = 'xeno-mk02', amount = 1, probability = 0.005}, - {type = 'item', name = 'empty-barrel', amount = 6}, - {type = 'item', name = 'xeno', amount = 1, probability = 0.5}, - }, - --main_product = "xeno-mk02", - icons = - { - {icon = "__pyalienlifegraphics2__/graphics/icons/c-mk02.png", icon_size = 64}, - {icon = '__pyalienlifegraphics__/graphics/icons/xeno.png', icon_size = 64, scale = 0.35}, - }, - icon_size = 64, - subgroup = 'py-alienlife-xeno', - order = 'za' -}:add_unlock("xeno-mk02") - ---mk03-- ---WIP-- - -RECIPE { - type = 'recipe', - name = 'xeno-mk03', - category = 'rc', - allowed_module_categories = {'xeno'}, - enabled = false, - energy_required = 30, - ingredients = { - {type = 'item', name = 'xeno', amount = 2}, - {type = 'item', name = 'alien-sample-03', amount = 1}, - {type = 'item', name = 'caged-mukmoux', amount = 1}, - {type = 'item', name = 'bedding', amount = 4}, - {type = 'item', name = 'bones', amount = 10}, - {type = 'item', name = 'fish', amount = 10}, - {type = 'item', name = 'water-barrel', amount = 6}, - }, - results = { - {type = 'item', name = 'xeno-mk03', amount = 1, probability = 0.004}, - {type = 'item', name = 'empty-barrel', amount = 6}, - {type = 'item', name = 'xeno', amount = 1, probability = 0.6}, - }, - --main_product = "xeno-mk03", - icons = - { - {icon = "__pyalienlifegraphics2__/graphics/icons/c-mk03.png", icon_size = 64}, - {icon = '__pyalienlifegraphics__/graphics/icons/xeno.png', icon_size = 64, scale = 0.35}, - }, - icon_size = 64, - subgroup = 'py-alienlife-xeno', - order = 'zb' -}:add_unlock("xeno-mk03") - ---mk04-- ---WIP-- - -RECIPE { - type = 'recipe', - name = 'xeno-mk04', - category = 'rc', - allowed_module_categories = {'xeno'}, - enabled = false, - energy_required = 30, - ingredients = { - {type = 'item', name = 'xeno', amount = 2}, - {type = 'item', name = 'zinc-finger-proteins', amount = 1}, - {type = 'item', name = 'caged-mukmoux', amount = 1}, - {type = 'item', name = 'bedding', amount = 4}, - {type = 'item', name = 'bones', amount = 10}, - {type = 'item', name = 'fish', amount = 10}, - {type = 'item', name = 'water-barrel', amount = 6}, - }, - results = { - {type = 'item', name = 'xeno-mk04', amount = 1, probability = 0.003}, - {type = 'item', name = 'empty-barrel', amount = 6}, - {type = 'item', name = 'xeno', amount = 1, probability = 0.7}, - }, - --main_product = "xeno-mk04", - icons = - { - {icon = "__pyalienlifegraphics2__/graphics/icons/c-mk04.png", icon_size = 64}, - {icon = '__pyalienlifegraphics__/graphics/icons/xeno.png', icon_size = 64, scale = 0.35}, - }, - icon_size = 64, - subgroup = 'py-alienlife-xeno', - order = 'zc' -}:add_unlock("xeno-mk04") - ---MK02 REPLICATOR--- - -RECIPE { - type = 'recipe', - name = 'xeno-mk02r', - category = 'bio-printer', - enabled = false, - energy_required = 120, - ingredients = { - {type = 'item', name = 'xeno-mk02', amount = 4}, - {type = 'item', name = 'xeno-codex-mk02', amount = 1}, - {type = 'item', name = 'animal-sample-01', amount = 2}, - {type = 'item', name = 'cdna', amount = 2}, - {type = 'item', name = 'strorix-unknown-sample', amount = 1}, - {type = 'fluid', name = 'sulfuric-acid', amount = 200}, - {type = 'fluid', name = 'mutant-enzymes', amount = 20}, - {type = 'fluid', name = 'xenogenic-cells', amount = 150}, - {type = 'item', name = 'bio-scafold', amount = 5}, - {type = 'item', name = 'adrenal-cortex', amount = 1}, - }, - results = { - {type = 'item', name = 'xeno-mk02', amount = 5}, - }, - icons = - { - {icon = '__pyalienlifegraphics__/graphics/icons/xeno.png'}, - {icon = "__pyalienlifegraphics__/graphics/icons/over-mk02.png", icon_size = 64}, - }, - icon_size = 64, - subgroup = 'py-alienlife-xeno', - order = 'za' -}:add_unlock("xeno-mk02") - -RECIPE { - type = 'recipe', - name = 'compile-xeno-codex', - category = 'data-array', - enabled = false, - energy_required = 30, - ingredients = { - {type = 'item', name = 'xeno-codex', amount = 1}, - {type = 'item', name = 'neuroprocessor', amount = 1}, - }, - results = { - {type = 'item', name = 'xeno-codex-mk02', amount = 1}, - }, -}:add_unlock("xeno-mk02") - ---MK03 REPLICATOR--- - -RECIPE { - type = 'recipe', - name = 'xeno-mk03r', - category = 'bio-printer', - enabled = false, - energy_required = 150, - ingredients = { - {type = 'item', name = 'xeno-mk03', amount = 4}, - {type = 'item', name = 'xeno-codex-mk03', amount = 1}, - {type = 'item', name = 'bio-scafold', amount = 8}, - {type = 'item', name = 'alien-sample-03', amount = 1}, - {type = 'item', name = 'alien-enzymes', amount = 1}, - {type = 'item', name = 'chimeric-proteins', amount = 1}, - {type = 'item', name = 'cdna', amount = 2}, - {type = 'fluid', name = 'psc', amount = 100}, - {type = 'fluid', name = 'tholins', amount = 50}, - {type = 'fluid', name = 'sulfuric-acid', amount = 200}, - - }, - results = { - {type = 'item', name = 'xeno-mk03', amount = 5}, - }, - icons = - { - {icon = '__pyalienlifegraphics__/graphics/icons/xeno.png'}, - {icon = "__pyalienlifegraphics__/graphics/icons/over-mk03.png", icon_size = 64}, - }, - icon_size = 64, - subgroup = 'py-alienlife-xeno', - order = 'za' -}:add_unlock("xeno-mk03") - - -RECIPE { - type = 'recipe', - name = 'compile-xeno-im', - category = 'data-array', - enabled = false, - energy_required = 30, - ingredients = { - {type = 'item', name = 'xeno-codex-mk02', amount = 1}, - {type = 'item', name = 'neuromorphic-chip', amount = 1}, - }, - results = { - {type = 'item', name = 'xeno-codex-mk03', amount = 1}, - }, -}:add_unlock("xeno-mk03") - ---MK04 REPLICATOR--- - -RECIPE { - type = 'recipe', - name = 'xeno-mk04r', - category = 'bio-printer', - enabled = false, - energy_required = 200, - ingredients = { - {type = 'item', name = 'xeno-mk04', amount = 4}, - {type = 'item', name = 'xeno-codex-mk04', amount = 1}, - {type = 'item', name = 'cdna', amount = 2}, - {type = 'item', name = 'bio-scafold', amount = 8}, - {type = 'item', name = 'nanochondria', amount = 1}, - {type = 'item', name = 'reca', amount = 1}, - {type = 'item', name = 'regolite-rock', amount = 10}, - {type = 'item', name = 'immunosupressants', amount = 1}, - {type = 'fluid', name = 'psc', amount = 100}, - {type = 'fluid', name = 'sulfuric-acid', amount = 250}, - }, - results = { - {type = 'item', name = 'xeno-mk04', amount = 5}, - }, - icons = - { - {icon = '__pyalienlifegraphics__/graphics/icons/xeno.png'}, - {icon = "__pyalienlifegraphics__/graphics/icons/over-mk04.png", icon_size = 64}, - }, - icon_size = 64, - subgroup = 'py-alienlife-xeno', - order = 'za' -}:add_unlock("xeno-mk04"):add_ingredient({type = 'fluid', name = 'crude-enzyme', amount = 50}) - -RECIPE { - type = 'recipe', - name = 'compile-xeno-ai', - category = 'data-array', - enabled = false, - energy_required = 30, - ingredients = { - {type = 'item', name = 'xeno-codex-mk03', amount = 1}, - {type = 'item', name = 'control-unit', amount = 1}, - }, - results = { - {type = 'item', name = 'xeno-codex-mk04', amount = 1}, - }, + +--Secondary Upgrade Recipes-- +--SUR-- +--WIP-- + +--mk02-- +--WIP-- + +RECIPE { + type = 'recipe', + name = 'xeno-mk02', + category = 'rc', + allowed_module_categories = {'xeno'}, + enabled = false, + energy_required = 30, + ingredients = { + {type = 'item', name = 'xeno', amount = 2}, + {type = 'item', name = 'caged-mukmoux', amount = 1}, + {type = 'item', name = 'bedding', amount = 4}, + {type = 'item', name = 'bones', amount = 10}, + {type = 'item', name = 'fish', amount = 10}, + {type = 'item', name = 'water-barrel', amount = 6}, + }, + results = { + {type = 'item', name = 'xeno-mk02', amount = 1, probability = 0.005}, + {type = 'item', name = 'empty-barrel', amount = 6}, + {type = 'item', name = 'xeno', amount = 1, probability = 0.5}, + {type = 'item', name = 'cage', amount = 1}, + }, + --main_product = "xeno-mk02", + icons = + { + {icon = "__pyalienlifegraphics2__/graphics/icons/c-mk02.png", icon_size = 64}, + {icon = '__pyalienlifegraphics__/graphics/icons/xeno.png', icon_size = 64, scale = 0.35}, + }, + icon_size = 64, + subgroup = 'py-alienlife-xeno', + order = 'za' +}:add_unlock("xeno-mk02") + +--mk03-- +--WIP-- + +RECIPE { + type = 'recipe', + name = 'xeno-mk03', + category = 'rc', + allowed_module_categories = {'xeno'}, + enabled = false, + energy_required = 30, + ingredients = { + {type = 'item', name = 'xeno', amount = 2}, + {type = 'item', name = 'alien-sample-03', amount = 1}, + {type = 'item', name = 'caged-mukmoux', amount = 1}, + {type = 'item', name = 'bedding', amount = 4}, + {type = 'item', name = 'bones', amount = 10}, + {type = 'item', name = 'fish', amount = 10}, + {type = 'item', name = 'water-barrel', amount = 6}, + }, + results = { + {type = 'item', name = 'xeno-mk03', amount = 1, probability = 0.004}, + {type = 'item', name = 'empty-barrel', amount = 6}, + {type = 'item', name = 'xeno', amount = 1, probability = 0.6}, + {type = 'item', name = 'cage', amount = 1}, + }, + --main_product = "xeno-mk03", + icons = + { + {icon = "__pyalienlifegraphics2__/graphics/icons/c-mk03.png", icon_size = 64}, + {icon = '__pyalienlifegraphics__/graphics/icons/xeno.png', icon_size = 64, scale = 0.35}, + }, + icon_size = 64, + subgroup = 'py-alienlife-xeno', + order = 'zb' +}:add_unlock("xeno-mk03") + +--mk04-- +--WIP-- + +RECIPE { + type = 'recipe', + name = 'xeno-mk04', + category = 'rc', + allowed_module_categories = {'xeno'}, + enabled = false, + energy_required = 30, + ingredients = { + {type = 'item', name = 'xeno', amount = 2}, + {type = 'item', name = 'zinc-finger-proteins', amount = 1}, + {type = 'item', name = 'caged-mukmoux', amount = 1}, + {type = 'item', name = 'bedding', amount = 4}, + {type = 'item', name = 'bones', amount = 10}, + {type = 'item', name = 'fish', amount = 10}, + {type = 'item', name = 'water-barrel', amount = 6}, + }, + results = { + {type = 'item', name = 'xeno-mk04', amount = 1, probability = 0.003}, + {type = 'item', name = 'empty-barrel', amount = 6}, + {type = 'item', name = 'xeno', amount = 1, probability = 0.7}, + {type = 'item', name = 'cage', amount = 1}, + }, + --main_product = "xeno-mk04", + icons = + { + {icon = "__pyalienlifegraphics2__/graphics/icons/c-mk04.png", icon_size = 64}, + {icon = '__pyalienlifegraphics__/graphics/icons/xeno.png', icon_size = 64, scale = 0.35}, + }, + icon_size = 64, + subgroup = 'py-alienlife-xeno', + order = 'zc' +}:add_unlock("xeno-mk04") + +--MK02 REPLICATOR--- + +RECIPE { + type = 'recipe', + name = 'xeno-mk02r', + category = 'bio-printer', + enabled = false, + energy_required = 120, + ingredients = { + {type = 'item', name = 'xeno-mk02', amount = 4}, + {type = 'item', name = 'xeno-codex-mk02', amount = 1}, + {type = 'item', name = 'animal-sample-01', amount = 2}, + {type = 'item', name = 'cdna', amount = 2}, + {type = 'item', name = 'strorix-unknown-sample', amount = 1}, + {type = 'fluid', name = 'sulfuric-acid', amount = 200}, + {type = 'fluid', name = 'mutant-enzymes', amount = 20}, + {type = 'fluid', name = 'xenogenic-cells', amount = 150}, + {type = 'item', name = 'bio-scafold', amount = 5}, + {type = 'item', name = 'adrenal-cortex', amount = 1}, + }, + results = { + {type = 'item', name = 'xeno-mk02', amount = 5}, + }, + icons = + { + {icon = '__pyalienlifegraphics__/graphics/icons/xeno.png'}, + {icon = "__pyalienlifegraphics__/graphics/icons/over-mk02.png", icon_size = 64}, + }, + icon_size = 64, + subgroup = 'py-alienlife-xeno', + order = 'za' +}:add_unlock("xeno-mk02") + +RECIPE { + type = 'recipe', + name = 'compile-xeno-codex', + category = 'data-array', + enabled = false, + energy_required = 30, + ingredients = { + {type = 'item', name = 'xeno-codex', amount = 1}, + {type = 'item', name = 'neuroprocessor', amount = 1}, + }, + results = { + {type = 'item', name = 'xeno-codex-mk02', amount = 1}, + }, +}:add_unlock("xeno-mk02") + +--MK03 REPLICATOR--- + +RECIPE { + type = 'recipe', + name = 'xeno-mk03r', + category = 'bio-printer', + enabled = false, + energy_required = 150, + ingredients = { + {type = 'item', name = 'xeno-mk03', amount = 4}, + {type = 'item', name = 'xeno-codex-mk03', amount = 1}, + {type = 'item', name = 'bio-scafold', amount = 8}, + {type = 'item', name = 'alien-sample-03', amount = 1}, + {type = 'item', name = 'alien-enzymes', amount = 1}, + {type = 'item', name = 'chimeric-proteins', amount = 1}, + {type = 'item', name = 'cdna', amount = 2}, + {type = 'fluid', name = 'psc', amount = 100}, + {type = 'fluid', name = 'tholins', amount = 50}, + {type = 'fluid', name = 'sulfuric-acid', amount = 200}, + + }, + results = { + {type = 'item', name = 'xeno-mk03', amount = 5}, + }, + icons = + { + {icon = '__pyalienlifegraphics__/graphics/icons/xeno.png'}, + {icon = "__pyalienlifegraphics__/graphics/icons/over-mk03.png", icon_size = 64}, + }, + icon_size = 64, + subgroup = 'py-alienlife-xeno', + order = 'za' +}:add_unlock("xeno-mk03") + + +RECIPE { + type = 'recipe', + name = 'compile-xeno-im', + category = 'data-array', + enabled = false, + energy_required = 30, + ingredients = { + {type = 'item', name = 'xeno-codex-mk02', amount = 1}, + {type = 'item', name = 'neuromorphic-chip', amount = 1}, + }, + results = { + {type = 'item', name = 'xeno-codex-mk03', amount = 1}, + }, +}:add_unlock("xeno-mk03") + +--MK04 REPLICATOR--- + +RECIPE { + type = 'recipe', + name = 'xeno-mk04r', + category = 'bio-printer', + enabled = false, + energy_required = 200, + ingredients = { + {type = 'item', name = 'xeno-mk04', amount = 4}, + {type = 'item', name = 'xeno-codex-mk04', amount = 1}, + {type = 'item', name = 'cdna', amount = 2}, + {type = 'item', name = 'bio-scafold', amount = 8}, + {type = 'item', name = 'nanochondria', amount = 1}, + {type = 'item', name = 'reca', amount = 1}, + {type = 'item', name = 'regolite-rock', amount = 10}, + {type = 'item', name = 'immunosupressants', amount = 1}, + {type = 'fluid', name = 'psc', amount = 100}, + {type = 'fluid', name = 'sulfuric-acid', amount = 250}, + }, + results = { + {type = 'item', name = 'xeno-mk04', amount = 5}, + }, + icons = + { + {icon = '__pyalienlifegraphics__/graphics/icons/xeno.png'}, + {icon = "__pyalienlifegraphics__/graphics/icons/over-mk04.png", icon_size = 64}, + }, + icon_size = 64, + subgroup = 'py-alienlife-xeno', + order = 'za' +}:add_unlock("xeno-mk04"):add_ingredient({type = 'fluid', name = 'crude-enzyme', amount = 50}) + +RECIPE { + type = 'recipe', + name = 'compile-xeno-ai', + category = 'data-array', + enabled = false, + energy_required = 30, + ingredients = { + {type = 'item', name = 'xeno-codex-mk03', amount = 1}, + {type = 'item', name = 'control-unit', amount = 1}, + }, + results = { + {type = 'item', name = 'xeno-codex-mk04', amount = 1}, + }, }:add_unlock("xeno-mk04") \ No newline at end of file diff --git a/prototypes/recipes/zungror/recipes-zungror-modules.lua b/prototypes/recipes/zungror/recipes-zungror-modules.lua index 3c91c30e5..c2093b6fe 100644 --- a/prototypes/recipes/zungror/recipes-zungror-modules.lua +++ b/prototypes/recipes/zungror/recipes-zungror-modules.lua @@ -24,6 +24,7 @@ RECIPE { {type = 'item', name = 'zungror-mk02', amount = 1, probability = 0.005}, {type = 'item', name = 'empty-barrel', amount = 15}, {type = 'item', name = 'zungror', amount = 1, probability = 0.5}, + {type = 'item', name = 'cage', amount = 1}, }, main_product = "zungror-mk02", icons = @@ -58,6 +59,7 @@ RECIPE { {type = 'item', name = 'zungror-mk03', amount = 1, probability = 0.004}, {type = 'item', name = 'empty-barrel', amount = 15}, {type = 'item', name = 'zungror', amount = 1, probability = 0.6}, + {type = 'item', name = 'cage', amount = 1}, }, main_product = "zungror-mk03", icons = @@ -249,4 +251,4 @@ RECIPE { results = { {type = 'item', name = 'zungror-codex-mk04', amount = 1}, }, -}:add_unlock("zungror-mk04") \ No newline at end of file +}:add_unlock("zungror-mk04")