mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-12 23:04:52 +09:00
Set progress when completing infinite researches
Set the progress for the next level of an infinite research when unlocking it via a script. This is necessary when the research is actively being researched as Factorio will carry over the progress for the current level into the next one when set via a script. It's possible for the new progress to be non-zero if the next level was on the research queue.
This commit is contained in:
1 parent
3b1ed1a667
commit
62f3a99feb
3 files changed
+15
-6
No files matched your search
@@ -6,6 +6,8 @@ Version 1.2.2
|
|||||||
|
|
||||||
- Fixed possible crash with modded technologies named the same as a built-in
|
- Fixed possible crash with modded technologies named the same as a built-in
|
||||||
Object prototype property in researchSync.
|
Object prototype property in researchSync.
|
||||||
|
- Fixed progress of a current infinite tech carrying over to the next one
|
||||||
|
when researching it and another node completes it in researchSync.
|
||||||
|
|
||||||
|
|
||||||
Version 1.2.1
|
Version 1.2.1
|
||||||
|
|||||||
@@ -11,15 +11,22 @@ local function updateTech()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if game.forces['player'].technologies['{tech_name}'] then
|
local force = game.forces['player']
|
||||||
|
local tech = force.technologies['{tech_name}']
|
||||||
|
if tech then
|
||||||
if 1 == {tech_infinite} then
|
if 1 == {tech_infinite} then
|
||||||
if (game.forces['player'].technologies['{tech_name}'].level ~= level) then
|
if (tech.level ~= level) then
|
||||||
game.forces['player'].technologies['{tech_name}'].level = {tech_level}
|
tech.level = {tech_level}
|
||||||
|
if tech == force.current_research then
|
||||||
|
force.research_progress = {tech_progress}
|
||||||
|
else
|
||||||
|
force.set_saved_technology_progress(tech.name, {tech_progress});
|
||||||
|
end
|
||||||
updateTech()
|
updateTech()
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
if not game.forces['player'].technologies['{tech_name}'].researched then
|
if not tech.researched then
|
||||||
game.forces['player'].technologies['{tech_name}'].researched = true
|
tech.researched = true
|
||||||
updateTech()
|
updateTech()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -296,9 +296,9 @@ class ResearchSync {
|
|||||||
this.research[name].progress = null
|
this.research[name].progress = null
|
||||||
let command = this.functions.enableResearch;
|
let command = this.functions.enableResearch;
|
||||||
command = command.replace(/{tech_name}/g, name);
|
command = command.replace(/{tech_name}/g, name);
|
||||||
command = command.replace(/{tech_researched}/g, tech.researched);
|
|
||||||
command = command.replace(/{tech_level}/g, tech.level);
|
command = command.replace(/{tech_level}/g, tech.level);
|
||||||
command = command.replace(/{tech_infinite}/g, tech.infinite);
|
command = command.replace(/{tech_infinite}/g, tech.infinite);
|
||||||
|
command = command.replace(/{tech_progress}/g, tech.progress)
|
||||||
command = command.replace(/{notify}/g, notify);
|
command = command.replace(/{notify}/g, notify);
|
||||||
this.messageInterface(command);
|
this.messageInterface(command);
|
||||||
let log_message = tech.infinite
|
let log_message = tech.infinite
|
||||||
|
|||||||
Reference in new issue
Block a user