515 lines
20 KiB
Lua

local recipe = data.raw.recipe
local technology = data.raw.technology
local function add_delivery(material)
local delivery = util.table.deepcopy(recipe["iron-delivery"])
delivery.name = material .. "-delivery"
delivery.result = material
data:extend({delivery})
end
local refurbish_chance = settings.startup["ERPTbaAB-refurbish-chance"].value
recipe["advanced-assembler"].ingredients = {
{"assembling-machine-6", 50},
{"advanced-processing-unit", 200},
-- {concrete, 400},
{"nitinol-alloy", 200},
-- {stack_inserter, 10},
{"titanium-plate", 400}
}
recipe["autonomous-space-mining-drone"].ingredients = {
{"assembling-machine-6", 100},
-- {"bob-mining-drill-4", 1000},
{"rocket-fuel", 200},
{"radioisotope-thermoelectric-generator", 100},
{"satellite-bus", 30},
{"satellite-communications", 1},
{"satellite-flight-computer", 50},
{"satellite-radar", 10},
{"satellite-thruster", 10}
-- {"stack-filter-inserter", 100}
}
recipe["ground-auto-fabricator"].ingredients = {{"ground-fabricator-component", 10}}
recipe["ground-telescope"].ingredients = {
-- {"concrete", 1000},
{"electric-engine-unit", 1000},
{"nitinol-alloy", 1000},
{"processing-unit", 500},
{"telescope-components", 1},
{"titanium-plate", 1000},
{"tungsten-pipe", 1000}
}
recipe["orbital-fabricator-component"].ingredients = {
{"advanced-assembler", 100},
-- {"angel-chemical-plant-4", 100},
{"autonomous-space-mining-drone", 10},
-- {"centrifuge", 250},
{"electric-furnace-3", 500},
{"oil-refinery-4", 50},
{"satellite-bus", 200},
{"satellite-communications", 500},
{"satellite-flight-computer", 250}
-- {"stack-filter-inserter", 500},
}
recipe["radioisotope-thermoelectric-generator"].ingredients = {
{"insulated-cable", 500},
{"rocket-control-unit", 100},
{"titanium-plate", 100},
{"uranium-fuel-cell", 100}
}
recipe["refurbish-fabricator-shuttle"].ingredients = {
{type = "fluid", name = "water", amount = 20000},
{"landed-fabricator-shuttle", 1},
{"orbital-fabricator-component", 1},
{"rocket-fuel", 2000}
-- {"stone-brick", 5000}
}
recipe["refurbish-fabricator-shuttle"].results = {
{
name = "fabricator-shuttle",
amount = 1,
probability = settings.startup["ERPTbaAB-refurbish-not-guaranteed"].value and refurbish_chance or 1
},
{"ground-fabricator-component", 1}
}
recipe["refurbish-mining-shuttle"].ingredients = {
{type = "fluid", name = "water", amount = 20000},
{"landed-mining-shuttle", 1},
{"rocket-fuel", 2000}
-- {"stone-brick", 2000}
}
recipe["refurbish-mining-shuttle"].results = {
{
name = "mining-shuttle",
amount = 1,
probability = settings.startup["ERPTbaAB-refurbish-not-guaranteed"].value and refurbish_chance or 1
},
{"random-dropship", 20000}
}
recipe["refurbish-space-shuttle"].ingredients = {
{type = "fluid", name = "water", amount = 20000},
{"landed-shuttle", 1},
{"rocket-fuel", 1000},
{"space-lab-payload", 1}
-- {"stone-brick", 500}
}
recipe["refurbish-space-shuttle"].results = {
{"station-science", 2},
{
name = "space-shuttle",
amount = 1,
probability = settings.startup["ERPTbaAB-refurbish-not-guaranteed"].value and refurbish_chance or 1
}
}
recipe["refurbish-spy-shuttle"].ingredients = {
{type = "fluid", name = "water", amount = 20000},
{"landed-spy-shuttle", 1},
{"rocket-fuel", 1000}
-- {"stone-brick", 1000},
}
recipe["refurbish-spy-shuttle"].results = {
{
name = "spy-shuttle",
amount = 1,
probability = settings.startup["ERPTbaAB-refurbish-not-guaranteed"].value and refurbish_chance or 1
},
{"planetary-data", 2}
}
recipe["satellite-battery"].ingredients = {
{"insulated-cable", 100},
{"large-accumulator-3", 150},
{"rocket-control-unit", 10},
{"power-switch", 1}
}
recipe["satellite-bus"].ingredients = {
{"electric-engine-unit", 50},
{"gilded-copper-cable", 1000},
{"low-density-structure", 200}
}
recipe["satellite-communications"].ingredients = {
-- {"beacon-3", 5},
-- {"bob-roboport-4", 5},
{"electric-engine-unit", 10},
{"low-density-structure", 20},
{"rocket-control-unit", 10}
}
recipe["satellite-flight-computer"].ingredients = {
{"advanced-processing-unit", 300},
{"green-wire", 500},
{"red-wire", 500},
{"rocket-control-unit", 100}
}
recipe["satellite-radar"].ingredients = {
{"electric-engine-unit", 10},
{"low-density-structure", 20},
-- {"radar-5", 100},
{"rocket-control-unit", 30}
}
recipe["satellite-solar-array"].ingredients = {
{"electric-engine-unit", 10},
{"gilded-copper-cable", 400},
{"insulated-cable", 500},
{"low-density-structure", 10},
{"power-switch", 1},
{"solar-panel-3", 10}
}
recipe["satellite-thruster"].ingredients = {
-- {"electric-engine-unit", 100},
-- {"engine-unit", 100},
{"low-density-structure", 50},
{"rocket-control-unit", 10},
{"rocket-fuel", 200}
}
recipe["shuttle-hull-recipe"].ingredients = {
{"satellite-battery", 40},
{"satellite-bus", 70},
{"satellite-communications", 20},
{"satellite-flight-computer", 50},
{"satellite-radar", 30},
{"satellite-solar-array", 50},
{"plastic-bar", 10000}
-- {"stone-brick", 50000}
}
recipe["space-lab-payload"].ingredients = {
-- {"lab-2", 200},
{"satellite-bus", 1},
{"satellite-battery", 1},
{"satellite-communications", 1},
{"satellite-flight-computer", 1},
{"satellite-solar-array", 1}
}
recipe["telescope-components"].ingredients = {
{"electric-engine-unit", 50},
-- {"lab-2", 100},
{"low-density-structure", 100},
-- {"radar-5", 2000},
{"satellite-flight-computer", 10}
-- {stone-brick, 10000},
}
bobmods.lib.tech.add_recipe_unlock("asteroid-mining", "random-dropship-unboxing")
bobmods.lib.tech.remove_recipe_unlock("asteroid-mining", "copper-dropship-unboxing")
bobmods.lib.tech.remove_recipe_unlock("asteroid-mining", "iron-dropship-unboxing")
data.raw["assembling-machine"]["advanced-assembler"].crafting_categories = {"satellite-crafting"}
data.raw["assembling-machine"]["ground-auto-fabricator"].energy_usage = "1GW"
add_delivery("aluminium-plate")
add_delivery("titanium-plate")
bobmods.lib.tech.add_recipe_unlock("orbital-autonomous-fabricators", "aluminium-plate-delivery")
bobmods.lib.tech.add_recipe_unlock("orbital-autonomous-fabricators", "titanium-plate-delivery")
recipe["aluminium-plate-delivery"].order = "b1"
recipe["copper-delivery"].order = "b2"
recipe["iron-delivery"].order = "b3"
recipe["steel-delivery"].order = "b4"
recipe["stone-delivery"].order = "b5"
recipe["titanium-plate-delivery"].order = "b6"
recipe["uranium-delivery"].order = "b7"
if mods["angelspetrochem"] and settings.startup["ERPTbaAB-use-petrochem-buildings"].value then
table.insert(recipe["orbital-fabricator-component"].ingredients, {"angels-chemical-plant-4", 100})
else
table.insert(recipe["orbital-fabricator-component"].ingredients, {"chemical-plant-4", 10})
end
if mods["angelsrefining"] and settings.startup["ERPTbaAB-give-refining-ores"].value then
recipe["random-dropship-unboxing"].results = {
{name = "angels-ore1", amount = 30, probability = 0.50},
{name = "angels-ore1", amount = 10, probability = 0.30},
{name = "angels-ore1", amount = 40, probability = 0.05},
{name = "angels-ore3", amount = 20, probability = 0.35},
{name = "angels-ore3", amount = 50, probability = 0.05},
{name = "angels-ore6", amount = 30, probability = 0.20},
{name = "angels-ore6", amount = 50, probability = 0.05},
{name = "angels-ore5", amount = 20, probability = 0.25},
{name = "angels-ore5", amount = 40, probability = 0.05},
{name = "angels-ore4", amount = 10, probability = 0.10},
{name = "angels-ore4", amount = 30, probability = 0.05},
{name = "angels-ore2", amount = 15, probability = 0.15},
{name = "angels-ore2", amount = 30, probability = 0.01},
mods["angelssmelting"] and {name = "platinum-ore", amount = 1, probability = 0.01},
mods["angelssmelting"] and {name = "platinum-ore", amount = 5, probability = 0.001}
}
end
if mods["bobinserters"] and settings.startup["ERPTbaAB-use-bobinserters"].value then
table.insert(recipe["advanced-assembler"].ingredients, {"express-stack-inserter", 10})
table.insert(recipe["autonomous-space-mining-drone"].ingredients, {"express-stack-filter-inserter", 100})
table.insert(recipe["orbital-fabricator-component"].ingredients, {"express-stack-filter-inserter", 500})
else
table.insert(recipe["advanced-assembler"].ingredients, {"stack-inserter", 10})
table.insert(recipe["autonomous-space-mining-drone"].ingredients, {"stack-filter-inserter", 100})
table.insert(recipe["orbital-fabricator-component"].ingredients, {"stack-filter-inserter", 500})
end
if mods["boblogistics"] and not settings.startup["bobmods-logistics-disableroboports"].value then
table.insert(recipe["satellite-communications"].ingredients, {"bob-roboport-4", 5})
else
table.insert(recipe["satellite-communications"].ingredients, {"bob-robochest-4", 4})
table.insert(recipe["satellite-communications"].ingredients, {"bob-logistic-zone-expander-4", 4})
table.insert(recipe["satellite-communications"].ingredients, {"bob-robo-charge-port-large-4", 3})
end
if mods["bobmodules"] then
table.insert(recipe["satellite-communications"].ingredients, {"beacon-3", 5})
else
table.insert(recipe["satellite-communications"].ingredients, {"beacon", 15})
end
if mods["bobrevamp"] and settings.startup["ERPTbaAB-use-heat-shield-tile"].value then
table.insert(recipe["shuttle-hull-recipe"].ingredients, {"heat-shield-tile", 25000})
table.insert(recipe["refurbish-fabricator-shuttle"].ingredients, {"heat-shield-tile", 2500})
table.insert(recipe["refurbish-mining-shuttle"].ingredients, {"heat-shield-tile", 1000})
table.insert(recipe["refurbish-space-shuttle"].ingredients, {"heat-shield-tile", 250})
table.insert(recipe["refurbish-spy-shuttle"].ingredients, {"heat-shield-tile", 500})
else
table.insert(recipe["shuttle-hull-recipe"].ingredients, {"stone-brick", 50000})
table.insert(recipe["refurbish-mining-shuttle"].ingredients, {"stone-brick", 2000})
table.insert(recipe["refurbish-space-shuttle"].ingredients, {"stone-brick", 500})
table.insert(recipe["refurbish-spy-shuttle"].ingredients, {"stone-brick", 1000})
end
if mods["bobtech"] and not mods["Sandros-fixes"] then
local lab = data.raw["lab"]
if lab["lab-2"] then
table.insert(lab["lab-2"].inputs, "planetary-data")
table.insert(lab["lab-2"].inputs, "station-science")
end
table.insert(recipe["space-lab-payload"].ingredients, {"lab-2", 200})
table.insert(recipe["telescope-components"].ingredients, {"lab-2", 100})
else
table.insert(recipe["space-lab-payload"].ingredients, {"lab", 200})
table.insert(recipe["telescope-components"].ingredients, {"lab", 100})
end
if mods["bobwarfare"] and recipe["radar-5"] then
table.insert(recipe["satellite-radar"].ingredients, {"radar-5", 100})
table.insert(recipe["telescope-components"].ingredients, {"radar-5", 2000})
else
table.insert(recipe["satellite-radar"].ingredients, {"radar", 100})
table.insert(recipe["telescope-components"].ingredients, {"radar", 2000})
end
if mods["bobvehicleequipment"] then
table.insert(recipe["satellite-thruster"].ingredients, {"vehicle-motor", 5})
else
table.insert(recipe["satellite-thruster"].ingredients, {"engine-unit", 150})
table.insert(recipe["satellite-thruster"].ingredients, {"electric-engine-unit", 150})
end
if mods["Clowns-AngelBob-Nuclear"] then
local thorium = util.table.deepcopy(recipe["radioisotope-thermoelectric-generator"])
thorium.name = "radioisotope-thermoelectric-generator-thorium"
thorium.ingredients = {
{"thorium-fuel-cell", 100},
{"insulated-cable", 500},
{"rocket-control-unit", 100},
{"titanium-plate", 100}
}
data:extend({thorium})
table.insert(
technology["extremely-advanced-material-processing"].effects,
{type = "unlock-recipe", recipe = "radioisotope-thermoelectric-generator-thorium"}
)
end
if mods["Clowns-Processing"] then
table.insert(recipe["orbital-fabricator-component"].ingredients, {"centrifuge-mk3", 250})
else
table.insert(recipe["orbital-fabricator-component"].ingredients, {"centrifuge", 250})
end
if mods["extendedangels"] and settings.startup["ERPTbaAB-use-titanium-concrete"].value then
table.insert(recipe["advanced-assembler"].ingredients, {"titanium-concrete-brick", 400})
table.insert(recipe["ground-telescope"].ingredients, {"titanium-concrete-brick", 1000})
table.insert(recipe["telescope-components"].ingredients, {"titanium-concrete-brick", 10000})
elseif mods["angelssmelting"] and mods["angelspetrochem"] then
table.insert(recipe["advanced-assembler"].ingredients, {"reinforced-concrete-brick", 400})
table.insert(recipe["ground-telescope"].ingredients, {"reinforced-concrete-brick", 1000})
table.insert(recipe["telescope-components"].ingredients, {"reinforced-concrete-brick", 10000})
else
table.insert(recipe["advanced-assembler"].ingredients, {"refined-concrete", 400})
table.insert(recipe["ground-telescope"].ingredients, {"refined-concrete", 1000})
table.insert(recipe["telescope-components"].ingredients, {"refined-concrete", 10000})
end
if mods["MoreScience"] then
table.insert(data.raw["lab"]["lab"].inputs, "planetary-data")
table.insert(data.raw["lab"]["lab"].inputs, "station-science")
table.insert(data.raw["lab"]["lab-mk2"].inputs, "planetary-data")
table.insert(data.raw["lab"]["lab-mk2"].inputs, "station-science")
end
if mods["Orbital Ion Cannon"] then
bobmods.lib.tech.add_prerequisite("orbital-ion-cannon", "robot-global-positioning-system-1")
bobmods.lib.tech.remove_prerequisite("orbital-ion-cannon", "rocket-silo")
technology["auto-targeting"].unit.count = 25000
technology["orbital-ion-cannon"].unit.count = 20000
end
if mods["pyhightech"] then
add_delivery("rare-earth-ore")
bobmods.lib.tech.add_recipe_unlock("orbital-autonomous-fabricators", "rare-earth-ore")
recipe["rare-earth-ore-delivery"].order = "b51"
end
-- SeaBlock has no mining drills and I couldn't activate them
if mods["SeaBlock"] then
table.insert(recipe["autonomous-space-mining-drone"].ingredients, {"electric-mining-drill", 1000})
else
table.insert(recipe["autonomous-space-mining-drone"].ingredients, {"bob-mining-drill-4", 1000})
end
if mods["SpaceMod"] and settings.startup["ERPTbaAB-integrate-spacex"].value then
bobmods.lib.tech.add_prerequisite("fusion-reactor", "orbital-assembler-power-problem")
bobmods.lib.tech.add_prerequisite("orbital-ai-core", "ftl-propulsion")
bobmods.lib.tech.add_prerequisite("orbital-autonomous-fabricators", "space-station-assembly")
bobmods.lib.tech.add_prerequisite("space-assembly", "space-assembler-theory")
bobmods.lib.tech.add_prerequisite("space-station-assembly", "astrometrics")
bobmods.lib.tech.add_prerequisite("space-station-assembly", "fuel-cells")
bobmods.lib.tech.add_prerequisite("space-station-assembly", "fusion-reactor")
bobmods.lib.tech.add_prerequisite("space-station-assembly", "habitation")
bobmods.lib.tech.add_prerequisite("space-station-assembly", "life-support-systems")
bobmods.lib.tech.add_prerequisite("space-station-assembly", "protection-fields")
bobmods.lib.tech.add_prerequisite("space-station-assembly", "space-casings")
bobmods.lib.tech.add_prerequisite("space-station-assembly", "space-thrusters")
bobmods.lib.tech.add_prerequisite("space-station-assembly", "spaceship-command")
bobmods.lib.tech.add_prerequisite("spy-shuttle", "space-telescope")
bobmods.lib.tech.remove_prerequisite("space-assembly", "rocket-silo")
bobmods.lib.tech.remove_prerequisite("space-station-assembly", "extremely-advanced-rocket-payloads")
table.insert(technology["space-assembly"].unit.ingredients, {"space-science-pack", 1})
table.insert(technology["space-assembly"].unit.ingredients, {"utility-science-pack", 1})
table.insert(technology["space-casings"].unit.ingredients, {"space-science-pack", 1})
table.insert(technology["space-casings"].unit.ingredients, {"utility-science-pack", 1})
table.insert(technology["space-construction"].unit.ingredients, {"space-science-pack", 1})
table.insert(technology["space-construction"].unit.ingredients, {"utility-science-pack", 1})
table.insert(technology["protection-fields"].unit.ingredients, {"space-science-pack", 1})
table.insert(technology["fusion-reactor"].unit.ingredients, {"space-science-pack", 1})
table.insert(technology["space-thrusters"].unit.ingredients, {"space-science-pack", 1})
table.insert(technology["space-thrusters"].unit.ingredients, {"utility-science-pack", 1})
table.insert(technology["fuel-cells"].unit.ingredients, {"space-science-pack", 1})
table.insert(technology["habitation"].unit.ingredients, {"space-science-pack", 1})
table.insert(technology["life-support-systems"].unit.ingredients, {"space-science-pack", 1})
table.insert(technology["spaceship-command"].unit.ingredients, {"space-science-pack", 1})
if mods["angelsbioprocessing"] then
-- log(serpent.block(recipe["life-support"]))
-- log(serpent.block(recipe["temperate-5-seed"]))
if recipe["life-support"].ingredients == nil then
table.insert(recipe["life-support"].normal.ingredients, {"desert-5-seed", 50})
table.insert(recipe["life-support"].normal.ingredients, {"swamp-5-seed", 50})
table.insert(recipe["life-support"].normal.ingredients, {"temperate-5-seed", 50})
table.insert(recipe["life-support"].expensive.ingredients, {"desert-5-seed", 100})
table.insert(recipe["life-support"].expensive.ingredients, {"swamp-5-seed", 100})
table.insert(recipe["life-support"].expensive.ingredients, {"temperate-5-seed", 100})
else
table.insert(recipe["life-support"].ingredients, {"desert-5-seed", 50})
table.insert(recipe["life-support"].ingredients, {"swamp-5-seed", 50})
table.insert(recipe["life-support"].ingredients, {"temperate-5-seed", 50})
end
end
if mods["bobrevamp"] and settings.startup["ERPTbaAB-use-heat-shield-tile"].value then
local productionCost = settings.startup["SpaceX-production"].value
if productionCost == nil then
productionCost = 1
end
recipe["hull-component"].ingredients = {
{"low-density-structure", 250 * productionCost},
{"heat-shield-tile", 100 * productionCost}
}
end
end
if mods["tater_spacestation"] then
bobmods.lib.tech.add_prerequisite("planet-to-space-transportation", "space-station-assembly")
bobmods.lib.tech.remove_prerequisite("planet-to-space-transportation", "rocket-silo")
bobmods.lib.tech.replace_prerequisite("space-automation", "automation-3", "automation-6")
table.insert(technology["planet-to-space-transportation"].unit.ingredients, {"logistic-science-pack", 1})
table.insert(technology["space-automation"].unit.ingredients, {"utility-science-pack", 1})
table.insert(technology["space-automation"].unit.ingredients, {"logistic-science-pack", 1})
table.insert(technology["space-automation"].unit.ingredients, {"military-science-pack", 1})
table.insert(technology["space-automation"].unit.ingredients, {"space-science-pack", 1})
technology["planet-to-space-transportation"].unit.count = 200000
technology["space-automation"].unit.count = 200000
recipe["space-assembling-machine"].ingredients = {
{"advanced-processing-unit", 200},
{"assembling-machine-6", 5},
{"low-density-structure", 10},
{"nitinol-alloy", 200},
{"titanium-plate", 400}
-- {concrete, 400}
-- {stack_inserter, 10}
}
recipe["space-elevator"].ingredients = {
{"advanced-processing-unit", 200},
{"electric-engine-unit", 100},
{"low-density-structure", 1000},
{"nitinol-alloy", 200},
{"satellite", 4},
{"titanium-plate", 400}
}
recipe["space-energy-input"].ingredients = {
{"advanced-processing-unit", 100},
{"large-accumulator-3", 10},
{"low-density-structure", 100},
{"titanium-plate", 200}
}
recipe["space-energy-output"].ingredients = {
{"advanced-processing-unit", 100},
{"large-accumulator-3", 5},
{"low-density-structure", 100},
{"titanium-plate", 200}
}
recipe["space-station-tile"].result_count = 5
if mods["bobinserters"] and settings.startup["ERPTbaAB-use-bobinserters"].value then
table.insert(recipe["space-assembling-machine"].ingredients, {"express-stack-inserter", 10})
else
table.insert(recipe["space-assembling-machine"].ingredients, {"stack-inserter", 10})
end
if mods["extendedangels"] and settings.startup["ERPTbaAB-use-titanium-concrete"].value then
table.insert(recipe["space-assembling-machine"].ingredients, {"titanium-concrete-brick", 400})
elseif mods["angelsrefining"] and mods["angelspetrochem"] then
table.insert(recipe["space-assembling-machine"].ingredients, {"reinforced-concrete-brick", 400})
else
table.insert(recipe["space-assembling-machine"].ingredients, {"refined-concrete", 400})
end
end