def handle_planet(self, planet): builder = Builder() farmer = Farmer() build_time = 0 farmer_wait_time = 0 self.api.update_planet(planet=planet) # If the mines are below a certain level, build mines. After, begin farming operations if planet.resource_buildings['metal_mine']['level'] < 9: build_time = builder.build_next_resource_or_storage_building( api=self.api, planet=planet) else: # Conduct farming operations first in case building tech is necessary. farmer_wait_time = farmer.conduct_farming_operations(api=self.api, planet=planet) self.api.update_planet(planet=planet) build_time = builder.build_next_resource_or_storage_building( api=self.api, planet=planet) if build_time == 0: build_time = builder.get_minimum_time_to_build_next_preferred_resources_building( api=self.api, planet=planet) return min(build_time, farmer_wait_time)
def build_resources_on_all_planets(self): builder = Builder() planets = self.api.get_all_planets() min_resource_building_time = INF for planet in planets: self.api.go_to_planet(planet=planet) self.api.update_planet_resources_info(planet=planet) self.api.update_planet_resource_buildings_info(planet=planet) build_time = builder.build_next_resource_or_storage_building( api=self.api, planet=planet) min_resource_building_time = min(min_resource_building_time, build_time) return min_resource_building_time