mirror of
https://github.com/0O0o0oOoO00/Alas.git
synced 2026-05-14 13:49:26 +08:00
Add: Meta record
This commit is contained in:
@@ -37,6 +37,7 @@
|
||||
"ResearchRecord": "do_not",
|
||||
"CommissionRecord": "do_not",
|
||||
"CombatRecord": "do_not",
|
||||
"MetaRecord": "do_not",
|
||||
"OpsiRecord": "do_not",
|
||||
"MeowfficerBuy": "do_not",
|
||||
"MeowfficerTalent": "do_not"
|
||||
|
||||
@@ -275,6 +275,14 @@
|
||||
"save"
|
||||
]
|
||||
},
|
||||
"MetaRecord": {
|
||||
"type": "select",
|
||||
"value": "do_not",
|
||||
"option": [
|
||||
"do_not",
|
||||
"save"
|
||||
]
|
||||
},
|
||||
"OpsiRecord": {
|
||||
"type": "select",
|
||||
"value": "do_not",
|
||||
|
||||
@@ -114,6 +114,9 @@ DropRecord:
|
||||
CombatRecord:
|
||||
value: do_not
|
||||
option: [ do_not, save ]
|
||||
MetaRecord:
|
||||
value: do_not
|
||||
option: [ do_not, save ]
|
||||
OpsiRecord:
|
||||
value: do_not
|
||||
option: [ do_not, save, upload, save_and_upload ]
|
||||
|
||||
@@ -54,6 +54,7 @@ class GeneratedConfig:
|
||||
DropRecord_ResearchRecord = 'do_not' # do_not, save, upload, save_and_upload
|
||||
DropRecord_CommissionRecord = 'do_not' # do_not, save, upload, save_and_upload
|
||||
DropRecord_CombatRecord = 'do_not' # do_not, save
|
||||
DropRecord_MetaRecord = 'do_not' # do_not, save
|
||||
DropRecord_OpsiRecord = 'do_not' # do_not, save, upload, save_and_upload
|
||||
DropRecord_MeowfficerBuy = 'do_not' # do_not, save
|
||||
DropRecord_MeowfficerTalent = 'do_not' # do_not, save, upload, save_and_upload
|
||||
|
||||
@@ -612,6 +612,12 @@
|
||||
"do_not": "Do nothing",
|
||||
"save": "Save"
|
||||
},
|
||||
"MetaRecord": {
|
||||
"name": "Meta Record",
|
||||
"help": "",
|
||||
"do_not": "Do nothing",
|
||||
"save": "Save"
|
||||
},
|
||||
"OpsiRecord": {
|
||||
"name": "OpSi Record",
|
||||
"help": "",
|
||||
|
||||
@@ -612,6 +612,12 @@
|
||||
"do_not": "do_not",
|
||||
"save": "save"
|
||||
},
|
||||
"MetaRecord": {
|
||||
"name": "DropRecord.MetaRecord.name",
|
||||
"help": "DropRecord.MetaRecord.help",
|
||||
"do_not": "do_not",
|
||||
"save": "save"
|
||||
},
|
||||
"OpsiRecord": {
|
||||
"name": "DropRecord.OpsiRecord.name",
|
||||
"help": "DropRecord.OpsiRecord.help",
|
||||
|
||||
@@ -612,6 +612,12 @@
|
||||
"do_not": "无操作",
|
||||
"save": "保存"
|
||||
},
|
||||
"MetaRecord": {
|
||||
"name": "Meta结算截图",
|
||||
"help": "启用后会放缓结算时的点击速度",
|
||||
"do_not": "无操作",
|
||||
"save": "保存"
|
||||
},
|
||||
"OpsiRecord": {
|
||||
"name": "大世界掉落截图",
|
||||
"help": "",
|
||||
|
||||
@@ -612,6 +612,12 @@
|
||||
"do_not": "無操作",
|
||||
"save": "保存"
|
||||
},
|
||||
"MetaRecord": {
|
||||
"name": "DropRecord.MetaRecord.name",
|
||||
"help": "DropRecord.MetaRecord.help",
|
||||
"do_not": "do_not",
|
||||
"save": "save"
|
||||
},
|
||||
"OpsiRecord": {
|
||||
"name": "大世界掉落截圖",
|
||||
"help": "",
|
||||
|
||||
@@ -2,6 +2,7 @@ from datetime import datetime, timedelta
|
||||
|
||||
import module.config.server as server
|
||||
|
||||
from module.base.timer import Timer
|
||||
from module.base.utils import image_left_strip
|
||||
from module.combat.combat import BATTLE_PREPARATION, Combat
|
||||
from module.config.utils import DEFAULT_TIME
|
||||
@@ -11,6 +12,7 @@ from module.os_ash.assets import *
|
||||
from module.os_handler.map_event import MapEventHandler
|
||||
from module.ui.assets import BACK_ARROW
|
||||
from module.ui.ui import UI
|
||||
from module.statistics.azurstats import DropImage
|
||||
|
||||
|
||||
class DailyDigitCounter(DigitCounter):
|
||||
@@ -37,7 +39,9 @@ class AshCombat(Combat):
|
||||
return False
|
||||
if self.appear(BATTLE_STATUS, offset=(120, 20), interval=self.battle_status_click_interval):
|
||||
if drop:
|
||||
drop.handle_add(self)
|
||||
self.device.sleep(3)
|
||||
self.device.screenshot()
|
||||
drop.add(self.device.image)
|
||||
else:
|
||||
self.device.sleep((0.25, 0.5))
|
||||
self.device.click(BATTLE_STATUS)
|
||||
@@ -45,7 +49,7 @@ class AshCombat(Combat):
|
||||
if self.appear(BATTLE_PREPARATION, offset=(30, 30), interval=2):
|
||||
self.device.click(BACK_ARROW)
|
||||
return True
|
||||
if super().handle_battle_status(drop=drop):
|
||||
if super().handle_battle_status():
|
||||
return True
|
||||
|
||||
return False
|
||||
@@ -77,9 +81,68 @@ class AshCombat(Combat):
|
||||
|
||||
return False
|
||||
|
||||
def combat(self, *args, expected_end=None, **kwargs):
|
||||
def combat_execute(self, auto='combat_auto', submarine='do_not_use', drop=None):
|
||||
"""
|
||||
Args:
|
||||
auto (str): ['combat_auto', 'combat_manual', 'stand_still_in_the_middle', 'hide_in_bottom_left']
|
||||
submarine (str): ['do_not_use', 'hunt_only', 'every_combat']
|
||||
drop (DropImage):
|
||||
"""
|
||||
logger.info('Combat execute')
|
||||
auto = 'combat_auto'
|
||||
self.submarine_call_reset()
|
||||
self.combat_auto_reset()
|
||||
self.combat_manual_reset()
|
||||
self.device.stuck_record_clear()
|
||||
self.device.click_record_clear()
|
||||
confirm_timer = Timer(10)
|
||||
confirm_timer.start()
|
||||
|
||||
while 1:
|
||||
self.device.screenshot()
|
||||
|
||||
if not confirm_timer.reached():
|
||||
if self.handle_combat_automation_confirm():
|
||||
continue
|
||||
|
||||
if self.handle_story_skip():
|
||||
continue
|
||||
if self.handle_combat_auto(auto):
|
||||
continue
|
||||
if self.handle_combat_manual(auto):
|
||||
continue
|
||||
if auto != 'combat_auto' and self.auto_mode_checked and self.is_combat_executing():
|
||||
if self.handle_combat_weapon_release():
|
||||
continue
|
||||
if self.handle_submarine_call(submarine):
|
||||
continue
|
||||
if self.handle_popup_confirm('COMBAT_EXECUTE'):
|
||||
continue
|
||||
|
||||
# End
|
||||
if self.handle_get_items():
|
||||
self.device.sleep((0.5,0.75))
|
||||
continue
|
||||
if self.handle_battle_status(drop=drop):
|
||||
break
|
||||
|
||||
def combat(self, balance_hp=None, emotion_reduce=None, auto_mode="combat_auto", submarine_mode=None,
|
||||
save_get_items=None, expected_end=None, fleet_index=1):
|
||||
try:
|
||||
super().combat(*args, expected_end=expected_end, **kwargs)
|
||||
with self.stat.new(
|
||||
genre="meta", method=self.config.DropRecord_MetaRecord
|
||||
) as drop:
|
||||
if save_get_items is False:
|
||||
drop = None
|
||||
elif isinstance(save_get_items, DropImage):
|
||||
drop = save_get_items
|
||||
self.combat_preparation(
|
||||
balance_hp=balance_hp, emotion_reduce=emotion_reduce, auto=auto_mode, fleet_index=fleet_index)
|
||||
self.combat_execute(drop=drop,
|
||||
auto=auto_mode, submarine=submarine_mode)
|
||||
self.combat_status(expected_end=expected_end)
|
||||
|
||||
logger.info('Combat end.')
|
||||
except AshBeaconFinished:
|
||||
pass
|
||||
|
||||
|
||||
@@ -156,7 +156,11 @@ class OpsiAshBeacon(Meta):
|
||||
|
||||
# Attack
|
||||
combat = AshCombat(config=self.config, device=self.device)
|
||||
combat.combat(expected_end=expected_end, save_get_items=False, emotion_reduce=False)
|
||||
if self.config.DropRecord_MetaRecord == "save":
|
||||
_save = True
|
||||
else:
|
||||
_save = False
|
||||
combat.combat(expected_end=expected_end, save_get_items=_save, emotion_reduce=False)
|
||||
|
||||
def _handle_ash_beacon_reward(self, skip_first_screenshot=True):
|
||||
"""
|
||||
@@ -548,7 +552,11 @@ class AshBeaconAssist(Meta):
|
||||
|
||||
# Attack
|
||||
combat = AshCombat(config=self.config, device=self.device)
|
||||
combat.combat(expected_end=expected_end, save_get_items=False, emotion_reduce=False)
|
||||
if self.config.DropRecord_MetaRecord == "save":
|
||||
_save = True
|
||||
else:
|
||||
_save = False
|
||||
combat.combat(expected_end=expected_end, save_get_items=_save, emotion_reduce=False)
|
||||
|
||||
def _ensure_meta_level(self):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user