Page 1 of 1
Iterate over and change techs?
Posted: Tue Jul 28, 2015 10:57 am
by ArgTang
Is there a way to iterate over techs and change them?
or do i have to copy techfile and change that file via some script? something like this:
https://gist.github.com/pfmoore/aa101ee1daeebf202e87
I have tried some diffrent things ex:
Code: Select all
for n,t in pairs(game.players) do
for v, techs in pairs(t.force.technologies) do
techs.unit.time = techs.unit.time * 10
end
end
Re: Iterate over and change techs?
Posted: Tue Jul 28, 2015 11:05 am
by Choumiko
You're gonna want to do it in data-updates.lua (or even data-final-fixes.lua)
Code: Select all
for i, tech in pairs(data.raw["technology"]) do
tech.unit.time = tech.unit.time * 10
end
To make it work in an existing save you will probably need a migration file (not sure about that):
Code: Select all
for _, force in pairs(game.forces) do
force.reset_recipes()
force.reset_technologies()
end
Re: Iterate over and change techs?
Posted: Tue Jul 28, 2015 11:21 am
by orzelek
I'm attaching a mod that should give you some ideas
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
(It's not mine - I did only convert it to 0.12 so credits go to original author).
Looking at what you want to do this mod might be doing it already.
Re: Iterate over and change techs?
Posted: Tue Jul 28, 2015 12:01 pm
by ArgTang
thanks!
in data-updates.lua i now have:
Code: Select all
for i, tech in pairs(data.raw["technology"]) do
local level = 1 + (#tech.unit.ingredients/10)*2;
tech.unit.count = tech.unit.count * level
tech.unit.time = tech.unit.time * level
end
reset_recipes wont work in this file, but should probably be in control.lua anyway
now i have to playtest