def BuildSatts(PlanetList, TechList, FleetList, IdealPlanet, i, n): CrystalCost = 2000 * n / IdealPlanet[0].ResScaleFactor DeutCost = 500 * n / IdealPlanet[0].ResScaleFactor TotalMetal, TotalCrystal, TotalDeut = TotalRes(PlanetList, IdealPlanet) if TotalDeut > 0: if TotalCrystal >= CrystalCost and TotalDeut >= DeutCost and ( PlanetList[i].Resource[1] < CrystalCost or PlanetList[i].Resource[2] < DeutCost ) and PlanetList[i].Shipyard >= 1: CrystalCost -= PlanetList[i].Resource[1] DeutCost -= PlanetList[i].Resource[2] if CrystalCost < 0: CrystalCost = 0 if DeutCost < 0: DeutCost = 0 if CrystalCost > 0 or DeutCost > 0: CheckToMove(PlanetList, TechList, FleetList, IdealPlanet, 0, CrystalCost, DeutCost, i) if PlanetList[i].Resource[1] > CrystalCost and PlanetList[i].Resource[ 2] > DeutCost and PlanetList[i].Shipyard >= 1: print "Built " + str(n) + " Solar Satellites on Planet " + str(i) PlanetList[i].Resource[2] -= DeutCost PlanetList[i].Resource[1] -= CrystalCost PlanetList[i].Satellites += n calcenergy(PlanetList, TechList, FleetList, IdealPlanet, i) IdealPlanet[0].WaitingFlag = 0 else: if IdealPlanet[0].WaitingFlag == 0 and PlanetList[i].Shipyard >= 1: print "Flagged Satts" IdealPlanet[0].WaitingFlag = 1 IdealPlanet[0].WaitingMetal = 0 IdealPlanet[0].WaitingCrystal = CrystalCost IdealPlanet[0].WaitingDeut = DeutCost if PlanetList[i].Shipyard < 1: IdealPlanet[0].Shipyard = 1
def CheckUpAstrophysics(PlanetList, FleetList, IdealPlanet, TechList): MetalCost = 100 * round( 40 * 1.75**TechList[0].Astrophysics) / IdealPlanet[0].ResScaleFactor CrystalCost = 100 * round( 80 * 1.75**TechList[0].Astrophysics) / IdealPlanet[0].ResScaleFactor DeutCost = 100 * round( 40 * 1.75**TechList[0].Astrophysics) / IdealPlanet[0].ResScaleFactor TMetal, TCrystal, TDeut = TotalRes(PlanetList, IdealPlanet) if TMetal >= MetalCost and TCrystal >= CrystalCost and TDeut >= DeutCost and PlanetList[ 0].ResearchLab >= 3: CheckToMove(PlanetList, TechList, FleetList, IdealPlanet, MetalCost, CrystalCost, DeutCost, 0) print "Consolidated resources!" else: if IdealPlanet[0].WaitingFlag == 0 and TCrystal >= 0.8 * CrystalCost: IdealPlanet[0].WaitingFlag = 1 IdealPlanet[0].WaitingMetal = MetalCost IdealPlanet[0].WaitingCrystal = CrystalCost IdealPlanet[0].WaitingDeut = DeutCost if PlanetList[0].Resource[0] >= MetalCost and PlanetList[0].Resource[ 1] >= CrystalCost and PlanetList[0].Resource[ 2] >= DeutCost and PlanetList[0].ResearchLab >= 3: IdealPlanet[0].WaitingFlag = 0 print "Found Planet was enough for astro!" print "Researched Astrophysics level " + str(TechList[0].Astrophysics + 1) + "!" PlanetList[0].Resource[0] -= MetalCost PlanetList[0].Resource[1] -= CrystalCost PlanetList[0].Resource[2] -= DeutCost TechList[0].Astrophysics += 1 IdealPlanet[0].WaitingFlag = 0
def CheckUpSolar(PlanetList, TechList, FleetList, IdealPlanet, i): MetalCost = 75 * 1.5**PlanetList[i].SolarPlant / IdealPlanet[ 0].ResScaleFactor CrystalCost = 30 * 1.5**PlanetList[i].SolarPlant / IdealPlanet[ 0].ResScaleFactor checkupstores(PlanetList, TechList, IdealPlanet, FleetList, MetalCost, CrystalCost, 0, i) TotalMetal, TotalCrystal, TotalDeut = TotalRes(PlanetList, IdealPlanet) CheckToMove(PlanetList, TechList, FleetList, IdealPlanet, MetalCost, CrystalCost, 0, i) if PlanetList[i].Resource[0] >= MetalCost and PlanetList[i].Resource[ 1] >= CrystalCost: print "Built Solar Plant Level " + str( PlanetList[i].SolarPlant + 1) + " on Planet " + str(i) + "!" PlanetList[i].Resource[0] -= MetalCost PlanetList[i].Resource[1] -= CrystalCost PlanetList[i].SolarPlant += 1 calcenergy(PlanetList, TechList, FleetList, IdealPlanet, i) IdealPlanet[0].WaitingFlag = 0 else: if IdealPlanet[0].WaitingFlag == 0: print "Flagged Solar" IdealPlanet[0].WaitingFlag = 1 IdealPlanet[0].WaitingMetal = MetalCost IdealPlanet[0].WaitingCrystal = CrystalCost IdealPlanet[0].WaitingDeut = 0
def CheckRocketLaunchers(PlanetList, TechList, FleetList, IdealPlanet, i): if PlanetList[i].Shipyard == 0: checkupshipyard(PlanetList, TechList, FleetList, IdealPlanet, i) else: TMetal, TCrystal, TDeut = TotalRes(PlanetList) if PlanetList[i].RocketLauncher < IdealPlanet[0].RocketLauncher: Rockets = IdealPlanet[0].RocketLauncher - PlanetList[ i].RocketLauncher RocketCost = Rockets * 2000 if RocketCost > PlanetList[i].Resource[0]: CheckToMove(PlanetList, TechList, FleetList, RocketCost, 0, 0, i) if RocketCost < PlanetList[i].Resource[0]: PlanetList[i].RocketLauncher += Rockets PlanetList[i].Resource[0] -= 2000 * Rockets print "Built " + str( Rockets) + " Rocket Launchers on Planet " + str(i) + "!" IdealPlanet[0].WaitingFlag = 0 else: IdealPlanet[0].WaitingFlag = 1 IdealPlanet[0].WaitingMetal = RocketCost IdealPlanet[0].WaitingCrystal = 0 IdealPlanet[0].WaitingDeut = 0 elif (PlanetList[i].Resource[0] > (0.6 * PlanetList[i].MetalCap) and (PlanetList[i].Resource[1] < (0.3 * PlanetList[i].CrystalCap) or PlanetList[i].Resource[2] < (0.3 * PlanetList[i].DeuteriumCap)) ) or PlanetList[i].Resource[0] > (0.80 * PlanetList[i].MetalCap): Rockets = int(PlanetList[i].Resource[0] / 4000) PlanetList[i].RocketLauncher += Rockets PlanetList[i].Resource[0] -= 2000 * Rockets print "Built " + str( Rockets) + " Rocket Launchers on Planet " + str(i) + "!"
def CheckUpCombustion(PlanetList, FleetList, TechList, IdealPlanet): TMetal, TCrystal, TDeut = TotalRes(PlanetList, IdealPlanet) MetalCost = 400 * 2**TechList[0].CombustionDrive / IdealPlanet[ 0].ResScaleFactor DeutCost = 600 * 2**TechList[0].CombustionDrive / IdealPlanet[ 0].ResScaleFactor if TMetal >= MetalCost and TDeut >= DeutCost and PlanetList[ 0].ResearchLab >= 1 and TechList[0].CombustionDrive >= 2 and ( PlanetList[0].Resource[0] < MetalCost or PlanetList[0].Resource[2] < DeutCost): CheckToMove(PlanetList, TechList, FleetList, IdealPlanet, MetalCost, 0, DeutCost, 0) print "Consolidated resources!" if PlanetList[0].Resource[0] > MetalCost and PlanetList[0].Resource[ 2] > DeutCost: print "Researched Combustion Drive level " + str( TechList[0].CombustionDrive + 1) + " on planet 1!" PlanetList[0].Resource[0] -= MetalCost PlanetList[0].Resource[2] -= DeutCost TechList[0].CombustionDrive += 1
def CheckUpFusion(PlanetList, TechList, FleetList, IdealPlanet, i): TotalMetal, TotalCrystal, TotalDeut = TotalRes(PlanetList, IdealPlanet) if PlanetList[i].DeuteriumMine >= 5 and TechList[0].Energy >= 3: MetalCost = 900 * 1.8**PlanetList[i].FusionPlant / IdealPlanet[ 0].ResScaleFactor CrystalCost = 360 * 1.8**PlanetList[i].FusionPlant / IdealPlanet[ 0].ResScaleFactor DeutCost = 180 * 1.8**PlanetList[i].FusionPlant / IdealPlanet[ 0].ResScaleFactor checkupstores(PlanetList, TechList, IdealPlanet, FleetList, MetalCost, CrystalCost, DeutCost, i) CheckToMove(PlanetList, TechList, FleetList, IdealPlanet, MetalCost, CrystalCost, DeutCost, i) if PlanetList[i].Resource[0] >= MetalCost and PlanetList[i].Resource[ 1] >= CrystalCost and PlanetList[i].Resource[2] >= DeutCost: print "Built Fusion Plant Level " + str( PlanetList[i].FusionPlant + 1) + " on Planet " + str(i) + "!" PlanetList[i].Resource[0] -= MetalCost PlanetList[i].Resource[1] -= CrystalCost PlanetList[i].Resource[2] -= DeutCost PlanetList[i].FusionPlant += 1 calcenergy(PlanetList, TechList, FleetList, IdealPlanet, i) IdealPlanet[0].WaitingFlag = 0 else: if IdealPlanet[0].WaitingFlag == 0: print "Flagged Fusion" IdealPlanet[0].WaitingFlag = 1 IdealPlanet[0].WaitingMetal = MetalCost IdealPlanet[0].WaitingCrystal = CrystalCost IdealPlanet[0].WaitingDeut = DeutCost else: if PlanetList[i].DeuteriumMine < 5 and IdealPlanet[0].DeuteriumMine < 5: IdealPlanet[0].DeuteriumMine = 5 if PlanetList[i].DeuteriumMine < 5 and IdealPlanet[ 0].DeuteriumMine >= 5: CheckUpDeut(PlanetList, TechList, FleetList, IdealPlanet, i) if TechList[0].Energy < 3: TechList[1].Energy = 3
def mining(PlanetList, TechList, FleetList, IdealPlanet): metalmax = metalmax2 = 1 crystalmax = crystalmax2 = 1 deutmax = deutmax2 = 1 TMetal, TCrystal, TDeut = TotalRes(PlanetList, IdealPlanet) for x in range(len(PlanetList)): others = PlanetList[x].Resource[1] + PlanetList[x].Resource[2] if PlanetList[x].Resource[0] > others: CheckRocketLaunchers( PlanetList, TechList, FleetList, IdealPlanet, x, ) if PlanetList[x].MetalMine < IdealPlanet[0].MetalMine: metalmax = 0 if PlanetList[x].MetalMine < IdealPlanet[0].MetalMine - 3: metalmax2 = 0 if PlanetList[x].CrystalMine < IdealPlanet[0].CrystalMine: crystalmax = 0 if PlanetList[x].CrystalMine < IdealPlanet[0].CrystalMine - 3: crystalmax2 = 0 if PlanetList[x].DeuteriumMine < IdealPlanet[0].DeuteriumMine: deutmax = 0 if PlanetList[x].DeuteriumMine < IdealPlanet[0].DeuteriumMine - 3: deutmax2 = 0 if metalmax2 == 1 and crystalmax2 == 1 and deutmax2 == 1 and len( PlanetList) == ( (TechList[1].Astrophysics + 1) / 2 + 1) and IdealPlanet[0].WaitingFlag == 0 and miningtype == 1: metale, crystale, deute, newcole = EffectiveMining( PlanetList, TechList, IdealPlanet) if metale >= crystale and metale >= deute: IdealPlanet[0].MetalMine += 1 if crystale >= metale and crystale >= deute: IdealPlanet[0].CrystalMine += 1 if deute >= metale and deute >= crystale: IdealPlanet[0].DeuteriumMine += 1 if newcole > metale and newcole > crystale and newcole > deute: if TechList[1].Astrophysics == 0: IdealPlanet[0].WaitingFlag = 1 IdealPlanet[ 0].WaitingMetal = 4000 / IdealPlanet[0].ResScaleFactor IdealPlanet[ 0].WaitingCrystal = 8000 / IdealPlanet[0].ResScaleFactor IdealPlanet[ 0].WaitingDeut = 4000 / IdealPlanet[0].ResScaleFactor TechList[1].Astrophysics = 1 if IdealPlanet[0].Shipyard < 4: IdealPlanet[0].Shipyard = 4 else: if TechList[0].Astrophysics == TechList[1].Astrophysics: IdealPlanet[0].WaitingFlag = 1 IdealPlanet[0].WaitingMetal = 100 * round( 40 * 1.75**TechList[0].Astrophysics ) / IdealPlanet[0].ResScaleFactor IdealPlanet[0].WaitingCrystal = 100 * round( 80 * 1.75**TechList[0].Astrophysics ) / IdealPlanet[0].ResScaleFactor IdealPlanet[0].WaitingDeut = 100 * round( 40 * 1.75**TechList[0].Astrophysics ) / IdealPlanet[0].ResScaleFactor TechList[1].Astrophysics += 2 elif metalmax2 == 1 and crystalmax2 == 1 and deutmax2 == 1 and len( PlanetList) == ( (TechList[1].Astrophysics + 1) / 2 + 1) and IdealPlanet[0].WaitingFlag == 0 and miningtype == 2: metale, crystale, deute, newcole = EffectiveMining( PlanetList, TechList, IdealPlanet) MetalProd, CrystalProd, DeutProd = TotalProd(PlanetList, TechList, FleetList, IdealPlanet) MetalMetalTime = 60 * 1.5**IdealPlanet[0].MetalMine / MetalProd MetalCrystalTime = 15 * 1.5**IdealPlanet[0].MetalMine / CrystalProd MetalTime = MetalCrystalTime + MetalMetalTime - IdealPlanet[ 0].MetalMine / 2 CrystalMetalTime = 48 * 1.6**IdealPlanet[0].CrystalMine / MetalProd CrystalCrystalTime = 24 * 1.6**IdealPlanet[0].CrystalMine / CrystalProd CrystalTime = CrystalCrystalTime + CrystalMetalTime DeutMetalTime = 225 * 1.5**IdealPlanet[0].DeuteriumMine / MetalProd DeutCrystalTime = 75 * 1.5**IdealPlanet[0].DeuteriumMine / CrystalProd DeutTime = 2 * DeutCrystalTime + 2 * DeutMetalTime newcolmetalcost = 100 * round( 40 * 1.75**TechList[0].Astrophysics) + 100 * round( 40 * 1.75**(TechList[0].Astrophysics + 1) ) / IdealPlanet[0].ResScaleFactor / IdealPlanet[0].ResScaleFactor newcolcrystalcost = 100 * round( 80 * 1.75**TechList[0].Astrophysics) + 100 * round( 80 * 1.75** (TechList[0].Astrophysics + 1)) / IdealPlanet[0].ResScaleFactor newcoldeutcost = 100 * round( 40 * 1.75**TechList[0].Astrophysics) + 100 * round( 40 * 1.75** (TechList[0].Astrophysics + 1)) / IdealPlanet[0].ResScaleFactor for x in range(IdealPlanet[0].MetalMine): newcolmetalcost += 60 * 1.5**x / IdealPlanet[0].ResScaleFactor newcolcrystalcost += 15 * 1.5**x / IdealPlanet[0].ResScaleFactor for x in range(IdealPlanet[0].CrystalMine): newcolmetalcost += 48 * 1.6**x / IdealPlanet[0].ResScaleFactor newcolcrystalcost += 24 * 1.6**x / IdealPlanet[0].ResScaleFactor for x in range(IdealPlanet[0].DeuteriumMine): newcolmetalcost += 225 * 1.5**x / IdealPlanet[0].ResScaleFactor newcolcrystalcost += 75 * 1.5**x / IdealPlanet[0].ResScaleFactor newcolcrystaltime = newcolcrystalcost / CrystalProd newcolmetaltime = newcolmetalcost / MetalProd if newcolmetaltime < newcolcrystaltime: newcoltime = 0.15 * newcolcrystaltime else: newcoltime = 0.15 * newcolmetaltime if MetalTime <= CrystalTime and MetalTime <= DeutTime and MetalTime <= newcoltime: IdealPlanet[0].MetalMine += 1 if CrystalTime <= MetalTime and CrystalTime <= DeutTime and CrystalTime <= newcoltime: IdealPlanet[0].CrystalMine += 1 if DeutTime <= MetalTime and DeutTime <= CrystalTime and DeutTime <= newcoltime: IdealPlanet[0].DeuteriumMine += 1 if newcoltime <= MetalTime and newcoltime <= CrystalTime and newcoltime <= DeutTime: if TechList[1].Astrophysics == 0: IdealPlanet[0].WaitingFlag = 1 IdealPlanet[ 0].WaitingMetal = 4000 / IdealPlanet[0].ResScaleFactor IdealPlanet[ 0].WaitingCrystal = 8000 / IdealPlanet[0].ResScaleFactor IdealPlanet[ 0].WaitingDeut = 4000 / IdealPlanet[0].ResScaleFactor TechList[1].Astrophysics = 1 if IdealPlanet[0].Shipyard < 4: IdealPlanet[0].Shipyard = 4 else: if TechList[0].Astrophysics == TechList[1].Astrophysics: IdealPlanet[0].WaitingFlag = 1 IdealPlanet[0].WaitingMetal = 100 * round( 40 * 1.75**TechList[0].Astrophysics ) / IdealPlanet[0].ResScaleFactor IdealPlanet[0].WaitingCrystal = 100 * round( 80 * 1.75**TechList[0].Astrophysics ) / IdealPlanet[0].ResScaleFactor IdealPlanet[0].WaitingDeut = 100 * round( 40 * 1.75**TechList[0].Astrophysics ) / IdealPlanet[0].ResScaleFactor TechList[1].Astrophysics += 2 if TDeut > TMetal + TCrystal: TechList[1].CombustionDrive = TechList[0].CombustionDrive + 1
setattr(IdealPlanet[x], 'WaitingMetal', 0) setattr(IdealPlanet[x], 'WaitingCrystal', 0) setattr(IdealPlanet[x], 'WaitingDeut', 0) setattr(IdealPlanet[0], 'ResScaleFactor', 1) PlanetList = NewPlanet(PlanetList, TechList, FleetList, IdealPlanet, 0, 0, 0) IdealPlanet[0].MetalMine = 3 upgradechecker = 0 for y in range(1): for m in range(12): for d in range(30): print "day: " + str(y) + ":" + str(m) + ":" + str(d) for h in range(23): for minute in range(60): if len(PlanetList) < 10: minuteprod(PlanetList) TMetal, TCrystal, TDeut = TotalRes( PlanetList, IdealPlanet) # if TMetal >= 100000000 or TCrystal >= 100000000 or TDeut >= 100000000: # IdealPlanet[0].ResScaleFactor *= 10 # for i in range(len(PlanetList)): # PlanetList[i].Resource[:] = [x/10 for x in PlanetList[i].Resource] if IdealPlanet[0].WaitingFlag == 0 or ( IdealPlanet[0].WaitingFlag == 1 and TMetal > IdealPlanet[0].WaitingMetal and TCrystal > IdealPlanet[0].WaitingCrystal and TDeut > IdealPlanet[0].WaitingDeut): print "Checking Upgrades!" evenmaintenance(PlanetList, TechList, FleetList, IdealPlanet) ColonyChecker(PlanetList, TechList, FleetList, IdealPlanet) teching(PlanetList, TechList, FleetList,
def checkupstores(PlanetList, TechList, IdealPlanet, FleetList, Metal, Crystal, Deut, i): calcstores(PlanetList, TechList, FleetList, IdealPlanet) if Metal >= PlanetList[i].MetalCap - PlanetList[i].Prod[0] / 60: TMetal, TCrystal, TDeut = TotalRes(PlanetList, IdealPlanet) MetalCost = 1000 * 2**PlanetList[i].MetalStorage / IdealPlanet[ 0].ResScaleFactor CheckToMove(PlanetList, TechList, FleetList, IdealPlanet, MetalCost, 0, 0, i) if PlanetList[i].Resource[0] >= MetalCost: print "Built Metal Storage Level " + str( PlanetList[i].MetalStorage + 1) + " on Planet " + str(i) + "!" PlanetList[i].Resource[0] -= MetalCost PlanetList[i].MetalStorage += 1 IdealPlanet[0].WaitingFlag = 0 else: if IdealPlanet[0].WaitingFlag == 0: IdealPlanet[0].WaitingFlag = 1 IdealPlanet[0].WaitingMetal = MetalCost if Crystal >= PlanetList[i].CrystalCap - PlanetList[i].Prod[1] / 60: TMetal, TCrystal, TDeut = TotalRes(PlanetList, IdealPlanet) MetalCost = 1000 * 2**PlanetList[i].CrystalStorage / IdealPlanet[ 0].ResScaleFactor CrystalCost = 500 * 2**PlanetList[i].CrystalStorage / IdealPlanet[ 0].ResScaleFactor CheckToMove(PlanetList, TechList, FleetList, IdealPlanet, MetalCost, CrystalCost, 0, i) if PlanetList[i].Resource[0] >= MetalCost and PlanetList[i].Resource[ 1] >= CrystalCost: print "Built Crystal Storage Level " + str( PlanetList[i].CrystalStorage + 1) + " on Planet " + str(i) + "!" PlanetList[i].Resource[0] -= MetalCost PlanetList[i].Resource[1] -= CrystalCost PlanetList[i].CrystalStorage += 1 IdealPlanet[0].WaitingFlag = 0 else: if IdealPlanet[0].WaitingFlag == 0: IdealPlanet[0].WaitingFlag = 1 IdealPlanet[0].WaitingMetal = MetalCost IdealPlanet[0].WaitingCrystal = CrystalCost if Deut >= PlanetList[i].DeuteriumCap - PlanetList[i].Prod[2] / 60: TMetal, TCrystal, TDeut = TotalRes(PlanetList, IdealPlanet) MetalCost = 1000 * 2**PlanetList[i].CrystalStorage / IdealPlanet[ 0].ResScaleFactor CrystalCost = 1000 * 2**PlanetList[i].CrystalStorage / IdealPlanet[ 0].ResScaleFactor CheckToMove(PlanetList, TechList, FleetList, IdealPlanet, MetalCost, CrystalCost, 0, i) if PlanetList[i].Resource[0] >= MetalCost and PlanetList[i].Resource[ 1] >= CrystalCost: print "Built Deuterium Storage Level " + str( PlanetList[i].DeuteriumStorage + 1) + " on Planet " + str(i) + "!" PlanetList[i].Resource[0] -= MetalCost PlanetList[i].Resource[1] -= CrystalCost PlanetList[i].DeuteriumStorage += 1 IdealPlanet[0].WaitingFlag = 0 else: if IdealPlanet[0].WaitingFlag == 0: IdealPlanet[0].WaitingFlag = 1 IdealPlanet[0].WaitingMetal = MetalCost IdealPlanet[0].WaitingCrystal = CrystalCost calcstores(PlanetList, TechList, FleetList, IdealPlanet)
def mining(PlanetList, TechList, FleetList, IdealPlanet): metalmax = metalmax2 = 1 crystalmax = crystalmax2 = 1 deutmax = deutmax2 = 1 TMetal, TCrystal, TDeut = TotalRes(PlanetList) for x in range(len(PlanetList)): others = PlanetList[x].Resource[1] + PlanetList[x].Resource[2] if PlanetList[x].Resource[0] > others: CheckRocketLaunchers( PlanetList, TechList, FleetList, IdealPlanet, x, ) if PlanetList[x].MetalMine < IdealPlanet[0].MetalMine: metalmax = 0 if PlanetList[x].MetalMine < IdealPlanet[0].MetalMine - 3: metalmax2 = 0 if PlanetList[x].CrystalMine < IdealPlanet[0].CrystalMine: crystalmax = 0 if PlanetList[x].CrystalMine < IdealPlanet[0].CrystalMine - 3: crystalmax2 = 0 if PlanetList[x].DeuteriumMine < IdealPlanet[0].DeuteriumMine: deutmax = 0 if PlanetList[x].DeuteriumMine < IdealPlanet[0].DeuteriumMine - 3: deutmax2 = 0 if metalmax2 == 1 and crystalmax2 == 1 and deutmax2 == 1 and len( PlanetList) == ((TechList[1].Astrophysics + 1) / 2 + 1) and IdealPlanet[0].WaitingFlag == 0: metale, crystale, deute, newcole = EffectiveMining( PlanetList, TechList, IdealPlanet) if TMetal < TCrystal + TDeut and metalmax == 1: IdealPlanet[0].MetalMine += 1 if TCrystal < TMetal + TDeut and crystalmax == 1: IdealPlanet[0].CrystalMine += 1 if TDeut < TMetal or TDeut < TCrystal and deutmax == 1: IdealPlanet[0].DeuteriumMine += 1 if newcole > metale and newcole > crystale and newcole * 4 > deute: if TechList[1].Astrophysics == 0: IdealPlanet[0].WaitingFlag = 1 IdealPlanet[0].WaitingMetal = 4000 IdealPlanet[0].WaitingCrystal = 8000 IdealPlanet[0].WaitingDeut = 4000 TechList[1].Astrophysics = 1 if IdealPlanet[0].Shipyard < 4: IdealPlanet[0].Shipyard = 4 else: if TechList[0].Astrophysics == TechList[1].Astrophysics: IdealPlanet[0].WaitingFlag = 1 IdealPlanet[0].WaitingMetal = 100 * round( 40 * 1.75**TechList[0].Astrophysics) IdealPlanet[0].WaitingCrystal = 100 * round( 80 * 1.75**TechList[0].Astrophysics) IdealPlanet[0].WaitingDeut = 100 * round( 40 * 1.75**TechList[0].Astrophysics) TechList[1].Astrophysics += 2 if TDeut > TMetal and TDeut > TCrystal: TechList[1].CombustionDrive = TechList[0].CombustionDrive + 1 if TechList[0].Energy < IdealPlanet[0].FusionPlant + 5: TechList[1].Energy = TechList[0].Energy + 1
setattr(IdealPlanet[x], 'WaitingCrystal', 0) setattr(IdealPlanet[x], 'WaitingDeut', 0) IdealPlanet[0].MetalMine = IdealPlanet[0].CrystalMine = IdealPlanet[ 0].Deutmine = 1 FleetList = [] upgradechecker = 0 for y in range(10): for m in range(12): for d in range(30): print "day: " + str(y) + ":" + str(m) + ":" + str(d) for h in range(23): ColonyChecker(PlanetList, TechList) for minute in range(60): # if len(PlanetList) < 9: minuteprod(PlanetList) TMetal, TCrystal, TDeut = TotalRes(PlanetList) if IdealPlanet[0].WaitingFlag == 0 or ( IdealPlanet[0].WaitingFlag == 1 and TMetal > IdealPlanet[0].WaitingMetal and TCrystal > IdealPlanet[0].WaitingCrystal and TDeut > IdealPlanet[0].WaitingDeut and TechList[0].CombustionDrive >= 2): print "Checking Upgrades!" teching(PlanetList, TechList, FleetList, IdealPlanet) evenmaintenance(PlanetList, TechList, FleetList, IdealPlanet) mining(PlanetList, TechList, FleetList, IdealPlanet) # upgradechecker = 0 # if IdealPlanet[0].WaitingFlag == 1 and upgradechecker == 0: # upgradechecker = 1 # metalmax = 1