diff --git a/017_science/control.lua b/017_science/control.lua index 405d1d9..3b686fc 100644 --- a/017_science/control.lua +++ b/017_science/control.lua @@ -179,74 +179,216 @@ end script.on_configuration_changed(function() initialize() - if settings.startup["017-rocket-victory"].value and not settings.startup["017-techtree"].value then + local old_science = settings.startup["017-old-science"].value + game.print("Configuration change detected for this save. Determining technology and recipe availablilty...") + if not settings.startup["017-techtree"].value then for i, force in pairs(game.forces) do - if force.technologies["rocket-silo"].researched == true then - force.recipes["satellite"].enabled = true + local f_recipes = force.recipes + local f_technologies = force.technologies + local f_print = force.print + + f_print("0.17 techtree disabled.") + f_recipes["science-pack-2"].enabled = true + + if f_technologies["rocket-silo"].researched == true then + f_recipes["satellite"].enabled = true + f_print("rocket-silo researched for this force: satellite recipe auto-unlocked") + else + f_print("rocket-silo not researched: satellite recipe not auto-unlocking") + end + + if f_technologies["oil-processing"].researched == true then + f_recipes["lubricant"].enabled = true + f_print("oil-processing researched for this force: lubricant recipe auto-unlocked") + else + f_print("oil-processing not researched: lubricant recipe not auto-unlocking") + end + + if f_technologies["advanced-electronics"].researched == true then + f_recipes["17-chemical-science-pack"].enabled = true + if old_science then + f_recipes["science-pack-3"].enabled = true + end + f_print("advanced-electronics researched for this force: chemical-science-pack recipe auto-unlocked") + else + f_print("advanced-electronics not researched: chemical-science-pack recipe not auto-unlocking") + end + + if f_technologies["nuclear-power"].researched == true then + f_recipes["centrifuge"].enabled = true + f_recipes["uranium-processing"].enabled = true + f_print("nuclear-power researched for this force: centrifuge & uranium-processing recipes auto-unlocked") + else + f_print("nuclear-power not researched: recipes not auto-unlocking") + end + + if f_technologies["advanced-electronics-2"].researched == true then + f_recipes["rocket-control-unit"].enabled = true + f_recipes["17-low-density-structure"].enabled = true + f_recipes["17-utility-science-pack"].enabled = true + if old_science then + f_recipes["low-density-structure"].enabled = true + f_recipes["high-tech-science-pack"].enabled = true + end + f_print("advanced-electronics-2 researched for this force: utility-science-pack & low-density-structure & rocket-control-unit recipes auto-unlocked") + else + f_print("advanced-electronics-2 not researched: recipes not auto-unlocking") + end + + if f_technologies["advanced-material-processing-2"].researched == true then + f_recipes["rocket-fuel"].enabled = true + f_recipes["17-production-science-pack"].enabled = true + if old_science then + f_recipes["production-science-pack"].enabled = true + end + f_print("advanced-material-processing-2 researched for this force: rocket-fuel & production-science-pack recipes auto-unlocked") + else + f_print("advanced-material-processing-2 not researched: recipes not auto-unlocking") end end end if settings.startup["017-rocket-victory"].value and settings.startup["017-techtree"].value then for i, force in pairs(game.forces) do local get_input_count = force.item_production_statistics.get_input_count - if get_input_count("space-science-pack") > 0 then - force.recipes["satellite"].enabled = true - force.technologies["space-science-pack"].researched = true - force.print("force: " .. force.name .. " | space-science-pack tech unlocked | total produced for force: " .. get_input_count("space-science-pack")) - else - force.recipes["satellite"].enabled = false - force.technologies["space-science-pack"].researched = false - force.print("No space science produced by this force: keeping technology locked.") + if not force.technologies["space-science-pack"].researched == true then + if (get_input_count("satellite") > 0) or (get_input_count("space-science-pack") > 0) then + force.recipes["satellite"].enabled = true + force.technologies["space-science-pack"].researched = true + force.print("force: " .. force.name .. " | satellite recipe unlocked | total produced for force: " .. get_input_count("satellite")) + else + force.recipes["satellite"].enabled = false + force.technologies["space-science-pack"].researched = false + force.print("No space science OR satellites produced by this force: technology won't be auto-researched.") + end end end end if settings.startup["017-techtree"].value then for i, force in pairs(game.forces) do + local f_recipes = force.recipes + local f_technologies = force.technologies + local f_print = force.print local get_input_count = force.item_production_statistics.get_input_count - if get_input_count("science-pack-2") > 0 then - force.recipes["science-pack-2"].enabled = true - force.technologies["logistics-science-pack"].researched = true - force.print("force: " .. force.name .. " | logistics-science-pack tech unlocked | total produced for force: " .. get_input_count("science-pack-2")) - else - force.recipes["science-pack-2"].enabled = false - force.technologies["logistics-science-pack"].researched = false - force.print("No logistics science produced by this force: keeping technology locked.") + local get_fluid_input_count = force.fluid_production_statistics.get_input_count + + f_print("0.17 techtree enabled.") + + if not f_technologies["logistics-science-pack"].researched == true then + if get_input_count("science-pack-2") > 0 then + f_recipes["science-pack-2"].enabled = true + f_technologies["logistics-science-pack"].researched = true + f_print("force: " .. force.name .. " | logistics-science-pack recipe unlocked | total produced for force: " .. get_input_count("science-pack-2")) + else + f_recipes["science-pack-2"].enabled = false + f_technologies["logistics-science-pack"].researched = false + f_print("No logistics science produced by this force: technology won't be auto-researched.") + end end - if get_input_count("science-pack-3") > 0 then - force.recipes["science-pack-3"].enabled = true - force.recipes["17-chemical-science-pack"].enabled = true - force.technologies["chemical-science-pack"].researched = true - force.print("force: " .. force.name .. " | chemical-science-pack tech unlocked | total produced for force: " .. get_input_count("science-pack-3")) - else - force.recipes["science-pack-3"].enabled = false - force.recipes["17-chemical-science-pack"].enabled = false - force.technologies["chemical-science-pack"].researched = false - force.print("No chemical science produced by this force: keeping technology locked.") + if not f_technologies["chemical-science-pack"].researched == true then + if get_input_count("science-pack-3") > 0 then + f_recipes["science-pack-3"].enabled = true + f_recipes["17-chemical-science-pack"].enabled = true + f_technologies["chemical-science-pack"].researched = true + f_print("force: " .. force.name .. " | chemical-science-pack recipe unlocked | total produced for force: " .. get_input_count("science-pack-3")) + else + f_recipes["science-pack-3"].enabled = false + f_recipes["17-chemical-science-pack"].enabled = false + f_technologies["chemical-science-pack"].researched = false + f_print("No chemical science produced by this force: technology won't be auto-researched.") + end end - if get_input_count("production-science-pack") > 0 then - force.recipes["production-science-pack"].enabled = true - force.recipes["17-production-science-pack"].enabled = true - force.technologies["production-science-pack"].researched = true - force.print("force: " .. force.name .. " | production-science-pack tech unlocked | total produced for force: " .. get_input_count("production-science-pack")) - else - force.recipes["production-science-pack"].enabled = false - force.recipes["17-production-science-pack"].enabled = false - force.technologies["production-science-pack"].researched = false - force.print("No production science produced by this force: keeping technology locked.") + if not f_technologies["production-science-pack"].researched == true then + if get_input_count("production-science-pack") > 0 then + f_recipes["production-science-pack"].enabled = true + f_recipes["17-production-science-pack"].enabled = true + f_technologies["production-science-pack"].researched = true + f_print("force: " .. force.name .. " | production-science-pack recipe unlocked | total produced for force: " .. get_input_count("production-science-pack")) + else + f_recipes["production-science-pack"].enabled = false + f_recipes["17-production-science-pack"].enabled = false + f_technologies["production-science-pack"].researched = false + f_print("No production science produced by this force: technology won't be auto-researched.") + end end - if get_input_count("high-tech-science-pack") > 0 then - force.recipes["high-tech-science-pack"].enabled = true - force.recipes["17-utility-science-pack"].enabled = true - force.technologies["utility-science-pack"].researched = true - force.print("force: " .. force.name .. " | high-tech-science-pack tech unlocked | total produced for force: " .. get_input_count("high-tech-science-pack")) - else - force.recipes["high-tech-science-pack"].enabled = false - force.recipes["17-utility-science-pack"].enabled = false - force.technologies["utility-science-pack"].researched = false - force.print("No utility science produced by this force: keeping technology locked.") + if not f_technologies["utility-science-pack"].researched == true then + if get_input_count("high-tech-science-pack") > 0 then + f_recipes["high-tech-science-pack"].enabled = true + f_recipes["17-utility-science-pack"].enabled = true + f_technologies["utility-science-pack"].researched = true + f_print("force: " .. force.name .. " | high-tech-science-pack recipe unlocked | total produced for force: " .. get_input_count("high-tech-science-pack")) + else + f_recipes["high-tech-science-pack"].enabled = false + f_recipes["17-utility-science-pack"].enabled = false + f_technologies["utility-science-pack"].researched = false + f_print("No utility science produced by this force: technology won't be auto-researched.") + end + end + + if not f_technologies["lubricant"].researched == true then + if get_fluid_input_count("lubricant") > 0 then + f_recipes["lubricant"].enabled = true + f_technologies["lubricant"].researched = true + f_print("force: " .. force.name .. " | lubricant recipe unlocked | total produced for force: " .. get_fluid_input_count("lubricant")) + else + f_recipes["lubricant"].enabled = false + f_technologies["lubricant"].researched = false + f_print("No lubricant produced by this force: technology won't be auto-researched.") + end + end + + if not f_technologies["rocket-fuel"].researched == true then + if get_input_count("rocket-fuel") > 0 then + f_recipes["rocket-fuel"].enabled = true + f_technologies["rocket-fuel"].researched = true + f_print("force: " .. force.name .. " | rocket-fuel recipe unlocked | total produced for force: " .. get_input_count("rocket-fuel")) + else + f_recipes["rocket-fuel"].enabled = false + f_technologies["rocket-fuel"].researched = false + f_print("No rocket-fuel produced by this force: technology won't be auto-researched.") + end + end + + if not f_technologies["low-density-structure"].researched == true then + if get_input_count("low-density-structure") > 0 then + f_recipes["low-density-structure"].enabled = true + f_recipes["17-low-density-structure"].enabled = true + f_technologies["low-density-structure"].researched = true + f_print("force: " .. force.name .. " | low-density-structure recipe unlocked | total produced for force: " .. get_input_count("low-density-structure")) + else + f_recipes["low-density-structure"].enabled = false + f_recipes["17-low-density-structure"].enabled = false + f_technologies["low-density-structure"].researched = false + f_print("No low-density-structure produced by this force: technology won't be auto-researched.") + end + end + + if not f_technologies["rocket-control-unit"].researched == true then + if get_input_count("rocket-control-unit") > 0 then + f_recipes["rocket-control-unit"].enabled = true + f_technologies["rocket-control-unit"].researched = true + f_print("force: " .. force.name .. " | rocket-control-unit recipe unlocked | total produced for force: " .. get_input_count("rocket-control-unit")) + else + f_recipes["rocket-control-unit"].enabled = false + f_technologies["rocket-control-unit"].researched = false + f_print("No rocket-control-unit produced by this force: technology won't be auto-researched.") + end + end + + if not f_technologies["uranium-enrichment"].researched == true then + if get_input_count("centrifuge") > 0 or f_technologies["nuclear-power"].researched == true then + f_recipes["centrifuge"].enabled = true + f_recipes["uranium-processing"].enabled = true + f_technologies["uranium-enrichment"].researched = true + f_print("force: " .. force.name .. " | uranium-enrichment recipe unlocked | total centrifuges produced by force: " .. get_input_count("centrifuge")) + else + f_recipes["centrifuge"].enabled = false + f_recipes["uranium-processing"].enabled = false + f_technologies["uranium-enrichment"].researched = false + f_print("No centrifuges produced by this force AND nuclear-power not researched: technology won't be auto-researched.") + end end end end diff --git a/017_science/data-updates.lua b/017_science/data-updates.lua index 13d0d2f..0bbcd8f 100644 --- a/017_science/data-updates.lua +++ b/017_science/data-updates.lua @@ -58,11 +58,13 @@ end local r_effects = data.raw["technology"]["rocket-silo"].effects --remove the duplicate LDS effect in rocket-silo research for _=1, #r_effects do - if r_effects[_].type == "unlock-recipe" and (r_effects[_].recipe == "low-density-structure" or r_effects[_].recipe == "rocket-fuel" or r_effects[_].recipe == "rocket-control-unit") then - r_effects[_] = nil - elseif settings.startup["017-techtree"].value and settings.startup["017-rocket-victory"].value then - if r_effects[_].type == "unlock-recipe" and r_effects[_].recipe == "satellite" then + if r_effects[_] then + if r_effects[_].type == "unlock-recipe" and (r_effects[_].recipe == "low-density-structure" or r_effects[_].recipe == "rocket-fuel" or r_effects[_].recipe == "rocket-control-unit") then r_effects[_] = nil + elseif settings.startup["017-techtree"].value and settings.startup["017-rocket-victory"].value then + if r_effects[_].type == "unlock-recipe" and r_effects[_].recipe == "satellite" then + r_effects[_] = nil + end end end end @@ -81,8 +83,46 @@ if settings.startup["017-pack-type-rebalancing"].value then remove_science(data.raw["technology"]["logistic-system"].unit.ingredients, "production-science-pack") end -if settings.startup["017-techtree"].value then - prerequisites(data.raw["technology"]["rocket-silo"].prerequisites, "rocket-speed-5", nil) +if settings.startup["017-techtree"].value then + local data_technology = data.raw["technology"] + + local removing = { + {data_technology["oil-processing"].effects, "lubricant"}, + {data_technology["nuclear-power"].effects, "centrifuge"}, + {data_technology["nuclear-power"].effects, "uranium-processing"}, + } + for j=1, #removing do + local effect_ = removing[j][1] + local recipe_ = removing[j][2] + for i=1, #effect_ do + if effect_[i] then + if effect_[i].type == "unlock-recipe" and effect_[i].recipe == recipe_ then + effect_[i] = nil + end + end + end + end + + --misc. techtree changes + local engine = data_technology["electric-engine"].prerequisites + local rocket_silo = data_technology["rocket-silo"].prerequisites + local kovarex_process = data_technology["kovarex-enrichment-process"].prerequisites + local logistics = data_technology["logistics-3"].prerequisites + local fission = data_technology["nuclear-power"] + prerequisites(rocket_silo, "rocket-speed-5", nil) + prerequisites(engine, "advanced-electronics", nil) + engine[#engine+1] = "lubricant" + rocket_silo[#rocket_silo+1] = "rocket-fuel" + rocket_silo[#rocket_silo+1] = "rocket-control-unit" + rocket_silo[#rocket_silo+1] = "low-density-structure" + prerequisites(kovarex_process, "nuclear-power", nil) + kovarex_process[#kovarex_process+1] = "rocket-fuel" + kovarex_process[#kovarex_process+1] = "uranium-enrichment" + logistics[#logistics+1] = "lubricant" + fission.prerequisites = {"uranium-enrichment"} + fission.unit.time = settings.startup["017-nuclear-power-energy"].value + fission.unit.count = settings.startup["017-nuclear-power-cost"].value + data.raw["recipe"]["science-pack-2"].enabled = false if settings.startup["017-old-science"].value and settings.startup["017-techtree"].value then @@ -91,22 +131,25 @@ if settings.startup["017-techtree"].value then {"advanced-material-processing-2", "production-science-pack"}, {"advanced-electronics-2", "high-tech-science-pack"} } - - data.raw["technology"]["chemical-science-pack"].effects = { + data_technology["chemical-science-pack"].effects = { {type = "unlock-recipe", recipe = "science-pack-3"}, {type = "unlock-recipe", recipe = "17-chemical-science-pack"} } - data.raw["technology"]["production-science-pack"].effects = { + data_technology["production-science-pack"].effects = { {type = "unlock-recipe", recipe = "production-science-pack"}, {type = "unlock-recipe", recipe = "17-production-science-pack"} } - data.raw["technology"]["utility-science-pack"].effects = { + data_technology["utility-science-pack"].effects = { {type = "unlock-recipe", recipe = "high-tech-science-pack"}, {type = "unlock-recipe", recipe = "17-utility-science-pack"} } + data_technology["low-density-structure"].effects = { + {type = "unlock-recipe", recipe = "low-density-structure"}, + {type = "unlock-recipe", recipe = "17-low-density-structure"} + } for i=1, #remove_effect_table do - local effects = data.raw["technology"][remove_effect_table[i][1]].effects + local effects = data_technology[remove_effect_table[i][1]].effects for _=1, #effects do if effects[_] then if effects[_].type == "unlock-recipe" and effects[_].recipe == remove_effect_table[i][2] then diff --git a/017_science/data.lua b/017_science/data.lua index 04a2d2d..45184b9 100644 --- a/017_science/data.lua +++ b/017_science/data.lua @@ -2,17 +2,20 @@ require("recipe") require("technology") table.insert(data.raw["technology"]["military-2"].effects, {type = "unlock-recipe",recipe = "17-military-science-pack"}) + if not settings.startup["017-techtree"].value then table.insert(data.raw["technology"]["advanced-electronics"].effects, {type = "unlock-recipe",recipe = "17-chemical-science-pack"}) table.insert(data.raw["technology"]["advanced-material-processing-2"].effects, {type = "unlock-recipe",recipe = "17-production-science-pack"}) table.insert(data.raw["technology"]["advanced-electronics-2"].effects, {type = "unlock-recipe",recipe = "17-utility-science-pack"}) + + table.insert(data.raw["technology"]["advanced-electronics-2"].effects, {type = "unlock-recipe",recipe = "rocket-control-unit"}) + table.insert(data.raw["technology"]["advanced-electronics-2"].effects, {type = "unlock-recipe",recipe = "17-low-density-structure"}) --LDS unlock for pre-rocket bases + table.insert(data.raw["technology"]["advanced-material-processing-2"].effects, {type = "unlock-recipe",recipe = "rocket-fuel"}) + if settings.startup["017-old-science"].value then + table.insert(data.raw["technology"]["advanced-electronics-2"].effects, {type = "unlock-recipe",recipe = "low-density-structure"}) + end end -table.insert(data.raw["technology"]["advanced-electronics-2"].effects, {type = "unlock-recipe",recipe = "rocket-control-unit"}) - -table.insert(data.raw["technology"]["advanced-electronics-2"].effects, {type = "unlock-recipe",recipe = "17-low-density-structure"}) --LDS unlock for pre-rocket bases - -table.insert(data.raw["technology"]["advanced-material-processing-2"].effects, {type = "unlock-recipe",recipe = "rocket-fuel"}) if not settings.startup["017-old-science"].value then local function hide(name, technology) @@ -33,7 +36,6 @@ if not settings.startup["017-old-science"].value then data.raw["recipe"]["low-density-structure"].normal.hidden = true data.raw["recipe"]["low-density-structure"].expensive.hidden = true elseif settings.startup["017-old-science"].value then - table.insert(data.raw["technology"]["advanced-electronics-2"].effects, {type = "unlock-recipe",recipe = "low-density-structure"}) data.raw["recipe"]["science-pack-3"].hidden = false data.raw["recipe"]["military-science-pack"].hidden = false data.raw["recipe"]["production-science-pack"].hidden = false diff --git a/017_science/graphics/technology/lubricant.png b/017_science/graphics/technology/lubricant.png new file mode 100644 index 0000000..0b3f6ec Binary files /dev/null and b/017_science/graphics/technology/lubricant.png differ diff --git a/017_science/graphics/technology/rocketcontrols.png b/017_science/graphics/technology/rocketcontrols.png new file mode 100644 index 0000000..b9186cd Binary files /dev/null and b/017_science/graphics/technology/rocketcontrols.png differ diff --git a/017_science/graphics/technology/rocketfuel.png b/017_science/graphics/technology/rocketfuel.png new file mode 100644 index 0000000..04325c3 Binary files /dev/null and b/017_science/graphics/technology/rocketfuel.png differ diff --git a/017_science/graphics/technology/rocketstructure.png b/017_science/graphics/technology/rocketstructure.png new file mode 100644 index 0000000..8f33d76 Binary files /dev/null and b/017_science/graphics/technology/rocketstructure.png differ diff --git a/017_science/graphics/technology/uraniumenrichment.png b/017_science/graphics/technology/uraniumenrichment.png new file mode 100644 index 0000000..0dff8a0 Binary files /dev/null and b/017_science/graphics/technology/uraniumenrichment.png differ diff --git a/017_science/info.json b/017_science/info.json index 329c95f..c1d40bb 100644 --- a/017_science/info.json +++ b/017_science/info.json @@ -1,6 +1,6 @@ { "name": "017_science", - "version": "0.0.18", + "version": "0.1.0", "factorio_version": "0.16", "title": "0.17 science conversion", "author": "npc_strider(morley376)", diff --git a/017_science/locale/en/base.cfg b/017_science/locale/en/base.cfg index a8b766f..c45e59d 100644 --- a/017_science/locale/en/base.cfg +++ b/017_science/locale/en/base.cfg @@ -5,6 +5,11 @@ chemical-science-pack=Chemical science pack production-science-pack=Production science pack utility-science-pack=Utility science pack space-science-pack=Space science pack +lubricant=Lubricant +uranium-enrichment=Uranium enrichment +rocket-fuel=Rocket fuel +low-density-structure=Low density structure +rocket-control-unit=Rocket control unit [item-name] science-pack-1=Automation science pack @@ -34,11 +39,23 @@ high-tech-science-pack=Utility science pack 017-purple-cost=Production science pack technology cost 017-gold-cost=Utility science pack technology cost 017-nasa-cost=Space science pack technology cost +017-lubricant-cost=Lubricant technology cost +017-rocket-fuel-cost=Rocket fuel technology cost +017-rocket-structure-cost=Low density structure technology cost +017-rocket-control-cost=Rocket control unit technology cost +017-uranium-enrichment-cost=Uranium enrichment technology cost +017-nuclear-power-cost=Nuclear power technology cost 017-green-energy=Logistics science pack technology time-per-unit 017-chem-energy=Chemical science pack technology time-per-unit 017-purple-energy=Production science pack technology time-per-unit 017-gold-energy=Utility science pack technology time-per-unit 017-nasa-energy=Space science pack technology time-per-unit +017-lubricant-energy=Lubricant research time-per-unit +017-rocket-fuel-energy=Rocket fuel research time-per-unit +017-rocket-structure-energy=Low density structure research time-per-unit +017-rocket-control-energy=Rocket control unit research time-per-unit +017-uranium-enrichment-energy=Uranium enrichment research time-per-unit +017-nuclear-power-energy=Nuclear power research time-per-unit [mod-setting-description] 017-drill=(Default enabled) Toggle FFF-266 mining changes (removed hardness). This mod makes all vanilla ore hardness = 1 and makes the burner-mining-drill mining_power = 3, which may break modded ore gating. @@ -61,8 +78,20 @@ high-tech-science-pack=Utility science pack 017-purple-cost=(Default 250, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Default based off advanced-material-processing-2 difficulty. 017-gold-cost=(Default 250, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Default based off advanced-electronics-2 difficulty. 017-nasa-cost=(Default 5000, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Default based off atomic-bomb technology difficulty. +017-lubricant-cost=(Default 100, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Default based off electric-engine technology difficulty. +017-rocket-fuel-cost=(Default 100, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Default based off engine technology difficulty. +017-rocket-structure-cost=(Default 200, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Default based off plastics technology difficulty. +017-rocket-control-cost=(Default 250, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Default based off advanced-electronics-2 technology difficulty. +017-uranium-enrichment-cost=(Default 500, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Default based off nuclear-power cost (halved). +017-nuclear-power-cost=(Default 500, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Default based off nuclear-power cost (halved). 017-green-energy=(Default 5, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Amount of time to research one unit of this technology. 017-chem-energy=(Default 15, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Amount of time to research one unit of this technology. 017-purple-energy=(Default 30, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Amount of time to research one unit of this technology. 017-gold-energy=(Default 30, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Amount of time to research one unit of this technology. 017-nasa-energy=(Default 60, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Amount of time to research one unit of this technology. +017-lubricant-energy=(Default 30, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Amount of time to research one unit of this technology. +017-rocket-fuel-energy=(Default 30, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Amount of time to research one unit of this technology. +017-rocket-structure-energy=(Default 30, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Amount of time to research one unit of this technology. +017-rocket-control-energy=(Default 30, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Amount of time to research one unit of this technology. +017-uranium-enrichment-energy=(Default 30, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Amount of time to research one unit of this technology. +017-nuclear-power-energy=(Default 30, Min 0, Max INF.) This value is NOT official and is an estimate based on the difficulty of similar technologies. Amount of time to research one unit of this technology. diff --git a/017_science/settings.lua b/017_science/settings.lua index dcadc00..db783e2 100644 --- a/017_science/settings.lua +++ b/017_science/settings.lua @@ -109,6 +109,7 @@ data:extend( default_value = true, order = "npc-mf" }, + --costs { type = "int-setting", name = "017-green-cost", @@ -149,6 +150,55 @@ data:extend( default_value = 5000, order = "npc-ne" }, + { + type = "int-setting", + name = "017-lubricant-cost", + setting_type = "startup", + minimum_value = 0, + default_value = 100, + order = "npc-nf" + }, + { + type = "int-setting", + name = "017-rocket-fuel-cost", + setting_type = "startup", + minimum_value = 0, + default_value = 100, + order = "npc-ng" + }, + { + type = "int-setting", + name = "017-rocket-structure-cost", + setting_type = "startup", + minimum_value = 0, + default_value = 200, + order = "npc-nh" + }, + { + type = "int-setting", + name = "017-rocket-control-cost", + setting_type = "startup", + minimum_value = 0, + default_value = 250, + order = "npc-ni" + }, + { + type = "int-setting", + name = "017-uranium-enrichment-cost", + setting_type = "startup", + minimum_value = 0, + default_value = 500, + order = "npc-nj" + }, + { + type = "int-setting", + name = "017-nuclear-power-cost", + setting_type = "startup", + minimum_value = 0, + default_value = 500, + order = "npc-nk" + }, + --energies { type = "int-setting", name = "017-green-energy", @@ -188,5 +238,53 @@ data:extend( minimum_value = 0, default_value = 60, order = "npc-oe" + }, + { + type = "int-setting", + name = "017-lubricant-energy", + setting_type = "startup", + minimum_value = 0, + default_value = 30, + order = "npc-of" + }, + { + type = "int-setting", + name = "017-rocket-fuel-energy", + setting_type = "startup", + minimum_value = 0, + default_value = 30, + order = "npc-og" + }, + { + type = "int-setting", + name = "017-rocket-structure-energy", + setting_type = "startup", + minimum_value = 0, + default_value = 30, + order = "npc-oh" + }, + { + type = "int-setting", + name = "017-rocket-control-energy", + setting_type = "startup", + minimum_value = 0, + default_value = 30, + order = "npc-oi" + }, + { + type = "int-setting", + name = "017-uranium-enrichment-energy", + setting_type = "startup", + minimum_value = 0, + default_value = 30, + order = "npc-oj" + }, + { + type = "int-setting", + name = "017-nuclear-power-energy", + setting_type = "startup", + minimum_value = 0, + default_value = 30, + order = "npc-ok" } }) \ No newline at end of file diff --git a/017_science/technology.lua b/017_science/technology.lua index d4ee3d6..d8bbb6d 100644 --- a/017_science/technology.lua +++ b/017_science/technology.lua @@ -91,6 +91,121 @@ data:extend( time = settings.startup["017-gold-energy"].value }, order = "e-e-e" + }, + { + type = "technology", + name = "lubricant", + icon_size = 128, + icon = "__017_science__/graphics/technology/lubricant.png", + effects = + { + {type = "unlock-recipe", recipe = "lubricant"} + }, + prerequisites = {"oil-processing"}, + unit = + { + count = settings.startup["017-lubricant-cost"].value, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + time = settings.startup["017-lubricant-energy"].value + }, + order = "d-a-a" + }, + { + type = "technology", + name = "rocket-fuel", + icon_size = 128, + icon = "__017_science__/graphics/technology/rocketfuel.png", + effects = + { + {type = "unlock-recipe", recipe = "rocket-fuel"} + }, + prerequisites = {"engine", "flammables"}, + unit = + { + count = settings.startup["017-rocket-fuel-cost"].value, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + }, + time = settings.startup["017-rocket-fuel-energy"].value + }, + order = "d-a-b" + }, + { + type = "technology", + name = "low-density-structure", + icon_size = 128, + icon = "__017_science__/graphics/technology/rocketstructure.png", + effects = + { + {type = "unlock-recipe", recipe = "17-low-density-structure"} + }, + prerequisites = {"advanced-material-processing"}, + unit = + { + count = settings.startup["017-rocket-structure-cost"].value, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = settings.startup["017-rocket-structure-energy"].value + }, + order = "e-e-e" + }, + { + type = "technology", + name = "rocket-control-unit", + icon_size = 128, + icon = "__017_science__/graphics/technology/rocketcontrols.png", + effects = + { + {type = "unlock-recipe", recipe = "rocket-control-unit"} + }, + prerequisites = {"speed-module"}, + unit = + { + count = settings.startup["017-rocket-control-cost"].value, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + {"high-tech-science-pack", 1}, + }, + time = settings.startup["017-rocket-control-energy"].value + }, + order = "e-e-e" + }, + { + type = "technology", + name = "uranium-enrichment", + icon_size = 128, + icon = "__017_science__/graphics/technology/uraniumenrichment.png", + effects = + { + {type = "unlock-recipe", recipe = "centrifuge"}, + {type = "unlock-recipe", recipe = "uranium-processing"} + }, + prerequisites = data.raw["technology"]["nuclear-power"].prerequisites, + unit = + { + count = settings.startup["017-uranium-enrichment-cost"].value, + ingredients = + { + {"science-pack-1", 1}, + {"science-pack-2", 1}, + {"science-pack-3", 1}, + }, + time = settings.startup["017-uranium-enrichment-energy"].value + }, + order = "e-e-e" } }) end