예제 #1
0
    def third_stage(self):
        kill_enemy = KillEnemy()
        kill_enemy.start()

        item_pos = action.find_item_in_bar(
            gate_bar_pos, ['Acceleration Gate to Central Warehouses'])

        if item_pos is not None:
            log.info('found item position')
            action.click_pos(item_pos)

            target_info = action.parse_target_data(action.get_target_data())
            target_distance = action.parse_distance(target_info["distance"])

            if (target_distance["metric"] == "km" and target_distance["number"] * 1000 > loot_distance) or \
                    (target_distance["metric"] == "m" and target_distance["number"] > loot_distance):
                log.info('flying to wreck')
                if target_distance["metric"] == "km":
                    target_distance["number"] *= 1000

                action.fly_to_target(target_distance["number"], loot_distance)

            action.click_pos(warp_dock_loot_pos)

            action.check_warp_end(enemy_bar_pos)
            action.click_pos(anomaly_info_close_pos)
        else:
            return False

        return True
예제 #2
0
    def start(self):
        log.init_time()
        log.info('# start looting wreck')
        item_pos = action.find_item_in_bar(wreck_bar_pos, self._rare_ship_name)

        if item_pos is not None:
            # move to wreck
            log.info('found item position')
            action.click_pos(item_pos)
            target_info = action.parse_target_data(action.get_target_data())
            target_distance = action.parse_distance(target_info["distance"])

            if (target_distance["metric"] == "km" and target_distance["number"] * 1000 > loot_distance) or \
                    (target_distance["metric"] == "m" and target_distance["number"] > loot_distance):
                log.info('flying to wreck')
                if target_distance["metric"] == "km":
                    target_distance["number"] *= 1000

                action.fly_to_target(target_distance["number"], loot_distance)

            log.info('looting items')
            action.click_pos(loot_pos, 2)

            # loot all
            action.click_pos(loot_all_pos, 2)
            action.click_pos(close_inventory_pos)

        log.info('# elapsed time: ' + str(log.elapsed_time()) + ' sec')
        log.info('# end looting wreck')
예제 #3
0
    def first_stage(self):
        item_pos = action.find_item_in_bar(gate_bar_pos,
                                           ['Ancient Acceleration Gate'])

        if item_pos is not None:
            # move to wreck
            log.info('found item position')
            action.click_pos(item_pos)

            action.click_pos(warp_dock_loot_pos)

            action.check_warp_end(enemy_bar_pos)

            action.click_pos(anomaly_info_close_pos)
        else:
            return False

        return True
예제 #4
0
 def start(self):
     item_pos = action.find_item_in_bar(struct_bar_pos, ['Warehouse'])
     if item_pos is not None:
         action.click_pos(item_pos)
예제 #5
0
    def fifth_stage(self):
        # activate sub module
        action.click_sub_modules()

        item_pos = action.find_item_in_bar(struct_bar_pos,
                                           ['Serpentis Supply Stronghold'])
        if item_pos is not None:
            target_info = action.parse_target_data(action.get_target_data())
            target_distance = action.parse_distance(target_info["distance"])

            log.info('\ntarget name: ' + target_info["name"])

            if target_info["name"] == "empty":
                return False

            if target_distance["metric"] == "km" and target_distance[
                    "number"] * 1000 > action.optimal_distance:
                action.fly_to_target(target_distance["number"] * 1000)

            log.info('lock target')
            action.click_pos(lock_target_pos)

            action.click_pos(attack_module_pos)

            log.info('killing target')
            action.destroy_target(with_periscope_drones=True,
                                  periscope_timeout=24)
            sleep(10)

            action.click_pos(anomaly_info_close_pos)
            container_item_pos = action.find_item_in_bar(
                struct_bar_pos, ['Cargo Container'])

            while True:
                if container_item_pos is not None:
                    if (target_distance["metric"] == "km" and target_distance["number"] * 1000 > loot_distance) or \
                            (target_distance["metric"] == "m" and target_distance["number"] > loot_distance):
                        log.info('flying to wreck')
                        if target_distance["metric"] == "km":
                            target_distance["number"] *= 1000

                        action.fly_to_target(target_distance["number"],
                                             loot_distance)

                    log.info('looting items')
                    action.click_pos(loot_pos, 2)

                    # loot all
                    action.click_pos(loot_all_pos, 2)
                    action.click_pos(close_inventory_pos)

                    break
                else:
                    break

                container_item_pos = action.find_item_in_bar(
                    struct_bar_pos, ['Cargo Container'],
                    start_item_pos=container_item_pos + 18)
        else:
            return False

        # de-activate sub module
        action.click_sub_modules()
        return True