mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-03-19 23:33:33 +08:00
Merge branch 'master' of https://github.com/LmeSzinc/AzurLaneAutoScript
This commit is contained in:
@@ -21,7 +21,10 @@ COALITION_ACADEMY_GOTO_CAMPAIGN = Button(area={'cn': (1123, 615, 1159, 651), 'en
|
||||
COALITION_ACADEMY_HOME = Button(area={'cn': (1221, 48, 1244, 73), 'en': (1221, 48, 1244, 73), 'jp': (1221, 48, 1244, 73), 'tw': (1221, 48, 1244, 73)}, color={'cn': (182, 197, 203), 'en': (182, 197, 203), 'jp': (182, 197, 203), 'tw': (182, 197, 203)}, button={'cn': (1221, 48, 1244, 73), 'en': (1221, 48, 1244, 73), 'jp': (1221, 48, 1244, 73), 'tw': (1221, 48, 1244, 73)}, file={'cn': './assets/cn/coalition/COALITION_ACADEMY_HOME.png', 'en': './assets/en/coalition/COALITION_ACADEMY_HOME.png', 'jp': './assets/jp/coalition/COALITION_ACADEMY_HOME.png', 'tw': './assets/tw/coalition/COALITION_ACADEMY_HOME.png'})
|
||||
COALITION_ACADEMY_MAIN_CHECK = Button(area={'cn': (132, 57, 163, 92), 'en': (164, 57, 221, 78), 'jp': (112, 44, 145, 86), 'tw': (346, 48, 427, 89)}, color={'cn': (143, 202, 205), 'en': (205, 189, 166), 'jp': (142, 155, 153), 'tw': (178, 145, 124)}, button={'cn': (132, 57, 163, 92), 'en': (164, 57, 221, 78), 'jp': (112, 44, 145, 86), 'tw': (346, 48, 427, 89)}, file={'cn': './assets/cn/coalition/COALITION_ACADEMY_MAIN_CHECK.png', 'en': './assets/en/coalition/COALITION_ACADEMY_MAIN_CHECK.png', 'jp': './assets/jp/coalition/COALITION_ACADEMY_MAIN_CHECK.png', 'tw': './assets/tw/coalition/COALITION_ACADEMY_MAIN_CHECK.png'})
|
||||
COALITION_REWARD_CONFIRM = Button(area={'cn': (814, 611, 877, 637), 'en': (788, 612, 902, 634), 'jp': (814, 611, 876, 637), 'tw': (814, 611, 877, 637)}, color={'cn': (155, 186, 227), 'en': (162, 189, 226), 'jp': (143, 176, 219), 'tw': (150, 181, 221)}, button={'cn': (814, 611, 877, 637), 'en': (788, 612, 902, 634), 'jp': (814, 611, 876, 637), 'tw': (814, 611, 877, 637)}, file={'cn': './assets/cn/coalition/COALITION_REWARD_CONFIRM.png', 'en': './assets/en/coalition/COALITION_REWARD_CONFIRM.png', 'jp': './assets/jp/coalition/COALITION_REWARD_CONFIRM.png', 'tw': './assets/tw/coalition/COALITION_REWARD_CONFIRM.png'})
|
||||
EMPTY_FLAGSHIP = Button(area={'cn': (247, 237, 277, 267), 'en': (247, 237, 277, 267), 'jp': (247, 237, 277, 267), 'tw': (247, 237, 277, 267)}, color={'cn': (76, 64, 56), 'en': (76, 64, 56), 'jp': (76, 64, 56), 'tw': (76, 64, 56)}, button={'cn': (247, 237, 277, 267), 'en': (247, 237, 277, 267), 'jp': (247, 237, 277, 267), 'tw': (247, 237, 277, 267)}, file={'cn': './assets/cn/coalition/EMPTY_FLAGSHIP.png', 'en': './assets/cn/coalition/EMPTY_FLAGSHIP.png', 'jp': './assets/cn/coalition/EMPTY_FLAGSHIP.png', 'tw': './assets/cn/coalition/EMPTY_FLAGSHIP.png'})
|
||||
EMPTY_VANGUARD = Button(area={'cn': (515, 237, 545, 267), 'en': (515, 237, 545, 267), 'jp': (515, 237, 545, 267), 'tw': (515, 237, 545, 267)}, color={'cn': (52, 52, 53), 'en': (52, 52, 53), 'jp': (52, 52, 53), 'tw': (52, 52, 53)}, button={'cn': (515, 237, 545, 267), 'en': (515, 237, 545, 267), 'jp': (515, 237, 545, 267), 'tw': (515, 237, 545, 267)}, file={'cn': './assets/cn/coalition/EMPTY_VANGUARD.png', 'en': './assets/cn/coalition/EMPTY_VANGUARD.png', 'jp': './assets/cn/coalition/EMPTY_VANGUARD.png', 'tw': './assets/cn/coalition/EMPTY_VANGUARD.png'})
|
||||
FLEET_NOT_PREPARED = Button(area={'cn': (1008, 310, 1110, 334), 'en': (1008, 310, 1110, 334), 'jp': (1008, 310, 1110, 334), 'tw': (1008, 310, 1110, 334)}, color={'cn': (106, 106, 112), 'en': (106, 106, 112), 'jp': (106, 106, 112), 'tw': (108, 107, 112)}, button={'cn': (1008, 310, 1110, 334), 'en': (1008, 310, 1110, 334), 'jp': (1008, 310, 1110, 334), 'tw': (1008, 310, 1110, 334)}, file={'cn': './assets/cn/coalition/FLEET_NOT_PREPARED.png', 'en': './assets/cn/coalition/FLEET_NOT_PREPARED.png', 'jp': './assets/cn/coalition/FLEET_NOT_PREPARED.png', 'tw': './assets/tw/coalition/FLEET_NOT_PREPARED.png'})
|
||||
FROSTFALL_COALITION_CHECK = Button(area={'cn': (118, 14, 227, 39), 'en': (118, 16, 221, 36), 'jp': (118, 14, 227, 39), 'tw': (118, 14, 227, 39)}, color={'cn': (145, 161, 200), 'en': (116, 130, 168), 'jp': (150, 166, 204), 'tw': (152, 168, 206)}, button={'cn': (118, 14, 227, 39), 'en': (118, 16, 221, 36), 'jp': (118, 14, 227, 39), 'tw': (118, 14, 227, 39)}, file={'cn': './assets/cn/coalition/FROSTFALL_COALITION_CHECK.png', 'en': './assets/en/coalition/FROSTFALL_COALITION_CHECK.png', 'jp': './assets/jp/coalition/FROSTFALL_COALITION_CHECK.png', 'tw': './assets/tw/coalition/FROSTFALL_COALITION_CHECK.png'})
|
||||
FROSTFALL_EX = Button(area={'cn': (622, 372, 649, 384), 'en': (622, 372, 649, 384), 'jp': (622, 372, 649, 384), 'tw': (622, 372, 649, 384)}, color={'cn': (198, 152, 252), 'en': (198, 152, 252), 'jp': (198, 152, 252), 'tw': (182, 127, 252)}, button={'cn': (622, 372, 649, 384), 'en': (622, 372, 649, 384), 'jp': (622, 372, 649, 384), 'tw': (622, 372, 649, 384)}, file={'cn': './assets/cn/coalition/FROSTFALL_EX.png', 'en': './assets/en/coalition/FROSTFALL_EX.png', 'jp': './assets/jp/coalition/FROSTFALL_EX.png', 'tw': './assets/tw/coalition/FROSTFALL_EX.png'})
|
||||
FROSTFALL_FLEET_PREPARATION = Button(area={'cn': (1057, 527, 1155, 548), 'en': (1114, 527, 1200, 545), 'jp': (1056, 525, 1157, 550), 'tw': (1057, 527, 1155, 548)}, color={'cn': (122, 146, 222), 'en': (106, 135, 228), 'jp': (115, 141, 222), 'tw': (110, 136, 224)}, button={'cn': (1057, 527, 1155, 548), 'en': (968, 511, 1245, 563), 'jp': (968, 511, 1245, 563), 'tw': (968, 511, 1245, 563)}, file={'cn': './assets/cn/coalition/FROSTFALL_FLEET_PREPARATION.png', 'en': './assets/en/coalition/FROSTFALL_FLEET_PREPARATION.png', 'jp': './assets/jp/coalition/FROSTFALL_FLEET_PREPARATION.png', 'tw': './assets/tw/coalition/FROSTFALL_FLEET_PREPARATION.png'})
|
||||
FROSTFALL_MODE_BATTLE = Button(area={'cn': (71, 608, 137, 653), 'en': (71, 608, 137, 653), 'jp': (71, 608, 137, 653), 'tw': (71, 608, 137, 653)}, color={'cn': (63, 106, 122), 'en': (63, 106, 122), 'jp': (63, 106, 122), 'tw': (63, 106, 122)}, button={'cn': (71, 608, 137, 653), 'en': (71, 608, 137, 653), 'jp': (71, 608, 137, 653), 'tw': (71, 608, 137, 653)}, file={'cn': './assets/cn/coalition/FROSTFALL_MODE_BATTLE.png', 'en': './assets/en/coalition/FROSTFALL_MODE_BATTLE.png', 'jp': './assets/jp/coalition/FROSTFALL_MODE_BATTLE.png', 'tw': './assets/tw/coalition/FROSTFALL_MODE_BATTLE.png'})
|
||||
@@ -33,3 +36,15 @@ FROSTFALL_SWITCH_SINGLE = Button(area={'cn': (968, 449, 1098, 478), 'en': (968,
|
||||
FROSTFALL_TC1 = Button(area={'cn': (304, 320, 330, 332), 'en': (304, 320, 330, 332), 'jp': (304, 320, 330, 332), 'tw': (304, 320, 330, 332)}, color={'cn': (204, 162, 254), 'en': (204, 162, 254), 'jp': (204, 162, 254), 'tw': (188, 137, 254)}, button={'cn': (304, 320, 330, 332), 'en': (304, 320, 330, 332), 'jp': (304, 320, 330, 332), 'tw': (304, 320, 330, 332)}, file={'cn': './assets/cn/coalition/FROSTFALL_TC1.png', 'en': './assets/en/coalition/FROSTFALL_TC1.png', 'jp': './assets/jp/coalition/FROSTFALL_TC1.png', 'tw': './assets/tw/coalition/FROSTFALL_TC1.png'})
|
||||
FROSTFALL_TC2 = Button(area={'cn': (631, 160, 658, 173), 'en': (631, 160, 658, 173), 'jp': (631, 160, 658, 173), 'tw': (631, 160, 658, 173)}, color={'cn': (186, 136, 252), 'en': (186, 136, 252), 'jp': (186, 136, 252), 'tw': (186, 136, 252)}, button={'cn': (631, 160, 658, 173), 'en': (631, 160, 658, 173), 'jp': (631, 160, 658, 173), 'tw': (631, 160, 658, 173)}, file={'cn': './assets/cn/coalition/FROSTFALL_TC2.png', 'en': './assets/en/coalition/FROSTFALL_TC2.png', 'jp': './assets/jp/coalition/FROSTFALL_TC2.png', 'tw': './assets/tw/coalition/FROSTFALL_TC2.png'})
|
||||
FROSTFALL_TC3 = Button(area={'cn': (810, 362, 835, 373), 'en': (810, 362, 835, 373), 'jp': (810, 362, 835, 373), 'tw': (810, 362, 835, 373)}, color={'cn': (197, 153, 255), 'en': (197, 153, 255), 'jp': (197, 153, 255), 'tw': (197, 153, 255)}, button={'cn': (810, 362, 835, 373), 'en': (810, 362, 835, 373), 'jp': (810, 362, 835, 373), 'tw': (810, 362, 835, 373)}, file={'cn': './assets/cn/coalition/FROSTFALL_TC3.png', 'en': './assets/en/coalition/FROSTFALL_TC3.png', 'jp': './assets/jp/coalition/FROSTFALL_TC3.png', 'tw': './assets/tw/coalition/FROSTFALL_TC3.png'})
|
||||
NEONCITY_COALITION_CHECK = Button(area={'cn': (230, 36, 276, 82), 'en': (230, 36, 276, 82), 'jp': (230, 36, 276, 82), 'tw': (230, 36, 276, 82)}, color={'cn': (136, 139, 142), 'en': (136, 139, 142), 'jp': (136, 139, 142), 'tw': (136, 139, 142)}, button={'cn': (230, 36, 276, 82), 'en': (230, 36, 276, 82), 'jp': (230, 36, 276, 82), 'tw': (230, 36, 276, 82)}, file={'cn': './assets/cn/coalition/NEONCITY_COALITION_CHECK.png', 'en': './assets/cn/coalition/NEONCITY_COALITION_CHECK.png', 'jp': './assets/cn/coalition/NEONCITY_COALITION_CHECK.png', 'tw': './assets/cn/coalition/NEONCITY_COALITION_CHECK.png'})
|
||||
NEONCITY_EASY = Button(area={'cn': (255, 252, 308, 270), 'en': (255, 252, 308, 270), 'jp': (255, 252, 308, 270), 'tw': (255, 252, 308, 270)}, color={'cn': (131, 132, 135), 'en': (131, 132, 135), 'jp': (131, 132, 135), 'tw': (131, 132, 135)}, button={'cn': (255, 252, 308, 270), 'en': (255, 252, 308, 270), 'jp': (255, 252, 308, 270), 'tw': (255, 252, 308, 270)}, file={'cn': './assets/cn/coalition/NEONCITY_EASY.png', 'en': './assets/cn/coalition/NEONCITY_EASY.png', 'jp': './assets/cn/coalition/NEONCITY_EASY.png', 'tw': './assets/cn/coalition/NEONCITY_EASY.png'})
|
||||
NEONCITY_EX = Button(area={'cn': (655, 353, 708, 370), 'en': (655, 353, 708, 370), 'jp': (655, 353, 708, 370), 'tw': (655, 353, 708, 370)}, color={'cn': (151, 150, 151), 'en': (151, 150, 151), 'jp': (151, 150, 151), 'tw': (151, 150, 151)}, button={'cn': (655, 353, 708, 370), 'en': (655, 353, 708, 370), 'jp': (655, 353, 708, 370), 'tw': (655, 353, 708, 370)}, file={'cn': './assets/cn/coalition/NEONCITY_EX.png', 'en': './assets/cn/coalition/NEONCITY_EX.png', 'jp': './assets/cn/coalition/NEONCITY_EX.png', 'tw': './assets/cn/coalition/NEONCITY_EX.png'})
|
||||
NEONCITY_FLEET_PREPARATION = Button(area={'cn': (1034, 533, 1130, 556), 'en': (1034, 533, 1130, 556), 'jp': (1034, 533, 1130, 556), 'tw': (1034, 533, 1130, 556)}, color={'cn': (107, 137, 239), 'en': (107, 137, 239), 'jp': (107, 137, 239), 'tw': (107, 137, 239)}, button={'cn': (1034, 533, 1130, 556), 'en': (1034, 533, 1130, 556), 'jp': (1034, 533, 1130, 556), 'tw': (1034, 533, 1130, 556)}, file={'cn': './assets/cn/coalition/NEONCITY_FLEET_PREPARATION.png', 'en': './assets/cn/coalition/NEONCITY_FLEET_PREPARATION.png', 'jp': './assets/cn/coalition/NEONCITY_FLEET_PREPARATION.png', 'tw': './assets/cn/coalition/NEONCITY_FLEET_PREPARATION.png'})
|
||||
NEONCITY_HARD = Button(area={'cn': (924, 549, 977, 567), 'en': (924, 549, 977, 567), 'jp': (924, 549, 977, 567), 'tw': (924, 549, 977, 567)}, color={'cn': (128, 128, 131), 'en': (128, 128, 131), 'jp': (128, 128, 131), 'tw': (128, 128, 131)}, button={'cn': (924, 549, 977, 567), 'en': (924, 549, 977, 567), 'jp': (924, 549, 977, 567), 'tw': (924, 549, 977, 567)}, file={'cn': './assets/cn/coalition/NEONCITY_HARD.png', 'en': './assets/cn/coalition/NEONCITY_HARD.png', 'jp': './assets/cn/coalition/NEONCITY_HARD.png', 'tw': './assets/cn/coalition/NEONCITY_HARD.png'})
|
||||
NEONCITY_MODE_BATTLE = Button(area={'cn': (8, 627, 86, 671), 'en': (8, 627, 86, 671), 'jp': (8, 627, 86, 671), 'tw': (8, 627, 86, 671)}, color={'cn': (72, 56, 62), 'en': (72, 56, 62), 'jp': (72, 56, 62), 'tw': (72, 56, 62)}, button={'cn': (8, 627, 86, 671), 'en': (8, 627, 86, 671), 'jp': (8, 627, 86, 671), 'tw': (8, 627, 86, 671)}, file={'cn': './assets/cn/coalition/NEONCITY_MODE_BATTLE.png', 'en': './assets/cn/coalition/NEONCITY_MODE_BATTLE.png', 'jp': './assets/cn/coalition/NEONCITY_MODE_BATTLE.png', 'tw': './assets/cn/coalition/NEONCITY_MODE_BATTLE.png'})
|
||||
NEONCITY_MODE_STORY = Button(area={'cn': (173, 627, 251, 668), 'en': (173, 627, 251, 668), 'jp': (173, 627, 251, 668), 'tw': (173, 627, 251, 668)}, color={'cn': (85, 67, 72), 'en': (85, 67, 72), 'jp': (85, 67, 72), 'tw': (85, 67, 72)}, button={'cn': (173, 627, 251, 668), 'en': (173, 627, 251, 668), 'jp': (173, 627, 251, 668), 'tw': (173, 627, 251, 668)}, file={'cn': './assets/cn/coalition/NEONCITY_MODE_STORY.png', 'en': './assets/cn/coalition/NEONCITY_MODE_STORY.png', 'jp': './assets/cn/coalition/NEONCITY_MODE_STORY.png', 'tw': './assets/cn/coalition/NEONCITY_MODE_STORY.png'})
|
||||
NEONCITY_NORMAL = Button(area={'cn': (329, 453, 381, 472), 'en': (329, 453, 381, 472), 'jp': (329, 453, 381, 472), 'tw': (329, 453, 381, 472)}, color={'cn': (148, 149, 152), 'en': (148, 149, 152), 'jp': (148, 149, 152), 'tw': (148, 149, 152)}, button={'cn': (329, 453, 381, 472), 'en': (329, 453, 381, 472), 'jp': (329, 453, 381, 472), 'tw': (329, 453, 381, 472)}, file={'cn': './assets/cn/coalition/NEONCITY_NORMAL.png', 'en': './assets/cn/coalition/NEONCITY_NORMAL.png', 'jp': './assets/cn/coalition/NEONCITY_NORMAL.png', 'tw': './assets/cn/coalition/NEONCITY_NORMAL.png'})
|
||||
NEONCITY_PT_OCR = Button(area={'cn': (1179, 166, 1251, 184), 'en': (1179, 166, 1251, 184), 'jp': (1179, 166, 1251, 184), 'tw': (1179, 166, 1251, 184)}, color={'cn': (31, 38, 44), 'en': (31, 38, 44), 'jp': (31, 38, 44), 'tw': (31, 38, 44)}, button={'cn': (1179, 166, 1251, 184), 'en': (1179, 166, 1251, 184), 'jp': (1179, 166, 1251, 184), 'tw': (1179, 166, 1251, 184)}, file={'cn': './assets/cn/coalition/NEONCITY_PT_OCR.png', 'en': './assets/cn/coalition/NEONCITY_PT_OCR.png', 'jp': './assets/cn/coalition/NEONCITY_PT_OCR.png', 'tw': './assets/cn/coalition/NEONCITY_PT_OCR.png'})
|
||||
NEONCITY_SP = Button(area={'cn': (821, 168, 874, 186), 'en': (821, 168, 874, 186), 'jp': (821, 168, 874, 186), 'tw': (821, 168, 874, 186)}, color={'cn': (144, 143, 143), 'en': (144, 143, 143), 'jp': (144, 143, 143), 'tw': (144, 143, 143)}, button={'cn': (821, 168, 874, 186), 'en': (821, 168, 874, 186), 'jp': (821, 168, 874, 186), 'tw': (821, 168, 874, 186)}, file={'cn': './assets/cn/coalition/NEONCITY_SP.png', 'en': './assets/cn/coalition/NEONCITY_SP.png', 'jp': './assets/cn/coalition/NEONCITY_SP.png', 'tw': './assets/cn/coalition/NEONCITY_SP.png'})
|
||||
NEONCITY_SWITCH_MULTI = Button(area={'cn': (1087, 458, 1217, 486), 'en': (1087, 458, 1217, 486), 'jp': (1087, 458, 1217, 486), 'tw': (1087, 458, 1217, 486)}, color={'cn': (233, 183, 63), 'en': (233, 183, 63), 'jp': (233, 183, 63), 'tw': (233, 183, 63)}, button={'cn': (1087, 458, 1217, 486), 'en': (1087, 458, 1217, 486), 'jp': (1087, 458, 1217, 486), 'tw': (1087, 458, 1217, 486)}, file={'cn': './assets/cn/coalition/NEONCITY_SWITCH_MULTI.png', 'en': './assets/cn/coalition/NEONCITY_SWITCH_MULTI.png', 'jp': './assets/cn/coalition/NEONCITY_SWITCH_MULTI.png', 'tw': './assets/cn/coalition/NEONCITY_SWITCH_MULTI.png'})
|
||||
NEONCITY_SWITCH_SINGLE = Button(area={'cn': (940, 458, 1071, 486), 'en': (940, 458, 1071, 486), 'jp': (940, 458, 1071, 486), 'tw': (940, 458, 1071, 486)}, color={'cn': (230, 181, 62), 'en': (230, 181, 62), 'jp': (230, 181, 62), 'tw': (230, 181, 62)}, button={'cn': (940, 458, 1071, 486), 'en': (940, 458, 1071, 486), 'jp': (940, 458, 1071, 486), 'tw': (940, 458, 1071, 486)}, file={'cn': './assets/cn/coalition/NEONCITY_SWITCH_SINGLE.png', 'en': './assets/cn/coalition/NEONCITY_SWITCH_SINGLE.png', 'jp': './assets/cn/coalition/NEONCITY_SWITCH_SINGLE.png', 'tw': './assets/cn/coalition/NEONCITY_SWITCH_SINGLE.png'})
|
||||
|
||||
@@ -40,6 +40,9 @@ class Coalition(CoalitionCombat, CampaignEvent):
|
||||
ocr = Digit(FROSTFALL_OCR_PT, name='OCR_PT', letter=(198, 158, 82), threshold=128)
|
||||
elif event == 'coalition_20240627':
|
||||
ocr = AcademyPtOcr(ACADEMY_PT_OCR, name='OCR_PT', letter=(255, 255, 255), threshold=128)
|
||||
elif event == 'coalition_20250626':
|
||||
# use generic ocr model
|
||||
ocr = Digit(NEONCITY_PT_OCR, name='OCR_PT', lang='cnocr', letter=(208, 208, 208), threshold=128)
|
||||
else:
|
||||
logger.error(f'ocr object is not defined in event {event}')
|
||||
raise ScriptError
|
||||
|
||||
@@ -8,6 +8,16 @@ from module.ui.page import page_coalition
|
||||
from module.ui.switch import Switch
|
||||
|
||||
|
||||
class NeoncitySwitch(Switch):
|
||||
def get(self, main):
|
||||
# check if having red text
|
||||
for data in self.state_list:
|
||||
if main.image_color_count(data['check_button'], color=(123, 41, 41), threshold=221, count=100):
|
||||
return data['state']
|
||||
|
||||
return 'unknown'
|
||||
|
||||
|
||||
class CoalitionUI(Combat):
|
||||
def in_coalition(self):
|
||||
# The same as raid
|
||||
@@ -22,22 +32,27 @@ class CoalitionUI(Combat):
|
||||
Pages:
|
||||
in: in_coalition
|
||||
"""
|
||||
MODE_SWITCH = Switch('CoalitionMode', offset=(20, 20))
|
||||
if event == 'coalition_20230323':
|
||||
MODE_SWITCH.add_state('story', FROSTFALL_MODE_STORY)
|
||||
MODE_SWITCH.add_state('battle', FROSTFALL_MODE_BATTLE)
|
||||
elif event == 'coalition_20240627':
|
||||
mode_switch = Switch('CoalitionMode', offset=(20, 20))
|
||||
# Note that switch button are reversed
|
||||
MODE_SWITCH.add_state('story', ACADEMY_MODE_BATTLE)
|
||||
MODE_SWITCH.add_state('battle', ACADEMY_MODE_STORY)
|
||||
mode_switch.add_state('story', FROSTFALL_MODE_STORY)
|
||||
mode_switch.add_state('battle', FROSTFALL_MODE_BATTLE)
|
||||
elif event == 'coalition_20240627':
|
||||
mode_switch = Switch('CoalitionMode', offset=(20, 20))
|
||||
mode_switch.add_state('story', ACADEMY_MODE_BATTLE)
|
||||
mode_switch.add_state('battle', ACADEMY_MODE_STORY)
|
||||
elif event == 'coalition_20250626':
|
||||
mode_switch = NeoncitySwitch('CoalitionMode', offset=(20, 20))
|
||||
mode_switch.add_state('story', NEONCITY_MODE_STORY)
|
||||
mode_switch.add_state('battle', NEONCITY_MODE_BATTLE)
|
||||
else:
|
||||
logger.error(f'MODE_SWITCH is not defined in event {event}')
|
||||
raise ScriptError
|
||||
|
||||
if mode == 'story':
|
||||
MODE_SWITCH.set('battle', main=self)
|
||||
mode_switch.set('story', main=self)
|
||||
elif mode == 'battle':
|
||||
MODE_SWITCH.set('story', main=self)
|
||||
mode_switch.set('battle', main=self)
|
||||
else:
|
||||
logger.warning(f'Unknown coalition campaign mode: {mode}')
|
||||
|
||||
@@ -50,21 +65,24 @@ class CoalitionUI(Combat):
|
||||
Pages:
|
||||
in: FLEET_PREPARATION
|
||||
"""
|
||||
FLEET_SWITCH = Switch('FleetMode', is_selector=True, offset=0) # No offset for color match
|
||||
fleet_switch = Switch('FleetMode', is_selector=True, offset=0) # No offset for color match
|
||||
if event == 'coalition_20230323':
|
||||
FLEET_SWITCH.add_state('single', FROSTFALL_SWITCH_SINGLE)
|
||||
FLEET_SWITCH.add_state('multi', FROSTFALL_SWITCH_MULTI)
|
||||
fleet_switch.add_state('single', FROSTFALL_SWITCH_SINGLE)
|
||||
fleet_switch.add_state('multi', FROSTFALL_SWITCH_MULTI)
|
||||
elif event == 'coalition_20240627':
|
||||
FLEET_SWITCH.add_state('single', ACADEMY_SWITCH_SINGLE)
|
||||
FLEET_SWITCH.add_state('multi', ACADEMY_SWITCH_MULTI)
|
||||
fleet_switch.add_state('single', ACADEMY_SWITCH_SINGLE)
|
||||
fleet_switch.add_state('multi', ACADEMY_SWITCH_MULTI)
|
||||
elif event == 'coalition_20250626':
|
||||
fleet_switch.add_state('single', NEONCITY_SWITCH_SINGLE)
|
||||
fleet_switch.add_state('multi', NEONCITY_SWITCH_MULTI)
|
||||
else:
|
||||
logger.error(f'FLEET_SWITCH is not defined in event {event}')
|
||||
raise ScriptError
|
||||
|
||||
if mode == 'single':
|
||||
FLEET_SWITCH.set('single', main=self)
|
||||
fleet_switch.set('single', main=self)
|
||||
elif mode == 'multi':
|
||||
FLEET_SWITCH.set('multi', main=self)
|
||||
fleet_switch.set('multi', main=self)
|
||||
else:
|
||||
logger.warning(f'Unknown coalition fleet mode: {mode}')
|
||||
|
||||
@@ -90,6 +108,12 @@ class CoalitionUI(Combat):
|
||||
('coalition_20240627', 'hard'): ACADEMY_HARD,
|
||||
('coalition_20240627', 'sp'): ACADEMY_SP,
|
||||
('coalition_20240627', 'ex'): ACADEMY_EX,
|
||||
|
||||
('coalition_20250626', 'easy'): NEONCITY_EASY,
|
||||
('coalition_20250626', 'normal'): NEONCITY_NORMAL,
|
||||
('coalition_20250626', 'hard'): NEONCITY_HARD,
|
||||
('coalition_20250626', 'sp'): NEONCITY_SP,
|
||||
('coalition_20250626', 'ex'): NEONCITY_EX,
|
||||
}
|
||||
stage = stage.lower()
|
||||
try:
|
||||
@@ -120,6 +144,12 @@ class CoalitionUI(Combat):
|
||||
('coalition_20240627', 'hard'): 3,
|
||||
('coalition_20240627', 'sp'): 4,
|
||||
('coalition_20240627', 'ex'): 5,
|
||||
|
||||
('coalition_20250626', 'easy'): 1,
|
||||
('coalition_20250626', 'normal'): 2,
|
||||
('coalition_20250626', 'hard'): 3,
|
||||
('coalition_20250626', 'sp'): 4,
|
||||
('coalition_20250626', 'ex'): 5,
|
||||
}
|
||||
stage = stage.lower()
|
||||
try:
|
||||
@@ -141,6 +171,8 @@ class CoalitionUI(Combat):
|
||||
return FROSTFALL_FLEET_PREPARATION
|
||||
elif event == 'coalition_20240627':
|
||||
return ACEDEMY_FLEET_PREPARATION
|
||||
elif event == 'coalition_20250626':
|
||||
return NEONCITY_FLEET_PREPARATION
|
||||
else:
|
||||
logger.error(f'FLEET_PREPARATION is not defined in event {event}')
|
||||
raise ScriptError
|
||||
@@ -164,6 +196,9 @@ class CoalitionUI(Combat):
|
||||
if event == 'coalition_20240627':
|
||||
if stage in ['easy', 'sp', 'ex']:
|
||||
return False
|
||||
if event == 'coalition_20250626':
|
||||
if stage in ['easy', 'sp', 'ex']:
|
||||
return False
|
||||
|
||||
self.coalition_ensure_fleet(event, mode)
|
||||
return True
|
||||
@@ -209,6 +244,12 @@ class CoalitionUI(Combat):
|
||||
logger.critical('FLEET_NOT_PREPARED')
|
||||
logger.critical('Please prepare you fleets before running coalition battles')
|
||||
raise RequestHumanTakeover
|
||||
if self.appear(EMPTY_FLAGSHIP, offset=(20, 20)):
|
||||
logger.critical('EMPTY_FLAGSHIP, Please prepare you fleets before running coalition battles')
|
||||
raise RequestHumanTakeover
|
||||
if self.appear(EMPTY_VANGUARD, offset=(20, 20)):
|
||||
logger.critical('EMPTY_VANGUARD, Please prepare you fleets before running coalition battles')
|
||||
raise RequestHumanTakeover
|
||||
|
||||
# End
|
||||
if self.appear(BATTLE_PREPARATION, offset=(20, 20)):
|
||||
@@ -258,3 +299,10 @@ class CoalitionUI(Combat):
|
||||
# Auto confirm
|
||||
if self.handle_combat_automation_confirm():
|
||||
continue
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
self = CoalitionUI('alas')
|
||||
self.device.screenshot()
|
||||
print(self.image_color_count(NEONCITY_MODE_BATTLE, color=(123, 41, 41), threshold=221, count=100))
|
||||
Reference in New Issue
Block a user