Research Milestone (#517)

* new research milestone

* energy

* revert

* minute

* moving

* config
This commit is contained in:
phidias authored and GitHub committed 2026-11-07 15:19:42 +00:00
1 parent 637e47bf8c
commit ce29218f14
3 files changed
+184 -58

No files matched your search

+2
View File
@@ -297,6 +297,8 @@ export const features: Feature[] = [
description: "A GUI tracking research against target times, the targets live in config/research_data.lua",
fields: [
str("log_file", "Log file", "Where the milestone times are written within script-output", "log/research.log"),
num("milestone_rate", "Target rate", "Targeted Milestone Science Research Rate", 45, 5, "SPM"),
num("milestone_warmup_time", "Warmup time", "Warmup time given before start counting.", 10, 0, "minutes"),
],
},
{
+176 -55
View File
@@ -18,63 +18,184 @@ local data = {
},
milestone = {
["base"] = {
["automation"] = 600,
["logistics"] = 300,
["steel-processing"] = 300,
["logistic-science-pack"] = 300,
["electronics"] = 300,
["fast-inserter"] = 300,
["steel-axe"] = 300,
["automation-2"] = 300,
["advanced-material-processing"] = 300,
["engine"] = 300,
["fluid-handling"] = 300,
["oil-processing"] = 300,
["sulfur-processing"] = 300,
["plastics"] = 300,
["advanced-circuit"] = 300,
["chemical-science-pack"] = 300,
["modules"] = 300,
["logistics-2"] = 300,
["railway"] = 300,
["research-speed-1"] = 300,
["research-speed-2"] = 300,
["battery"] = 300,
["concrete"] = 300,
["flammables"] = 300,
["low-density-structure"] = 300,
["advanced-material-processing-2"] = 300,
["productivity-module"] = 300,
["production-science-pack"] = 300,
["processing-unit"] = 300,
["advanced-oil-processing"] = 300,
["electric-engine"] = 300,
["robotics"] = 300,
["construction-robotics"] = 300,
["worker-robots-speed-1"] = 300,
["worker-robots-speed-2"] = 300,
["utility-science-pack"] = 300,
["productivity-module-2"] = 300,
["speed-module-2"] = 300,
["rocket-fuel"] = 300,
["effect-transmission"] = 300,
["productivity-module-3"] = 300,
["speed-module-3"] = 300,
["rocket-silo"] = 300,
["space-science-pack"] = 300,
"automation",
"logistics",
"steel-processing",
"logistic-science-pack",
"electronics",
"fast-inserter",
"steel-axe",
"automation-2",
"advanced-material-processing",
"engine",
"fluid-handling",
"oil-processing",
"sulfur-processing",
"plastics",
"advanced-circuit",
"chemical-science-pack",
"modules",
"logistics-2",
"railway",
"research-speed-1",
"research-speed-2",
"battery",
"concrete",
"flammables",
"low-density-structure",
"advanced-material-processing-2",
"productivity-module",
"production-science-pack",
"processing-unit",
"advanced-oil-processing",
"electric-engine",
"robotics",
"construction-robotics",
"worker-robots-speed-1",
"worker-robots-speed-2",
"utility-science-pack",
"productivity-module-2",
"speed-module-2",
"rocket-fuel",
"effect-transmission",
"productivity-module-3",
"speed-module-3",
"rocket-silo",
"space-science-pack",
},
["space-age"] = {
["logistic-science-pack"] = 3600,
["military-science-pack"] = 3600,
["chemical-science-pack"] = 5400,
["utility-science-pack"] = 7200,
["production-science-pack"] = 7200,
["space-science-pack"] = 7200,
["metallurgic-science-pack"] = 10800,
["electromagnetic-science-pack"] = 10800,
["agricultural-science-pack"] = 10800,
["cryogenic-science-pack"] = 10800,
["promethium-science-pack"] = 14400,
"automation",
"electric-mining-drill",
"logistics",
"fast-inserter",
"steel-processing",
"logistic-science-pack",
"gun-turret",
"automation-2",
"advanced-material-processing",
"engine",
"logistics-2",
"automobilism",
"fluid-handling",
"oil-gathering",
"research-speed-1",
"research-speed-2",
"circuit-network",
"toolbelt",
"electric-energy-distribution-1",
"concrete",
"solar-energy",
"plastics",
"advanced-circuit",
"sulfur-processing",
"chemical-science-pack",
"battery",
"bulk-inserter",
"inserter-capacity-bonus-1",
"inserter-capacity-bonus-2",
"mining-productivity-1",
"modules",
"productivity-module",
"speed-module",
"efficiency-module",
"advanced-oil-processing",
"lubricant",
"electric-engine",
"robotics",
"construction-robotics",
"worker-robots-speed-1",
"worker-robots-speed-2",
"electric-energy-accumulators",
"explosives",
"military",
"stone-wall",
"military-2",
"military-science-pack",
"heavy-armor",
"modular-armor",
"solar-panel-equipment",
"battery-equipment",
"physical-projectile-damage-1",
"weapon-shooting-speed-1",
"repair-pack",
"radar",
"landfill",
"quality-module",
"flammables",
"processing-unit",
"low-density-structure",
"rocket-fuel",
"logistic-robotics",
"advanced-material-processing-2",
"rocket-silo",
"uranium-mining",
"research-speed-3",
"research-speed-4",
"worker-robots-storage-1",
"mining-productivity-2",
"railway",
"production-science-pack",
"utility-science-pack",
"physical-projectile-damage-2",
"weapon-shooting-speed-2",
"stronger-explosives-1",
"power-armor",
"exoskeleton-equipment",
"personal-roboport-equipment",
"nuclear-power",
"space-platform-thruster",
"planet-discovery-gleba",
"logistic-system",
"effect-transmission",
"speed-module-2",
"research-speed-5",
"worker-robots-speed-3",
"worker-robots-speed-4",
"worker-robots-storage-2",
"automation-3",
"productivity-module-2",
"efficiency-module-2",
"quality-module-2",
"planet-discovery-fulgora",
"kovarex-enrichment-process",
"military-3",
"military-4",
"power-armor-mk2",
"fission-reactor-equipment",
"battery-mk2-equipment",
"stronger-explosives-2",
"physical-projectile-damage-3",
"weapon-shooting-speed-3",
"planet-discovery-vulcanus",
"research-speed-6",
"worker-robots-speed-5",
"worker-robots-speed-6",
"worker-robots-storage-3",
"carbon-fiber",
"rocketry",
"rocket-turret",
"captivity",
"biolab",
"advanced-asteroid-processing",
"asteroid-reprocessing",
"planet-discovery-aquilo",
"physical-projectile-damage-4",
"weapon-shooting-speed-4",
"physical-projectile-damage-5",
"weapon-shooting-speed-5",
"physical-projectile-damage-6",
"weapon-shooting-speed-6",
"physical-projectile-damage-7",
"stronger-explosives-3",
"stronger-explosives-4",
"stronger-explosives-5",
"stronger-explosives-6",
"stronger-explosives-7",
"stronger-explosives-8",
"quantum-processor",
"railgun",
"fusion-reactor",
"promethium-science-pack",
}
},
inf_res = {
@@ -10,6 +10,8 @@ local research_data = require("modules/exp_scenario/config/research_data")
local feature, config = Feature.register("research_milestones", {
log_file = "log/research.log", -- where the milestone times are written
milestone_rate = 45, -- Targeted Milestone Science Research Rate, In terms of SPM.
milestone_warmup_time = 10, -- Warmup time given before start counting. In terms of minutes.
})
local table_to_json = helpers.table_to_json
@@ -41,11 +43,12 @@ local research_targets = {
do --- Calculate the research targets
local research_index = 1
local total_time = 0
for name, time in pairs(research_data.milestone[research_data.mod_set]) do
local total_time = config.milestone_warmup_time * 60
for _, name in pairs(research_data.milestone[research_data.mod_set]) do
if prototypes.technology[name] and (not prototypes.technology[name].hidden) then
research_targets.index_lookup[name] = research_index
total_time = total_time + time * 60
-- The number is affected by multiplier already
total_time = total_time + math.ceil(prototypes.technology[name].research_unit_count * 60 / config.milestone_rate)
research_targets.target_times[research_index] = {
name = name,