mirror of
https://github.com/sui-feng-cb/AzurLaneAutoScript1.git
synced 2026-08-10 10:36:23 +08:00
Upd: Shop Scroll
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 8.6 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 3.9 KiB |
@@ -7,7 +7,7 @@ from module.base.template import Template
|
||||
AMOUNT_MAX = Button(area={'cn': (762, 314, 830, 342), 'en': (772, 316, 822, 332), 'jp': (772, 316, 822, 332), 'tw': (772, 316, 822, 332)}, color={'cn': (104, 145, 209), 'en': (148, 178, 225), 'jp': (148, 178, 225), 'tw': (148, 178, 225)}, button={'cn': (762, 314, 830, 342), 'en': (772, 316, 822, 332), 'jp': (772, 316, 822, 332), 'tw': (772, 316, 822, 332)}, file={'cn': './assets/cn/shop/AMOUNT_MAX.png', 'en': './assets/en/shop/AMOUNT_MAX.png', 'jp': './assets/jp/shop/AMOUNT_MAX.png', 'tw': './assets/tw/shop/AMOUNT_MAX.png'})
|
||||
AMOUNT_MINUS = Button(area={'cn': (549, 311, 582, 345), 'en': (546, 304, 586, 344), 'jp': (546, 304, 586, 344), 'tw': (546, 304, 586, 344)}, color={'cn': (82, 129, 194), 'en': (76, 127, 195), 'jp': (76, 127, 195), 'tw': (76, 127, 195)}, button={'cn': (549, 311, 582, 345), 'en': (546, 304, 586, 344), 'jp': (546, 304, 586, 344), 'tw': (546, 304, 586, 344)}, file={'cn': './assets/cn/shop/AMOUNT_MINUS.png', 'en': './assets/en/shop/AMOUNT_MINUS.png', 'jp': './assets/jp/shop/AMOUNT_MINUS.png', 'tw': './assets/tw/shop/AMOUNT_MINUS.png'})
|
||||
AMOUNT_PLUS = Button(area={'cn': (696, 312, 732, 345), 'en': (693, 304, 735, 344), 'jp': (693, 304, 735, 344), 'tw': (693, 304, 735, 344)}, color={'cn': (88, 133, 199), 'en': (81, 130, 196), 'jp': (81, 130, 196), 'tw': (81, 130, 196)}, button={'cn': (696, 312, 732, 345), 'en': (693, 304, 735, 344), 'jp': (693, 304, 735, 344), 'tw': (693, 304, 735, 344)}, file={'cn': './assets/cn/shop/AMOUNT_PLUS.png', 'en': './assets/en/shop/AMOUNT_PLUS.png', 'jp': './assets/jp/shop/AMOUNT_PLUS.png', 'tw': './assets/tw/shop/AMOUNT_PLUS.png'})
|
||||
MEDAL_SHOP_SCROLL_AREA_250814 = Button(area={'cn': (1063, 201, 1064, 623), 'en': (1063, 201, 1064, 623), 'jp': (1063, 201, 1064, 623), 'tw': (1063, 201, 1064, 623)}, color={'cn': (128, 143, 153), 'en': (128, 143, 153), 'jp': (128, 143, 153), 'tw': (128, 143, 153)}, button={'cn': (1063, 201, 1064, 623), 'en': (1063, 201, 1064, 623), 'jp': (1063, 201, 1064, 623), 'tw': (1063, 201, 1064, 623)}, file={'cn': './assets/cn/shop/MEDAL_SHOP_SCROLL_AREA_250814.png', 'en': './assets/en/shop/MEDAL_SHOP_SCROLL_AREA_250814.png', 'jp': './assets/cn/shop/MEDAL_SHOP_SCROLL_AREA_250814.png', 'tw': './assets/cn/shop/MEDAL_SHOP_SCROLL_AREA_250814.png'})
|
||||
MEDAL_SHOP_SCROLL_AREA_250814 = Button(area={'cn': (1064, 201, 1065, 623), 'en': (1064, 201, 1065, 623), 'jp': (1064, 201, 1065, 623), 'tw': (1064, 201, 1065, 623)}, color={'cn': (130, 130, 141), 'en': (130, 130, 141), 'jp': (130, 130, 141), 'tw': (130, 130, 141)}, button={'cn': (1064, 201, 1065, 623), 'en': (1064, 201, 1065, 623), 'jp': (1064, 201, 1065, 623), 'tw': (1064, 201, 1065, 623)}, file={'cn': './assets/cn/shop/MEDAL_SHOP_SCROLL_AREA_250814.png', 'en': './assets/cn/shop/MEDAL_SHOP_SCROLL_AREA_250814.png', 'jp': './assets/cn/shop/MEDAL_SHOP_SCROLL_AREA_250814.png', 'tw': './assets/cn/shop/MEDAL_SHOP_SCROLL_AREA_250814.png'})
|
||||
NAV_GENERAL = Button(area={'cn': (52, 436, 127, 457), 'en': (47, 438, 127, 458), 'jp': (50, 438, 94, 458), 'tw': (53, 436, 126, 459)}, color={'cn': (126, 178, 207), 'en': (137, 185, 211), 'jp': (149, 194, 218), 'tw': (146, 191, 214)}, button={'cn': (52, 436, 127, 457), 'en': (47, 438, 127, 458), 'jp': (50, 438, 94, 458), 'tw': (53, 436, 126, 459)}, file={'cn': './assets/cn/shop/NAV_GENERAL.png', 'en': './assets/en/shop/NAV_GENERAL.png', 'jp': './assets/jp/shop/NAV_GENERAL.png', 'tw': './assets/tw/shop/NAV_GENERAL.png'})
|
||||
NAV_MONTHLY = Button(area={'cn': (52, 486, 127, 508), 'en': (51, 487, 131, 507), 'jp': (53, 488, 125, 508), 'tw': (53, 487, 125, 507)}, color={'cn': (127, 178, 207), 'en': (129, 179, 207), 'jp': (161, 201, 219), 'tw': (143, 187, 210)}, button={'cn': (52, 486, 127, 508), 'en': (51, 487, 131, 507), 'jp': (53, 488, 125, 508), 'tw': (53, 487, 125, 507)}, file={'cn': './assets/cn/shop/NAV_MONTHLY.png', 'en': './assets/en/shop/NAV_MONTHLY.png', 'jp': './assets/jp/shop/NAV_MONTHLY.png', 'tw': './assets/tw/shop/NAV_MONTHLY.png'})
|
||||
SELECT_MINUS = Button(area={'cn': (562, 201, 588, 227), 'en': (562, 201, 588, 227), 'jp': (562, 201, 588, 227), 'tw': (562, 201, 588, 227)}, color={'cn': (86, 70, 70), 'en': (86, 70, 70), 'jp': (86, 70, 70), 'tw': (86, 70, 70)}, button={'cn': (562, 201, 588, 227), 'en': (562, 201, 588, 227), 'jp': (562, 201, 588, 227), 'tw': (562, 201, 588, 227)}, file={'cn': './assets/cn/shop/SELECT_MINUS.png', 'en': './assets/en/shop/SELECT_MINUS.png', 'jp': './assets/jp/shop/SELECT_MINUS.png', 'tw': './assets/tw/shop/SELECT_MINUS.png'})
|
||||
|
||||
@@ -14,36 +14,35 @@ from module.shop.assets import *
|
||||
from module.shop.base import ShopItemGrid_250814
|
||||
from module.shop.clerk import ShopClerk
|
||||
from module.shop.shop_status import ShopStatus
|
||||
from module.ui.scroll import AdaptiveScroll
|
||||
from module.ui.scroll import Scroll
|
||||
|
||||
|
||||
class ShopAdaptiveScroll(AdaptiveScroll):
|
||||
class ShopScroll(Scroll):
|
||||
def match_color(self, main):
|
||||
area = (self.area[0] - self.background, self.area[1], self.area[2] + self.background, self.area[3])
|
||||
image = main.image_crop(area, copy=False)
|
||||
|
||||
image = rgb2gray(image)
|
||||
cv2.bitwise_not(image, dst=image)
|
||||
image = image.flatten()
|
||||
wlen = area[2] - area[0]
|
||||
parameters = {
|
||||
'height': (100, 200),
|
||||
'prominence': 35,
|
||||
'width': 1
|
||||
}
|
||||
parameters.update(self.parameters)
|
||||
peaks, _ = signal.find_peaks(image, **parameters)
|
||||
peaks = peaks[15: 123]
|
||||
peaks //= wlen
|
||||
self.length = 123
|
||||
mask = np.zeros((self.total,), dtype=np.bool_)
|
||||
mask[peaks] = 1
|
||||
background_transparency = 0.2
|
||||
button_transparency = 0.5
|
||||
delta_x = 3
|
||||
area = (
|
||||
self.area[0] - delta_x,
|
||||
self.area[1],
|
||||
self.area[2] + delta_x,
|
||||
self.area[3]
|
||||
)
|
||||
image = main.image_crop(area, copy=False).astype(np.float)
|
||||
baseline_color = np.mean(image[:, [0, -1], :], axis=1)
|
||||
masked_color = image[:, image.shape[1] // 2, :]
|
||||
background_mask = background_transparency * np.array(self.color) + (1 - background_transparency) * baseline_color
|
||||
button_mask = button_transparency * np.array(self.color) + (1 - button_transparency) * baseline_color
|
||||
err_background = np.sum((masked_color - background_mask) ** 2, axis=1)
|
||||
err_button = np.sum((masked_color - button_mask) ** 2, axis=1)
|
||||
mask = err_button < err_background
|
||||
self.length = np.sum(mask)
|
||||
return mask
|
||||
|
||||
|
||||
MEDAL_SHOP_SCROLL_250814 = ShopAdaptiveScroll(
|
||||
MEDAL_SHOP_SCROLL_250814 = ShopScroll(
|
||||
MEDAL_SHOP_SCROLL_AREA_250814.button,
|
||||
background=1,
|
||||
color=(44, 48, 56),
|
||||
name="MEDAL_SHOP_SCROLL_250814"
|
||||
)
|
||||
MEDAL_SHOP_SCROLL_250814.drag_threshold = 0.1
|
||||
|
||||
Reference in New Issue
Block a user