mirror of
https://gitee.com/sui-feng-cb/AzurLaneAutoScript1
synced 2026-05-13 13:22:34 +08:00
@@ -85,8 +85,15 @@ class HPBalancer(ModuleBase):
|
|||||||
Logs:
|
Logs:
|
||||||
[HP] 98% ____ ____ 98% 98% 98%
|
[HP] 98% ____ ____ 98% 98% 98%
|
||||||
"""
|
"""
|
||||||
|
# Chinese comma
|
||||||
|
weight = self.config.HpControl_HpBalanceWeight
|
||||||
|
if ',' in self.config.HpControl_HpBalanceWeight:
|
||||||
|
weight = self.config.HpControl_HpBalanceWeight.replace(',', ',')
|
||||||
|
logger.info(f'HpControl_HpBalanceWeight {self.config.HpControl_HpBalanceWeight} is revised to {weight}')
|
||||||
|
self.config.HpControl_HpBalanceWeight = weight
|
||||||
|
|
||||||
hp = [self._calculate_hp(button.area) for button in self._hp_grid().buttons]
|
hp = [self._calculate_hp(button.area) for button in self._hp_grid().buttons]
|
||||||
weight = to_list(self.config.HpControl_HpBalanceWeight)
|
weight = to_list(weight)
|
||||||
scout = np.array(hp[3:]) * np.array(weight) / np.max(weight)
|
scout = np.array(hp[3:]) * np.array(weight) / np.max(weight)
|
||||||
|
|
||||||
self.hp = hp[:3] + scout.tolist()
|
self.hp = hp[:3] + scout.tolist()
|
||||||
|
|||||||
@@ -70,6 +70,11 @@ class ConnectionAttr:
|
|||||||
"""
|
"""
|
||||||
serial check
|
serial check
|
||||||
"""
|
"""
|
||||||
|
# Chinese colon
|
||||||
|
if ':' in self.serial:
|
||||||
|
self.serial = self.serial.replace(':', ':')
|
||||||
|
logger.warning(f'Serial {self.config.Emulator_Serial} is revised to {self.serial}')
|
||||||
|
self.config.Emulator_Serial = self.serial
|
||||||
if self.is_bluestacks4_hyperv:
|
if self.is_bluestacks4_hyperv:
|
||||||
self.serial = self.find_bluestacks4_hyperv(self.serial)
|
self.serial = self.find_bluestacks4_hyperv(self.serial)
|
||||||
if self.is_bluestacks5_hyperv:
|
if self.is_bluestacks5_hyperv:
|
||||||
|
|||||||
@@ -332,6 +332,8 @@ class RewardDorm(UI):
|
|||||||
continue
|
continue
|
||||||
if self.handle_popup_cancel('DORM_FEED'):
|
if self.handle_popup_cancel('DORM_FEED'):
|
||||||
continue
|
continue
|
||||||
|
if self.ui_additional():
|
||||||
|
continue
|
||||||
|
|
||||||
def dorm_run(self, feed=True, collect=True):
|
def dorm_run(self, feed=True, collect=True):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -140,13 +140,23 @@ class Equipment(StorageHandler):
|
|||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def _equip_take_off_one(self):
|
def _equip_take_off_one(self, skip_first_screenshot=True):
|
||||||
bar_timer = Timer(5)
|
bar_timer = Timer(5)
|
||||||
off_timer = Timer(5)
|
off_timer = Timer(5)
|
||||||
confirm_timer = Timer(5)
|
confirm_timer = Timer(5)
|
||||||
|
|
||||||
while 1:
|
while 1:
|
||||||
self.device.screenshot()
|
if skip_first_screenshot:
|
||||||
|
self.device.screenshot()
|
||||||
|
else:
|
||||||
|
skip_first_screenshot = False
|
||||||
|
|
||||||
|
# End
|
||||||
|
# if self.handle_info_bar():
|
||||||
|
# break
|
||||||
|
if off_timer.started() and self.info_bar_count():
|
||||||
|
break
|
||||||
|
|
||||||
if bar_timer.reached() and not self.appear(EQUIP_1, offset=10):
|
if bar_timer.reached() and not self.appear(EQUIP_1, offset=10):
|
||||||
self.device.click(EQUIPMENT_OPEN)
|
self.device.click(EQUIPMENT_OPEN)
|
||||||
bar_timer.reset()
|
bar_timer.reset()
|
||||||
@@ -162,12 +172,6 @@ class Equipment(StorageHandler):
|
|||||||
if self.handle_storage_full():
|
if self.handle_storage_full():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# End
|
|
||||||
# if self.handle_info_bar():
|
|
||||||
# break
|
|
||||||
if off_timer.started() and self.info_bar_count():
|
|
||||||
break
|
|
||||||
|
|
||||||
def equipment_take_off(self, enter, out, fleet):
|
def equipment_take_off(self, enter, out, fleet):
|
||||||
"""
|
"""
|
||||||
Args:
|
Args:
|
||||||
@@ -189,12 +193,21 @@ class Equipment(StorageHandler):
|
|||||||
self.ui_back(out)
|
self.ui_back(out)
|
||||||
self.equipment_has_take_on = False
|
self.equipment_has_take_on = False
|
||||||
|
|
||||||
def _equip_take_on_one(self, index):
|
def _equip_take_on_one(self, index, skip_first_screenshot=True):
|
||||||
bar_timer = Timer(5)
|
bar_timer = Timer(5)
|
||||||
on_timer = Timer(5)
|
on_timer = Timer(5)
|
||||||
|
|
||||||
while 1:
|
while 1:
|
||||||
self.device.screenshot()
|
if skip_first_screenshot:
|
||||||
|
self.device.screenshot()
|
||||||
|
else:
|
||||||
|
skip_first_screenshot = False
|
||||||
|
|
||||||
|
# End
|
||||||
|
# if self.handle_info_bar():
|
||||||
|
# break
|
||||||
|
if on_timer.started() and self.info_bar_count():
|
||||||
|
break
|
||||||
|
|
||||||
if bar_timer.reached() and not self.appear(EQUIP_1, offset=10):
|
if bar_timer.reached() and not self.appear(EQUIP_1, offset=10):
|
||||||
self.device.click(EQUIPMENT_OPEN)
|
self.device.click(EQUIPMENT_OPEN)
|
||||||
@@ -213,12 +226,6 @@ class Equipment(StorageHandler):
|
|||||||
on_timer.reset()
|
on_timer.reset()
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# End
|
|
||||||
# if self.handle_info_bar():
|
|
||||||
# break
|
|
||||||
if on_timer.started() and self.info_bar_count():
|
|
||||||
break
|
|
||||||
|
|
||||||
def equipment_take_on(self, enter, out, fleet):
|
def equipment_take_on(self, enter, out, fleet):
|
||||||
"""
|
"""
|
||||||
Args:
|
Args:
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
from module.base.button import Button
|
from module.base.button import Button
|
||||||
from module.base.decorator import run_once
|
from module.base.decorator import run_once
|
||||||
from module.base.timer import Timer
|
from module.base.timer import Timer
|
||||||
from module.freebies.assets import PURCHASE_POPUP
|
|
||||||
from module.combat.assets import GET_ITEMS_1, GET_SHIP
|
from module.combat.assets import GET_ITEMS_1, GET_SHIP
|
||||||
from module.exception import (GameNotRunningError, GamePageUnknownError,
|
from module.exception import (GameNotRunningError, GamePageUnknownError,
|
||||||
RequestHumanTakeover)
|
RequestHumanTakeover)
|
||||||
|
from module.exercise.assets import EXERCISE_PREPARATION
|
||||||
|
from module.freebies.assets import PURCHASE_POPUP
|
||||||
from module.handler.assets import (AUTO_SEARCH_MENU_EXIT, BATTLE_PASS_NOTICE,
|
from module.handler.assets import (AUTO_SEARCH_MENU_EXIT, BATTLE_PASS_NOTICE,
|
||||||
GAME_TIPS, LOGIN_ANNOUNCE,
|
GAME_TIPS, LOGIN_ANNOUNCE,
|
||||||
LOGIN_CHECK, LOGIN_RETURN_SIGN,
|
LOGIN_CHECK, LOGIN_RETURN_SIGN,
|
||||||
@@ -189,7 +190,7 @@ class UI(InfoHandler):
|
|||||||
def rotation_check():
|
def rotation_check():
|
||||||
self.device.get_orientation()
|
self.device.get_orientation()
|
||||||
|
|
||||||
timeout = Timer(5, count=10).start()
|
timeout = Timer(10, count=20).start()
|
||||||
while 1:
|
while 1:
|
||||||
if skip_first_screenshot:
|
if skip_first_screenshot:
|
||||||
skip_first_screenshot = False
|
skip_first_screenshot = False
|
||||||
@@ -550,6 +551,12 @@ class UI(InfoHandler):
|
|||||||
if self.appear_then_click(LOGIN_CHECK, offset=(30, 30), interval=3):
|
if self.appear_then_click(LOGIN_CHECK, offset=(30, 30), interval=3):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
# Mistaken click
|
||||||
|
if self.appear(EXERCISE_PREPARATION, interval=3):
|
||||||
|
logger.info(f'UI additional: {EXERCISE_PREPARATION} -> {GOTO_MAIN}')
|
||||||
|
self.device.click(GOTO_MAIN)
|
||||||
|
return True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def ui_button_interval_reset(self, button):
|
def ui_button_interval_reset(self, button):
|
||||||
|
|||||||
Reference in New Issue
Block a user