(a.1) Daily number of initial devices from factory is as with a/c production [ (active devices + random(30))/30]. If this number is 0, or there are any damaged devices present, then no R&D will result this turn from this factory. [This agrees with the manual ]
(a.2) A factory will then produce a random R&D between 1 and the number of devices from step (a.1) ie 1 device = 1, 2 devices = 1,2, 3 devices =1,2,3, 4 devices = 1,2,3,4 10 devices = 1,2,3,4,5,6,7,8,9,10 etc.
(b) The random R&D is then divided by 10. Any random R&D of less than 10 will be '0', otherwise it will be the ten's component of the random R&D.
(c) If there are no damaged devices in factory (this is a given as there must be NO damaged ones present), add '1' to the number from (b).
(d) If the number from (c) exceeds 3, it is capped at '3'.
My bad. I have written without brackets, and everyone believed
In step b it divides the result in a2 by 10. So it makes absoulutly NO difference of a 1 or a 2 result in either a1 or a2 as this step will ALWAYS give a 0 result. This will be the course of any game I am familar with. I have not seen anyone be able to get over 270 fully repaired R&D factories. Remember, this code works on a factory by factory basis. So a SINGLE R&D factory would have to 270 or larger. This is beyond absurd.
Yeah, procedure seems to be complete waste of time, because every factory between 30, and 270 will produce ALWAYS 1 point per day.
Since this is not board game, I would prefer for EVERY extra point to be better. So I would propose change whole procedure to this:
(a.2) random R&D is chosen between 0, and current factory_size+production from (a.1), so:
(b) divide (a.2) by 30, and round this down
That way, factory of size 30, will behave, as previously. Factory of size 60, will research by around 50% faster, and factory of size 90, will research 2 times as fast, as size 30. Afterward it will be better, but with dimnishing returns, as maximum number will be capped at 3.