Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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