Exemplo n.º 1
0
    def _commission_swipe_to_top(self, bar_padding_y=10):
        if self.appear(COMMISSION_SCROLL_TOP):
            # Already at top
            return False

        mean = np.mean(self.device.image.crop(COMMISSION_SCROLL.area), axis=1)
        bar = np.where(color_similar_1d(mean, color=(247, 211, 66)))[0]
        if len(bar) < bar_padding_y * 2:
            # No scroll found.
            return False

        bar = (COMMISSION_SCROLL.area[0], np.min(bar) + bar_padding_y,
               COMMISSION_SCROLL.area[2], np.max(bar) - bar_padding_y)
        p1 = random_rectangle_point(bar)
        p2 = random_rectangle_point(COMMISSION_SCROLL_TOP.area)
        self.device.drag(p1, p2, shake=(15, 0), point_random=(0, 0, 0, 0))
        self.device.sleep(0.3)
        self.device.screenshot()
        return True
Exemplo n.º 2
0
    def _commission_scan_list(self):
        commission = CommissionGroup(self.config)
        commission.merge(self.device.image)
        if commission.count <= 3:
            return commission
        mean = np.mean(self.device.image.crop(COMMISSION_SCROLL.area), axis=1)
        bar = np.where(color_similar_1d(mean, color=(247, 211, 66)))[0]
        if len(bar) < 10 * 2:
            return commission

        prev = commission.count
        for _ in range(15):
            self._commission_swipe()
            commission.merge(self.device.image)
            if commission.count - prev <= 0:
                break
            prev = commission.count
            if self.appear(COMMISSION_SCROLL_BOTTOM):
                break

        return commission