1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-03-09 18:39:04 +08:00
AzurLaneAutoScript/module/os/tasks/abyssal.py

57 lines
1.8 KiB
Python
Raw Normal View History

2026-01-17 20:05:51 +08:00
from module.config.utils import get_os_reset_remain
from module.exception import RequestHumanTakeover
from module.logger import logger
from module.os.map import OSMap
class OpsiAbyssal(OSMap):
def delay_abyssal(self, result=True):
"""
Args:
result(bool): If still have obscure coordinates.
"""
if get_os_reset_remain() == 0:
logger.info('Just less than 1 day to OpSi reset, delay 2.5 hours')
self.config.task_delay(minute=150, server_update=True)
self.config.task_stop()
elif not result:
self.config.task_delay(server_update=True)
self.config.task_stop()
def clear_abyssal(self):
"""
Get one abyssal logger in storage,
attack abyssal boss,
repair fleets in port.
Raises:
ActionPointLimit:
TaskEnd: If no more abyssal loggers.
RequestHumanTakeover: If unable to clear boss, fleets exhausted.
"""
logger.hr('OS clear abyssal', level=1)
self.cl1_ap_preserve()
with self.config.temporary(STORY_ALLOW_SKIP=False):
result = self.storage_get_next_item('ABYSSAL', use_logger=self.config.OpsiGeneral_UseLogger)
if not result:
self.delay_abyssal(result=False)
self.config.override(
OpsiGeneral_DoRandomMapEvent=False,
HOMO_EDGE_DETECT=False,
STORY_OPTION=0
)
self.zone_init()
result = self.run_abyssal()
if not result:
raise RequestHumanTakeover
2026-01-20 20:31:15 +08:00
self.handle_fleet_repair_by_config(revert=False)
2026-01-17 20:05:51 +08:00
self.delay_abyssal()
def os_abyssal(self):
while True:
self.clear_abyssal()
self.config.check_task_switch()