1
0
mirror of https://github.com/0O0o0oOoO00/Alas.git synced 2026-05-14 07:49:25 +08:00

Merge remote-tracking branch 'LmeSzinc/master' into dev

# Conflicts:
#	module/config/argument/args.json
This commit is contained in:
0O0o0oOoO00
2026-02-14 13:50:22 +08:00
63 changed files with 818 additions and 769 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -280,3 +280,4 @@ To add a new event, add a new row in here, and run `python -m module.config.conf
| 20260122 | event 20220526 cn | Pledge of the Radiant Court | - | - | - | 泠誓光庭 |
| 20260129 | coalition 20260122 | Light & Shadow Fashion Shoot! | - | - | - | 光影風尚-拍攝進行時 |
| 20260205 | raid 20240328 | From Zero to Hero | 复刻从零开始的魔王讨伐之旅 | From Zero to Hero Rerun | ゼロから頑張る魔王討伐(復刻) | - |
| 20260212 | raid 20260212 | Spring Auction Adventure | 春宴怀玉香满庭 | Spring Auction Adventure | 新春玉逸品会 | 春宴懷玉香滿庭 |

View File

@@ -796,54 +796,6 @@
"Storage": {}
}
},
"Coalition": {
"Scheduler": {
"Enable": false,
"NextRun": "2020-01-01 00:00:00",
"Command": "Coalition",
"SuccessInterval": 30,
"FailureInterval": 30,
"ServerUpdate": "00:00"
},
"Campaign": {
"Name": "dynamic",
"Event": "campaign_main",
"Mode": "normal",
"UseClearMode": true,
"UseFleetLock": true,
"UseAutoSearch": false,
"Use2xBook": false,
"AmbushEvade": true
},
"Coalition": {
"Mode": "hard",
"Fleet": "single"
},
"StopCondition": {
"OilLimit": 1000,
"RunCount": 0,
"MapAchievement": "non_stop",
"StageIncrease": false,
"GetNewShip": false,
"ReachLevel": 0
},
"Emotion": {
"Mode": "calculate",
"Fleet1Value": 119,
"Fleet1Record": "2020-01-01 00:00:00",
"Fleet1Control": "prevent_yellow_face",
"Fleet1Recover": "not_in_dormitory",
"Fleet1Oath": false,
"Fleet2Value": 119,
"Fleet2Record": "2020-01-01 00:00:00",
"Fleet2Control": "prevent_yellow_face",
"Fleet2Recover": "not_in_dormitory",
"Fleet2Oath": false
},
"Storage": {
"Storage": {}
}
},
"Event": {
"Scheduler": {
"Enable": false,
@@ -1373,6 +1325,54 @@
"Storage": {}
}
},
"Coalition": {
"Scheduler": {
"Enable": false,
"NextRun": "2020-01-01 00:00:00",
"Command": "Coalition",
"SuccessInterval": 30,
"FailureInterval": 30,
"ServerUpdate": "00:00"
},
"Campaign": {
"Name": "dynamic",
"Event": "campaign_main",
"Mode": "normal",
"UseClearMode": true,
"UseFleetLock": true,
"UseAutoSearch": false,
"Use2xBook": false,
"AmbushEvade": true
},
"Coalition": {
"Mode": "hard",
"Fleet": "single"
},
"StopCondition": {
"OilLimit": 1000,
"RunCount": 0,
"MapAchievement": "non_stop",
"StageIncrease": false,
"GetNewShip": false,
"ReachLevel": 0
},
"Emotion": {
"Mode": "calculate",
"Fleet1Value": 119,
"Fleet1Record": "2020-01-01 00:00:00",
"Fleet1Control": "prevent_yellow_face",
"Fleet1Recover": "not_in_dormitory",
"Fleet1Oath": false,
"Fleet2Value": 119,
"Fleet2Record": "2020-01-01 00:00:00",
"Fleet2Control": "prevent_yellow_face",
"Fleet2Recover": "not_in_dormitory",
"Fleet2Oath": false
},
"Storage": {
"Storage": {}
}
},
"MaritimeEscort": {
"Scheduler": {
"Enable": false,
@@ -1482,54 +1482,6 @@
"Storage": {}
}
},
"CoalitionSp": {
"Scheduler": {
"Enable": false,
"NextRun": "2020-01-01 00:00:00",
"Command": "CoalitionSp",
"SuccessInterval": 30,
"FailureInterval": 30,
"ServerUpdate": "00:00"
},
"Campaign": {
"Name": "sp",
"Event": "campaign_main",
"Mode": "normal",
"UseClearMode": true,
"UseFleetLock": true,
"UseAutoSearch": false,
"Use2xBook": false,
"AmbushEvade": true
},
"Coalition": {
"Mode": "sp",
"Fleet": "single"
},
"StopCondition": {
"OilLimit": 1000,
"RunCount": 0,
"MapAchievement": "non_stop",
"StageIncrease": false,
"GetNewShip": false,
"ReachLevel": 0
},
"Emotion": {
"Mode": "calculate",
"Fleet1Value": 119,
"Fleet1Record": "2020-01-01 00:00:00",
"Fleet1Control": "prevent_yellow_face",
"Fleet1Recover": "not_in_dormitory",
"Fleet1Oath": false,
"Fleet2Value": 119,
"Fleet2Record": "2020-01-01 00:00:00",
"Fleet2Control": "prevent_yellow_face",
"Fleet2Recover": "not_in_dormitory",
"Fleet2Oath": false
},
"Storage": {
"Storage": {}
}
},
"EventA": {
"Scheduler": {
"Enable": false,
@@ -1963,6 +1915,54 @@
"Storage": {}
}
},
"CoalitionSp": {
"Scheduler": {
"Enable": false,
"NextRun": "2020-01-01 00:00:00",
"Command": "CoalitionSp",
"SuccessInterval": 30,
"FailureInterval": 30,
"ServerUpdate": "00:00"
},
"Campaign": {
"Name": "sp",
"Event": "campaign_main",
"Mode": "normal",
"UseClearMode": true,
"UseFleetLock": true,
"UseAutoSearch": false,
"Use2xBook": false,
"AmbushEvade": true
},
"Coalition": {
"Mode": "sp",
"Fleet": "single"
},
"StopCondition": {
"OilLimit": 1000,
"RunCount": 0,
"MapAchievement": "non_stop",
"StageIncrease": false,
"GetNewShip": false,
"ReachLevel": 0
},
"Emotion": {
"Mode": "calculate",
"Fleet1Value": 119,
"Fleet1Record": "2020-01-01 00:00:00",
"Fleet1Control": "prevent_yellow_face",
"Fleet1Recover": "not_in_dormitory",
"Fleet1Oath": false,
"Fleet2Value": 119,
"Fleet2Record": "2020-01-01 00:00:00",
"Fleet2Control": "prevent_yellow_face",
"Fleet2Recover": "not_in_dormitory",
"Fleet2Oath": false
},
"Storage": {
"Storage": {}
}
},
"Commission": {
"Scheduler": {
"Enable": true,

View File

@@ -124,6 +124,8 @@ class Combat(Level, HPBalancer, Retirement, SubmarineCall, CombatAuto, CombatMan
return PAUSE_ShadowPuppetry
if PAUSE_MaidCafe.match_template_color(self.device.image, offset=(10, 10)):
return PAUSE_MaidCafe
if PAUSE_Ancient.match_template_color(self.device.image, offset=(10, 10)):
return PAUSE_Ancient
return False
def handle_combat_quit(self, offset=(20, 20), interval=3):

View File

@@ -5,6 +5,7 @@ from module.base.template import Template
# Don't modify it manually.
PAUSE = Button(area={'cn': (1158, 40, 1199, 58), 'en': (1155, 38, 1216, 51), 'jp': (1232, 36, 1240, 60), 'tw': (1217, 36, 1225, 59)}, color={'cn': (189, 190, 202), 'en': (164, 169, 181), 'jp': (244, 241, 246), 'tw': (247, 243, 247)}, button={'cn': (1157, 34, 1241, 61), 'en': (1136, 26, 1270, 63), 'jp': (1141, 38, 1220, 57), 'tw': (1157, 34, 1241, 61)}, file={'cn': './assets/cn/combat_ui/PAUSE.png', 'en': './assets/en/combat_ui/PAUSE.png', 'jp': './assets/jp/combat_ui/PAUSE.png', 'tw': './assets/tw/combat_ui/PAUSE.png'})
PAUSE_Ancient = Button(area={'cn': (1228, 36, 1245, 55), 'en': (1228, 36, 1245, 55), 'jp': (1228, 36, 1245, 55), 'tw': (1228, 36, 1245, 55)}, color={'cn': (172, 161, 144), 'en': (172, 161, 144), 'jp': (172, 161, 144), 'tw': (172, 161, 144)}, button={'cn': (1228, 36, 1245, 55), 'en': (1228, 36, 1245, 55), 'jp': (1228, 36, 1245, 55), 'tw': (1228, 36, 1245, 55)}, file={'cn': './assets/cn/combat_ui/PAUSE_Ancient.png', 'en': './assets/cn/combat_ui/PAUSE_Ancient.png', 'jp': './assets/cn/combat_ui/PAUSE_Ancient.png', 'tw': './assets/cn/combat_ui/PAUSE_Ancient.png'})
PAUSE_Christmas = Button(area={'cn': (1234, 35, 1250, 56), 'en': (1234, 35, 1250, 56), 'jp': (1234, 35, 1250, 56), 'tw': (1234, 35, 1250, 56)}, color={'cn': (158, 181, 210), 'en': (158, 181, 210), 'jp': (158, 181, 210), 'tw': (158, 181, 210)}, button={'cn': (1234, 35, 1250, 56), 'en': (1234, 35, 1250, 56), 'jp': (1234, 35, 1250, 56), 'tw': (1234, 35, 1250, 56)}, file={'cn': './assets/cn/combat_ui/PAUSE_Christmas.png', 'en': './assets/cn/combat_ui/PAUSE_Christmas.png', 'jp': './assets/cn/combat_ui/PAUSE_Christmas.png', 'tw': './assets/cn/combat_ui/PAUSE_Christmas.png'})
PAUSE_Cyber = Button(area={'cn': (1231, 32, 1253, 59), 'en': (1231, 32, 1253, 59), 'jp': (1231, 32, 1253, 59), 'tw': (1231, 32, 1253, 59)}, color={'cn': (40, 140, 157), 'en': (40, 140, 157), 'jp': (40, 140, 157), 'tw': (40, 140, 157)}, button={'cn': (1231, 32, 1253, 59), 'en': (1231, 32, 1253, 59), 'jp': (1231, 32, 1253, 59), 'tw': (1231, 32, 1253, 59)}, file={'cn': './assets/cn/combat_ui/PAUSE_Cyber.png', 'en': './assets/cn/combat_ui/PAUSE_Cyber.png', 'jp': './assets/cn/combat_ui/PAUSE_Cyber.png', 'tw': './assets/cn/combat_ui/PAUSE_Cyber.png'})
PAUSE_DOUBLE_CHECK = Button(area={'cn': (1226, 35, 1231, 60), 'en': (1226, 35, 1231, 61), 'jp': (1226, 35, 1230, 60), 'tw': (1226, 35, 1231, 60)}, color={'cn': (96, 104, 136), 'en': (83, 98, 118), 'jp': (97, 102, 120), 'tw': (96, 104, 136)}, button={'cn': (1226, 35, 1231, 60), 'en': (1226, 35, 1231, 61), 'jp': (1226, 35, 1230, 60), 'tw': (1226, 35, 1231, 60)}, file={'cn': './assets/cn/combat_ui/PAUSE_DOUBLE_CHECK.png', 'en': './assets/en/combat_ui/PAUSE_DOUBLE_CHECK.png', 'jp': './assets/jp/combat_ui/PAUSE_DOUBLE_CHECK.png', 'tw': './assets/tw/combat_ui/PAUSE_DOUBLE_CHECK.png'})

File diff suppressed because it is too large Load Diff

View File

@@ -35,7 +35,6 @@
"page": "setting",
"tasks": [
"EventGeneral",
"Coalition",
"Event",
"Event2",
"Event3",
@@ -44,6 +43,7 @@
"Event6",
"Raid",
"Hospital",
"Coalition",
"MaritimeEscort",
"EventShop",
"WarArchives"
@@ -53,13 +53,13 @@
"menu": "collapse",
"page": "setting",
"tasks": [
"CoalitionSp",
"EventA",
"EventB",
"EventC",
"EventD",
"EventSp",
"RaidDaily"
"RaidDaily",
"CoalitionSp"
]
},
"Reward": {

View File

@@ -123,12 +123,6 @@ Event:
EventGeneral:
- EventGeneral
- TaskBalancer
Coalition:
- Scheduler
- Campaign
- Coalition
- StopCondition
- Emotion
Event:
- Scheduler
- Campaign
@@ -194,6 +188,12 @@ Event:
- Hospital
- StopCondition
- Emotion
Coalition:
- Scheduler
- Campaign
- Coalition
- StopCondition
- Emotion
MaritimeEscort:
- Scheduler
- MaritimeEscort
@@ -217,12 +217,6 @@ EventDaily:
menu: 'collapse'
page: 'setting'
tasks:
CoalitionSp:
- Scheduler
- Campaign
- Coalition
- StopCondition
- Emotion
EventA:
- Scheduler
- EventDaily
@@ -278,6 +272,12 @@ EventDaily:
- Campaign
- StopCondition
- Emotion
CoalitionSp:
- Scheduler
- Campaign
- Coalition
- StopCondition
- Emotion
# ==================== Reward ====================

View File

@@ -20,7 +20,7 @@ class GeneratedConfig:
# Group `Emulator`
Emulator_Serial = 'auto'
Emulator_PackageName = 'auto' # auto, com.bilibili.azurlane, com.YoStarEN.AzurLane, com.YoStarJP.AzurLane, com.hkmanjuu.azurlane.gp, com.bilibili.blhx.huawei, com.bilibili.blhx.honor, com.bilibili.blhx.mi, com.tencent.tmgp.bilibili.blhx, com.bilibili.blhx.baidu, com.bilibili.blhx.qihoo, com.bilibili.blhx.nearme.gamecenter, com.bilibili.blhx.vivo, com.bilibili.blhx.mz, com.bilibili.blhx.dl, com.bilibili.blhx.lenovo, com.bilibili.blhx.uc, com.bilibili.blhx.mzw, com.yiwu.blhx.yx15, com.bilibili.blhx.m4399, com.bilibili.blhx.bilibiliMove, com.hkmanjuu.azurlane.gp.mc
Emulator_ServerName = 'disabled' # disabled, cn_android-0, cn_android-1, cn_android-2, cn_android-3, cn_android-4, cn_android-5, cn_android-6, cn_android-7, cn_android-8, cn_android-9, cn_android-10, cn_android-11, cn_android-12, cn_android-13, cn_android-14, cn_android-15, cn_android-16, cn_android-17, cn_android-18, cn_android-19, cn_android-20, cn_android-21, cn_android-22, cn_android-23, cn_android-24, cn_android-25, cn_android-26, cn_android-27, cn_ios-0, cn_ios-1, cn_ios-2, cn_ios-3, cn_ios-4, cn_ios-5, cn_ios-6, cn_ios-7, cn_ios-8, cn_ios-9, cn_ios-10, cn_channel-0, cn_channel-1, cn_channel-2, cn_channel-3, cn_channel-4, en-0, en-1, en-2, en-3, en-4, en-5, jp-0, jp-1, jp-2, jp-3, jp-4, jp-5, jp-6, jp-7, jp-8, jp-9, jp-10, jp-11, jp-12, jp-13, jp-14, jp-15, jp-16, jp-17
Emulator_ServerName = 'disabled' # disabled, cn_android-0, cn_android-1, cn_android-2, cn_android-3, cn_android-4, cn_android-5, cn_android-6, cn_android-7, cn_android-8, cn_android-9, cn_android-10, cn_android-11, cn_android-12, cn_android-13, cn_android-14, cn_android-15, cn_android-16, cn_android-17, cn_android-18, cn_android-19, cn_android-20, cn_android-21, cn_android-22, cn_android-23, cn_android-24, cn_android-25, cn_android-26, cn_android-27, cn_android-28, cn_ios-0, cn_ios-1, cn_ios-2, cn_ios-3, cn_ios-4, cn_ios-5, cn_ios-6, cn_ios-7, cn_ios-8, cn_ios-9, cn_ios-10, cn_channel-0, cn_channel-1, cn_channel-2, cn_channel-3, cn_channel-4, en-0, en-1, en-2, en-3, en-4, en-5, jp-0, jp-1, jp-2, jp-3, jp-4, jp-5, jp-6, jp-7, jp-8, jp-9, jp-10, jp-11, jp-12, jp-13, jp-14, jp-15, jp-16, jp-17
Emulator_ScreenshotMethod = 'auto' # auto, ADB, ADB_nc, uiautomator2, aScreenCap, aScreenCap_nc, DroidCast, DroidCast_raw, nemu_ipc, ldopengl
Emulator_ControlMethod = 'MaaTouch' # ADB, uiautomator2, minitouch, Hermit, MaaTouch
Emulator_ScreenshotDedithering = False

View File

@@ -592,42 +592,6 @@ class FullGeneratedConfig:
EventGeneral_TaskBalancer_TaskCall = None
EventGeneral_Storage_Storage = None
# Task `Coalition`
Coalition_Scheduler_Enable = None
Coalition_Scheduler_NextRun = None
Coalition_Scheduler_Command = None
Coalition_Scheduler_SuccessInterval = None
Coalition_Scheduler_FailureInterval = None
Coalition_Scheduler_ServerUpdate = None
Coalition_Campaign_Name = None
Coalition_Campaign_Event = None
Coalition_Campaign_Mode = None
Coalition_Campaign_UseClearMode = None
Coalition_Campaign_UseFleetLock = None
Coalition_Campaign_UseAutoSearch = None
Coalition_Campaign_Use2xBook = None
Coalition_Campaign_AmbushEvade = None
Coalition_Coalition_Mode = None
Coalition_Coalition_Fleet = None
Coalition_StopCondition_OilLimit = None
Coalition_StopCondition_RunCount = None
Coalition_StopCondition_MapAchievement = None
Coalition_StopCondition_StageIncrease = None
Coalition_StopCondition_GetNewShip = None
Coalition_StopCondition_ReachLevel = None
Coalition_Emotion_Mode = None
Coalition_Emotion_Fleet1Value = None
Coalition_Emotion_Fleet1Record = None
Coalition_Emotion_Fleet1Control = None
Coalition_Emotion_Fleet1Recover = None
Coalition_Emotion_Fleet1Oath = None
Coalition_Emotion_Fleet2Value = None
Coalition_Emotion_Fleet2Record = None
Coalition_Emotion_Fleet2Control = None
Coalition_Emotion_Fleet2Recover = None
Coalition_Emotion_Fleet2Oath = None
Coalition_Storage_Storage = None
# Task `Event`
Event_Scheduler_Enable = None
Event_Scheduler_NextRun = None
@@ -1027,6 +991,42 @@ class FullGeneratedConfig:
Hospital_Emotion_Fleet2Oath = None
Hospital_Storage_Storage = None
# Task `Coalition`
Coalition_Scheduler_Enable = None
Coalition_Scheduler_NextRun = None
Coalition_Scheduler_Command = None
Coalition_Scheduler_SuccessInterval = None
Coalition_Scheduler_FailureInterval = None
Coalition_Scheduler_ServerUpdate = None
Coalition_Campaign_Name = None
Coalition_Campaign_Event = None
Coalition_Campaign_Mode = None
Coalition_Campaign_UseClearMode = None
Coalition_Campaign_UseFleetLock = None
Coalition_Campaign_UseAutoSearch = None
Coalition_Campaign_Use2xBook = None
Coalition_Campaign_AmbushEvade = None
Coalition_Coalition_Mode = None
Coalition_Coalition_Fleet = None
Coalition_StopCondition_OilLimit = None
Coalition_StopCondition_RunCount = None
Coalition_StopCondition_MapAchievement = None
Coalition_StopCondition_StageIncrease = None
Coalition_StopCondition_GetNewShip = None
Coalition_StopCondition_ReachLevel = None
Coalition_Emotion_Mode = None
Coalition_Emotion_Fleet1Value = None
Coalition_Emotion_Fleet1Record = None
Coalition_Emotion_Fleet1Control = None
Coalition_Emotion_Fleet1Recover = None
Coalition_Emotion_Fleet1Oath = None
Coalition_Emotion_Fleet2Value = None
Coalition_Emotion_Fleet2Record = None
Coalition_Emotion_Fleet2Control = None
Coalition_Emotion_Fleet2Recover = None
Coalition_Emotion_Fleet2Oath = None
Coalition_Storage_Storage = None
# Task `MaritimeEscort`
MaritimeEscort_Scheduler_Enable = None
MaritimeEscort_Scheduler_NextRun = None
@@ -1106,42 +1106,6 @@ class FullGeneratedConfig:
WarArchives_EnemyPriority_EnemyScaleBalanceWeight = None
WarArchives_Storage_Storage = None
# Task `CoalitionSp`
CoalitionSp_Scheduler_Enable = None
CoalitionSp_Scheduler_NextRun = None
CoalitionSp_Scheduler_Command = None
CoalitionSp_Scheduler_SuccessInterval = None
CoalitionSp_Scheduler_FailureInterval = None
CoalitionSp_Scheduler_ServerUpdate = None
CoalitionSp_Campaign_Name = None
CoalitionSp_Campaign_Event = None
CoalitionSp_Campaign_Mode = None
CoalitionSp_Campaign_UseClearMode = None
CoalitionSp_Campaign_UseFleetLock = None
CoalitionSp_Campaign_UseAutoSearch = None
CoalitionSp_Campaign_Use2xBook = None
CoalitionSp_Campaign_AmbushEvade = None
CoalitionSp_Coalition_Mode = None
CoalitionSp_Coalition_Fleet = None
CoalitionSp_StopCondition_OilLimit = None
CoalitionSp_StopCondition_RunCount = None
CoalitionSp_StopCondition_MapAchievement = None
CoalitionSp_StopCondition_StageIncrease = None
CoalitionSp_StopCondition_GetNewShip = None
CoalitionSp_StopCondition_ReachLevel = None
CoalitionSp_Emotion_Mode = None
CoalitionSp_Emotion_Fleet1Value = None
CoalitionSp_Emotion_Fleet1Record = None
CoalitionSp_Emotion_Fleet1Control = None
CoalitionSp_Emotion_Fleet1Recover = None
CoalitionSp_Emotion_Fleet1Oath = None
CoalitionSp_Emotion_Fleet2Value = None
CoalitionSp_Emotion_Fleet2Record = None
CoalitionSp_Emotion_Fleet2Control = None
CoalitionSp_Emotion_Fleet2Recover = None
CoalitionSp_Emotion_Fleet2Oath = None
CoalitionSp_Storage_Storage = None
# Task `EventA`
EventA_Scheduler_Enable = None
EventA_Scheduler_NextRun = None
@@ -1465,6 +1429,42 @@ class FullGeneratedConfig:
RaidDaily_Emotion_Fleet2Oath = None
RaidDaily_Storage_Storage = None
# Task `CoalitionSp`
CoalitionSp_Scheduler_Enable = None
CoalitionSp_Scheduler_NextRun = None
CoalitionSp_Scheduler_Command = None
CoalitionSp_Scheduler_SuccessInterval = None
CoalitionSp_Scheduler_FailureInterval = None
CoalitionSp_Scheduler_ServerUpdate = None
CoalitionSp_Campaign_Name = None
CoalitionSp_Campaign_Event = None
CoalitionSp_Campaign_Mode = None
CoalitionSp_Campaign_UseClearMode = None
CoalitionSp_Campaign_UseFleetLock = None
CoalitionSp_Campaign_UseAutoSearch = None
CoalitionSp_Campaign_Use2xBook = None
CoalitionSp_Campaign_AmbushEvade = None
CoalitionSp_Coalition_Mode = None
CoalitionSp_Coalition_Fleet = None
CoalitionSp_StopCondition_OilLimit = None
CoalitionSp_StopCondition_RunCount = None
CoalitionSp_StopCondition_MapAchievement = None
CoalitionSp_StopCondition_StageIncrease = None
CoalitionSp_StopCondition_GetNewShip = None
CoalitionSp_StopCondition_ReachLevel = None
CoalitionSp_Emotion_Mode = None
CoalitionSp_Emotion_Fleet1Value = None
CoalitionSp_Emotion_Fleet1Record = None
CoalitionSp_Emotion_Fleet1Control = None
CoalitionSp_Emotion_Fleet1Recover = None
CoalitionSp_Emotion_Fleet1Oath = None
CoalitionSp_Emotion_Fleet2Value = None
CoalitionSp_Emotion_Fleet2Record = None
CoalitionSp_Emotion_Fleet2Control = None
CoalitionSp_Emotion_Fleet2Recover = None
CoalitionSp_Emotion_Fleet2Oath = None
CoalitionSp_Storage_Storage = None
# Task `Commission`
Commission_Scheduler_Enable = None
Commission_Scheduler_NextRun = None

View File

@@ -94,10 +94,6 @@
"name": "Event General",
"help": ""
},
"Coalition": {
"name": "Light & Shadow Fashion Shoot",
"help": ""
},
"Event": {
"name": "Event",
"help": ""
@@ -130,6 +126,10 @@
"name": "Valley Hospital",
"help": ""
},
"Coalition": {
"name": "Light & Shadow Fashion Shoot",
"help": ""
},
"MaritimeEscort": {
"name": "Maritime Escort",
"help": ""
@@ -142,10 +142,6 @@
"name": "War Archives",
"help": "Due to the lack of maintenance of war archives, continuous clear may not work normally, if Alas runs abnormally, Please manually finish clearing and use auto search"
},
"CoalitionSp": {
"name": "Light & Shadow Fashion Shoot SP",
"help": ""
},
"EventA": {
"name": "Event Daily A",
"help": ""
@@ -170,6 +166,10 @@
"name": "Raid Daily",
"help": ""
},
"CoalitionSp": {
"name": "Light & Shadow Fashion Shoot SP",
"help": ""
},
"Commission": {
"name": "Commission",
"help": ""
@@ -430,6 +430,7 @@
"cn_android-25": "[国服] 水仙行动",
"cn_android-26": "[国服] 冬月计划",
"cn_android-27": "[国服] 长弓计划",
"cn_android-28": "[国服] 裁决协议",
"cn_ios-0": "[国服] 夏威夷",
"cn_ios-1": "[国服] 珊瑚海",
"cn_ios-2": "[国服] 中途岛",
@@ -827,6 +828,7 @@
"raid_20240130": "Spring Festive Fiasco",
"raid_20240328": "From Zero to Hero Rerun",
"raid_20250116": "Spring Fashion Festa",
"raid_20260212": "Spring Auction Adventure",
"war_archives_20180607_cn": "archives Ink Stained Steel Sakura",
"war_archives_20180726_cn": "archives Iris of Light and Dark",
"war_archives_20181020_en": "archives Strive Wish and Strategize",
@@ -1337,10 +1339,10 @@
"Mode": {
"name": "Raid Mode",
"help": "",
"easy": "easy",
"normal": "normal",
"hard": "hard",
"ex": "ex"
"easy": "Easy",
"normal": "Normal",
"hard": "Hard",
"ex": "EX"
},
"UseTicket": {
"name": "Use Ticket(s)",

View File

@@ -94,10 +94,6 @@
"name": "イベント共通設定",
"help": ""
},
"Coalition": {
"name": "特集写真-撮影進行中",
"help": ""
},
"Event": {
"name": "イベント海域",
"help": ""
@@ -130,6 +126,10 @@
"name": "病院探訪",
"help": ""
},
"Coalition": {
"name": "特集写真-撮影進行中",
"help": ""
},
"MaritimeEscort": {
"name": "Maritime Escort",
"help": ""
@@ -142,10 +142,6 @@
"name": "作戦履歴",
"help": ""
},
"CoalitionSp": {
"name": "特集写真-撮影進行中SP",
"help": ""
},
"EventA": {
"name": "毎日イベント海域A",
"help": ""
@@ -170,6 +166,10 @@
"name": "Raid Daily",
"help": ""
},
"CoalitionSp": {
"name": "特集写真-撮影進行中SP",
"help": ""
},
"Commission": {
"name": "委託",
"help": ""
@@ -430,6 +430,7 @@
"cn_android-25": "[国服] 水仙行动",
"cn_android-26": "[国服] 冬月计划",
"cn_android-27": "[国服] 长弓计划",
"cn_android-28": "[国服] 裁决协议",
"cn_ios-0": "[国服] 夏威夷",
"cn_ios-1": "[国服] 珊瑚海",
"cn_ios-2": "[国服] 中途岛",
@@ -827,6 +828,7 @@
"raid_20240130": "新春宴会狂騒曲",
"raid_20240328": "ゼロから頑張る魔王討伐(復刻)",
"raid_20250116": "新春華裳協奏曲",
"raid_20260212": "新春玉逸品会",
"war_archives_20180607_cn": "檔案 墨染まりし鋼の桜",
"war_archives_20180726_cn": "檔案 光と影のアイリス",
"war_archives_20181020_en": "檔案 努力希望と計画",

View File

@@ -94,10 +94,6 @@
"name": "活动通用设置",
"help": ""
},
"Coalition": {
"name": "光影风尚-拍摄进行时",
"help": ""
},
"Event": {
"name": "活动图-1",
"help": ""
@@ -130,6 +126,10 @@
"name": "深谷来信",
"help": ""
},
"Coalition": {
"name": "光影风尚-拍摄进行时",
"help": ""
},
"MaritimeEscort": {
"name": "商船护航",
"help": ""
@@ -142,10 +142,6 @@
"name": "作战档案",
"help": "由于作战档案缺少维护开荒功能不一定能正常使用如果发现Alas运行异常请手动完成开荒后使用自律寻敌功能"
},
"CoalitionSp": {
"name": "光影风尚-拍摄进行时SP",
"help": ""
},
"EventA": {
"name": "活动每日A图",
"help": ""
@@ -170,6 +166,10 @@
"name": "共斗活动每日",
"help": ""
},
"CoalitionSp": {
"name": "光影风尚-拍摄进行时SP",
"help": ""
},
"Commission": {
"name": "委托",
"help": ""
@@ -430,6 +430,7 @@
"cn_android-25": "[国服] 水仙行动",
"cn_android-26": "[国服] 冬月计划",
"cn_android-27": "[国服] 长弓计划",
"cn_android-28": "[国服] 裁决协议",
"cn_ios-0": "[国服] 夏威夷",
"cn_ios-1": "[国服] 珊瑚海",
"cn_ios-2": "[国服] 中途岛",
@@ -827,6 +828,7 @@
"raid_20240130": "寰昌宇定家事忙",
"raid_20240328": "复刻从零开始的魔王讨伐之旅",
"raid_20250116": "华裳巧展喜事长",
"raid_20260212": "春宴怀玉香满庭",
"war_archives_20180607_cn": "档案 墨染的钢铁之花",
"war_archives_20180726_cn": "档案 光与影的鸢尾之华",
"war_archives_20181020_en": "档案 努力希望和计划",
@@ -1340,7 +1342,7 @@
"easy": "简单",
"normal": "普通",
"hard": "困难",
"ex": "ex"
"ex": "EX"
},
"UseTicket": {
"name": "使用演习券",

View File

@@ -94,10 +94,6 @@
"name": "活動通用",
"help": ""
},
"Coalition": {
"name": "光影風尚-拍攝進行時",
"help": ""
},
"Event": {
"name": "活動圖",
"help": ""
@@ -130,6 +126,10 @@
"name": "深谷来信",
"help": ""
},
"Coalition": {
"name": "光影風尚-拍攝進行時",
"help": ""
},
"MaritimeEscort": {
"name": "商船護航",
"help": ""
@@ -142,10 +142,6 @@
"name": "作戰檔案",
"help": "由於作戰檔案缺少維護開荒功能不一定能正常使用如果發現Alas運行異常請手動完成開荒後使用自律尋敵功能"
},
"CoalitionSp": {
"name": "光影風尚-拍攝進行時SP",
"help": ""
},
"EventA": {
"name": "活動每日A圖",
"help": ""
@@ -170,6 +166,10 @@
"name": "共鬥活動每日",
"help": ""
},
"CoalitionSp": {
"name": "光影風尚-拍攝進行時SP",
"help": ""
},
"Commission": {
"name": "委託",
"help": ""
@@ -430,6 +430,7 @@
"cn_android-25": "[国服] 水仙行动",
"cn_android-26": "[国服] 冬月计划",
"cn_android-27": "[国服] 长弓计划",
"cn_android-28": "[国服] 裁决协议",
"cn_ios-0": "[国服] 夏威夷",
"cn_ios-1": "[国服] 珊瑚海",
"cn_ios-2": "[国服] 中途岛",
@@ -827,6 +828,7 @@
"raid_20240130": "寰昌宇定家事忙",
"raid_20240328": "從零開始的魔王討伐之旅",
"raid_20250116": "華裳巧展喜事長",
"raid_20260212": "春宴懷玉香滿庭",
"war_archives_20180607_cn": "檔案 墨染的鋼鐵之花",
"war_archives_20180726_cn": "檔案 光與影的鳶尾之華",
"war_archives_20181020_en": "檔案 努力希望和計劃",
@@ -1340,7 +1342,7 @@
"easy": "簡單",
"normal": "普通",
"hard": "困難",
"ex": "ex"
"ex": "EX"
},
"UseTicket": {
"name": "使用演習券",

View File

@@ -74,7 +74,7 @@ VALID_SERVER_LIST = {
'小王冠行动', '波茨坦公告', '白色方案', '瓦尔基里行动',
'曼哈顿计划', '八月风暴', '秋季旅行', '水星行动', '莱茵河卫兵',
'北极光计划', '长戟计划', '暴雨行动', '水仙行动', '冬月计划',
'长弓计划'
'长弓计划', '裁决协议',
],
'cn_ios': [
'夏威夷', '珊瑚海', '中途岛', '铁底湾', '所罗门', '马里亚纳',

View File

@@ -76,6 +76,7 @@ class HpDaemon(ModuleBase):
PAUSE_Ninja,
PAUSE_ShadowPuppetry,
PAUSE_MaidCafe,
PAUSE_Ancient,
]:
self.attacker_hp = self._calculate_hp(image, area=ATTACKER_HP_AREA_New.area, reverse=True)
self.defender_hp = self._calculate_hp(image, area=DEFENDER_HP_AREA_New.area, reverse=True)

View File

@@ -17,6 +17,15 @@ BRISTOL_OCR_REMAIN_NORMAL = Button(area={'cn': (1089, 414, 1148, 432), 'en': (10
BRISTOL_RAID_EASY = Button(area={'cn': (1151, 490, 1203, 528), 'en': (1155, 504, 1197, 524), 'jp': (1152, 491, 1203, 528), 'tw': (1151, 490, 1204, 519)}, color={'cn': (141, 164, 177), 'en': (145, 167, 177), 'jp': (126, 151, 166), 'tw': (117, 142, 159)}, button={'cn': (1151, 490, 1203, 528), 'en': (1155, 504, 1197, 524), 'jp': (1152, 491, 1203, 528), 'tw': (1151, 490, 1204, 519)}, file={'cn': './assets/cn/raid/BRISTOL_RAID_EASY.png', 'en': './assets/en/raid/BRISTOL_RAID_EASY.png', 'jp': './assets/jp/raid/BRISTOL_RAID_EASY.png', 'tw': './assets/tw/raid/BRISTOL_RAID_EASY.png'})
BRISTOL_RAID_HARD = Button(area={'cn': (1167, 246, 1220, 285), 'en': (1156, 259, 1231, 278), 'jp': (1159, 250, 1229, 285), 'tw': (1170, 249, 1217, 275)}, color={'cn': (136, 160, 173), 'en': (133, 156, 168), 'jp': (145, 168, 181), 'tw': (100, 126, 145)}, button={'cn': (1167, 246, 1220, 285), 'en': (1156, 259, 1231, 278), 'jp': (1159, 250, 1229, 285), 'tw': (1170, 249, 1217, 275)}, file={'cn': './assets/cn/raid/BRISTOL_RAID_HARD.png', 'en': './assets/en/raid/BRISTOL_RAID_HARD.png', 'jp': './assets/jp/raid/BRISTOL_RAID_HARD.png', 'tw': './assets/tw/raid/BRISTOL_RAID_HARD.png'})
BRISTOL_RAID_NORMAL = Button(area={'cn': (1098, 367, 1150, 404), 'en': (1089, 380, 1158, 396), 'jp': (1099, 368, 1149, 404), 'tw': (1097, 367, 1151, 393)}, color={'cn': (129, 152, 165), 'en': (131, 153, 164), 'jp': (119, 146, 163), 'tw': (121, 144, 159)}, button={'cn': (1098, 367, 1150, 404), 'en': (1089, 380, 1158, 396), 'jp': (1099, 368, 1149, 404), 'tw': (1097, 367, 1151, 393)}, file={'cn': './assets/cn/raid/BRISTOL_RAID_NORMAL.png', 'en': './assets/en/raid/BRISTOL_RAID_NORMAL.png', 'jp': './assets/jp/raid/BRISTOL_RAID_NORMAL.png', 'tw': './assets/tw/raid/BRISTOL_RAID_NORMAL.png'})
CHANGWU_OCR_PT = Button(area={'cn': (1174, 603, 1280, 632), 'en': (1174, 603, 1280, 632), 'jp': (1174, 603, 1280, 632), 'tw': (1174, 603, 1280, 632)}, color={'cn': (183, 118, 101), 'en': (183, 118, 101), 'jp': (183, 118, 101), 'tw': (183, 118, 101)}, button={'cn': (1174, 603, 1280, 632), 'en': (1174, 603, 1280, 632), 'jp': (1174, 603, 1280, 632), 'tw': (1174, 603, 1280, 632)}, file={'cn': './assets/cn/raid/CHANGWU_OCR_PT.png', 'en': './assets/en/raid/CHANGWU_OCR_PT.png', 'jp': './assets/jp/raid/CHANGWU_OCR_PT.png', 'tw': './assets/tw/raid/CHANGWU_OCR_PT.png'})
CHANGWU_OCR_REMAIN_EASY = Button(area={'cn': (1057, 565, 1116, 585), 'en': (1057, 565, 1116, 585), 'jp': (1057, 565, 1116, 585), 'tw': (1057, 565, 1116, 585)}, color={'cn': (96, 83, 81), 'en': (96, 83, 81), 'jp': (96, 83, 81), 'tw': (96, 83, 81)}, button={'cn': (1057, 565, 1116, 585), 'en': (1057, 565, 1116, 585), 'jp': (1057, 565, 1116, 585), 'tw': (1057, 565, 1116, 585)}, file={'cn': './assets/cn/raid/CHANGWU_OCR_REMAIN_EASY.png', 'en': './assets/en/raid/CHANGWU_OCR_REMAIN_EASY.png', 'jp': './assets/jp/raid/CHANGWU_OCR_REMAIN_EASY.png', 'tw': './assets/tw/raid/CHANGWU_OCR_REMAIN_EASY.png'})
CHANGWU_OCR_REMAIN_EX = Button(area={'cn': (1138, 26, 1185, 49), 'en': (1138, 26, 1185, 49), 'jp': (1138, 26, 1185, 49), 'tw': (1138, 26, 1185, 49)}, color={'cn': (213, 128, 103), 'en': (213, 128, 103), 'jp': (213, 128, 103), 'tw': (213, 128, 103)}, button={'cn': (1138, 26, 1185, 49), 'en': (1138, 26, 1185, 49), 'jp': (1138, 26, 1185, 49), 'tw': (1138, 26, 1185, 49)}, file={'cn': './assets/cn/raid/CHANGWU_OCR_REMAIN_EX.png', 'en': './assets/en/raid/CHANGWU_OCR_REMAIN_EX.png', 'jp': './assets/jp/raid/CHANGWU_OCR_REMAIN_EX.png', 'tw': './assets/tw/raid/CHANGWU_OCR_REMAIN_EX.png'})
CHANGWU_OCR_REMAIN_HARD = Button(area={'cn': (1169, 409, 1229, 429), 'en': (1169, 409, 1229, 429), 'jp': (1169, 409, 1229, 429), 'tw': (1169, 409, 1229, 429)}, color={'cn': (100, 86, 82), 'en': (100, 86, 82), 'jp': (100, 86, 82), 'tw': (100, 86, 82)}, button={'cn': (1169, 409, 1229, 429), 'en': (1169, 409, 1229, 429), 'jp': (1169, 409, 1229, 429), 'tw': (1169, 409, 1229, 429)}, file={'cn': './assets/cn/raid/CHANGWU_OCR_REMAIN_HARD.png', 'en': './assets/en/raid/CHANGWU_OCR_REMAIN_HARD.png', 'jp': './assets/jp/raid/CHANGWU_OCR_REMAIN_HARD.png', 'tw': './assets/tw/raid/CHANGWU_OCR_REMAIN_HARD.png'})
CHANGWU_OCR_REMAIN_NORMAL = Button(area={'cn': (1112, 487, 1170, 506), 'en': (1112, 487, 1170, 506), 'jp': (1112, 487, 1170, 506), 'tw': (1112, 487, 1170, 506)}, color={'cn': (100, 87, 84), 'en': (100, 87, 84), 'jp': (100, 87, 84), 'tw': (100, 87, 84)}, button={'cn': (1112, 487, 1170, 506), 'en': (1112, 487, 1170, 506), 'jp': (1112, 487, 1170, 506), 'tw': (1112, 487, 1170, 506)}, file={'cn': './assets/cn/raid/CHANGWU_OCR_REMAIN_NORMAL.png', 'en': './assets/en/raid/CHANGWU_OCR_REMAIN_NORMAL.png', 'jp': './assets/jp/raid/CHANGWU_OCR_REMAIN_NORMAL.png', 'tw': './assets/tw/raid/CHANGWU_OCR_REMAIN_NORMAL.png'})
CHANGWU_RAID_EASY = Button(area={'cn': (976, 559, 1032, 590), 'en': (971, 562, 1037, 584), 'jp': (978, 561, 1031, 588), 'tw': (977, 560, 1031, 588)}, color={'cn': (144, 130, 122), 'en': (158, 144, 134), 'jp': (151, 137, 128), 'tw': (162, 147, 137)}, button={'cn': (976, 559, 1032, 590), 'en': (971, 562, 1037, 584), 'jp': (978, 561, 1031, 588), 'tw': (977, 560, 1031, 588)}, file={'cn': './assets/cn/raid/CHANGWU_RAID_EASY.png', 'en': './assets/en/raid/CHANGWU_RAID_EASY.png', 'jp': './assets/jp/raid/CHANGWU_RAID_EASY.png', 'tw': './assets/tw/raid/CHANGWU_RAID_EASY.png'})
CHANGWU_RAID_EX = Button(area={'cn': (1135, 296, 1209, 331), 'en': (1135, 296, 1209, 331), 'jp': (1135, 296, 1209, 331), 'tw': (1135, 296, 1209, 331)}, color={'cn': (151, 138, 125), 'en': (151, 138, 125), 'jp': (151, 138, 125), 'tw': (151, 138, 125)}, button={'cn': (1135, 296, 1209, 331), 'en': (1135, 296, 1209, 331), 'jp': (1135, 296, 1209, 331), 'tw': (1135, 296, 1209, 331)}, file={'cn': './assets/cn/raid/CHANGWU_RAID_EX.png', 'en': './assets/en/raid/CHANGWU_RAID_EX.png', 'jp': './assets/jp/raid/CHANGWU_RAID_EX.png', 'tw': './assets/tw/raid/CHANGWU_RAID_EX.png'})
CHANGWU_RAID_HARD = Button(area={'cn': (1087, 403, 1146, 433), 'en': (1083, 407, 1150, 428), 'jp': (1073, 405, 1143, 431), 'tw': (1089, 405, 1145, 432)}, color={'cn': (154, 139, 130), 'en': (173, 157, 145), 'jp': (133, 119, 112), 'tw': (173, 157, 145)}, button={'cn': (1087, 403, 1146, 433), 'en': (1083, 407, 1150, 428), 'jp': (1073, 405, 1143, 431), 'tw': (1089, 405, 1145, 432)}, file={'cn': './assets/cn/raid/CHANGWU_RAID_HARD.png', 'en': './assets/en/raid/CHANGWU_RAID_HARD.png', 'jp': './assets/jp/raid/CHANGWU_RAID_HARD.png', 'tw': './assets/tw/raid/CHANGWU_RAID_HARD.png'})
CHANGWU_RAID_NORMAL = Button(area={'cn': (1032, 480, 1091, 511), 'en': (1009, 485, 1104, 506), 'jp': (1034, 482, 1089, 510), 'tw': (1033, 481, 1089, 510)}, color={'cn': (144, 130, 122), 'en': (168, 153, 142), 'jp': (146, 131, 123), 'tw': (151, 136, 128)}, button={'cn': (1032, 480, 1091, 511), 'en': (1009, 485, 1104, 506), 'jp': (1034, 482, 1089, 510), 'tw': (1033, 481, 1089, 510)}, file={'cn': './assets/cn/raid/CHANGWU_RAID_NORMAL.png', 'en': './assets/en/raid/CHANGWU_RAID_NORMAL.png', 'jp': './assets/jp/raid/CHANGWU_RAID_NORMAL.png', 'tw': './assets/tw/raid/CHANGWU_RAID_NORMAL.png'})
CHIENWU_OCR_PT = Button(area={'cn': (1166, 604, 1279, 632), 'en': (1166, 604, 1279, 632), 'jp': (1166, 604, 1279, 632), 'tw': (1166, 604, 1279, 632)}, color={'cn': (126, 40, 47), 'en': (126, 40, 47), 'jp': (126, 40, 47), 'tw': (126, 40, 47)}, button={'cn': (1166, 604, 1279, 632), 'en': (1166, 604, 1279, 632), 'jp': (1166, 604, 1279, 632), 'tw': (1166, 604, 1279, 632)}, file={'cn': './assets/cn/raid/CHIENWU_OCR_PT.png', 'en': './assets/cn/raid/CHIENWU_OCR_PT.png', 'jp': './assets/cn/raid/CHIENWU_OCR_PT.png', 'tw': './assets/cn/raid/CHIENWU_OCR_PT.png'})
CHIENWU_OCR_REMAIN_EASY = Button(area={'cn': (1111, 528, 1163, 549), 'en': (1111, 528, 1163, 549), 'jp': (1111, 528, 1163, 549), 'tw': (1111, 528, 1163, 549)}, color={'cn': (174, 153, 133), 'en': (174, 153, 133), 'jp': (174, 153, 133), 'tw': (174, 153, 133)}, button={'cn': (1111, 528, 1163, 549), 'en': (1111, 528, 1163, 549), 'jp': (1111, 528, 1163, 549), 'tw': (1111, 528, 1163, 549)}, file={'cn': './assets/cn/raid/CHIENWU_OCR_REMAIN_EASY.png', 'en': './assets/cn/raid/CHIENWU_OCR_REMAIN_EASY.png', 'jp': './assets/cn/raid/CHIENWU_OCR_REMAIN_EASY.png', 'tw': './assets/cn/raid/CHIENWU_OCR_REMAIN_EASY.png'})
CHIENWU_OCR_REMAIN_EX = Button(area={'cn': (1086, 16, 1152, 44), 'en': (1086, 16, 1152, 44), 'jp': (1086, 16, 1152, 44), 'tw': (1086, 16, 1152, 44)}, color={'cn': (90, 39, 34), 'en': (90, 39, 34), 'jp': (90, 39, 34), 'tw': (90, 39, 34)}, button={'cn': (1086, 16, 1152, 44), 'en': (1086, 16, 1152, 44), 'jp': (1086, 16, 1152, 44), 'tw': (1086, 16, 1152, 44)}, file={'cn': './assets/cn/raid/CHIENWU_OCR_REMAIN_EX.png', 'en': './assets/cn/raid/CHIENWU_OCR_REMAIN_EX.png', 'jp': './assets/cn/raid/CHIENWU_OCR_REMAIN_EX.png', 'tw': './assets/cn/raid/CHIENWU_OCR_REMAIN_EX.png'})
@@ -74,7 +83,7 @@ RPG_GOTO_STORY = Button(area={'cn': (59, 491, 84, 516), 'en': (59, 491, 84, 516)
RPG_HOME = Button(area={'cn': (1222, 29, 1240, 51), 'en': (1222, 29, 1240, 51), 'jp': (1222, 29, 1240, 51), 'tw': (1222, 29, 1240, 51)}, color={'cn': (197, 181, 158), 'en': (197, 181, 158), 'jp': (197, 181, 158), 'tw': (197, 181, 158)}, button={'cn': (1222, 29, 1240, 51), 'en': (1222, 29, 1240, 51), 'jp': (1222, 29, 1240, 51), 'tw': (1222, 29, 1240, 51)}, file={'cn': './assets/cn/raid/RPG_HOME.png', 'en': './assets/en/raid/RPG_HOME.png', 'jp': './assets/jp/raid/RPG_HOME.png', 'tw': './assets/tw/raid/RPG_HOME.png'})
RPG_LEAVE_CITY = Button(area={'cn': (688, 642, 711, 664), 'en': (688, 642, 711, 664), 'jp': (688, 642, 711, 664), 'tw': (688, 642, 711, 664)}, color={'cn': (158, 130, 109), 'en': (158, 130, 109), 'jp': (158, 130, 109), 'tw': (158, 130, 109)}, button={'cn': (688, 642, 711, 664), 'en': (688, 642, 711, 664), 'jp': (688, 642, 711, 664), 'tw': (688, 642, 711, 664)}, file={'cn': './assets/cn/raid/RPG_LEAVE_CITY.png', 'en': './assets/en/raid/RPG_LEAVE_CITY.png', 'jp': './assets/jp/raid/RPG_LEAVE_CITY.png', 'tw': './assets/tw/raid/RPG_LEAVE_CITY.png'})
RPG_RAID_EASY = Button(area={'cn': (149, 561, 179, 591), 'en': (149, 561, 179, 591), 'jp': (149, 561, 179, 591), 'tw': (149, 561, 179, 591)}, color={'cn': (152, 57, 59), 'en': (152, 57, 59), 'jp': (152, 57, 59), 'tw': (152, 57, 59)}, button={'cn': (149, 561, 179, 591), 'en': (149, 561, 179, 591), 'jp': (149, 561, 179, 591), 'tw': (149, 561, 179, 591)}, file={'cn': './assets/cn/raid/RPG_RAID_EASY.png', 'en': './assets/en/raid/RPG_RAID_EASY.png', 'jp': './assets/jp/raid/RPG_RAID_EASY.png', 'tw': './assets/tw/raid/RPG_RAID_EASY.png'})
RPG_RAID_EX = Button(area={'cn': (949, 518, 976, 565), 'en': (949, 518, 976, 565), 'jp': (949, 518, 976, 565), 'tw': (949, 518, 976, 565)}, color={'cn': (166, 66, 69), 'en': (166, 66, 69), 'jp': (166, 66, 69), 'tw': (166, 66, 69)}, button={'cn': (949, 518, 976, 565), 'en': (949, 518, 976, 565), 'jp': (949, 518, 976, 565), 'tw': (949, 518, 976, 565)}, file={'cn': './assets/cn/raid/RPG_RAID_EX.png', 'en': './assets/en/raid/RPG_RAID_EX.png', 'jp': './assets/jp/raid/RPG_RAID_EX.png', 'tw': './assets/tw/raid/RPG_RAID_EX.png'})
RPG_RAID_EX = Button(area={'cn': (979, 223, 999, 258), 'en': (979, 223, 999, 258), 'jp': (979, 223, 999, 258), 'tw': (979, 223, 999, 258)}, color={'cn': (231, 198, 84), 'en': (231, 198, 84), 'jp': (231, 198, 84), 'tw': (231, 198, 84)}, button={'cn': (979, 223, 999, 258), 'en': (979, 223, 999, 258), 'jp': (979, 223, 999, 258), 'tw': (979, 223, 999, 258)}, file={'cn': './assets/cn/raid/RPG_RAID_EX.png', 'en': './assets/en/raid/RPG_RAID_EX.png', 'jp': './assets/jp/raid/RPG_RAID_EX.png', 'tw': './assets/tw/raid/RPG_RAID_EX.png'})
RPG_RAID_HARD = Button(area={'cn': (475, 108, 505, 138), 'en': (475, 108, 505, 138), 'jp': (475, 108, 505, 138), 'tw': (475, 108, 505, 138)}, color={'cn': (97, 59, 59), 'en': (97, 59, 59), 'jp': (97, 59, 59), 'tw': (97, 59, 59)}, button={'cn': (475, 108, 505, 138), 'en': (475, 108, 505, 138), 'jp': (475, 108, 505, 138), 'tw': (475, 108, 505, 138)}, file={'cn': './assets/cn/raid/RPG_RAID_HARD.png', 'en': './assets/en/raid/RPG_RAID_HARD.png', 'jp': './assets/jp/raid/RPG_RAID_HARD.png', 'tw': './assets/tw/raid/RPG_RAID_HARD.png'})
RPG_RAID_NORMAL = Button(area={'cn': (313, 259, 343, 289), 'en': (313, 259, 343, 289), 'jp': (313, 259, 343, 289), 'tw': (313, 259, 343, 289)}, color={'cn': (147, 61, 62), 'en': (147, 61, 62), 'jp': (147, 61, 62), 'tw': (147, 61, 62)}, button={'cn': (313, 259, 343, 289), 'en': (313, 259, 343, 289), 'jp': (313, 259, 343, 289), 'tw': (313, 259, 343, 289)}, file={'cn': './assets/cn/raid/RPG_RAID_NORMAL.png', 'en': './assets/en/raid/RPG_RAID_NORMAL.png', 'jp': './assets/jp/raid/RPG_RAID_NORMAL.png', 'tw': './assets/tw/raid/RPG_RAID_NORMAL.png'})
RPG_STATUS_POPUP = Button(area={'cn': (1120, 97, 1144, 121), 'en': (1120, 97, 1144, 121), 'jp': (1120, 97, 1144, 121), 'tw': (1120, 97, 1144, 121)}, color={'cn': (158, 165, 176), 'en': (158, 165, 176), 'jp': (158, 165, 176), 'tw': (158, 165, 176)}, button={'cn': (1120, 97, 1144, 121), 'en': (1120, 97, 1144, 121), 'jp': (1120, 97, 1144, 121), 'tw': (1120, 97, 1144, 121)}, file={'cn': './assets/cn/raid/RPG_STATUS_POPUP.png', 'en': './assets/en/raid/RPG_STATUS_POPUP.png', 'jp': './assets/jp/raid/RPG_STATUS_POPUP.png', 'tw': './assets/tw/raid/RPG_STATUS_POPUP.png'})

View File

@@ -82,6 +82,8 @@ def raid_name_shorten(name):
return "RPG"
elif name == 'raid_20250116':
return 'CHIENWU'
elif name == 'raid_20260212':
return 'CHANGWU'
else:
raise ScriptError(f'Unknown raid name: {name}')
@@ -157,6 +159,11 @@ def raid_ocr(raid, mode):
return Digit(button, letter=(247, 223, 222), threshold=128)
else:
return DigitCounter(button, letter=(0, 0, 0), threshold=128)
elif raid == 'CHANGWU':
if mode == 'ex':
return Digit(button, letter=(255, 239, 215), threshold=128)
else:
return DigitCounter(button, lang='cnocr', letter=(154, 148, 133), threshold=128)
def pt_ocr(raid):
@@ -186,6 +193,8 @@ def pt_ocr(raid):
return HuanChangPtOcr(button, letter=(23, 20, 6), threshold=128)
elif raid == 'CHIENWU':
return Digit(button, letter=(255, 231, 231), threshold=128)
elif raid == 'CHANGWU':
return Digit(button, letter=(255, 239, 215), threshold=128)
class Raid(MapOperation, RaidCombat, CampaignEvent):
@@ -195,9 +204,7 @@ class Raid(MapOperation, RaidCombat, CampaignEvent):
Game devs are too asshole to drop oil display for UI design
https://github.com/LmeSzinc/AzurLaneAutoScript/issues/5214
"""
if self.config.Campaign_Event == 'raid_20240328':
return False
return True
return False
def triggered_stop_condition(self, oil_check=False, pt_check=False, coin_check=False):
"""

View File

@@ -110,7 +110,7 @@ class RaidRun(Raid, CampaignEvent):
self.disable_event_on_raid()
# End for mode EX
if mode == 'ex':
if mode == 'ex' and not self.is_raid_rpg():
if not self.get_remain(mode):
logger.info('Triggered stop condition: Zero '
'raid tickets to do EX mode')

View File

@@ -218,10 +218,16 @@ page_main.link(button=MAIN_GOTO_EVENT_LIST, destination=page_event_list)
page_main_white.link(button=MAIN_GOTO_EVENT_LIST_WHITE, destination=page_event_list)
# Raid
# before
# page_raid = Page(RAID_CHECK)
# page_raid.link(button=GOTO_MAIN, destination=page_main)
# page_main.link(button=MAIN_GOTO_RAID, destination=page_raid)
# page_main_white.link(button=MAIN_GOTO_RAID_WHITE, destination=page_raid)
# after 2026.02.12
page_raid = Page(RAID_CHECK)
page_raid.link(button=GOTO_MAIN, destination=page_main)
page_main.link(button=MAIN_GOTO_RAID, destination=page_raid)
page_main_white.link(button=MAIN_GOTO_RAID_WHITE, destination=page_raid)
page_raid.link(button=BACK_ARROW, destination=page_campaign_menu)
page_campaign_menu.link(button=CAMPAIGN_MENU_GOTO_EVENT, destination=page_raid)
# Dock
page_dock = Page(DOCK_CHECK)

View File

@@ -1,9 +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.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,
RequestHumanTakeover)
from module.exercise.assets import EXERCISE_PREPARATION
@@ -19,7 +17,7 @@ from module.ocr.ocr import Ocr
from module.os_handler.assets import (AUTO_SEARCH_REWARD, EXCHANGE_CHECK, RESET_FLEET_PREPARATION, RESET_TICKET_POPUP)
from module.raid.assets import *
from module.ui.assets import *
from module.ui.page import Page, page_campaign, page_event, page_main, page_main_white, page_sp
from module.ui.page import Page, page_academy, page_campaign, page_event, page_main, page_main_white, page_sp
from module.ui_white.assets import *
@@ -39,6 +37,11 @@ class UI(InfoHandler):
if self.appear(page_main.check_button, offset=(5, 5), interval=interval):
return True
return False
# shitty EN localization changing font width of ACADEMY title,
# check other buttons also
if self.config.SERVER == 'en' and page == page_academy:
if self.appear(ACADEMY_GOTO_MUNITIONS, offset=offset, interval=interval):
return True
return self.appear(page.check_button, offset=offset, interval=interval)
def is_in_main(self, offset=(30, 30), interval=0):
@@ -551,8 +554,8 @@ class UI(InfoHandler):
return True
# RPG event (raid_20240328)
if self.appear_then_click(RPG_STATUS_POPUP, offset=(30, 30), interval=3):
return True
# if self.appear_then_click(RPG_STATUS_POPUP, offset=(30, 30), interval=3):
# return True
# Hospital event (20250327)
# if self.appear_then_click(HOSIPITAL_CLUE_CHECK, offset=(20, 20), interval=2):
# return True
@@ -560,10 +563,10 @@ class UI(InfoHandler):
# return True
# Neon city (coalition_20250626)
# FASHION (coalition_20260122) reuse NEONCITY
if self.appear(NEONCITY_FLEET_PREPARATION, offset=(20, 20), interval=3):
logger.info(f'{NEONCITY_FLEET_PREPARATION} -> {NEONCITY_PREPARATION_EXIT}')
self.device.click(NEONCITY_PREPARATION_EXIT)
return True
# if self.appear(NEONCITY_FLEET_PREPARATION, offset=(20, 20), interval=3):
# logger.info(f'{NEONCITY_FLEET_PREPARATION} -> {NEONCITY_PREPARATION_EXIT}')
# 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):
# return True

View File

@@ -30,7 +30,7 @@ TEMPLATE_NORTHERN_OVERTURE = Template(file={'cn': './assets/cn/war_archives/TEMP
TEMPLATE_PARALLEL_SUPERIMPOSITION = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_PARALLEL_SUPERIMPOSITION.png', 'en': './assets/cn/war_archives/TEMPLATE_PARALLEL_SUPERIMPOSITION.png', 'jp': './assets/cn/war_archives/TEMPLATE_PARALLEL_SUPERIMPOSITION.png', 'tw': './assets/cn/war_archives/TEMPLATE_PARALLEL_SUPERIMPOSITION.png'})
TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT.png', 'en': './assets/cn/war_archives/TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT.png', 'jp': './assets/cn/war_archives/TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT.png', 'tw': './assets/cn/war_archives/TEMPLATE_PLEDGE_OF_THE_RADIANT_COURT.png'})
TEMPLATE_PRELUDE_UNDER_THE_MOON = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png', 'en': './assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png', 'jp': './assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png', 'tw': './assets/cn/war_archives/TEMPLATE_PRELUDE_UNDER_THE_MOON.png'})
TEMPLATE_REVELATIONS_OF_DUST = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_REVELATIONS_OF_DUST.png', 'en': './assets/cn/war_archives/TEMPLATE_REVELATIONS_OF_DUST.png', 'jp': './assets/cn/war_archives/TEMPLATE_REVELATIONS_OF_DUST.png', 'tw': './assets/cn/war_archives/TEMPLATE_REVELATIONS_OF_DUST.png'})
TEMPLATE_REVELATIONS_OF_DUST = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_REVELATIONS_OF_DUST.png', 'en': './assets/en/war_archives/TEMPLATE_REVELATIONS_OF_DUST.png', 'jp': './assets/cn/war_archives/TEMPLATE_REVELATIONS_OF_DUST.png', 'tw': './assets/cn/war_archives/TEMPLATE_REVELATIONS_OF_DUST.png'})
TEMPLATE_RONDO_AT_RAINBOWS_END = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_RONDO_AT_RAINBOWS_END.png', 'en': './assets/en/war_archives/TEMPLATE_RONDO_AT_RAINBOWS_END.png', 'jp': './assets/cn/war_archives/TEMPLATE_RONDO_AT_RAINBOWS_END.png', 'tw': './assets/cn/war_archives/TEMPLATE_RONDO_AT_RAINBOWS_END.png'})
TEMPLATE_SCHERZO_OF_IRON_AND_BLOOD = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_SCHERZO_OF_IRON_AND_BLOOD.png', 'en': './assets/en/war_archives/TEMPLATE_SCHERZO_OF_IRON_AND_BLOOD.png', 'jp': './assets/cn/war_archives/TEMPLATE_SCHERZO_OF_IRON_AND_BLOOD.png', 'tw': './assets/cn/war_archives/TEMPLATE_SCHERZO_OF_IRON_AND_BLOOD.png'})
TEMPLATE_SKYBOUND_ORATORIO = Template(file={'cn': './assets/cn/war_archives/TEMPLATE_SKYBOUND_ORATORIO.png', 'en': './assets/en/war_archives/TEMPLATE_SKYBOUND_ORATORIO.png', 'jp': './assets/cn/war_archives/TEMPLATE_SKYBOUND_ORATORIO.png', 'tw': './assets/cn/war_archives/TEMPLATE_SKYBOUND_ORATORIO.png'})