Merge branch 'master' of https://github.com/sui-feng-cb/AzurLaneAutoScript
BIN
assets/en/island/GET_ITEMS_ISLAND.png
Normal file
|
After Width: | Height: | Size: 8.8 KiB |
BIN
assets/en/island/ISLAND_AMOUNT_MAX.png
Normal file
|
After Width: | Height: | Size: 6.3 KiB |
BIN
assets/en/island/ISLAND_MANAGEMENT_CHECK.png
Normal file
|
After Width: | Height: | Size: 9.9 KiB |
BIN
assets/en/island/ISLAND_TRANSPORT.png
Normal file
|
After Width: | Height: | Size: 6.0 KiB |
BIN
assets/en/island/ISLAND_TRANSPORT_CHECK.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
assets/en/island/OCR_PRODUCTION_TIME.png
Normal file
|
After Width: | Height: | Size: 8.6 KiB |
BIN
assets/en/island/PROJECT_START.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
assets/en/island/ROLE_SELECT_CONFIRM.png
Normal file
|
After Width: | Height: | Size: 6.6 KiB |
BIN
assets/en/island/ROLE_SELECT_ENTER.png
Normal file
|
After Width: | Height: | Size: 8.7 KiB |
BIN
assets/en/ui/ISLAND_CHECK.png
Normal file
|
After Width: | Height: | Size: 6.9 KiB |
BIN
assets/en/ui/ISLAND_GOTO_ISLAND_PHONE.png
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
@ -4,17 +4,17 @@ from module.base.template import Template
|
||||
# This file was automatically generated by dev_tools/button_extract.py.
|
||||
# Don't modify it manually.
|
||||
|
||||
GET_ITEMS_ISLAND = Button(area={'cn': (588, 260, 692, 289), 'en': (588, 260, 692, 289), 'jp': (588, 260, 692, 289), 'tw': (588, 260, 692, 289)}, color={'cn': (178, 180, 180), 'en': (178, 180, 180), 'jp': (178, 180, 180), 'tw': (178, 180, 180)}, button={'cn': (0, 263, 129, 555), 'en': (0, 263, 129, 555), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, file={'cn': './assets/cn/island/GET_ITEMS_ISLAND.png', 'en': './assets/cn/island/GET_ITEMS_ISLAND.png', 'jp': './assets/cn/island/GET_ITEMS_ISLAND.png', 'tw': './assets/cn/island/GET_ITEMS_ISLAND.png'})
|
||||
ISLAND_AMOUNT_MAX = Button(area={'cn': (960, 382, 988, 405), 'en': (960, 382, 988, 405), 'jp': (960, 382, 988, 405), 'tw': (960, 382, 988, 405)}, color={'cn': (72, 72, 78), 'en': (72, 72, 78), 'jp': (72, 72, 78), 'tw': (72, 72, 78)}, button={'cn': (960, 382, 988, 405), 'en': (960, 382, 988, 405), 'jp': (960, 382, 988, 405), 'tw': (960, 382, 988, 405)}, file={'cn': './assets/cn/island/ISLAND_AMOUNT_MAX.png', 'en': './assets/cn/island/ISLAND_AMOUNT_MAX.png', 'jp': './assets/cn/island/ISLAND_AMOUNT_MAX.png', 'tw': './assets/cn/island/ISLAND_AMOUNT_MAX.png'})
|
||||
GET_ITEMS_ISLAND = Button(area={'cn': (588, 260, 692, 289), 'en': (588, 260, 692, 289), 'jp': (588, 260, 692, 289), 'tw': (588, 260, 692, 289)}, color={'cn': (149, 151, 152), 'en': (149, 151, 152), 'jp': (149, 151, 152), 'tw': (149, 151, 152)}, button={'cn': (0, 263, 129, 555), 'en': (588, 260, 692, 289), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, file={'cn': './assets/cn/island/GET_ITEMS_ISLAND.png', 'en': './assets/en/island/GET_ITEMS_ISLAND.png', 'jp': './assets/cn/island/GET_ITEMS_ISLAND.png', 'tw': './assets/cn/island/GET_ITEMS_ISLAND.png'})
|
||||
ISLAND_AMOUNT_MAX = Button(area={'cn': (960, 382, 988, 405), 'en': (960, 382, 988, 405), 'jp': (960, 382, 988, 405), 'tw': (960, 382, 988, 405)}, color={'cn': (78, 78, 84), 'en': (78, 78, 84), 'jp': (78, 78, 84), 'tw': (78, 78, 84)}, button={'cn': (960, 382, 988, 405), 'en': (960, 382, 988, 405), 'jp': (960, 382, 988, 405), 'tw': (960, 382, 988, 405)}, file={'cn': './assets/cn/island/ISLAND_AMOUNT_MAX.png', 'en': './assets/en/island/ISLAND_AMOUNT_MAX.png', 'jp': './assets/cn/island/ISLAND_AMOUNT_MAX.png', 'tw': './assets/cn/island/ISLAND_AMOUNT_MAX.png'})
|
||||
ISLAND_CLICK_SAFE_AREA = Button(area={'cn': (0, 263, 129, 555), 'en': (0, 263, 129, 555), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, color={'cn': (50, 52, 56), 'en': (50, 52, 56), 'jp': (50, 52, 56), 'tw': (50, 52, 56)}, button={'cn': (0, 263, 129, 555), 'en': (0, 263, 129, 555), 'jp': (0, 263, 129, 555), 'tw': (0, 263, 129, 555)}, file={'cn': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'en': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'jp': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png', 'tw': './assets/cn/island/ISLAND_CLICK_SAFE_AREA.png'})
|
||||
ISLAND_MANAGEMENT = Button(area={'cn': (1077, 493, 1119, 533), 'en': (1077, 493, 1119, 533), 'jp': (1077, 493, 1119, 533), 'tw': (1077, 493, 1119, 533)}, color={'cn': (187, 224, 135), 'en': (187, 224, 135), 'jp': (187, 224, 135), 'tw': (187, 224, 135)}, button={'cn': (1077, 493, 1119, 533), 'en': (1077, 493, 1119, 533), 'jp': (1077, 493, 1119, 533), 'tw': (1077, 493, 1119, 533)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT.png', 'en': './assets/cn/island/ISLAND_MANAGEMENT.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT.png'})
|
||||
ISLAND_MANAGEMENT_CHECK = Button(area={'cn': (123, 21, 304, 47), 'en': (123, 21, 304, 47), 'jp': (123, 21, 304, 47), 'tw': (123, 21, 304, 47)}, color={'cn': (77, 83, 96), 'en': (77, 83, 96), 'jp': (77, 83, 96), 'tw': (77, 83, 96)}, button={'cn': (123, 21, 304, 47), 'en': (123, 21, 304, 47), 'jp': (123, 21, 304, 47), 'tw': (123, 21, 304, 47)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png', 'en': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png'})
|
||||
ISLAND_MANAGEMENT_CHECK = Button(area={'cn': (123, 21, 304, 47), 'en': (123, 21, 304, 47), 'jp': (123, 21, 304, 47), 'tw': (123, 21, 304, 47)}, color={'cn': (90, 96, 108), 'en': (90, 96, 108), 'jp': (90, 96, 108), 'tw': (90, 96, 108)}, button={'cn': (123, 21, 304, 47), 'en': (123, 21, 304, 47), 'jp': (123, 21, 304, 47), 'tw': (123, 21, 304, 47)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png', 'en': './assets/en/island/ISLAND_MANAGEMENT_CHECK.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT_CHECK.png'})
|
||||
ISLAND_MANAGEMENT_LOCKED = Button(area={'cn': (1092, 504, 1105, 520), 'en': (1092, 504, 1105, 520), 'jp': (1092, 504, 1105, 520), 'tw': (1092, 504, 1105, 520)}, color={'cn': (197, 206, 195), 'en': (197, 206, 195), 'jp': (197, 206, 195), 'tw': (197, 206, 195)}, button={'cn': (1092, 504, 1105, 520), 'en': (1092, 504, 1105, 520), 'jp': (1092, 504, 1105, 520), 'tw': (1092, 504, 1105, 520)}, file={'cn': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'en': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'jp': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png', 'tw': './assets/cn/island/ISLAND_MANAGEMENT_LOCKED.png'})
|
||||
ISLAND_PRODUCT_ITEMS = Button(area={'cn': (166, 68, 477, 652), 'en': (166, 68, 477, 652), 'jp': (166, 68, 477, 652), 'tw': (166, 68, 477, 652)}, color={'cn': (189, 200, 198), 'en': (189, 200, 198), 'jp': (189, 200, 198), 'tw': (189, 200, 198)}, button={'cn': (166, 68, 477, 652), 'en': (166, 68, 477, 652), 'jp': (166, 68, 477, 652), 'tw': (166, 68, 477, 652)}, file={'cn': './assets/cn/island/ISLAND_PRODUCT_ITEMS.png', 'en': './assets/cn/island/ISLAND_PRODUCT_ITEMS.png', 'jp': './assets/cn/island/ISLAND_PRODUCT_ITEMS.png', 'tw': './assets/cn/island/ISLAND_PRODUCT_ITEMS.png'})
|
||||
ISLAND_PROJECT_SWIPE = Button(area={'cn': (690, 80, 721, 641), 'en': (690, 80, 721, 641), 'jp': (690, 80, 721, 641), 'tw': (690, 80, 721, 641)}, color={'cn': (215, 218, 213), 'en': (215, 218, 213), 'jp': (215, 218, 213), 'tw': (215, 218, 213)}, button={'cn': (690, 80, 721, 641), 'en': (690, 80, 721, 641), 'jp': (690, 80, 721, 641), 'tw': (690, 80, 721, 641)}, file={'cn': './assets/cn/island/ISLAND_PROJECT_SWIPE.png', 'en': './assets/cn/island/ISLAND_PROJECT_SWIPE.png', 'jp': './assets/cn/island/ISLAND_PROJECT_SWIPE.png', 'tw': './assets/cn/island/ISLAND_PROJECT_SWIPE.png'})
|
||||
ISLAND_TRANSPORT = Button(area={'cn': (905, 335, 986, 358), 'en': (905, 335, 986, 358), 'jp': (905, 335, 986, 358), 'tw': (905, 335, 986, 358)}, color={'cn': (228, 192, 122), 'en': (228, 192, 122), 'jp': (228, 192, 122), 'tw': (228, 192, 122)}, button={'cn': (898, 328, 1031, 459), 'en': (898, 328, 1031, 459), 'jp': (898, 328, 1031, 459), 'tw': (898, 328, 1031, 459)}, file={'cn': './assets/cn/island/ISLAND_TRANSPORT.png', 'en': './assets/cn/island/ISLAND_TRANSPORT.png', 'jp': './assets/cn/island/ISLAND_TRANSPORT.png', 'tw': './assets/cn/island/ISLAND_TRANSPORT.png'})
|
||||
ISLAND_TRANSPORT_CHECK = Button(area={'cn': (264, 154, 317, 180), 'en': (264, 154, 317, 180), 'jp': (264, 154, 317, 180), 'tw': (264, 154, 317, 180)}, color={'cn': (142, 143, 143), 'en': (142, 143, 143), 'jp': (142, 143, 143), 'tw': (142, 143, 143)}, button={'cn': (264, 154, 317, 180), 'en': (264, 154, 317, 180), 'jp': (264, 154, 317, 180), 'tw': (264, 154, 317, 180)}, file={'cn': './assets/cn/island/ISLAND_TRANSPORT_CHECK.png', 'en': './assets/cn/island/ISLAND_TRANSPORT_CHECK.png', 'jp': './assets/cn/island/ISLAND_TRANSPORT_CHECK.png', 'tw': './assets/cn/island/ISLAND_TRANSPORT_CHECK.png'})
|
||||
OCR_PRODUCTION_TIME = Button(area={'cn': (714, 611, 808, 631), 'en': (714, 611, 808, 631), 'jp': (714, 611, 808, 631), 'tw': (714, 611, 808, 631)}, color={'cn': (120, 210, 255), 'en': (120, 210, 255), 'jp': (120, 210, 255), 'tw': (120, 210, 255)}, button={'cn': (714, 611, 808, 631), 'en': (714, 611, 808, 631), 'jp': (714, 611, 808, 631), 'tw': (714, 611, 808, 631)}, file={'cn': './assets/cn/island/OCR_PRODUCTION_TIME.png', 'en': './assets/cn/island/OCR_PRODUCTION_TIME.png', 'jp': './assets/cn/island/OCR_PRODUCTION_TIME.png', 'tw': './assets/cn/island/OCR_PRODUCTION_TIME.png'})
|
||||
ISLAND_TRANSPORT = Button(area={'cn': (905, 335, 986, 358), 'en': (905, 335, 986, 358), 'jp': (905, 335, 986, 358), 'tw': (905, 335, 986, 358)}, color={'cn': (234, 192, 102), 'en': (234, 192, 102), 'jp': (234, 192, 102), 'tw': (234, 192, 102)}, button={'cn': (898, 328, 1031, 459), 'en': (905, 335, 986, 358), 'jp': (898, 328, 1031, 459), 'tw': (898, 328, 1031, 459)}, file={'cn': './assets/cn/island/ISLAND_TRANSPORT.png', 'en': './assets/en/island/ISLAND_TRANSPORT.png', 'jp': './assets/cn/island/ISLAND_TRANSPORT.png', 'tw': './assets/cn/island/ISLAND_TRANSPORT.png'})
|
||||
ISLAND_TRANSPORT_CHECK = Button(area={'cn': (264, 154, 317, 180), 'en': (264, 154, 317, 180), 'jp': (264, 154, 317, 180), 'tw': (264, 154, 317, 180)}, color={'cn': (22, 0, 0), 'en': (22, 0, 0), 'jp': (22, 0, 0), 'tw': (22, 0, 0)}, button={'cn': (264, 154, 317, 180), 'en': (264, 154, 317, 180), 'jp': (264, 154, 317, 180), 'tw': (264, 154, 317, 180)}, file={'cn': './assets/cn/island/ISLAND_TRANSPORT_CHECK.png', 'en': './assets/en/island/ISLAND_TRANSPORT_CHECK.png', 'jp': './assets/cn/island/ISLAND_TRANSPORT_CHECK.png', 'tw': './assets/cn/island/ISLAND_TRANSPORT_CHECK.png'})
|
||||
OCR_PRODUCTION_TIME = Button(area={'cn': (714, 611, 808, 631), 'en': (637, 603, 733, 623), 'jp': (714, 611, 808, 631), 'tw': (714, 611, 808, 631)}, color={'cn': (120, 210, 255), 'en': (132, 214, 255), 'jp': (120, 210, 255), 'tw': (120, 210, 255)}, button={'cn': (714, 611, 808, 631), 'en': (637, 603, 733, 623), 'jp': (714, 611, 808, 631), 'tw': (714, 611, 808, 631)}, file={'cn': './assets/cn/island/OCR_PRODUCTION_TIME.png', 'en': './assets/en/island/OCR_PRODUCTION_TIME.png', 'jp': './assets/cn/island/OCR_PRODUCTION_TIME.png', 'tw': './assets/cn/island/OCR_PRODUCTION_TIME.png'})
|
||||
OCR_PRODUCTION_TIME_REMAIN = Button(area={'cn': (621, 427, 666, 439), 'en': (621, 427, 666, 439), 'jp': (621, 427, 666, 439), 'tw': (621, 427, 666, 439)}, color={'cn': (196, 203, 205), 'en': (196, 203, 205), 'jp': (196, 203, 205), 'tw': (196, 203, 205)}, button={'cn': (621, 427, 666, 439), 'en': (621, 427, 666, 439), 'jp': (621, 427, 666, 439), 'tw': (621, 427, 666, 439)}, file={'cn': './assets/cn/island/OCR_PRODUCTION_TIME_REMAIN.png', 'en': './assets/cn/island/OCR_PRODUCTION_TIME_REMAIN.png', 'jp': './assets/cn/island/OCR_PRODUCTION_TIME_REMAIN.png', 'tw': './assets/cn/island/OCR_PRODUCTION_TIME_REMAIN.png'})
|
||||
OCR_TRANSPORT_REFRESH = Button(area={'cn': (716, 211, 805, 231), 'en': (716, 211, 805, 231), 'jp': (716, 211, 805, 231), 'tw': (716, 211, 805, 231)}, color={'cn': (176, 177, 175), 'en': (176, 177, 175), 'jp': (176, 177, 175), 'tw': (176, 177, 175)}, button={'cn': (716, 211, 805, 231), 'en': (716, 211, 805, 231), 'jp': (716, 211, 805, 231), 'tw': (716, 211, 805, 231)}, file={'cn': './assets/cn/island/OCR_TRANSPORT_REFRESH.png', 'en': './assets/cn/island/OCR_TRANSPORT_REFRESH.png', 'jp': './assets/cn/island/OCR_TRANSPORT_REFRESH.png', 'tw': './assets/cn/island/OCR_TRANSPORT_REFRESH.png'})
|
||||
OCR_TRANSPORT_TIME = Button(area={'cn': (611, 139, 687, 154), 'en': (611, 139, 687, 154), 'jp': (611, 139, 687, 154), 'tw': (611, 139, 687, 154)}, color={'cn': (119, 119, 120), 'en': (119, 119, 120), 'jp': (119, 119, 120), 'tw': (119, 119, 120)}, button={'cn': (611, 139, 687, 154), 'en': (611, 139, 687, 154), 'jp': (611, 139, 687, 154), 'tw': (611, 139, 687, 154)}, file={'cn': './assets/cn/island/OCR_TRANSPORT_TIME.png', 'en': './assets/cn/island/OCR_TRANSPORT_TIME.png', 'jp': './assets/cn/island/OCR_TRANSPORT_TIME.png', 'tw': './assets/cn/island/OCR_TRANSPORT_TIME.png'})
|
||||
@ -30,12 +30,12 @@ PROJECT_MANJUU_CHECK = Button(area={'cn': (1162, 182, 1214, 205), 'en': (1162, 1
|
||||
PROJECT_NEW_JERSEY_CHECK = Button(area={'cn': (1158, 170, 1223, 214), 'en': (1158, 170, 1223, 214), 'jp': (1158, 170, 1223, 214), 'tw': (1158, 170, 1223, 214)}, color={'cn': (138, 136, 159), 'en': (138, 136, 159), 'jp': (138, 136, 159), 'tw': (138, 136, 159)}, button={'cn': (1158, 170, 1223, 214), 'en': (1158, 170, 1223, 214), 'jp': (1158, 170, 1223, 214), 'tw': (1158, 170, 1223, 214)}, file={'cn': './assets/cn/island/PROJECT_NEW_JERSEY_CHECK.png', 'en': './assets/cn/island/PROJECT_NEW_JERSEY_CHECK.png', 'jp': './assets/cn/island/PROJECT_NEW_JERSEY_CHECK.png', 'tw': './assets/cn/island/PROJECT_NEW_JERSEY_CHECK.png'})
|
||||
PROJECT_SARATOGA_CHECK = Button(area={'cn': (1162, 166, 1223, 219), 'en': (1162, 166, 1223, 219), 'jp': (1162, 166, 1223, 219), 'tw': (1162, 166, 1223, 219)}, color={'cn': (212, 177, 178), 'en': (212, 177, 178), 'jp': (212, 177, 178), 'tw': (212, 177, 178)}, button={'cn': (1162, 166, 1223, 219), 'en': (1162, 166, 1223, 219), 'jp': (1162, 166, 1223, 219), 'tw': (1162, 166, 1223, 219)}, file={'cn': './assets/cn/island/PROJECT_SARATOGA_CHECK.png', 'en': './assets/cn/island/PROJECT_SARATOGA_CHECK.png', 'jp': './assets/cn/island/PROJECT_SARATOGA_CHECK.png', 'tw': './assets/cn/island/PROJECT_SARATOGA_CHECK.png'})
|
||||
PROJECT_SHIMAKAZE_CHECK = Button(area={'cn': (1163, 168, 1212, 218), 'en': (1163, 168, 1212, 218), 'jp': (1163, 168, 1212, 218), 'tw': (1163, 168, 1212, 218)}, color={'cn': (218, 199, 196), 'en': (218, 199, 196), 'jp': (218, 199, 196), 'tw': (218, 199, 196)}, button={'cn': (1163, 168, 1212, 218), 'en': (1163, 168, 1212, 218), 'jp': (1163, 168, 1212, 218), 'tw': (1163, 168, 1212, 218)}, file={'cn': './assets/cn/island/PROJECT_SHIMAKAZE_CHECK.png', 'en': './assets/cn/island/PROJECT_SHIMAKAZE_CHECK.png', 'jp': './assets/cn/island/PROJECT_SHIMAKAZE_CHECK.png', 'tw': './assets/cn/island/PROJECT_SHIMAKAZE_CHECK.png'})
|
||||
PROJECT_START = Button(area={'cn': (686, 610, 706, 630), 'en': (686, 610, 706, 630), 'jp': (686, 610, 706, 630), 'tw': (686, 610, 706, 630)}, color={'cn': (129, 213, 255), 'en': (129, 213, 255), 'jp': (129, 213, 255), 'tw': (129, 213, 255)}, button={'cn': (494, 599, 1087, 642), 'en': (494, 599, 1087, 642), 'jp': (494, 599, 1087, 642), 'tw': (494, 599, 1087, 642)}, file={'cn': './assets/cn/island/PROJECT_START.png', 'en': './assets/cn/island/PROJECT_START.png', 'jp': './assets/cn/island/PROJECT_START.png', 'tw': './assets/cn/island/PROJECT_START.png'})
|
||||
PROJECT_START = Button(area={'cn': (609, 610, 629, 630), 'en': (609, 610, 629, 630), 'jp': (609, 610, 629, 630), 'tw': (609, 610, 629, 630)}, color={'cn': (128, 212, 254), 'en': (128, 212, 254), 'jp': (128, 212, 254), 'tw': (128, 212, 254)}, button={'cn': (494, 599, 1087, 642), 'en': (609, 610, 629, 630), 'jp': (494, 599, 1087, 642), 'tw': (494, 599, 1087, 642)}, file={'cn': './assets/cn/island/PROJECT_START.png', 'en': './assets/en/island/PROJECT_START.png', 'jp': './assets/cn/island/PROJECT_START.png', 'tw': './assets/cn/island/PROJECT_START.png'})
|
||||
PROJECT_TASHKENT_CHECK = Button(area={'cn': (1164, 176, 1219, 213), 'en': (1164, 176, 1219, 213), 'jp': (1164, 176, 1219, 213), 'tw': (1164, 176, 1219, 213)}, color={'cn': (176, 146, 173), 'en': (176, 146, 173), 'jp': (176, 146, 173), 'tw': (176, 146, 173)}, button={'cn': (1164, 176, 1219, 213), 'en': (1164, 176, 1219, 213), 'jp': (1164, 176, 1219, 213), 'tw': (1164, 176, 1219, 213)}, file={'cn': './assets/cn/island/PROJECT_TASHKENT_CHECK.png', 'en': './assets/cn/island/PROJECT_TASHKENT_CHECK.png', 'jp': './assets/cn/island/PROJECT_TASHKENT_CHECK.png', 'tw': './assets/cn/island/PROJECT_TASHKENT_CHECK.png'})
|
||||
PROJECT_UNICORN_CHECK = Button(area={'cn': (1156, 167, 1224, 209), 'en': (1156, 167, 1224, 209), 'jp': (1156, 167, 1224, 209), 'tw': (1156, 167, 1224, 209)}, color={'cn': (199, 184, 218), 'en': (199, 184, 218), 'jp': (199, 184, 218), 'tw': (199, 184, 218)}, button={'cn': (1156, 167, 1224, 209), 'en': (1156, 167, 1224, 209), 'jp': (1156, 167, 1224, 209), 'tw': (1156, 167, 1224, 209)}, file={'cn': './assets/cn/island/PROJECT_UNICORN_CHECK.png', 'en': './assets/cn/island/PROJECT_UNICORN_CHECK.png', 'jp': './assets/cn/island/PROJECT_UNICORN_CHECK.png', 'tw': './assets/cn/island/PROJECT_UNICORN_CHECK.png'})
|
||||
PROJECT_YING_SWEI_CHECK = Button(area={'cn': (1161, 177, 1217, 210), 'en': (1161, 177, 1217, 210), 'jp': (1161, 177, 1217, 210), 'tw': (1161, 177, 1217, 210)}, color={'cn': (171, 157, 165), 'en': (171, 157, 165), 'jp': (171, 157, 165), 'tw': (171, 157, 165)}, button={'cn': (1161, 177, 1217, 210), 'en': (1161, 177, 1217, 210), 'jp': (1161, 177, 1217, 210), 'tw': (1161, 177, 1217, 210)}, file={'cn': './assets/cn/island/PROJECT_YING_SWEI_CHECK.png', 'en': './assets/cn/island/PROJECT_YING_SWEI_CHECK.png', 'jp': './assets/cn/island/PROJECT_YING_SWEI_CHECK.png', 'tw': './assets/cn/island/PROJECT_YING_SWEI_CHECK.png'})
|
||||
ROLE_SELECT_CONFIRM = Button(area={'cn': (1068, 597, 1118, 621), 'en': (1068, 597, 1118, 621), 'jp': (1068, 597, 1118, 621), 'tw': (1068, 597, 1118, 621)}, color={'cn': (109, 206, 255), 'en': (109, 206, 255), 'jp': (109, 206, 255), 'tw': (109, 206, 255)}, button={'cn': (948, 585, 1239, 632), 'en': (948, 585, 1239, 632), 'jp': (948, 585, 1239, 632), 'tw': (948, 585, 1239, 632)}, file={'cn': './assets/cn/island/ROLE_SELECT_CONFIRM.png', 'en': './assets/cn/island/ROLE_SELECT_CONFIRM.png', 'jp': './assets/cn/island/ROLE_SELECT_CONFIRM.png', 'tw': './assets/cn/island/ROLE_SELECT_CONFIRM.png'})
|
||||
ROLE_SELECT_ENTER = Button(area={'cn': (579, 314, 700, 350), 'en': (579, 314, 700, 350), 'jp': (579, 314, 700, 350), 'tw': (579, 314, 700, 350)}, color={'cn': (239, 238, 237), 'en': (239, 238, 237), 'jp': (239, 238, 237), 'tw': (239, 238, 237)}, button={'cn': (534, 206, 747, 483), 'en': (534, 206, 747, 483), 'jp': (534, 206, 747, 483), 'tw': (534, 206, 747, 483)}, file={'cn': './assets/cn/island/ROLE_SELECT_ENTER.png', 'en': './assets/cn/island/ROLE_SELECT_ENTER.png', 'jp': './assets/cn/island/ROLE_SELECT_ENTER.png', 'tw': './assets/cn/island/ROLE_SELECT_ENTER.png'})
|
||||
ROLE_SELECT_CONFIRM = Button(area={'cn': (1068, 597, 1118, 621), 'en': (1068, 597, 1118, 621), 'jp': (1068, 597, 1118, 621), 'tw': (1068, 597, 1118, 621)}, color={'cn': (125, 211, 255), 'en': (125, 211, 255), 'jp': (125, 211, 255), 'tw': (125, 211, 255)}, button={'cn': (948, 585, 1239, 632), 'en': (1068, 597, 1118, 621), 'jp': (948, 585, 1239, 632), 'tw': (948, 585, 1239, 632)}, file={'cn': './assets/cn/island/ROLE_SELECT_CONFIRM.png', 'en': './assets/en/island/ROLE_SELECT_CONFIRM.png', 'jp': './assets/cn/island/ROLE_SELECT_CONFIRM.png', 'tw': './assets/cn/island/ROLE_SELECT_CONFIRM.png'})
|
||||
ROLE_SELECT_ENTER = Button(area={'cn': (578, 313, 701, 351), 'en': (578, 313, 701, 351), 'jp': (578, 313, 701, 351), 'tw': (578, 313, 701, 351)}, color={'cn': (237, 237, 236), 'en': (237, 237, 236), 'jp': (237, 237, 236), 'tw': (237, 237, 236)}, button={'cn': (534, 206, 747, 483), 'en': (578, 313, 701, 351), 'jp': (534, 206, 747, 483), 'tw': (534, 206, 747, 483)}, file={'cn': './assets/cn/island/ROLE_SELECT_ENTER.png', 'en': './assets/en/island/ROLE_SELECT_ENTER.png', 'jp': './assets/cn/island/ROLE_SELECT_ENTER.png', 'tw': './assets/cn/island/ROLE_SELECT_ENTER.png'})
|
||||
TEMPLATE_AKASHI = Template(file={'cn': './assets/cn/island/TEMPLATE_AKASHI.png', 'en': './assets/cn/island/TEMPLATE_AKASHI.png', 'jp': './assets/cn/island/TEMPLATE_AKASHI.png', 'tw': './assets/cn/island/TEMPLATE_AKASHI.png'})
|
||||
TEMPLATE_AMAGI_CHAN = Template(file={'cn': './assets/cn/island/TEMPLATE_AMAGI_CHAN.png', 'en': './assets/cn/island/TEMPLATE_AMAGI_CHAN.png', 'jp': './assets/cn/island/TEMPLATE_AMAGI_CHAN.png', 'tw': './assets/cn/island/TEMPLATE_AMAGI_CHAN.png'})
|
||||
TEMPLATE_CARROT = Template(file={'cn': './assets/cn/island/TEMPLATE_CARROT.png', 'en': './assets/cn/island/TEMPLATE_CARROT.png', 'jp': './assets/cn/island/TEMPLATE_CARROT.png', 'tw': './assets/cn/island/TEMPLATE_CARROT.png'})
|
||||
|
||||
@ -19,7 +19,7 @@ class Island(IslandProjectRun, IslandTransportRun):
|
||||
list[str]: a list of name for island receive
|
||||
"""
|
||||
if any(config):
|
||||
return [name for add, name in zip(config, list(name_to_slot_cn.keys())) if add]
|
||||
return [name for add, name in zip(config, list(name_to_slot.keys())) if add]
|
||||
else:
|
||||
return []
|
||||
|
||||
@ -56,7 +56,7 @@ class Island(IslandProjectRun, IslandTransportRun):
|
||||
self.config.task_delay(success=False)
|
||||
|
||||
def run(self):
|
||||
if server.server in ['cn']:
|
||||
if server.server in ['cn', 'en']:
|
||||
transport = False
|
||||
project_config = [self.config.__getattribute__(f'Island{i}_Receive') for i in range(1, 16)]
|
||||
project = any(project_config)
|
||||
|
||||
@ -4,6 +4,7 @@ import re
|
||||
import numpy as np
|
||||
from scipy import signal
|
||||
|
||||
import module.config.server as server
|
||||
from module.base.button import Button, ButtonGrid
|
||||
from module.base.timer import Timer
|
||||
from module.base.utils import color_similarity_2d, crop, random_rectangle_vector, rgb2gray
|
||||
@ -15,12 +16,14 @@ from module.logger import logger
|
||||
from module.map.map_grids import SelectedGrids
|
||||
from module.ocr.ocr import Duration, Ocr
|
||||
|
||||
|
||||
class ProjectNameOcr(Ocr):
|
||||
def after_process(self, result):
|
||||
result = super().after_process(result)
|
||||
result = result.replace('主', '丰')
|
||||
result = re.sub(r'[^\u4e00-\u9fff]', '', result)
|
||||
if server.server == 'cn':
|
||||
result = result.replace('主', '丰')
|
||||
result = re.sub(r'[^\u4e00-\u9fff]', '', result)
|
||||
elif server.server == 'en':
|
||||
result = re.sub(r"[\s'-]+", "", result).lower()
|
||||
return result
|
||||
|
||||
|
||||
@ -66,7 +69,9 @@ class IslandProject:
|
||||
return
|
||||
|
||||
# name
|
||||
area = (self.x1 - 446, self.y1, self.x1 - 326, self.y2)
|
||||
dx = {'cn':326, 'en':137}[server.server]
|
||||
dy = {'cn':0, 'en':2}[server.server]
|
||||
area = (self.x1 - 446, self.y1, self.x1 - dx, self.y2+dy)
|
||||
button = Button(area=area, color=(), button=area, name='PROJECT_NAME')
|
||||
ocr = ProjectNameOcr(button, lang='cnocr')
|
||||
self.name = ocr.ocr(self.image)
|
||||
@ -75,7 +80,7 @@ class IslandProject:
|
||||
return
|
||||
|
||||
# id
|
||||
keys = list(name_to_slot_cn.keys())
|
||||
keys = list(name_to_slot.keys())
|
||||
if self.name in keys:
|
||||
self.id = keys.index(self.name) + 1
|
||||
else:
|
||||
@ -83,7 +88,7 @@ class IslandProject:
|
||||
return
|
||||
|
||||
# max slot
|
||||
self.max_slot = name_to_slot_cn.get(self.name, 2)
|
||||
self.max_slot = name_to_slot.get(self.name, 2)
|
||||
|
||||
# available slot
|
||||
area = (self.x1 - 383, self.y1 + 60, self.x1 - 39, self.y1 + 118)
|
||||
@ -173,12 +178,16 @@ class IslandProduct:
|
||||
class ItemNameOcr(Ocr):
|
||||
def after_process(self, result):
|
||||
result = super().after_process(result)
|
||||
result = result.replace('蛮', '蜜').replace('茉', '末').replace('汗', '汁').replace('纠', '组')
|
||||
result = re.sub(r'[^\u4e00-\u9fff]', '', result)
|
||||
if '冰咖' in result:
|
||||
result = '冰咖啡'
|
||||
if '莓果香橙' in result:
|
||||
result = '莓果香橙甜点组'
|
||||
if server.server == 'cn':
|
||||
result = result.replace('蛮', '蜜').replace('茉', '末').replace('汗', '汁').replace('纠', '组')
|
||||
result = re.sub(r'[^\u4e00-\u9fff]', '', result)
|
||||
if '冰咖' in result:
|
||||
result = '冰咖啡'
|
||||
if '莓果香橙' in result:
|
||||
result = '莓果香橙甜点组'
|
||||
elif server.server == 'en':
|
||||
result = re.sub(r"[\s'-]+", "", result)
|
||||
result = result.lower()
|
||||
return result
|
||||
|
||||
|
||||
@ -192,7 +201,7 @@ class ProductItem:
|
||||
# All buttons on this page to click
|
||||
item_buttons: ButtonGrid
|
||||
|
||||
def __init__(self, image, y, get_button=True):
|
||||
def __init__(self, image, y, parent_project_id, get_button=True):
|
||||
"""
|
||||
Args:
|
||||
image:
|
||||
@ -205,6 +214,7 @@ class ProductItem:
|
||||
self.name = None
|
||||
self.button = None
|
||||
self.items = []
|
||||
self.parent_project_id = parent_project_id
|
||||
self.parse_item(get_button=get_button)
|
||||
|
||||
def parse_item(self, get_button):
|
||||
@ -230,7 +240,7 @@ class ProductItem:
|
||||
self.item_buttons = ButtonGrid(origin=(x1, origin_y), delta=(0, delta),
|
||||
button_shape=(x2 - x1, y2 - y1),
|
||||
grid_shape=(1, shape_y), name='ITEMS')
|
||||
self.items = [ProductItem(self.image, (item.area[1], item.area[3]), get_button=False)
|
||||
self.items = [ProductItem(self.image, (item.area[1], item.area[3]), self.parent_project_id, get_button=False)
|
||||
for item in self.item_buttons.buttons]
|
||||
else:
|
||||
self.ocr_name(y1, y2)
|
||||
@ -267,8 +277,27 @@ class ProductItem:
|
||||
button = Button(area=area, color=(), button=area, name='ITEM_NAME')
|
||||
ocr = ItemNameOcr(button, lang='cnocr', letter=(70, 70, 70))
|
||||
self.name = ocr.ocr(self.image)
|
||||
if not self.name or self.name not in deep_values(items_data_cn, depth=2):
|
||||
if server.server == 'cn' and (not self.name or self.name not in deep_values(items_data, depth=2)):
|
||||
self.valid = False
|
||||
elif server.server == 'en':
|
||||
self.valid = False
|
||||
if not self.name:
|
||||
return
|
||||
for value in list(items_data[self.parent_project_id].values()):
|
||||
can_scroll = len(value) > 13
|
||||
vmatcher = re.sub(r"[\s'-]+", "", value).lower()
|
||||
if self.name == vmatcher:
|
||||
logger.info(f'Product with valid name: {self.name} (exact matched {value})')
|
||||
self.name = value
|
||||
self.valid = True
|
||||
break
|
||||
elif self.name[1:-1] in vmatcher and (len(self.name) > 12 and can_scroll):
|
||||
logger.info(f'Product with valid name: {self.name} (scroll matched {value})')
|
||||
self.name = value
|
||||
self.valid = True
|
||||
break
|
||||
if not self.valid:
|
||||
logger.info(f'Product with invalid name: {self.name}')
|
||||
|
||||
def __eq__(self, other):
|
||||
"""
|
||||
@ -467,7 +496,7 @@ class IslandProjectRun(IslandUI):
|
||||
def get_character_check_button(character):
|
||||
return globals().get(f'PROJECT_{character.upper()}_CHECK', PRODUCT_MANJUU_CHECK)
|
||||
|
||||
def get_current_product(self):
|
||||
def get_current_product(self, project_id):
|
||||
"""
|
||||
Get currently selected product on self.device.image.
|
||||
|
||||
@ -485,9 +514,9 @@ class IslandProjectRun(IslandUI):
|
||||
}
|
||||
peaks, _ = signal.find_peaks(line, **parameters)
|
||||
peaks = np.array(peaks) + y_top
|
||||
return ProductItem(self.device.image, peaks)
|
||||
return ProductItem(self.device.image, peaks, project_id)
|
||||
|
||||
def product_select(self, option, trial=2, skip_first_screenshot=True):
|
||||
def product_select(self, option, project_id, trial=2, skip_first_screenshot=True):
|
||||
"""
|
||||
Select a product in items list.
|
||||
|
||||
@ -509,7 +538,7 @@ class IslandProjectRun(IslandUI):
|
||||
else:
|
||||
self.device.screenshot()
|
||||
|
||||
current = self.get_current_product()
|
||||
current = self.get_current_product(project_id)
|
||||
if trial > 0 and not len(current.items):
|
||||
trial -= 1
|
||||
continue
|
||||
@ -581,7 +610,8 @@ class IslandProjectRun(IslandUI):
|
||||
continue
|
||||
|
||||
button = PROJECT_START
|
||||
self.appear(button, offset=(100, 0))
|
||||
timer_offset = {'cn':100, 'en':60}[server.server]
|
||||
self.appear(button, offset=(timer_offset, 0))
|
||||
offset = tuple(np.subtract(button.button, button._button)[:2])
|
||||
product = IslandProduct(self.device.image, new=True, offset=offset)
|
||||
if product == last:
|
||||
@ -641,7 +671,7 @@ class IslandProjectRun(IslandUI):
|
||||
|
||||
self.island_drag_next_page((0, -500), ISLAND_PROJECT_SWIPE.area, 0.6)
|
||||
|
||||
def project_receive_and_start(self, proj, button, character, option, ensure=True):
|
||||
def project_receive_and_start(self, proj, button, character, option, project_id, ensure=True):
|
||||
"""
|
||||
Receive and start a project is in the current page.
|
||||
|
||||
@ -657,7 +687,7 @@ class IslandProjectRun(IslandUI):
|
||||
if not self.project_character_select(character):
|
||||
logger.warning('Island select role failed due to game bug, retrying')
|
||||
return False
|
||||
if not self.product_select(option):
|
||||
if not self.product_select(option, project_id):
|
||||
return True
|
||||
if not self.product_select_confirm():
|
||||
self.character = 'manjuu'
|
||||
@ -695,7 +725,7 @@ class IslandProjectRun(IslandUI):
|
||||
if option == 0:
|
||||
slot_option.append(None)
|
||||
continue
|
||||
slot_option.append(deep_get(items_data_cn, [proj_id, option]))
|
||||
slot_option.append(deep_get(items_data, [proj_id, option]))
|
||||
return slot_option
|
||||
|
||||
def island_project_run(self, names, trial=2, skip_first_screenshot=True):
|
||||
@ -747,7 +777,7 @@ class IslandProjectRun(IslandUI):
|
||||
# retry 3 times because of a game bug
|
||||
for _ in range(3):
|
||||
ensure = not end or index != option_num - 1
|
||||
if self.project_receive_and_start(proj, button, self.character, option, ensure):
|
||||
if self.project_receive_and_start(proj, button, self.character, option, proj.id, ensure):
|
||||
break
|
||||
timeout.reset()
|
||||
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
name_to_slot_cn = {
|
||||
import module.config.server as server
|
||||
|
||||
__name_to_slot_cn = {
|
||||
'丰壤农田': 4, '悠然牧场': 4, '沉石矿山': 4, '翠土林场': 4, '坠香果园': 4, '青芽苗圃': 2,
|
||||
'有鱼餐馆': 2, '白熊饮品': 2, '啾啾简餐': 2, '乌鱼烤肉': 2, '木料加工设备': 2, '工业生产设备': 2,
|
||||
'电子加工设备': 2, '手工制作设备': 2, '啾咖啡': 2
|
||||
}
|
||||
|
||||
items_data_cn = {
|
||||
__items_data_cn = {
|
||||
1: {
|
||||
1: '小麦', 2: '玉米', 3: '牧草', 4: '咖啡豆', 5: '大米', 6: '白菜',
|
||||
7: '土豆', 8: '大豆',
|
||||
@ -61,3 +63,79 @@ items_data_cn = {
|
||||
6: '草莓奶绿', 7: '晨光活力组合', 8: '醒神套餐', 9: '果香双杯乐',
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
__name_to_slot_en = {
|
||||
'faircropfields': 4, 'laidbackranch': 4, 'rockheapmine': 4, 'verdantwoods': 4, 'sweetscentorchard': 4, 'newsproutnursery': 2,
|
||||
'goldenkoirestaurant': 2, 'polarbearteahouse': 2, 'manjuueatery': 2, "finnfeathergrill": 2, 'lumberprocessing': 2, 'machineryproduction': 2,
|
||||
'electronicproduction': 2, 'arts&craftsproduction': 2, 'cafemanjuu': 2
|
||||
}
|
||||
|
||||
__items_data_en = {
|
||||
1: {
|
||||
1: 'Wheat', 2: 'Corn', 3: 'Grass', 4: 'CoffeeBeans', 5: 'Rice', 6: 'Napa Cabbage',
|
||||
7: 'Potato', 8: 'Soy Beans',
|
||||
},
|
||||
2: {
|
||||
1: 'Eggs', 2: 'Fresh Meat', 3: 'Milk', 4: 'Wool',
|
||||
},
|
||||
3: {
|
||||
1: 'Coal', 2: 'Copper Ore', 3: 'Bauxite Ore', 4: 'Iron Ore', 5: 'Sulfur', 6: 'Silver Ore',
|
||||
},
|
||||
4: {
|
||||
1: 'Raw Timber', 2: 'Workable Wood', 3: 'remium Wood', 4: 'Elegant Wood', # remium Wood because it overruns on the left
|
||||
},
|
||||
5: {
|
||||
1: 'Yoizuki Pear', 2: 'Kaki Persimmon', 3: 'Apple', 4: 'Citrus Fruit', 5: 'Banana', 6: 'Mango',
|
||||
7: 'Lemon', 8: 'Avocado', 9: 'Rubber',
|
||||
},
|
||||
6: {
|
||||
1: 'Flax', 2: 'Strawberries', 3: 'Cotton', 4: 'Tea Leaves', 5: 'Lavender', 6: 'Carrot',
|
||||
7: 'Onion',
|
||||
},
|
||||
7: {
|
||||
1: 'Dried Persimmon', 2: 'Matsutake and Chicken Soup', 3: 'Tofu', 4: 'Tofu with Minced Meat', 5: 'Omurice',
|
||||
6: 'Cabbage and Tofu Soup', 7: 'Vegetable Salad', 8: 'Classic Tofu Combo', 9: 'Hearty Meal',
|
||||
},
|
||||
8: {
|
||||
1: 'Carrot and Pear Juice', 2: 'Chrysanthemum Tea', 3: 'Apple Juice', 4: 'Banana and Mango Juice',
|
||||
5: 'Honey and Lemon Water', 6: 'Strawberry Lemon Drink', 7: 'Lavender Tea', 8: 'Strawberry Honey Frappe',
|
||||
9: 'Floral and Fruity', 10: 'Colorful Fruit Paradise', 11: 'Sunny Honey',
|
||||
},
|
||||
9: {
|
||||
1: 'Corn Cup', 2: 'Apple Pie', 3: 'Orange Pie', 4: 'Sticky Rice with Mango', 5: 'Banana Crepe',
|
||||
6: 'Strawberry Charlotte', 7: 'Succulently Sweet', 8: 'Orchard Duo', 9: 'Berry and Orange Dessert',
|
||||
},
|
||||
10: {
|
||||
1: 'Coal-Roasted Skewer', 2: "Chicken and Potato Hors d'Oeuvre", 3: 'Stir-Fried Chicken', 4: 'Rolled Carrot Omelette',
|
||||
5: 'Steak Bowl', 6: 'The Carne-val', 7: 'Double Energy Combo',
|
||||
},
|
||||
11: {
|
||||
1: 'Paper', 2: 'Notebook', 3: 'Chair and Desk', 4: 'Choice Wooden Barrel', 5: 'Filing Cabinet',
|
||||
},
|
||||
12: {
|
||||
1: 'Charcoal Brush', 2: 'Cable', 3: 'Nails', 4: 'Chemicals', 5: 'Gunpowder', 6: 'Utensils',
|
||||
},
|
||||
13: {
|
||||
1: 'Ink Cartridge', 2: 'Clock', 3: 'Battery', 4: 'Water Filter',
|
||||
},
|
||||
14: {
|
||||
1: 'Autumn Bouquet', 2: 'Peanut Oil', 3: 'Cloth', 4: 'Leather', 5: 'Rope', 6: 'Gloves',
|
||||
7: 'Aroma Sachet', 8: 'Shoes', 9: 'Wound Dressings',
|
||||
},
|
||||
15: {
|
||||
1: 'Omelette', 2: 'Iced Coffee', 3: 'Cheese', 4: 'Latte', 5: 'Citrus Coffee',
|
||||
6: 'Strawberry Milkshake', 7: 'Morning Light Energy Combo', 8: 'The Wake-Up Call', 9: 'Fruity & Fruitier',
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
if server.server == 'cn':
|
||||
name_to_slot = __name_to_slot_cn
|
||||
items_data = __items_data_cn
|
||||
elif server.server == 'en':
|
||||
name_to_slot = __name_to_slot_en
|
||||
items_data = __items_data_en
|
||||
else:
|
||||
name_to_slot = __name_to_slot_cn
|
||||
items_data = __items_data_cn
|
||||
|
||||
@ -49,8 +49,8 @@ GUILD_CHECK = Button(area={'cn': (121, 15, 199, 39), 'en': (121, 15, 196, 39), '
|
||||
IDLE = Button(area={'cn': (864, 672, 873, 688), 'en': (864, 672, 873, 688), 'jp': (864, 672, 873, 688), 'tw': (864, 672, 873, 688)}, color={'cn': (158, 159, 167), 'en': (158, 159, 167), 'jp': (158, 159, 167), 'tw': (158, 159, 167)}, button={'cn': (864, 672, 873, 688), 'en': (864, 672, 873, 688), 'jp': (864, 672, 873, 688), 'tw': (864, 672, 873, 688)}, file={'cn': './assets/cn/ui/IDLE.png', 'en': './assets/en/ui/IDLE.png', 'jp': './assets/jp/ui/IDLE.png', 'tw': './assets/tw/ui/IDLE.png'})
|
||||
IDLE_2 = Button(area={'cn': (864, 672, 873, 688), 'en': (864, 672, 873, 688), 'jp': (864, 672, 873, 688), 'tw': (864, 672, 873, 688)}, color={'cn': (173, 178, 186), 'en': (173, 178, 186), 'jp': (173, 178, 186), 'tw': (173, 178, 186)}, button={'cn': (864, 672, 873, 688), 'en': (864, 672, 873, 688), 'jp': (864, 672, 873, 688), 'tw': (864, 672, 873, 688)}, file={'cn': './assets/cn/ui/IDLE_2.png', 'en': './assets/cn/ui/IDLE_2.png', 'jp': './assets/cn/ui/IDLE_2.png', 'tw': './assets/cn/ui/IDLE_2.png'})
|
||||
IDLE_3 = Button(area={'cn': (864, 672, 873, 688), 'en': (864, 672, 873, 688), 'jp': (864, 672, 873, 688), 'tw': (864, 672, 873, 688)}, color={'cn': (185, 183, 182), 'en': (185, 183, 182), 'jp': (185, 183, 182), 'tw': (185, 183, 182)}, button={'cn': (864, 672, 873, 688), 'en': (864, 672, 873, 688), 'jp': (864, 672, 873, 688), 'tw': (864, 672, 873, 688)}, file={'cn': './assets/cn/ui/IDLE_3.png', 'en': './assets/cn/ui/IDLE_3.png', 'jp': './assets/cn/ui/IDLE_3.png', 'tw': './assets/cn/ui/IDLE_3.png'})
|
||||
ISLAND_CHECK = Button(area={'cn': (1215, 26, 1245, 60), 'en': (1215, 26, 1245, 60), 'jp': (1215, 26, 1245, 60), 'tw': (1215, 26, 1245, 60)}, color={'cn': (191, 192, 190), 'en': (191, 192, 190), 'jp': (191, 192, 190), 'tw': (191, 192, 190)}, button={'cn': (1215, 26, 1245, 60), 'en': (1215, 26, 1245, 60), 'jp': (1215, 26, 1245, 60), 'tw': (1215, 26, 1245, 60)}, file={'cn': './assets/cn/ui/ISLAND_CHECK.png', 'en': './assets/cn/ui/ISLAND_CHECK.png', 'jp': './assets/cn/ui/ISLAND_CHECK.png', 'tw': './assets/cn/ui/ISLAND_CHECK.png'})
|
||||
ISLAND_GOTO_ISLAND_PHONE = Button(area={'cn': (1215, 26, 1245, 60), 'en': (1215, 26, 1245, 60), 'jp': (1215, 26, 1245, 60), 'tw': (1215, 26, 1245, 60)}, color={'cn': (191, 192, 190), 'en': (191, 192, 190), 'jp': (191, 192, 190), 'tw': (191, 192, 190)}, button={'cn': (1215, 26, 1245, 60), 'en': (1215, 26, 1245, 60), 'jp': (1215, 26, 1245, 60), 'tw': (1215, 26, 1245, 60)}, file={'cn': './assets/cn/ui/ISLAND_GOTO_ISLAND_PHONE.png', 'en': './assets/cn/ui/ISLAND_GOTO_ISLAND_PHONE.png', 'jp': './assets/cn/ui/ISLAND_GOTO_ISLAND_PHONE.png', 'tw': './assets/cn/ui/ISLAND_GOTO_ISLAND_PHONE.png'})
|
||||
ISLAND_CHECK = Button(area={'cn': (1215, 26, 1245, 60), 'en': (1215, 26, 1245, 60), 'jp': (1215, 26, 1245, 60), 'tw': (1215, 26, 1245, 60)}, color={'cn': (191, 192, 190), 'en': (187, 188, 188), 'jp': (191, 192, 190), 'tw': (191, 192, 190)}, button={'cn': (1215, 26, 1245, 60), 'en': (1215, 26, 1245, 60), 'jp': (1215, 26, 1245, 60), 'tw': (1215, 26, 1245, 60)}, file={'cn': './assets/cn/ui/ISLAND_CHECK.png', 'en': './assets/en/ui/ISLAND_CHECK.png', 'jp': './assets/cn/ui/ISLAND_CHECK.png', 'tw': './assets/cn/ui/ISLAND_CHECK.png'})
|
||||
ISLAND_GOTO_ISLAND_PHONE = Button(area={'cn': (1215, 26, 1245, 60), 'en': (1215, 26, 1245, 60), 'jp': (1215, 26, 1245, 60), 'tw': (1215, 26, 1245, 60)}, color={'cn': (191, 192, 190), 'en': (24, 0, 0), 'jp': (191, 192, 190), 'tw': (191, 192, 190)}, button={'cn': (1215, 26, 1245, 60), 'en': (1215, 26, 1245, 60), 'jp': (1215, 26, 1245, 60), 'tw': (1215, 26, 1245, 60)}, file={'cn': './assets/cn/ui/ISLAND_GOTO_ISLAND_PHONE.png', 'en': './assets/en/ui/ISLAND_GOTO_ISLAND_PHONE.png', 'jp': './assets/cn/ui/ISLAND_GOTO_ISLAND_PHONE.png', 'tw': './assets/cn/ui/ISLAND_GOTO_ISLAND_PHONE.png'})
|
||||
ISLAND_PHONE_CHECK = Button(area={'cn': (1037, 644, 1077, 680), 'en': (1037, 644, 1077, 680), 'jp': (1037, 644, 1077, 680), 'tw': (1037, 644, 1077, 680)}, color={'cn': (138, 150, 163), 'en': (138, 150, 163), 'jp': (138, 150, 163), 'tw': (138, 150, 163)}, button={'cn': (1037, 644, 1077, 680), 'en': (1037, 644, 1077, 680), 'jp': (1037, 644, 1077, 680), 'tw': (1037, 644, 1077, 680)}, file={'cn': './assets/cn/ui/ISLAND_PHONE_CHECK.png', 'en': './assets/cn/ui/ISLAND_PHONE_CHECK.png', 'jp': './assets/cn/ui/ISLAND_PHONE_CHECK.png', 'tw': './assets/cn/ui/ISLAND_PHONE_CHECK.png'})
|
||||
ISLAND_PHONE_GOTO_ISLAND = Button(area={'cn': (1037, 644, 1077, 680), 'en': (1037, 644, 1077, 680), 'jp': (1037, 644, 1077, 680), 'tw': (1037, 644, 1077, 680)}, color={'cn': (138, 150, 163), 'en': (138, 150, 163), 'jp': (138, 150, 163), 'tw': (138, 150, 163)}, button={'cn': (16, 8, 80, 72), 'en': (16, 8, 80, 72), 'jp': (16, 8, 80, 72), 'tw': (16, 8, 80, 72)}, file={'cn': './assets/cn/ui/ISLAND_PHONE_GOTO_ISLAND.png', 'en': './assets/cn/ui/ISLAND_PHONE_GOTO_ISLAND.png', 'jp': './assets/cn/ui/ISLAND_PHONE_GOTO_ISLAND.png', 'tw': './assets/cn/ui/ISLAND_PHONE_GOTO_ISLAND.png'})
|
||||
ISLAND_PHONE_GOTO_MAIN = Button(area={'cn': (1037, 644, 1077, 680), 'en': (1037, 644, 1077, 680), 'jp': (1037, 644, 1077, 680), 'tw': (1037, 644, 1077, 680)}, color={'cn': (138, 150, 163), 'en': (138, 150, 163), 'jp': (138, 150, 163), 'tw': (138, 150, 163)}, button={'cn': (1037, 644, 1077, 680), 'en': (1037, 644, 1077, 680), 'jp': (1037, 644, 1077, 680), 'tw': (1037, 644, 1077, 680)}, file={'cn': './assets/cn/ui/ISLAND_PHONE_GOTO_MAIN.png', 'en': './assets/cn/ui/ISLAND_PHONE_GOTO_MAIN.png', 'jp': './assets/cn/ui/ISLAND_PHONE_GOTO_MAIN.png', 'tw': './assets/cn/ui/ISLAND_PHONE_GOTO_MAIN.png'})
|
||||
|
||||