Upd: Coalition 20260122
BIN
assets/cn/coalition/FASHION_COALITION_CHECK.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
assets/cn/coalition/FASHION_EASY.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
assets/cn/coalition/FASHION_EX.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
assets/cn/coalition/FASHION_FLEET_PREPARATION.png
Normal file
|
After Width: | Height: | Size: 8.1 KiB |
BIN
assets/cn/coalition/FASHION_HARD.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
assets/cn/coalition/FASHION_MODE_BATTLE.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
assets/cn/coalition/FASHION_MODE_STORY.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
assets/cn/coalition/FASHION_NORMAL.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
assets/cn/coalition/FASHION_PT_OCR.png
Normal file
|
After Width: | Height: | Size: 3.9 KiB |
BIN
assets/cn/coalition/FASHION_SP.png
Normal file
|
After Width: | Height: | Size: 3.2 KiB |
BIN
assets/cn/coalition/FASHION_SWITCH_MULTI.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
assets/cn/coalition/FASHION_SWITCH_SINGLE.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |
BIN
assets/cn/coalition/FASHION_UI_BACK.png
Normal file
|
After Width: | Height: | Size: 3.4 KiB |
BIN
assets/cn/coalition/FASHION_UI_HOME.png
Normal file
|
After Width: | Height: | Size: 4.4 KiB |
@ -276,3 +276,4 @@ To add a new event, add a new row in here, and run `python -m module.config.conf
|
||||
| 20251218 | event 20251218 cn | A Note Through the Firmament | 响彻于天穹之音 | A Note Through the Firmament | 天穹に響く音謡 | - |
|
||||
| 20251231 | event 20251218 cn | A Note Through the Firmament | - | - | - | 響徹於天穹之音 |
|
||||
| 20260115 | event 20231221 cn | Light-Chasing Sea of Stars | 复刻星海逐光 | Light-Chasing Sea of Stars Rerun | 光追う星の海(復刻) | - |
|
||||
| 20260122 | coalition 20260122 | Light & Shadow Fashion Shoot! | 光影风尚——拍摄进行时! | Light & Shadow Fashion Shoot! | 特集写真――撮影進行中! | - |
|
||||
|
||||
@ -734,7 +734,7 @@
|
||||
"ClearAfterSinking": false
|
||||
},
|
||||
"Coalition": {
|
||||
"Mode": "area1-normal",
|
||||
"Mode": "hard",
|
||||
"Fleet": "single"
|
||||
},
|
||||
"StopCondition": {
|
||||
@ -1332,7 +1332,7 @@
|
||||
"ClearAfterSinking": false
|
||||
},
|
||||
"Coalition": {
|
||||
"Mode": "area1-normal",
|
||||
"Mode": "sp",
|
||||
"Fleet": "single"
|
||||
},
|
||||
"StopCondition": {
|
||||
|
||||
@ -36,6 +36,20 @@ DAL_SWITCH_MULTI = Button(area={'cn': (1060, 473, 1204, 500), 'en': (1061, 474,
|
||||
DAL_SWITCH_SINGLE = Button(area={'cn': (910, 473, 1055, 500), 'en': (915, 475, 1051, 499), 'jp': (917, 474, 1035, 499), 'tw': (945, 478, 1013, 495)}, color={'cn': (223, 223, 223), 'en': (193, 193, 193), 'jp': (215, 215, 215), 'tw': (168, 168, 168)}, button={'cn': (910, 473, 1055, 500), 'en': (915, 475, 1051, 499), 'jp': (917, 474, 1035, 499), 'tw': (945, 478, 1013, 495)}, file={'cn': './assets/cn/coalition/DAL_SWITCH_SINGLE.png', 'en': './assets/en/coalition/DAL_SWITCH_SINGLE.png', 'jp': './assets/jp/coalition/DAL_SWITCH_SINGLE.png', 'tw': './assets/tw/coalition/DAL_SWITCH_SINGLE.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'})
|
||||
FASHION_COALITION_CHECK = Button(area={'cn': (100, 17, 261, 53), 'en': (100, 17, 261, 53), 'jp': (100, 17, 261, 53), 'tw': (100, 17, 261, 53)}, color={'cn': (100, 94, 76), 'en': (100, 94, 76), 'jp': (100, 94, 76), 'tw': (100, 94, 76)}, button={'cn': (100, 17, 261, 53), 'en': (100, 17, 261, 53), 'jp': (100, 17, 261, 53), 'tw': (100, 17, 261, 53)}, file={'cn': './assets/cn/coalition/FASHION_COALITION_CHECK.png', 'en': './assets/cn/coalition/FASHION_COALITION_CHECK.png', 'jp': './assets/cn/coalition/FASHION_COALITION_CHECK.png', 'tw': './assets/cn/coalition/FASHION_COALITION_CHECK.png'})
|
||||
FASHION_EASY = Button(area={'cn': (101, 161, 264, 470), 'en': (101, 161, 264, 470), 'jp': (101, 161, 264, 470), 'tw': (101, 161, 264, 470)}, color={'cn': (255, 255, 255), 'en': (255, 255, 255), 'jp': (255, 255, 255), 'tw': (255, 255, 255)}, button={'cn': (101, 161, 264, 470), 'en': (101, 161, 264, 470), 'jp': (101, 161, 264, 470), 'tw': (101, 161, 264, 470)}, file={'cn': './assets/cn/coalition/FASHION_EASY.png', 'en': './assets/cn/coalition/FASHION_EASY.png', 'jp': './assets/cn/coalition/FASHION_EASY.png', 'tw': './assets/cn/coalition/FASHION_EASY.png'})
|
||||
FASHION_EX = Button(area={'cn': (832, 162, 995, 506), 'en': (832, 162, 995, 506), 'jp': (832, 162, 995, 506), 'tw': (832, 162, 995, 506)}, color={'cn': (255, 255, 255), 'en': (255, 255, 255), 'jp': (255, 255, 255), 'tw': (255, 255, 255)}, button={'cn': (832, 162, 995, 506), 'en': (832, 162, 995, 506), 'jp': (832, 162, 995, 506), 'tw': (832, 162, 995, 506)}, file={'cn': './assets/cn/coalition/FASHION_EX.png', 'en': './assets/cn/coalition/FASHION_EX.png', 'jp': './assets/cn/coalition/FASHION_EX.png', 'tw': './assets/cn/coalition/FASHION_EX.png'})
|
||||
FASHION_FLEET_PREPARATION = Button(area={'cn': (1021, 519, 1121, 545), 'en': (1021, 519, 1121, 545), 'jp': (1021, 519, 1121, 545), 'tw': (1021, 519, 1121, 545)}, color={'cn': (94, 129, 239), 'en': (94, 129, 239), 'jp': (94, 129, 239), 'tw': (94, 129, 239)}, button={'cn': (1021, 519, 1121, 545), 'en': (1021, 519, 1121, 545), 'jp': (1021, 519, 1121, 545), 'tw': (1021, 519, 1121, 545)}, file={'cn': './assets/cn/coalition/FASHION_FLEET_PREPARATION.png', 'en': './assets/cn/coalition/FASHION_FLEET_PREPARATION.png', 'jp': './assets/cn/coalition/FASHION_FLEET_PREPARATION.png', 'tw': './assets/cn/coalition/FASHION_FLEET_PREPARATION.png'})
|
||||
FASHION_HARD = Button(area={'cn': (439, 161, 602, 502), 'en': (439, 161, 602, 502), 'jp': (439, 161, 602, 502), 'tw': (439, 161, 602, 502)}, color={'cn': (255, 255, 255), 'en': (255, 255, 255), 'jp': (255, 255, 255), 'tw': (255, 255, 255)}, button={'cn': (439, 161, 602, 502), 'en': (439, 161, 602, 502), 'jp': (439, 161, 602, 502), 'tw': (439, 161, 602, 502)}, file={'cn': './assets/cn/coalition/FASHION_HARD.png', 'en': './assets/cn/coalition/FASHION_HARD.png', 'jp': './assets/cn/coalition/FASHION_HARD.png', 'tw': './assets/cn/coalition/FASHION_HARD.png'})
|
||||
FASHION_MODE_BATTLE = Button(area={'cn': (148, 631, 283, 671), 'en': (148, 631, 283, 671), 'jp': (148, 631, 283, 671), 'tw': (148, 631, 283, 671)}, color={'cn': (162, 149, 122), 'en': (162, 149, 122), 'jp': (162, 149, 122), 'tw': (162, 149, 122)}, button={'cn': (148, 631, 283, 671), 'en': (148, 631, 283, 671), 'jp': (148, 631, 283, 671), 'tw': (148, 631, 283, 671)}, file={'cn': './assets/cn/coalition/FASHION_MODE_BATTLE.png', 'en': './assets/cn/coalition/FASHION_MODE_BATTLE.png', 'jp': './assets/cn/coalition/FASHION_MODE_BATTLE.png', 'tw': './assets/cn/coalition/FASHION_MODE_BATTLE.png'})
|
||||
FASHION_MODE_STORY = Button(area={'cn': (152, 621, 287, 669), 'en': (152, 621, 287, 669), 'jp': (152, 621, 287, 669), 'tw': (152, 621, 287, 669)}, color={'cn': (168, 154, 126), 'en': (168, 154, 126), 'jp': (168, 154, 126), 'tw': (168, 154, 126)}, button={'cn': (152, 621, 287, 669), 'en': (152, 621, 287, 669), 'jp': (152, 621, 287, 669), 'tw': (152, 621, 287, 669)}, file={'cn': './assets/cn/coalition/FASHION_MODE_STORY.png', 'en': './assets/cn/coalition/FASHION_MODE_STORY.png', 'jp': './assets/cn/coalition/FASHION_MODE_STORY.png', 'tw': './assets/cn/coalition/FASHION_MODE_STORY.png'})
|
||||
FASHION_NORMAL = Button(area={'cn': (270, 161, 433, 470), 'en': (270, 161, 433, 470), 'jp': (270, 161, 433, 470), 'tw': (270, 161, 433, 470)}, color={'cn': (255, 255, 255), 'en': (255, 255, 255), 'jp': (255, 255, 255), 'tw': (255, 255, 255)}, button={'cn': (270, 161, 433, 470), 'en': (270, 161, 433, 470), 'jp': (270, 161, 433, 470), 'tw': (270, 161, 433, 470)}, file={'cn': './assets/cn/coalition/FASHION_NORMAL.png', 'en': './assets/cn/coalition/FASHION_NORMAL.png', 'jp': './assets/cn/coalition/FASHION_NORMAL.png', 'tw': './assets/cn/coalition/FASHION_NORMAL.png'})
|
||||
FASHION_PT_OCR = Button(area={'cn': (889, 659, 936, 674), 'en': (889, 659, 936, 674), 'jp': (889, 659, 936, 674), 'tw': (889, 659, 936, 674)}, color={'cn': (132, 124, 120), 'en': (132, 124, 120), 'jp': (132, 124, 120), 'tw': (132, 124, 120)}, button={'cn': (889, 659, 936, 674), 'en': (889, 659, 936, 674), 'jp': (889, 659, 936, 674), 'tw': (889, 659, 936, 674)}, file={'cn': './assets/cn/coalition/FASHION_PT_OCR.png', 'en': './assets/cn/coalition/FASHION_PT_OCR.png', 'jp': './assets/cn/coalition/FASHION_PT_OCR.png', 'tw': './assets/cn/coalition/FASHION_PT_OCR.png'})
|
||||
FASHION_SP = Button(area={'cn': (664, 166, 826, 507), 'en': (664, 166, 826, 507), 'jp': (664, 166, 826, 507), 'tw': (664, 166, 826, 507)}, color={'cn': (255, 255, 255), 'en': (255, 255, 255), 'jp': (255, 255, 255), 'tw': (255, 255, 255)}, button={'cn': (664, 166, 826, 507), 'en': (664, 166, 826, 507), 'jp': (664, 166, 826, 507), 'tw': (664, 166, 826, 507)}, file={'cn': './assets/cn/coalition/FASHION_SP.png', 'en': './assets/cn/coalition/FASHION_SP.png', 'jp': './assets/cn/coalition/FASHION_SP.png', 'tw': './assets/cn/coalition/FASHION_SP.png'})
|
||||
FASHION_SWITCH_MULTI = Button(area={'cn': (1075, 457, 1206, 485), 'en': (1075, 457, 1206, 485), 'jp': (1075, 457, 1206, 485), 'tw': (1075, 457, 1206, 485)}, color={'cn': (233, 183, 63), 'en': (233, 183, 63), 'jp': (233, 183, 63), 'tw': (233, 183, 63)}, button={'cn': (1075, 457, 1206, 485), 'en': (1075, 457, 1206, 485), 'jp': (1075, 457, 1206, 485), 'tw': (1075, 457, 1206, 485)}, file={'cn': './assets/cn/coalition/FASHION_SWITCH_MULTI.png', 'en': './assets/cn/coalition/FASHION_SWITCH_MULTI.png', 'jp': './assets/cn/coalition/FASHION_SWITCH_MULTI.png', 'tw': './assets/cn/coalition/FASHION_SWITCH_MULTI.png'})
|
||||
FASHION_SWITCH_SINGLE = Button(area={'cn': (929, 457, 1059, 485), 'en': (929, 457, 1059, 485), 'jp': (929, 457, 1059, 485), 'tw': (929, 457, 1059, 485)}, color={'cn': (230, 181, 62), 'en': (230, 181, 62), 'jp': (230, 181, 62), 'tw': (230, 181, 62)}, button={'cn': (929, 457, 1059, 485), 'en': (929, 457, 1059, 485), 'jp': (929, 457, 1059, 485), 'tw': (929, 457, 1059, 485)}, file={'cn': './assets/cn/coalition/FASHION_SWITCH_SINGLE.png', 'en': './assets/cn/coalition/FASHION_SWITCH_SINGLE.png', 'jp': './assets/cn/coalition/FASHION_SWITCH_SINGLE.png', 'tw': './assets/cn/coalition/FASHION_SWITCH_SINGLE.png'})
|
||||
FASHION_UI_BACK = Button(area={'cn': (29, 28, 45, 45), 'en': (29, 28, 45, 45), 'jp': (29, 28, 45, 45), 'tw': (29, 28, 45, 45)}, color={'cn': (132, 125, 113), 'en': (132, 125, 113), 'jp': (132, 125, 113), 'tw': (132, 125, 113)}, button={'cn': (29, 28, 45, 45), 'en': (29, 28, 45, 45), 'jp': (29, 28, 45, 45), 'tw': (29, 28, 45, 45)}, file={'cn': './assets/cn/coalition/FASHION_UI_BACK.png', 'en': './assets/cn/coalition/FASHION_UI_BACK.png', 'jp': './assets/cn/coalition/FASHION_UI_BACK.png', 'tw': './assets/cn/coalition/FASHION_UI_BACK.png'})
|
||||
FASHION_UI_HOME = Button(area={'cn': (1210, 23, 1238, 47), 'en': (1210, 23, 1238, 47), 'jp': (1210, 23, 1238, 47), 'tw': (1210, 23, 1238, 47)}, color={'cn': (124, 120, 112), 'en': (124, 120, 112), 'jp': (124, 120, 112), 'tw': (124, 120, 112)}, button={'cn': (1210, 23, 1238, 47), 'en': (1210, 23, 1238, 47), 'jp': (1210, 23, 1238, 47), 'tw': (1210, 23, 1238, 47)}, file={'cn': './assets/cn/coalition/FASHION_UI_HOME.png', 'en': './assets/cn/coalition/FASHION_UI_HOME.png', 'jp': './assets/cn/coalition/FASHION_UI_HOME.png', 'tw': './assets/cn/coalition/FASHION_UI_HOME.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'})
|
||||
|
||||
@ -9,6 +9,7 @@ from module.log_res.log_res import LogRes
|
||||
from module.logger import logger
|
||||
from module.ocr.ocr import Digit
|
||||
from module.ui.assets import BACK_ARROW
|
||||
from module.ui.page import page_campaign_menu
|
||||
|
||||
|
||||
class AcademyPtOcr(Digit):
|
||||
@ -59,6 +60,8 @@ class Coalition(CoalitionCombat, CampaignEvent):
|
||||
ocr = Digit(NEONCITY_PT_OCR, name='OCR_PT', lang='cnocr', letter=(208, 208, 208), threshold=128)
|
||||
elif event == 'coalition_20251120':
|
||||
ocr = DALPtOcr(DAL_PT_OCR, name='OCR_PT' ,letter=(255, 213, 69), threshold=128)
|
||||
elif event == 'coalition_20260122':
|
||||
ocr = Digit(FASHION_PT_OCR, name='OCR_PT', letter=(41, 41, 42), threshold=128)
|
||||
else:
|
||||
logger.error(f'ocr object is not defined in event {event}')
|
||||
raise ScriptError
|
||||
@ -155,9 +158,9 @@ class Coalition(CoalitionCombat, CampaignEvent):
|
||||
self.coalition_map_exit(event)
|
||||
raise
|
||||
|
||||
if self.triggered_stop_condition(oil_check=True):
|
||||
self.coalition_map_exit(event)
|
||||
raise ScriptEnd
|
||||
# if self.triggered_stop_condition(oil_check=True):
|
||||
# self.coalition_map_exit(event)
|
||||
# raise ScriptEnd
|
||||
|
||||
self.enter_map(event=event, stage=stage, mode=fleet)
|
||||
self.coalition_combat()
|
||||
@ -195,10 +198,10 @@ class Coalition(CoalitionCombat, CampaignEvent):
|
||||
logger.info(f'Count: {self.run_count}')
|
||||
|
||||
# UI switches
|
||||
# if self.config.SERVER in ['tw']:
|
||||
# self.ui_goto(page_campaign_menu)
|
||||
# if self.triggered_stop_condition(oil_check=True):
|
||||
# break
|
||||
self.ui_goto(page_campaign_menu)
|
||||
if self.triggered_stop_condition(oil_check=True):
|
||||
break
|
||||
|
||||
self.device.stuck_record_clear()
|
||||
self.device.click_record_clear()
|
||||
self.ui_goto_coalition()
|
||||
|
||||
@ -52,6 +52,10 @@ class CoalitionUI(Combat):
|
||||
elif event == 'coalition_20251120':
|
||||
logger.info('Coalition event coalition_20251120 has no mode switch')
|
||||
return
|
||||
elif event == 'coalition_20260122':
|
||||
mode_switch = Switch('CoalitionMode', offset=(20, 20))
|
||||
mode_switch.add_state('story', FASHION_MODE_STORY)
|
||||
mode_switch.add_state('battle', FASHION_MODE_BATTLE)
|
||||
else:
|
||||
logger.error(f'MODE_SWITCH is not defined in event {event}')
|
||||
raise ScriptError
|
||||
@ -85,6 +89,9 @@ class CoalitionUI(Combat):
|
||||
elif event == 'coalition_20251120':
|
||||
fleet_switch.add_state('single', DAL_SWITCH_SINGLE)
|
||||
fleet_switch.add_state('multi', DAL_SWITCH_MULTI)
|
||||
elif event == 'coalition_20260122':
|
||||
fleet_switch.add_state('single', FASHION_SWITCH_SINGLE)
|
||||
fleet_switch.add_state('multi', FASHION_SWITCH_MULTI)
|
||||
else:
|
||||
logger.error(f'FLEET_SWITCH is not defined in event {event}')
|
||||
raise ScriptError
|
||||
@ -137,6 +144,12 @@ class CoalitionUI(Combat):
|
||||
('coalition_20251120', 'area4-hard'): DAL_AREA4,
|
||||
('coalition_20251120', 'area5-hard'): DAL_AREA5,
|
||||
('coalition_20251120', 'area6-hard'): DAL_AREA6,
|
||||
|
||||
('coalition_20260122', 'easy'): FASHION_EASY,
|
||||
('coalition_20260122', 'normal'): FASHION_NORMAL,
|
||||
('coalition_20260122', 'hard'): FASHION_HARD,
|
||||
('coalition_20260122', 'sp'): FASHION_SP,
|
||||
('coalition_20260122', 'ex'): FASHION_EX,
|
||||
}
|
||||
stage = stage.lower()
|
||||
try:
|
||||
@ -216,6 +229,12 @@ class CoalitionUI(Combat):
|
||||
('coalition_20251120', 'area4-hard'): 3,
|
||||
('coalition_20251120', 'area5-hard'): 3,
|
||||
('coalition_20251120', 'area6-hard'): 4,
|
||||
|
||||
('coalition_20260122', 'easy'): 1,
|
||||
('coalition_20260122', 'normal'): 2,
|
||||
('coalition_20260122', 'hard'): 3,
|
||||
('coalition_20260122', 'sp'): 4,
|
||||
('coalition_20260122', 'ex'): 5,
|
||||
}
|
||||
stage = stage.lower()
|
||||
try:
|
||||
@ -241,6 +260,8 @@ class CoalitionUI(Combat):
|
||||
return NEONCITY_FLEET_PREPARATION
|
||||
elif event == 'coalition_20251120':
|
||||
return DAL_FLEET_PREPARATION
|
||||
elif event == 'coalition_20260122':
|
||||
return FASHION_FLEET_PREPARATION
|
||||
else:
|
||||
logger.error(f'FLEET_PREPARATION is not defined in event {event}')
|
||||
raise ScriptError
|
||||
@ -267,6 +288,9 @@ class CoalitionUI(Combat):
|
||||
if event == 'coalition_20250626':
|
||||
if stage in ['easy', 'sp', 'ex']:
|
||||
return False
|
||||
if event == 'coalition_20260122':
|
||||
if stage in ['easy', 'sp', 'ex']:
|
||||
return False
|
||||
|
||||
self.coalition_ensure_fleet(event, mode)
|
||||
return True
|
||||
@ -406,6 +430,11 @@ class CoalitionUI(Combat):
|
||||
campaign_timer.reset()
|
||||
continue
|
||||
|
||||
# Fleet import
|
||||
if self.handle_popup_confirm('FLEET_IMPORT'):
|
||||
campaign_timer.reset()
|
||||
continue
|
||||
|
||||
# Auto confirm
|
||||
if self.handle_combat_automation_confirm():
|
||||
continue
|
||||
|
||||
@ -3610,22 +3610,24 @@
|
||||
"type": "state",
|
||||
"value": "campaign_main",
|
||||
"option": [
|
||||
"coalition_20251120"
|
||||
"coalition_20251120",
|
||||
"coalition_20260122"
|
||||
],
|
||||
"option_cn": [
|
||||
"coalition_20251120"
|
||||
"coalition_20260122"
|
||||
],
|
||||
"option_en": [
|
||||
"coalition_20251120"
|
||||
"coalition_20260122"
|
||||
],
|
||||
"option_jp": [
|
||||
"coalition_20251120"
|
||||
"coalition_20260122"
|
||||
],
|
||||
"option_tw": [
|
||||
"coalition_20251120"
|
||||
],
|
||||
"option_bold": [
|
||||
"coalition_20251120"
|
||||
"coalition_20251120",
|
||||
"coalition_20260122"
|
||||
]
|
||||
},
|
||||
"Mode": {
|
||||
@ -3671,20 +3673,12 @@
|
||||
"Coalition": {
|
||||
"Mode": {
|
||||
"type": "select",
|
||||
"value": "area1-normal",
|
||||
"value": "hard",
|
||||
"option": [
|
||||
"area1-normal",
|
||||
"area1-hard",
|
||||
"area2-normal",
|
||||
"area2-hard",
|
||||
"area3-normal",
|
||||
"area3-hard",
|
||||
"area4-normal",
|
||||
"area4-hard",
|
||||
"area5-normal",
|
||||
"area5-hard",
|
||||
"area6-normal",
|
||||
"area6-hard"
|
||||
"easy",
|
||||
"normal",
|
||||
"hard",
|
||||
"ex"
|
||||
]
|
||||
},
|
||||
"Fleet": {
|
||||
@ -6918,22 +6912,24 @@
|
||||
"type": "state",
|
||||
"value": "campaign_main",
|
||||
"option": [
|
||||
"coalition_20251120"
|
||||
"coalition_20251120",
|
||||
"coalition_20260122"
|
||||
],
|
||||
"option_cn": [
|
||||
"coalition_20251120"
|
||||
"coalition_20260122"
|
||||
],
|
||||
"option_en": [
|
||||
"coalition_20251120"
|
||||
"coalition_20260122"
|
||||
],
|
||||
"option_jp": [
|
||||
"coalition_20251120"
|
||||
"coalition_20260122"
|
||||
],
|
||||
"option_tw": [
|
||||
"coalition_20251120"
|
||||
],
|
||||
"option_bold": [
|
||||
"coalition_20251120"
|
||||
"coalition_20251120",
|
||||
"coalition_20260122"
|
||||
]
|
||||
},
|
||||
"Mode": {
|
||||
@ -6979,21 +6975,15 @@
|
||||
"Coalition": {
|
||||
"Mode": {
|
||||
"type": "select",
|
||||
"value": "area1-normal",
|
||||
"value": "sp",
|
||||
"option": [
|
||||
"area1-normal",
|
||||
"area1-hard",
|
||||
"area2-normal",
|
||||
"area2-hard",
|
||||
"area3-normal",
|
||||
"area3-hard",
|
||||
"area4-normal",
|
||||
"area4-hard",
|
||||
"area5-normal",
|
||||
"area5-hard",
|
||||
"area6-normal",
|
||||
"area6-hard"
|
||||
]
|
||||
"easy",
|
||||
"normal",
|
||||
"hard",
|
||||
"sp",
|
||||
"ex"
|
||||
],
|
||||
"display": "hide"
|
||||
},
|
||||
"Fleet": {
|
||||
"type": "select",
|
||||
|
||||
@ -340,8 +340,8 @@ MaritimeEscort:
|
||||
Enable: true
|
||||
Coalition:
|
||||
Mode:
|
||||
value: area1-normal
|
||||
option: [ area1-normal, area1-hard, area2-normal, area2-hard, area3-normal, area3-hard, area4-normal, area4-hard, area5-normal, area5-hard, area6-normal, area6-hard ]
|
||||
value: hard
|
||||
option: [ easy, normal, hard, sp, ex ]
|
||||
Fleet:
|
||||
value: single
|
||||
option: [ single, multi ]
|
||||
|
||||
@ -257,9 +257,9 @@ Coalition:
|
||||
Use2xBook: false
|
||||
AmbushEvade: true
|
||||
ClearAfterSinking: false
|
||||
# Coalition:
|
||||
# Mode:
|
||||
# option: [ easy, normal, hard, ex ]
|
||||
Coalition:
|
||||
Mode:
|
||||
option: [ easy, normal, hard, ex ]
|
||||
StopCondition:
|
||||
MapAchievement: non_stop
|
||||
StageIncrease: false
|
||||
|
||||
@ -199,7 +199,7 @@ class GeneratedConfig:
|
||||
MaritimeEscort_Enable = True
|
||||
|
||||
# Group `Coalition`
|
||||
Coalition_Mode = 'area1-normal' # area1-normal, area1-hard, area2-normal, area2-hard, area3-normal, area3-hard, area4-normal, area4-hard, area5-normal, area5-hard, area6-normal, area6-hard
|
||||
Coalition_Mode = 'hard' # easy, normal, hard, sp, ex
|
||||
Coalition_Fleet = 'single' # single, multi
|
||||
|
||||
# Group `Commission`
|
||||
|
||||
@ -617,6 +617,8 @@ class ConfigUpdater:
|
||||
# ('Coalition.Coalition.Mode', 'Coalition.Coalition.Mode', coalition_to_frostfall),
|
||||
# 2025.06.26
|
||||
# ('Coalition.Coalition.Mode', 'Coalition.Coalition.Mode', coalition_to_little_academy),
|
||||
# 2026.01.22
|
||||
('Coalition.Coalition.Mode', 'Coalition.Coalition.Mode', coalition_to_fashion_shoot),
|
||||
]
|
||||
|
||||
# redirection += [
|
||||
@ -686,7 +688,7 @@ class ConfigUpdater:
|
||||
for task in EVENTS + WAR_ARCHIVES:
|
||||
default_stage(task, 'D3')
|
||||
for task in COALITIONS:
|
||||
default_stage(task, 'area1-normal')
|
||||
default_stage(task, 'hard')
|
||||
|
||||
if not is_template:
|
||||
new = self.config_redirect(old, new)
|
||||
|
||||
@ -83,7 +83,7 @@
|
||||
"help": ""
|
||||
},
|
||||
"Coalition": {
|
||||
"name": "DATE A LANE",
|
||||
"name": "Light & Shadow Fashion Shoot!",
|
||||
"help": ""
|
||||
},
|
||||
"MaritimeEscort": {
|
||||
@ -119,7 +119,7 @@
|
||||
"help": ""
|
||||
},
|
||||
"CoalitionSp": {
|
||||
"name": "Neon City Investigator SP",
|
||||
"name": "Light & Shadow Fashion Shoot! SP",
|
||||
"help": ""
|
||||
},
|
||||
"Commission": {
|
||||
@ -702,6 +702,7 @@
|
||||
"coalition_20240627": "Welcome to Little Academy",
|
||||
"coalition_20250626": "The Neon City Investigator",
|
||||
"coalition_20251120": "DATE A LANE",
|
||||
"coalition_20260122": "Light & Shadow Fashion Shoot!",
|
||||
"event_20200227_cn": "Northern Overture",
|
||||
"event_20200312_cn": "The Solomon Ranger Rerun",
|
||||
"event_20200326_cn": "Microlayer Medley",
|
||||
@ -1414,18 +1415,11 @@
|
||||
"Mode": {
|
||||
"name": "Mode",
|
||||
"help": "SP needs to use event daily SP to run",
|
||||
"area1-normal": "area1-normal",
|
||||
"area1-hard": "area1-hard",
|
||||
"area2-normal": "area2-normal",
|
||||
"area2-hard": "area2-hard",
|
||||
"area3-normal": "area3-normal",
|
||||
"area3-hard": "area3-hard",
|
||||
"area4-normal": "area4-normal",
|
||||
"area4-hard": "area4-hard",
|
||||
"area5-normal": "area5-normal",
|
||||
"area5-hard": "area5-hard",
|
||||
"area6-normal": "area6-normal",
|
||||
"area6-hard": "area6-hard"
|
||||
"easy": "Easy",
|
||||
"normal": "Normal",
|
||||
"hard": "Hard",
|
||||
"sp": "SP",
|
||||
"ex": "EX"
|
||||
},
|
||||
"Fleet": {
|
||||
"name": "Fleet",
|
||||
|
||||
@ -702,6 +702,7 @@
|
||||
"coalition_20240627": "リトル学園へようこそ",
|
||||
"coalition_20250626": "ネオンシティの探索者",
|
||||
"coalition_20251120": "DATE A LANE",
|
||||
"coalition_20260122": "特集写真――撮影進行中!",
|
||||
"event_20200227_cn": "凍絶の北海",
|
||||
"event_20200312_cn": "南洋に靡く硝煙(復刻)",
|
||||
"event_20200326_cn": "闇靄払う銀翼",
|
||||
@ -1414,18 +1415,11 @@
|
||||
"Mode": {
|
||||
"name": "Coalition.Mode.name",
|
||||
"help": "Coalition.Mode.help",
|
||||
"area1-normal": "area1-normal",
|
||||
"area1-hard": "area1-hard",
|
||||
"area2-normal": "area2-normal",
|
||||
"area2-hard": "area2-hard",
|
||||
"area3-normal": "area3-normal",
|
||||
"area3-hard": "area3-hard",
|
||||
"area4-normal": "area4-normal",
|
||||
"area4-hard": "area4-hard",
|
||||
"area5-normal": "area5-normal",
|
||||
"area5-hard": "area5-hard",
|
||||
"area6-normal": "area6-normal",
|
||||
"area6-hard": "area6-hard"
|
||||
"easy": "easy",
|
||||
"normal": "normal",
|
||||
"hard": "hard",
|
||||
"sp": "sp",
|
||||
"ex": "ex"
|
||||
},
|
||||
"Fleet": {
|
||||
"name": "Coalition.Fleet.name",
|
||||
|
||||
@ -83,7 +83,7 @@
|
||||
"help": ""
|
||||
},
|
||||
"Coalition": {
|
||||
"name": "DATE A LANE",
|
||||
"name": "光影风尚——拍摄进行时!",
|
||||
"help": ""
|
||||
},
|
||||
"MaritimeEscort": {
|
||||
@ -119,7 +119,7 @@
|
||||
"help": ""
|
||||
},
|
||||
"CoalitionSp": {
|
||||
"name": "迷彩都市的寻踪者SP",
|
||||
"name": "光影风尚——拍摄进行时!SP",
|
||||
"help": ""
|
||||
},
|
||||
"Commission": {
|
||||
@ -702,6 +702,7 @@
|
||||
"coalition_20240627": "欢迎来到童心学院",
|
||||
"coalition_20250626": "迷彩都市的寻踪者",
|
||||
"coalition_20251120": "DATE A LANE",
|
||||
"coalition_20260122": "光影风尚——拍摄进行时!",
|
||||
"event_20200227_cn": "北境序曲",
|
||||
"event_20200312_cn": "复刻斯图尔特的硝烟",
|
||||
"event_20200326_cn": "微层混合",
|
||||
@ -1414,18 +1415,11 @@
|
||||
"Mode": {
|
||||
"name": "难度",
|
||||
"help": "SP图需要使用活动每日SP运行",
|
||||
"area1-normal": "AREA-1 普通",
|
||||
"area1-hard": "AREA-1 困难",
|
||||
"area2-normal": "AREA-2 普通",
|
||||
"area2-hard": "AREA-2 困难",
|
||||
"area3-normal": "AREA-3 普通",
|
||||
"area3-hard": "AREA-3 困难",
|
||||
"area4-normal": "AREA-4 普通",
|
||||
"area4-hard": "AREA-4 困难",
|
||||
"area5-normal": "AREA-5 普通",
|
||||
"area5-hard": "AREA-5 困难",
|
||||
"area6-normal": "AREA-6 普通",
|
||||
"area6-hard": "AREA-6 困难"
|
||||
"easy": "简单",
|
||||
"normal": "普通",
|
||||
"hard": "困难",
|
||||
"sp": "SP",
|
||||
"ex": "EX"
|
||||
},
|
||||
"Fleet": {
|
||||
"name": "出击队伍",
|
||||
|
||||
@ -702,6 +702,7 @@
|
||||
"coalition_20240627": "歡迎來到童心學院",
|
||||
"coalition_20250626": "迷彩都市的尋蹤者",
|
||||
"coalition_20251120": "DATE A LANE",
|
||||
"coalition_20260122": "Light & Shadow Fashion Shoot!",
|
||||
"event_20200227_cn": "Northern Overture",
|
||||
"event_20200312_cn": "斯圖爾特的硝煙",
|
||||
"event_20200326_cn": "Microlayer Medley",
|
||||
@ -1414,18 +1415,11 @@
|
||||
"Mode": {
|
||||
"name": "難度",
|
||||
"help": "SP圖需要使用活動每日SP運行",
|
||||
"area1-normal": "area1-normal",
|
||||
"area1-hard": "area1-hard",
|
||||
"area2-normal": "area2-normal",
|
||||
"area2-hard": "area2-hard",
|
||||
"area3-normal": "area3-normal",
|
||||
"area3-hard": "area3-hard",
|
||||
"area4-normal": "area4-normal",
|
||||
"area4-hard": "area4-hard",
|
||||
"area5-normal": "area5-normal",
|
||||
"area5-hard": "area5-hard",
|
||||
"area6-normal": "area6-normal",
|
||||
"area6-hard": "area6-hard"
|
||||
"easy": "easy",
|
||||
"normal": "normal",
|
||||
"hard": "hard",
|
||||
"sp": "sp",
|
||||
"ex": "ex"
|
||||
},
|
||||
"Fleet": {
|
||||
"name": "出擊隊伍",
|
||||
|
||||
@ -130,3 +130,18 @@ def coalition_to_little_academy(value):
|
||||
return 'hard'
|
||||
else:
|
||||
return value
|
||||
|
||||
|
||||
def coalition_to_fashion_shoot(value: str):
|
||||
"""
|
||||
Redirect Fashion Shoot stage names to DATE A LANE
|
||||
"""
|
||||
value = value.split('-')[0]
|
||||
if value == 'area1':
|
||||
return 'easy'
|
||||
elif value in ['area2', 'area3', 'area4', 'area5']:
|
||||
return 'normal'
|
||||
elif value == 'area6':
|
||||
return 'hard'
|
||||
else:
|
||||
return value
|
||||
|
||||
@ -150,9 +150,14 @@ page_campaign.link(button=CAMPAIGN_GOTO_EVENT, destination=page_sp)
|
||||
# page_coalition.link(button=NEONCITY_UI_BACK, destination=page_campaign)
|
||||
# page_campaign_menu.link(button=CAMPAIGN_MENU_GOTO_EVENT, destination=page_coalition)
|
||||
# DAL
|
||||
page_coalition = Page(FROSTFALL_COALITION_CHECK)
|
||||
page_coalition.link(button=GOTO_MAIN, destination=page_main)
|
||||
page_coalition.link(button=BACK_ARROW, destination=page_campaign)
|
||||
# page_coalition = Page(FROSTFALL_COALITION_CHECK)
|
||||
# page_coalition.link(button=GOTO_MAIN, destination=page_main)
|
||||
# page_coalition.link(button=BACK_ARROW, destination=page_campaign)
|
||||
# page_campaign_menu.link(button=CAMPAIGN_MENU_GOTO_EVENT, destination=page_coalition)
|
||||
# FASHION
|
||||
page_coalition = Page(FASHION_COALITION_CHECK)
|
||||
page_coalition.link(button=FASHION_UI_HOME, destination=page_main)
|
||||
page_coalition.link(button=FASHION_UI_BACK, destination=page_campaign)
|
||||
page_campaign_menu.link(button=CAMPAIGN_MENU_GOTO_EVENT, destination=page_coalition)
|
||||
|
||||
# Operation Siren
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
from module.base.button import Button
|
||||
from module.base.decorator import run_once
|
||||
from module.base.timer import Timer
|
||||
from module.coalition.assets import NEONCITY_FLEET_PREPARATION, NEONCITY_PREPARATION_EXIT, DAL_DIFFICULTY_EXIT
|
||||
from module.coalition.assets import FASHION_FLEET_PREPARATION, NEONCITY_PREPARATION_EXIT
|
||||
from module.combat.assets import GET_ITEMS_1, GET_ITEMS_2, GET_SHIP
|
||||
from module.event_hospital.assets import HOSIPITAL_CLUE_CHECK, HOSPITAL_BATTLE_EXIT
|
||||
from module.exception import (GameNotRunningError, GamePageUnknownError,
|
||||
@ -564,7 +564,12 @@ class UI(InfoHandler):
|
||||
# self.device.click(NEONCITY_PREPARATION_EXIT)
|
||||
# return True
|
||||
# DATE A LANE (coalition_20251120)
|
||||
if self.appear_then_click(DAL_DIFFICULTY_EXIT, offset=(20, 20), interval=3):
|
||||
# if self.appear_then_click(DAL_DIFFICULTY_EXIT, offset=(20, 20), interval=3):
|
||||
# return True
|
||||
# Fashion shoot (coalition_20260122)
|
||||
if self.appear(FASHION_FLEET_PREPARATION, offset=(20, 20), interval=3):
|
||||
logger.info(f'{FASHION_FLEET_PREPARATION} -> {NEONCITY_PREPARATION_EXIT}')
|
||||
self.device.click(NEONCITY_PREPARATION_EXIT)
|
||||
return True
|
||||
|
||||
# Idle page
|
||||
|
||||