Feat(ResearchCheck): 添加科研船经验进度检查和领取 From OxcC
BIN
assets/cn/research_farming/SHIP_EXPERIENCE_COMMIT_1.png
Normal file
|
After Width: | Height: | Size: 8.9 KiB |
BIN
assets/cn/research_farming/SHIP_EXPERIENCE_COMMIT_2.png
Normal file
|
After Width: | Height: | Size: 9.2 KiB |
BIN
assets/cn/research_farming/SHIP_EXPERIENCE_COMPLETE_1.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
assets/cn/research_farming/SHIP_EXPERIENCE_COMPLETE_2.png
Normal file
|
After Width: | Height: | Size: 6.5 KiB |
BIN
assets/cn/research_farming/SHIP_EXPERIENCE_FINISHED_1.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
assets/cn/research_farming/SHIP_EXPERIENCE_FINISHED_2.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
BIN
assets/cn/research_farming/SHIP_EXPERIENCE_PERCENT_1.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
BIN
assets/cn/research_farming/SHIP_EXPERIENCE_PERCENT_2.png
Normal file
|
After Width: | Height: | Size: 8.2 KiB |
@ -68,6 +68,11 @@
|
||||
"Color": "^AFAAAA",
|
||||
"Record": "2020-01-01 00:00:00"
|
||||
},
|
||||
"ResearchPercent": {
|
||||
"Value": 0,
|
||||
"Color": "^0000FF",
|
||||
"Record": "2020-01-01 00:00:00"
|
||||
},
|
||||
"Storage": {
|
||||
"Storage": {}
|
||||
}
|
||||
@ -262,6 +267,11 @@
|
||||
"GetNewShip": false,
|
||||
"ReachLevel": 0
|
||||
},
|
||||
"ResearchSetting": {
|
||||
"CurrentCampaignTimes": 0,
|
||||
"CheckInterval": 5,
|
||||
"OnepushNotify": false
|
||||
},
|
||||
"Fleet": {
|
||||
"Fleet1": 1,
|
||||
"Fleet1Formation": "double_line",
|
||||
|
||||
@ -478,6 +478,15 @@ class CampaignRun(CampaignEvent, ShopStatus):
|
||||
self.device.click_record_clear()
|
||||
try:
|
||||
self.campaign.run()
|
||||
if self.config.task.command in ['Main2']:
|
||||
CurrentTimes = self.config.ResearchSetting_CurrentCampaignTimes + 1
|
||||
CheckInterval = self.config.ResearchSetting_CheckInterval
|
||||
self.config.modified["Main2.ResearchSetting.CurrentCampaignTimes"] = CurrentTimes
|
||||
logger.info(f"Main2:CurrentTimes: {CurrentTimes}, CheckInterval: {CheckInterval}")
|
||||
if CurrentTimes % CheckInterval == 0:
|
||||
from module.research_farming.check_research import ResearchFarming
|
||||
ResearchFarming(config=self.config, device=self.device).CheckResearchShipExperience()
|
||||
self.config.update()
|
||||
except ScriptEnd as e:
|
||||
logger.hr('Script end')
|
||||
logger.info(str(e))
|
||||
|
||||
@ -207,6 +207,21 @@
|
||||
"validate": "datetime"
|
||||
}
|
||||
},
|
||||
"ResearchPercent": {
|
||||
"Value": {
|
||||
"type": "input",
|
||||
"value": 0
|
||||
},
|
||||
"Color": {
|
||||
"type": "input",
|
||||
"value": "^0000FF"
|
||||
},
|
||||
"Record": {
|
||||
"type": "datetime",
|
||||
"value": "2020-01-01 00:00:00",
|
||||
"validate": "datetime"
|
||||
}
|
||||
},
|
||||
"Storage": {
|
||||
"Storage": {
|
||||
"type": "storage",
|
||||
@ -1179,6 +1194,20 @@
|
||||
"value": 0
|
||||
}
|
||||
},
|
||||
"ResearchSetting": {
|
||||
"CurrentCampaignTimes": {
|
||||
"type": "input",
|
||||
"value": 0
|
||||
},
|
||||
"CheckInterval": {
|
||||
"type": "input",
|
||||
"value": 5
|
||||
},
|
||||
"OnepushNotify": {
|
||||
"type": "checkbox",
|
||||
"value": false
|
||||
}
|
||||
},
|
||||
"Fleet": {
|
||||
"Fleet1": {
|
||||
"type": "select",
|
||||
|
||||
@ -58,6 +58,10 @@ SevenDayStatus:
|
||||
Value: 0
|
||||
Color: ^AFAAAA
|
||||
Record: 2020-01-01 00:00:00
|
||||
ResearchPercent:
|
||||
Value: 0
|
||||
Color: ^0000FF
|
||||
Record: 2020-01-01 00:00:00
|
||||
# ==================== Alas ====================
|
||||
|
||||
Scheduler:
|
||||
@ -242,6 +246,10 @@ StopCondition:
|
||||
StageIncrease: false
|
||||
GetNewShip: false
|
||||
ReachLevel: 0
|
||||
ResearchSetting:
|
||||
CurrentCampaignTimes: 0
|
||||
CheckInterval: 5
|
||||
OnepushNotify: false
|
||||
EventPt:
|
||||
EventPtSwitch: false
|
||||
Event2MapName:
|
||||
|
||||
@ -16,4 +16,5 @@ Dashboard:
|
||||
- Medal
|
||||
- Merit
|
||||
- GuildCoin
|
||||
- SevenDayStatus
|
||||
- SevenDayStatus
|
||||
- ResearchPercent
|
||||
@ -69,6 +69,7 @@ Overview:
|
||||
Core:
|
||||
GuildCoin:
|
||||
SevenDayStatus:
|
||||
ResearchPercent:
|
||||
Log:
|
||||
Running:
|
||||
Pending:
|
||||
|
||||
@ -42,6 +42,7 @@ Farm:
|
||||
- Scheduler
|
||||
- Campaign
|
||||
- StopCondition
|
||||
- ResearchSetting
|
||||
- Fleet
|
||||
- Submarine
|
||||
- Emotion
|
||||
|
||||
@ -77,6 +77,11 @@ class GeneratedConfig:
|
||||
SevenDayStatus_Color = '^AFAAAA'
|
||||
SevenDayStatus_Record = datetime.datetime(2020, 1, 1, 0, 0)
|
||||
|
||||
# Group `ResearchPercent`
|
||||
ResearchPercent_Value = 0
|
||||
ResearchPercent_Color = '^0000FF'
|
||||
ResearchPercent_Record = datetime.datetime(2020, 1, 1, 0, 0)
|
||||
|
||||
# Group `Scheduler`
|
||||
Scheduler_Enable = False # True, False
|
||||
Scheduler_NextRun = datetime.datetime(2020, 1, 1, 0, 0)
|
||||
@ -164,6 +169,11 @@ class GeneratedConfig:
|
||||
StopCondition_GetNewShip = False
|
||||
StopCondition_ReachLevel = 0
|
||||
|
||||
# Group `ResearchSetting`
|
||||
ResearchSetting_CurrentCampaignTimes = 0
|
||||
ResearchSetting_CheckInterval = 5
|
||||
ResearchSetting_OnepushNotify = False
|
||||
|
||||
# Group `EventPt`
|
||||
EventPt_EventPtSwitch = False
|
||||
EventPt_Event2MapName = 'D3'
|
||||
|
||||
@ -541,6 +541,24 @@
|
||||
"help": "SevenDayStatus.Record.help"
|
||||
}
|
||||
},
|
||||
"ResearchPercent": {
|
||||
"_info": {
|
||||
"name": "ResearchPercent._info.name",
|
||||
"help": "ResearchPercent._info.help"
|
||||
},
|
||||
"Value": {
|
||||
"name": "ResearchPercent.Value.name",
|
||||
"help": "ResearchPercent.Value.help"
|
||||
},
|
||||
"Color": {
|
||||
"name": "ResearchPercent.Color.name",
|
||||
"help": "ResearchPercent.Color.help"
|
||||
},
|
||||
"Record": {
|
||||
"name": "ResearchPercent.Record.name",
|
||||
"help": "ResearchPercent.Record.help"
|
||||
}
|
||||
},
|
||||
"Scheduler": {
|
||||
"_info": {
|
||||
"name": "Scheduler",
|
||||
@ -1162,6 +1180,24 @@
|
||||
"help": "Stop current task if any ship under level X has reached level X; saving as 0 implies no limit to the level."
|
||||
}
|
||||
},
|
||||
"ResearchSetting": {
|
||||
"_info": {
|
||||
"name": "ResearchSetting._info.name",
|
||||
"help": "ResearchSetting._info.help"
|
||||
},
|
||||
"CurrentCampaignTimes": {
|
||||
"name": "ResearchSetting.CurrentCampaignTimes.name",
|
||||
"help": "ResearchSetting.CurrentCampaignTimes.help"
|
||||
},
|
||||
"CheckInterval": {
|
||||
"name": "ResearchSetting.CheckInterval.name",
|
||||
"help": "ResearchSetting.CheckInterval.help"
|
||||
},
|
||||
"OnepushNotify": {
|
||||
"name": "ResearchSetting.OnepushNotify.name",
|
||||
"help": "ResearchSetting.OnepushNotify.help"
|
||||
}
|
||||
},
|
||||
"EventPt": {
|
||||
"_info": {
|
||||
"name": "EventPt._info.name",
|
||||
@ -3162,6 +3198,7 @@
|
||||
"Core": "Core Data",
|
||||
"GuildCoin": "Guild Coin",
|
||||
"SevenDayStatus": "Gui.Overview.SevenDayStatus",
|
||||
"ResearchPercent": "Gui.Overview.ResearchPercent",
|
||||
"Log": "Log",
|
||||
"Running": "Running",
|
||||
"Pending": "Pending",
|
||||
|
||||
@ -541,6 +541,24 @@
|
||||
"help": "SevenDayStatus.Record.help"
|
||||
}
|
||||
},
|
||||
"ResearchPercent": {
|
||||
"_info": {
|
||||
"name": "ResearchPercent._info.name",
|
||||
"help": "ResearchPercent._info.help"
|
||||
},
|
||||
"Value": {
|
||||
"name": "ResearchPercent.Value.name",
|
||||
"help": "ResearchPercent.Value.help"
|
||||
},
|
||||
"Color": {
|
||||
"name": "ResearchPercent.Color.name",
|
||||
"help": "ResearchPercent.Color.help"
|
||||
},
|
||||
"Record": {
|
||||
"name": "ResearchPercent.Record.name",
|
||||
"help": "ResearchPercent.Record.help"
|
||||
}
|
||||
},
|
||||
"Scheduler": {
|
||||
"_info": {
|
||||
"name": "Scheduler._info.name",
|
||||
@ -1162,6 +1180,24 @@
|
||||
"help": "StopCondition.ReachLevel.help"
|
||||
}
|
||||
},
|
||||
"ResearchSetting": {
|
||||
"_info": {
|
||||
"name": "ResearchSetting._info.name",
|
||||
"help": "ResearchSetting._info.help"
|
||||
},
|
||||
"CurrentCampaignTimes": {
|
||||
"name": "ResearchSetting.CurrentCampaignTimes.name",
|
||||
"help": "ResearchSetting.CurrentCampaignTimes.help"
|
||||
},
|
||||
"CheckInterval": {
|
||||
"name": "ResearchSetting.CheckInterval.name",
|
||||
"help": "ResearchSetting.CheckInterval.help"
|
||||
},
|
||||
"OnepushNotify": {
|
||||
"name": "ResearchSetting.OnepushNotify.name",
|
||||
"help": "ResearchSetting.OnepushNotify.help"
|
||||
}
|
||||
},
|
||||
"EventPt": {
|
||||
"_info": {
|
||||
"name": "EventPt._info.name",
|
||||
@ -3162,6 +3198,7 @@
|
||||
"Core": "Gui.Overview.Core",
|
||||
"GuildCoin": "Gui.Overview.GuildCoin",
|
||||
"SevenDayStatus": "Gui.Overview.SevenDayStatus",
|
||||
"ResearchPercent": "Gui.Overview.ResearchPercent",
|
||||
"Log": "ログ",
|
||||
"Running": "実行中",
|
||||
"Pending": "隊列中",
|
||||
|
||||
@ -541,6 +541,24 @@
|
||||
"help": "SevenDayStatus.Record.help"
|
||||
}
|
||||
},
|
||||
"ResearchPercent": {
|
||||
"_info": {
|
||||
"name": "ResearchPercent._info.name",
|
||||
"help": "ResearchPercent._info.help"
|
||||
},
|
||||
"Value": {
|
||||
"name": "ResearchPercent.Value.name",
|
||||
"help": "ResearchPercent.Value.help"
|
||||
},
|
||||
"Color": {
|
||||
"name": "ResearchPercent.Color.name",
|
||||
"help": "ResearchPercent.Color.help"
|
||||
},
|
||||
"Record": {
|
||||
"name": "ResearchPercent.Record.name",
|
||||
"help": "ResearchPercent.Record.help"
|
||||
}
|
||||
},
|
||||
"Scheduler": {
|
||||
"_info": {
|
||||
"name": "任务设置",
|
||||
@ -1162,6 +1180,24 @@
|
||||
"help": "任意等级低于 X 的舰船升级至 X 级后停止\n0 表示不限制等级"
|
||||
}
|
||||
},
|
||||
"ResearchSetting": {
|
||||
"_info": {
|
||||
"name": "研究经验设置",
|
||||
"help": ""
|
||||
},
|
||||
"CheckInterval": {
|
||||
"name": "每刷 X 次检查",
|
||||
"help": ""
|
||||
},
|
||||
"CurrentCampaignTimes": {
|
||||
"name": "当前已刷 X 次",
|
||||
"help": "清空后立即检查是否刷完"
|
||||
},
|
||||
"OnepushNotify": {
|
||||
"name": "刷完后通知",
|
||||
"help": "推荐开启"
|
||||
}
|
||||
},
|
||||
"EventPt": {
|
||||
"_info": {
|
||||
"name": "活动捞PT设置",
|
||||
@ -3162,6 +3198,7 @@
|
||||
"Core": "核心数据",
|
||||
"GuildCoin": "舰队币",
|
||||
"SevenDayStatus": "7日小任务",
|
||||
"ResearchPercent": "科研船进度",
|
||||
"Log": "日志",
|
||||
"Running": "运行中",
|
||||
"Pending": "队列中",
|
||||
|
||||
@ -541,6 +541,24 @@
|
||||
"help": "SevenDayStatus.Record.help"
|
||||
}
|
||||
},
|
||||
"ResearchPercent": {
|
||||
"_info": {
|
||||
"name": "ResearchPercent._info.name",
|
||||
"help": "ResearchPercent._info.help"
|
||||
},
|
||||
"Value": {
|
||||
"name": "ResearchPercent.Value.name",
|
||||
"help": "ResearchPercent.Value.help"
|
||||
},
|
||||
"Color": {
|
||||
"name": "ResearchPercent.Color.name",
|
||||
"help": "ResearchPercent.Color.help"
|
||||
},
|
||||
"Record": {
|
||||
"name": "ResearchPercent.Record.name",
|
||||
"help": "ResearchPercent.Record.help"
|
||||
}
|
||||
},
|
||||
"Scheduler": {
|
||||
"_info": {
|
||||
"name": "任務設定",
|
||||
@ -1162,6 +1180,24 @@
|
||||
"help": "任意等級低於 X 的艦船升級至 X 級後停止\n0 表示不限制等級"
|
||||
}
|
||||
},
|
||||
"ResearchSetting": {
|
||||
"_info": {
|
||||
"name": "ResearchSetting._info.name",
|
||||
"help": "ResearchSetting._info.help"
|
||||
},
|
||||
"CurrentCampaignTimes": {
|
||||
"name": "ResearchSetting.CurrentCampaignTimes.name",
|
||||
"help": "ResearchSetting.CurrentCampaignTimes.help"
|
||||
},
|
||||
"CheckInterval": {
|
||||
"name": "ResearchSetting.CheckInterval.name",
|
||||
"help": "ResearchSetting.CheckInterval.help"
|
||||
},
|
||||
"OnepushNotify": {
|
||||
"name": "ResearchSetting.OnepushNotify.name",
|
||||
"help": "ResearchSetting.OnepushNotify.help"
|
||||
}
|
||||
},
|
||||
"EventPt": {
|
||||
"_info": {
|
||||
"name": "EventPt._info.name",
|
||||
@ -3162,6 +3198,7 @@
|
||||
"Core": "覈心數據",
|
||||
"GuildCoin": "艦隊幣",
|
||||
"SevenDayStatus": "Gui.Overview.SevenDayStatus",
|
||||
"ResearchPercent": "Gui.Overview.ResearchPercent",
|
||||
"Log": "日誌",
|
||||
"Running": "執行中",
|
||||
"Pending": "佇列中",
|
||||
|
||||
14
module/research_farming/assets.py
Normal file
@ -0,0 +1,14 @@
|
||||
from module.base.button import Button
|
||||
from module.base.template import Template
|
||||
|
||||
# This file was automatically generated by dev_tools/button_extract.py.
|
||||
# Don't modify it manually.
|
||||
|
||||
SHIP_EXPERIENCE_COMMIT_1 = Button(area={'cn': (1131, 474, 1191, 506), 'en': (1131, 474, 1191, 506), 'jp': (1131, 474, 1191, 506), 'tw': (1131, 474, 1191, 506)}, color={'cn': (111, 116, 125), 'en': (111, 116, 125), 'jp': (111, 116, 125), 'tw': (111, 116, 125)}, button={'cn': (1131, 474, 1191, 506), 'en': (1131, 474, 1191, 506), 'jp': (1131, 474, 1191, 506), 'tw': (1131, 474, 1191, 506)}, file={'cn': './assets/cn/research_farming/SHIP_EXPERIENCE_COMMIT_1.png', 'en': './assets/cn/research_farming/SHIP_EXPERIENCE_COMMIT_1.png', 'jp': './assets/cn/research_farming/SHIP_EXPERIENCE_COMMIT_1.png', 'tw': './assets/cn/research_farming/SHIP_EXPERIENCE_COMMIT_1.png'})
|
||||
SHIP_EXPERIENCE_COMMIT_2 = Button(area={'cn': (1132, 500, 1192, 534), 'en': (1132, 500, 1192, 534), 'jp': (1132, 500, 1192, 534), 'tw': (1132, 500, 1192, 534)}, color={'cn': (112, 116, 125), 'en': (112, 116, 125), 'jp': (112, 116, 125), 'tw': (112, 116, 125)}, button={'cn': (1132, 500, 1192, 534), 'en': (1132, 500, 1192, 534), 'jp': (1132, 500, 1192, 534), 'tw': (1132, 500, 1192, 534)}, file={'cn': './assets/cn/research_farming/SHIP_EXPERIENCE_COMMIT_2.png', 'en': './assets/cn/research_farming/SHIP_EXPERIENCE_COMMIT_2.png', 'jp': './assets/cn/research_farming/SHIP_EXPERIENCE_COMMIT_2.png', 'tw': './assets/cn/research_farming/SHIP_EXPERIENCE_COMMIT_2.png'})
|
||||
SHIP_EXPERIENCE_COMPLETE_1 = Button(area={'cn': (1067, 181, 1154, 186), 'en': (1067, 181, 1154, 186), 'jp': (1067, 181, 1154, 186), 'tw': (1067, 181, 1154, 186)}, color={'cn': (179, 165, 92), 'en': (179, 165, 92), 'jp': (179, 165, 92), 'tw': (179, 165, 92)}, button={'cn': (1067, 181, 1154, 186), 'en': (1067, 181, 1154, 186), 'jp': (1067, 181, 1154, 186), 'tw': (1067, 181, 1154, 186)}, file={'cn': './assets/cn/research_farming/SHIP_EXPERIENCE_COMPLETE_1.png', 'en': './assets/cn/research_farming/SHIP_EXPERIENCE_COMPLETE_1.png', 'jp': './assets/cn/research_farming/SHIP_EXPERIENCE_COMPLETE_1.png', 'tw': './assets/cn/research_farming/SHIP_EXPERIENCE_COMPLETE_1.png'})
|
||||
SHIP_EXPERIENCE_COMPLETE_2 = Button(area={'cn': (1067, 371, 1154, 376), 'en': (1067, 371, 1154, 376), 'jp': (1067, 371, 1154, 376), 'tw': (1067, 371, 1154, 376)}, color={'cn': (179, 165, 92), 'en': (179, 165, 92), 'jp': (179, 165, 92), 'tw': (179, 165, 92)}, button={'cn': (1067, 371, 1154, 376), 'en': (1067, 371, 1154, 376), 'jp': (1067, 371, 1154, 376), 'tw': (1067, 371, 1154, 376)}, file={'cn': './assets/cn/research_farming/SHIP_EXPERIENCE_COMPLETE_2.png', 'en': './assets/cn/research_farming/SHIP_EXPERIENCE_COMPLETE_2.png', 'jp': './assets/cn/research_farming/SHIP_EXPERIENCE_COMPLETE_2.png', 'tw': './assets/cn/research_farming/SHIP_EXPERIENCE_COMPLETE_2.png'})
|
||||
SHIP_EXPERIENCE_FINISHED_1 = Button(area={'cn': (944, 141, 953, 148), 'en': (944, 141, 953, 148), 'jp': (944, 141, 953, 148), 'tw': (944, 141, 953, 148)}, color={'cn': (190, 105, 96), 'en': (190, 105, 96), 'jp': (190, 105, 96), 'tw': (190, 105, 96)}, button={'cn': (944, 141, 953, 148), 'en': (944, 141, 953, 148), 'jp': (944, 141, 953, 148), 'tw': (944, 141, 953, 148)}, file={'cn': './assets/cn/research_farming/SHIP_EXPERIENCE_FINISHED_1.png', 'en': './assets/cn/research_farming/SHIP_EXPERIENCE_FINISHED_1.png', 'jp': './assets/cn/research_farming/SHIP_EXPERIENCE_FINISHED_1.png', 'tw': './assets/cn/research_farming/SHIP_EXPERIENCE_FINISHED_1.png'})
|
||||
SHIP_EXPERIENCE_FINISHED_2 = Button(area={'cn': (944, 331, 953, 338), 'en': (944, 331, 953, 338), 'jp': (944, 331, 953, 338), 'tw': (944, 331, 953, 338)}, color={'cn': (191, 104, 96), 'en': (191, 104, 96), 'jp': (191, 104, 96), 'tw': (191, 104, 96)}, button={'cn': (944, 331, 953, 338), 'en': (944, 331, 953, 338), 'jp': (944, 331, 953, 338), 'tw': (944, 331, 953, 338)}, file={'cn': './assets/cn/research_farming/SHIP_EXPERIENCE_FINISHED_2.png', 'en': './assets/cn/research_farming/SHIP_EXPERIENCE_FINISHED_2.png', 'jp': './assets/cn/research_farming/SHIP_EXPERIENCE_FINISHED_2.png', 'tw': './assets/cn/research_farming/SHIP_EXPERIENCE_FINISHED_2.png'})
|
||||
SHIP_EXPERIENCE_PERCENT_1 = Button(area={'cn': (949, 182, 1271, 190), 'en': (949, 182, 1271, 190), 'jp': (949, 182, 1271, 190), 'tw': (949, 182, 1271, 190)}, color={'cn': (165, 158, 89), 'en': (165, 158, 89), 'jp': (165, 158, 89), 'tw': (165, 158, 89)}, button={'cn': (949, 182, 1271, 190), 'en': (949, 182, 1271, 190), 'jp': (949, 182, 1271, 190), 'tw': (949, 182, 1271, 190)}, file={'cn': './assets/cn/research_farming/SHIP_EXPERIENCE_PERCENT_1.png', 'en': './assets/cn/research_farming/SHIP_EXPERIENCE_PERCENT_1.png', 'jp': './assets/cn/research_farming/SHIP_EXPERIENCE_PERCENT_1.png', 'tw': './assets/cn/research_farming/SHIP_EXPERIENCE_PERCENT_1.png'})
|
||||
SHIP_EXPERIENCE_PERCENT_2 = Button(area={'cn': (949, 372, 1271, 380), 'en': (949, 372, 1271, 380), 'jp': (949, 372, 1271, 380), 'tw': (949, 372, 1271, 380)}, color={'cn': (165, 158, 89), 'en': (165, 158, 89), 'jp': (165, 158, 89), 'tw': (165, 158, 89)}, button={'cn': (949, 372, 1271, 380), 'en': (949, 372, 1271, 380), 'jp': (949, 372, 1271, 380), 'tw': (949, 372, 1271, 380)}, file={'cn': './assets/cn/research_farming/SHIP_EXPERIENCE_PERCENT_2.png', 'en': './assets/cn/research_farming/SHIP_EXPERIENCE_PERCENT_2.png', 'jp': './assets/cn/research_farming/SHIP_EXPERIENCE_PERCENT_2.png', 'tw': './assets/cn/research_farming/SHIP_EXPERIENCE_PERCENT_2.png'})
|
||||
110
module/research_farming/check_research.py
Normal file
@ -0,0 +1,110 @@
|
||||
from module.base.utils import color_bar_percentage
|
||||
from module.config.deep import deep_get
|
||||
from module.logger import logger
|
||||
from module.base.base import ModuleBase
|
||||
from module.ui.ui import UI
|
||||
from module.ui.page import page_shipyard
|
||||
from module.shipyard.shipyard_reward import RewardShipyard
|
||||
from module.research_farming.assets import (SHIP_EXPERIENCE_PERCENT_1, SHIP_EXPERIENCE_PERCENT_2,
|
||||
SHIP_EXPERIENCE_FINISHED_1, SHIP_EXPERIENCE_FINISHED_2,
|
||||
SHIP_EXPERIENCE_COMPLETE_1, SHIP_EXPERIENCE_COMPLETE_2,
|
||||
SHIP_EXPERIENCE_COMMIT_1, SHIP_EXPERIENCE_COMMIT_2)
|
||||
from datetime import datetime
|
||||
|
||||
|
||||
class ExpHasFinished(Exception):
|
||||
...
|
||||
|
||||
|
||||
class ExpFinished(Exception):
|
||||
...
|
||||
|
||||
|
||||
class ExpNotFinished(Exception):
|
||||
...
|
||||
|
||||
|
||||
class ResearchFarming(UI, ModuleBase):
|
||||
# def _DisableAllResearchFarmTask(self):
|
||||
# for i in range(1, 7):
|
||||
# self.config.modified[f"{self._GetResearchFarmTaskName(i)}.Scheduler.Enable"] = False
|
||||
# self.config.modified["ResearchFarmingSetting.OpsiHazard1ResearchFarming.Enable"] = False
|
||||
# self.config.save(self.config.config_name)
|
||||
|
||||
def _Override(self, Index):
|
||||
if Index == 1:
|
||||
self.SHIP_EXPERIENCE_PERCENT = SHIP_EXPERIENCE_PERCENT_1
|
||||
self.SHIP_EXPERIENCE_FINISHED = SHIP_EXPERIENCE_FINISHED_1
|
||||
self.SHIP_EXPERIENCE_COMPLETE = SHIP_EXPERIENCE_COMPLETE_1
|
||||
self.SHIP_EXPERIENCE_COMMIT = SHIP_EXPERIENCE_COMMIT_1
|
||||
elif Index == 2:
|
||||
self.SHIP_EXPERIENCE_PERCENT = SHIP_EXPERIENCE_PERCENT_2
|
||||
self.SHIP_EXPERIENCE_FINISHED = SHIP_EXPERIENCE_FINISHED_2
|
||||
self.SHIP_EXPERIENCE_COMPLETE = SHIP_EXPERIENCE_COMPLETE_2
|
||||
self.SHIP_EXPERIENCE_COMMIT = SHIP_EXPERIENCE_COMMIT_2
|
||||
|
||||
def _UiGotoTargetShip(self):
|
||||
self.ui_goto(page_shipyard)
|
||||
# Series = deep_get(self.config.data, "ResearchFarmingSetting.ResearchFarmingSetting.ResearchSeries")
|
||||
# Index = deep_get(self.config.data, "ResearchFarmingSetting.ResearchFarmingSetting.ShipIndex")
|
||||
# RewardShipyard(config=self.config, device=self.device).shipyard_set_focus(series=Series, index=Index)
|
||||
|
||||
def _IsSingleFinished(self, Index):
|
||||
self._Override(Index)
|
||||
|
||||
if self.appear(self.SHIP_EXPERIENCE_COMPLETE,offset=(10,15)):
|
||||
logger.info(f"ship's exp {Index} has completed")
|
||||
raise ExpHasFinished
|
||||
|
||||
CurrentPercent = color_bar_percentage(self.device.image, self.SHIP_EXPERIENCE_PERCENT.area, prev_color=(255, 239, 82))
|
||||
if CurrentPercent > 0.99 and self.appear(self.SHIP_EXPERIENCE_FINISHED,offset=(15,15)):
|
||||
logger.info(f"commit ship's exp {Index}")
|
||||
self.ui_click(self.SHIP_EXPERIENCE_FINISHED, check_button=self.SHIP_EXPERIENCE_COMMIT)
|
||||
self.device.sleep(0.5)
|
||||
self.device.click(self.SHIP_EXPERIENCE_COMMIT)
|
||||
logger.info(f"ship's exp {Index} has completed")
|
||||
raise ExpFinished
|
||||
|
||||
self.config.modified["Dashboard.ResearchPercent.Value"] = int((Index-1+CurrentPercent) * 100)
|
||||
self.config.modified["Dashboard.ResearchPercent.Record"] = datetime.now().replace(microsecond=0)
|
||||
|
||||
logger.info(f"ship's exp {Index} not finished,now {(Index-1+CurrentPercent)*100:.2f}%")
|
||||
raise ExpNotFinished
|
||||
|
||||
def _Notify(self, Index):
|
||||
IsPush = deep_get(self.config.data, "Main2.ResearchSetting.OnepushNotify")
|
||||
if IsPush:
|
||||
from module.notify import handle_notify
|
||||
handle_notify(self.config.Error_OnePushConfig,
|
||||
title=f"Alas <{self.config.config_name}>: Research ship's experience finished",
|
||||
content=f"Ship's experience {Index} has finished")
|
||||
|
||||
def CheckResearchShipExperience(self):
|
||||
self.device.screenshot()
|
||||
self._UiGotoTargetShip()
|
||||
|
||||
try:
|
||||
self._IsSingleFinished(1)
|
||||
except ExpHasFinished:
|
||||
pass
|
||||
except ExpFinished:
|
||||
self._Notify(1)
|
||||
return
|
||||
except ExpNotFinished:
|
||||
return
|
||||
|
||||
try:
|
||||
self._IsSingleFinished(2)
|
||||
except (ExpHasFinished, ExpFinished):
|
||||
# self._DisableAllResearchFarmTask()
|
||||
self._Notify(2)
|
||||
except ExpNotFinished:
|
||||
return
|
||||
|
||||
|
||||
def run(self):
|
||||
self.config.task_stop()
|
||||
|
||||
if __name__ == "__main__":
|
||||
self = ResearchFarming('zTTT')
|
||||
self.CheckResearchShipExperience()
|
||||