-- Red -- coal stone iron copper -- Green -- cable cable2 stick brick iplate cplate -- Gray -- steel gear circuit pipe bullet wall -- Blue -- plastic plastic2 plastic3 plastic4 rocket rocket3 explosives explosives4 petroleum petroleum2 petroleum4 lubricant sulfur -- Purple -- engine engine3 engine4 motor motor4 advanced advanced2 advanced3 LDS LDS2 LDS4 efficiency efficiency4 speed speed3 productivity productivity4 -- Yellow -- battery processing processing2 motorY motorY2 control control2 logistic construction construction2 atomic atomic2 * -- Red -- -- Science: 75 + 3x productivity from 1 beacon -> needs 10.1010 ResPS for 1000 SciPM -- ======== OPTIMIZED IN GAME ======== -- 2x productivity 1x speed from 1 beacon coal iron 0.8 75 coal iron 0.88 75 iron coal 1.9 50 -- net siphon: 17.3793 ResPS -- ======== OPTIMIZED IN GAME ======== -- 0.5x productivity 0.5x speed from `1 beacon copper stone 1.6 50 copper stone 1.64 56.25 -- 1x speed from `1 beacon stone copper 0.9 50 stone copper 0.9 75 -- net siphon: 13.5227 ResPS -- Green -- -- Science: 75 + 3.5x productivity 0.5x speed from 2 beacons -> needs 10.1317 ResPS for 1000 SciPM -- ======== OPTIMIZED IN GAME ======== -- 2x productivity 1x speed from 1 beacon cable stick 0.5625 75 x2 cable stick 0.61875 150 -- 2x productivity stick cable 2.3 75 x2 stick cable 2.53 75 -- net siphon: 24.0271 ResPS -- ======== OPTIMIZED IN GAME ======== -- 1x speed from 1 beacon cable iplate 0.6 50 x2 (potentially x3) cable2 iplate 0.6 150 -- 2x productivity iplate cplate 1.2 75 x2 iplate cplate 1.32 75 -- 1x speed from 1 beacon cplate brick 1.8 50 cplate brick 1.8 75 -- 2x productivity 1x speed from 1 beacon brick cable 2.6 75 x2 (potentially x3) brick cable2 2.86 150 nosiphon -- net siphon: 31.1809 ResPS -- Gray -- -- ======== OPTIMIZED IN GAME ======== -- Science: 125 + 4x productivity 1x speed from 1 beacon -> needs 12.6263 ResPS for 1000 SciPM -- 3x productivity 1x speed steel wall 0.525 125 x2 steel wall 0.60375 187.5 wall bullet 1.7 50 -- 2x productivity 1x speed from 1 beacon bullet gear 1.1 75 bullet gear 1.21 75 -- 2.5x productivity 1.5x speed from 2 beacons gear pipe 1.7 75 gear pipe 1.9125 84.375 -- 2x productivity 2x speed pipe circuit 0.7 125 pipe circuit 0.77 187.5 -- 4x productivity 1x speed from 1 beacon circuit steel 2.1 125 circuit steel 2.52 62.5 -- net siphon: 19.5104 ResPS -- Blue -- -- Science: 75 + 3x productivity from 1 beacon -> needs 10.3520 ResPS for 1000 SciPM -- Resources: 15.0345 ResPS rocket from 25.0575 ResPS explosives -- ======== not going to optimize ======== petroleum plastic 1.4 75 plastic rocket 0.6 37.5 rocket petroleum 1.65 75 -- net siphon: don't use this as there is only one plastic -> rocket machine -- ======== OPTIMIZED IN GAME ======== -- 2x productivity petroleum2 plastic2 1.4 75 x3 petroleum2 plastic2 1.54 112.5 nosiphon -- 1x productivity 1x speed plastic2 lubricant 1.23 75 x2 plastic2 lubricant 1.2915 187.5 nosiphon -- 2x speed lubricant explosives 0.8 75 (theoretical x2 but not using it) lubricant explosives 0.8 150 -- 2x productivity explosives petroleum2 1.26 75 x2 explosives petroleum2 1.386 75 nosiphon -- net siphon: 65.5857 ResPS -- ======== OPTIMIZED IN GAME ======== -- 1x speed 1x productivity rocket3 sulfur 1.28 75 rocket3 sulfur 1.344 93.75 -- 1x speed 1x productivity sulfur plastic3 2.1 75 sulfur plastic3 2.205 93.75 -- 2x speed plastic rocket 0.6 75 plastic3 rocket3 0.6 150 -- net siphon: 18.9214 ResPS -- ======== never implemented ======== -- 2x speed plastic4 explosives4 1 75 plastic4 explosives4 1 150 -- 2x speed explosives4 petroleum4 1.26 75 explosives4 petroleum4 1.26 150 -- 2x speed petroleum2 plastic2 1.4 75 petroleum4 plastic4 1.4 150 nosiphon -- net siphon: not needed -- Purple -- -- Science: 2x productivity -> needs 11.6550 for 1000 SciPM -- Resources: 15.0345 ResPS LDS -- ======== OPTIMIZED IN GAME ======== -- 1x productivity 1x speed motor advanced 1.6 75 motor advanced 1.68 93.75 nosiphon -- 1x speed from 1 beacon advanced speed 0.6 50 advanced speed 0.6 75 -- 2x productivity speed LDS 1.4 75 speed LDS 1.54 37.5 nosiphon -- 3x productivity from 1 beacon LDS productivity 0.525 75 x3 LDS productivity 0.60375 56.25 nosiphon -- 2x productivity productivity motor 1.9 75 productivity motor 2.09 37.5 nosiphon -- net siphon: 22.0265 ResPS -- ======== OPTIMIZED IN GAME ======== -- 2.5x productivity 0.5x speed from 1 beacon engine advanced2 1 75 x2 engine advanced2 1.125 93.75 -- 1x productivity 1x speed advanced2 LDS2 0.9 75 advanced2 LDS2 0.945 93.75 -- LDS2 efficiency 0.7 50 x2 LDS2 efficiency 0.7 100 nosiphon -- efficiency engine 2.1 50 x2 efficiency engine 2.1 100 nosiphon -- net siphon: 18.4537 ResPS -- ======== OPTIMIZED IN GAME ======== -- Desired: 4x productivity 1x speed from 1 beacon engine3 advanced3 1.2 125 -- Actual: 3.5x productivity 1.5x speed because of shared beacon with engine4 LDS4 1 125 engine3 advanced3 1.41 109.375 advanced3 speed3 0.7 50 nosiphon speed3 engine3 1.7 50 nosiphon -- Desired net siphon: 7.2995 ResPS -- Actual net siphon: 7.0512 ResPS -- With nosiphon: 33.8950 ResPS -- not actually used -- ======== OPTIMIZED IN GAME ======== -- 3.5x productivity 1.5x speed from 1 beacon engine4 LDS4 1 125 engine4 LDS4 1.175 109.375 -- 2x productivity 2x speed LDS4 efficiency4 0.7 125 LDS4 efficiency4 0.77 187.5 -- 4x productivity 1x speed from 1 beacon efficiency4 motor4 1.6 125 efficiency4 motor4 1.92 62.5 -- motor4 productivity4 0.5 50 x2 motor4 productivity4 0.5 100 -- 2x productivity productivity engine 2.8 75 productivity4 engine4 3.08 37.5 -- net siphon: 14.5846 ResPS -- Yellow -- -- Science: 1x productivity from 1 beacon -> needs 12.2100 ResPS for 1000 SciPM -- Resources: 15.0345 ResPS control -- ======== OPTIMIZED IN GAME ======== -- construction motorY 1.7 50 x2 construction motorY 1.7 100 nosiphon -- 1x productivity 2x speed from 1 beacon motorY processing 0.7 75 motorY processing 0.735 131.25 -- 1x speed from 1 beacon processing control 1 50 processing control 1 75 -- control atomic 0.9 50 x2 control atomic 0.9 100 nosiphon -- 3x productiity 1x speed atomic construction 1.5 125 atomic construction 1.725 93.75 -- net siphon: 16.8257 ResPS -- ======== OPTIMIZED IN GAME ======== -- construction2 motorY2 1.7 50 x2 construction2 motorY2 1.7 100 -- 3x speed from 1 beacon motorY2 processing2 0.7 75 motorY2 processing2 0.7 187.5 nosiphon -- 2x productivity 1x speed from 1 beacon processing2 atomic2 0.7 75 x2 processing2 atomic2 0.77 112.5 -- 2x productivity atomic2 battery 2.5 75 x2 atomic2 battery 2.75 75 -- 2x productivity 3x speed from 1 beacon battery logistic 0.8 125 battery logistic 0.88 187.5 -- 2x speed logistic control2 0.6 75 logistic control2 0.6 150 -- 1x productivity 1x speed control2 construction2 1.3 75 control2 construction2 1.365 93.75 nosiphon -- net siphon: 13.7043 ResPS -- White -- -- Cfg Prd+Spd ResPLaunch SecPLaunch ResPS SciPM -- AA 4+2 833.3333 290.3333 2.8703 206.6590 -- AB 3.5+2.5 851.0638 226.0200 3.7654 265.4632 -- AC 3+3 869.5652 189.4017 4.5911 316.7871 -- AD 2.5+3.5 888.8889 165.8235 5.3605 361.8304 -- AE 2+4 909.0909 149.4242 6.0840 401.5413 -- -- BC 3+2 869.5652 249.0290 3.4918 240.9358 -- BD 2.5+2.5 888.8889 204.4359 4.3480 293.4905 -- BE 2+3 909.0909 176.6970 5.1449 339.5644 -- -- Ideal: AA x5 833.3333 14.3515 1033.2950 -- AE+BD+BE 903.3611 15.5769 1034.5962 -- AD+BE+BE 902.0688 15.6503 1040.9592 -> 15.0345 for 1000 SciPM -- -- def silo(prd, spd): -- vals = {} -- vals["crafting_speed"] = 1 - prd * 0.25 + spd * 0.5 -- if vals["crafting_speed"] <= 0: -- return None -- vals["productivity"] = (1 + prd * 0.05) -- vals["ResPLaunch"] = 1000 / vals["productivity"] -- vals["SecPLaunch"] = 300 / vals["productivity"] / vals["crafting_speed"] + 121 / 3 -- vals["ResPS"] = vals["ResPLaunch"] / vals["SecPLaunch"] -- vals["SciPM"] = 1000 / vals["SecPLaunch"] * 60 -- vals["split"] = f"{prd}+{spd}" -- return vals -- -- def allsilos(): -- netBest = None -- for a in range(12, -1, -1): -- siloA = silo(a * 0.5, (12 - a) * 0.5) -- if siloA is None: -- continue -- for b in range(10, -1, -1): -- siloB = silo(b * 0.5, (10 - b) * 0.5) -- if siloB is None: -- continue -- for c in range(b, -1, -1): -- siloC = silo(c * 0.5, (10 - c) * 0.5) -- if siloC is None: -- continue -- net = {} -- net["ResPS"] = siloA["ResPS"] + siloB["ResPS"] + siloC["ResPS"] -- net["SciPM"] = siloA["SciPM"] + siloB["SciPM"] + siloC["SciPM"] -- net["ResPLaunch"] = net["ResPS"] * 60 / net["SciPM"] * 1000 -- net["SecPLaunch"] = "-" -- net["split"] = "-" -- if net["SciPM"] >= 1000 and (netBest is None or net["ResPLaunch"] <= netBest["ResPLaunch"]): -- netBest = net -- print("\nNew net best:") -- for (n, s) in [("a", siloA), ("b", siloB), ("c", siloC), ("net", net)]: -- print(n + " " + s["split"]) -- print(" ResPLaunch: " + str(s["ResPLaunch"])) -- print(" SecPLaunch: " + str(s["SecPLaunch"])) -- print(" ResPS: " + str(s["ResPS"])) -- print(" SciPM: " + str(s["SciPM"])) -- -- allsilos()