mirror of
https://github.com/LmeSzinc/StarRailCopilot.git
synced 2024-11-27 02:27:12 +00:00
Add: 支持在战斗中召唤潜艇
This commit is contained in:
parent
17d37d3048
commit
677757ecfc
BIN
assets/combat/SUBMARINE_AVAILABLE_CHECK_1.png
Normal file
BIN
assets/combat/SUBMARINE_AVAILABLE_CHECK_1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.4 KiB |
BIN
assets/combat/SUBMARINE_AVAILABLE_CHECK_2.png
Normal file
BIN
assets/combat/SUBMARINE_AVAILABLE_CHECK_2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.4 KiB |
BIN
assets/combat/SUBMARINE_CALLED.png
Normal file
BIN
assets/combat/SUBMARINE_CALLED.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.4 KiB |
BIN
assets/combat/SUBMARINE_READY.png
Normal file
BIN
assets/combat/SUBMARINE_READY.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 5.4 KiB |
@ -21,3 +21,7 @@ GET_MISSION = Button(area=(553, 482, 727, 539), color=(93, 142, 203), button=(55
|
|||||||
GET_SHIP = Button(area=(1104, 610, 1110, 630), color=(255, 255, 255), button=(1000, 631, 1055, 689), file='./assets/combat/GET_SHIP.png')
|
GET_SHIP = Button(area=(1104, 610, 1110, 630), color=(255, 255, 255), button=(1000, 631, 1055, 689), file='./assets/combat/GET_SHIP.png')
|
||||||
LOADING_BAR = Button(area=(33, 676, 1247, 680), color=(172, 205, 232), button=(33, 676, 1247, 680), file='./assets/combat/LOADING_BAR.png')
|
LOADING_BAR = Button(area=(33, 676, 1247, 680), color=(172, 205, 232), button=(33, 676, 1247, 680), file='./assets/combat/LOADING_BAR.png')
|
||||||
PAUSE = Button(area=(1236, 37, 1244, 59), color=(247, 243, 247), button=(1162, 34, 1246, 61), file='./assets/combat/PAUSE.png')
|
PAUSE = Button(area=(1236, 37, 1244, 59), color=(247, 243, 247), button=(1162, 34, 1246, 61), file='./assets/combat/PAUSE.png')
|
||||||
|
SUBMARINE_AVAILABLE_CHECK_1 = Button(area=(707, 660, 712, 665), color=(255, 255, 255), button=(707, 660, 712, 665), file='./assets/combat/SUBMARINE_AVAILABLE_CHECK_1.png')
|
||||||
|
SUBMARINE_AVAILABLE_CHECK_2 = Button(area=(790, 631, 795, 641), color=(255, 255, 255), button=(790, 631, 795, 641), file='./assets/combat/SUBMARINE_AVAILABLE_CHECK_2.png')
|
||||||
|
SUBMARINE_CALLED = Button(area=(737, 608, 750, 626), color=(132, 134, 132), button=(737, 608, 750, 626), file='./assets/combat/SUBMARINE_CALLED.png')
|
||||||
|
SUBMARINE_READY = Button(area=(737, 608, 752, 625), color=(255, 251, 255), button=(737, 608, 752, 625), file='./assets/combat/SUBMARINE_READY.png')
|
||||||
|
@ -3,6 +3,7 @@ from module.base.utils import color_bar_percentage
|
|||||||
from module.combat.assets import *
|
from module.combat.assets import *
|
||||||
from module.combat.emotion import Emotion
|
from module.combat.emotion import Emotion
|
||||||
from module.combat.hp_balancer import HPBalancer
|
from module.combat.hp_balancer import HPBalancer
|
||||||
|
from module.combat.submarine import SubmarineCall
|
||||||
from module.handler.enemy_searching import EnemySearchingHandler
|
from module.handler.enemy_searching import EnemySearchingHandler
|
||||||
from module.handler.urgent_commission import UrgentCommissionHandler
|
from module.handler.urgent_commission import UrgentCommissionHandler
|
||||||
from module.logger import logger
|
from module.logger import logger
|
||||||
@ -12,7 +13,7 @@ from module.retire.retirement import Retirement
|
|||||||
from module.ui.assets import BACK_ARROW
|
from module.ui.assets import BACK_ARROW
|
||||||
|
|
||||||
|
|
||||||
class Combat(HPBalancer, UrgentCommissionHandler, EnemySearchingHandler, Retirement):
|
class Combat(HPBalancer, UrgentCommissionHandler, EnemySearchingHandler, Retirement, SubmarineCall):
|
||||||
_automation_set_timer = Timer(1)
|
_automation_set_timer = Timer(1)
|
||||||
_emotion: Emotion
|
_emotion: Emotion
|
||||||
|
|
||||||
@ -163,6 +164,7 @@ class Combat(HPBalancer, UrgentCommissionHandler, EnemySearchingHandler, Retirem
|
|||||||
save_get_items (bool)
|
save_get_items (bool)
|
||||||
"""
|
"""
|
||||||
logger.info('Combat execute')
|
logger.info('Combat execute')
|
||||||
|
self.submarine_call_reset()
|
||||||
confirm_timer = Timer(10)
|
confirm_timer = Timer(10)
|
||||||
confirm_timer.start()
|
confirm_timer.start()
|
||||||
|
|
||||||
@ -174,6 +176,9 @@ class Combat(HPBalancer, UrgentCommissionHandler, EnemySearchingHandler, Retirem
|
|||||||
|
|
||||||
if call_submarine_at_boss:
|
if call_submarine_at_boss:
|
||||||
pass
|
pass
|
||||||
|
else:
|
||||||
|
if self.handle_submarine_call():
|
||||||
|
continue
|
||||||
|
|
||||||
# End
|
# End
|
||||||
# if self.appear_then_click(BATTLE_STATUS):
|
# if self.appear_then_click(BATTLE_STATUS):
|
||||||
|
40
module/combat/submarine.py
Normal file
40
module/combat/submarine.py
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
from module.base.base import ModuleBase
|
||||||
|
from module.combat.assets import *
|
||||||
|
from module.base.timer import Timer
|
||||||
|
from module.logger import logger
|
||||||
|
|
||||||
|
|
||||||
|
class SubmarineCall(ModuleBase):
|
||||||
|
submarine_call_flag = False
|
||||||
|
submarine_call_timer = Timer(5)
|
||||||
|
|
||||||
|
def submarine_call_reset(self):
|
||||||
|
"""
|
||||||
|
Call this method after in battle_execute.
|
||||||
|
"""
|
||||||
|
self.submarine_call_timer.reset()
|
||||||
|
self.submarine_call_flag = False
|
||||||
|
|
||||||
|
def handle_submarine_call(self):
|
||||||
|
"""
|
||||||
|
Returns:
|
||||||
|
bool: If call.
|
||||||
|
"""
|
||||||
|
if not self.config.SUBMARINE or self.config.SUBMARINE_MODE in ['do_not_use', 'hunt_only']:
|
||||||
|
return False
|
||||||
|
if self.submarine_call_flag:
|
||||||
|
return False
|
||||||
|
if self.submarine_call_timer.reached():
|
||||||
|
logger.info('Submarine call timer reached')
|
||||||
|
self.submarine_call_flag = True
|
||||||
|
return False
|
||||||
|
if not self.appear(SUBMARINE_AVAILABLE_CHECK_1) or not self.appear(SUBMARINE_AVAILABLE_CHECK_2):
|
||||||
|
return False
|
||||||
|
if self.appear(SUBMARINE_CALLED):
|
||||||
|
logger.info('Submarine called')
|
||||||
|
self.submarine_call_flag = True
|
||||||
|
return False
|
||||||
|
|
||||||
|
if self.appear_then_click(SUBMARINE_READY, interval=1):
|
||||||
|
logger.info('Call submarine')
|
||||||
|
return True
|
@ -109,7 +109,7 @@ def main(ini_name=''):
|
|||||||
f3.add_argument('--舰队阵型3', default=default('--舰队阵型3'), choices=['单纵阵', '复纵阵', '轮形阵'])
|
f3.add_argument('--舰队阵型3', default=default('--舰队阵型3'), choices=['单纵阵', '复纵阵', '轮形阵'])
|
||||||
|
|
||||||
# 潜艇设置
|
# 潜艇设置
|
||||||
submarine = setting_parser.add_argument_group('潜艇设置', '暂不支持潜艇, 最好避免潜艇进图')
|
submarine = setting_parser.add_argument_group('潜艇设置', '仅支持: 不使用, 仅狩猎, 每战出击')
|
||||||
submarine.add_argument('--舰队编号4', default=default('--舰队编号4'), choices=['不使用', '1', '2'])
|
submarine.add_argument('--舰队编号4', default=default('--舰队编号4'), choices=['不使用', '1', '2'])
|
||||||
submarine.add_argument('--潜艇出击方案', default=default('--潜艇出击方案'), choices=['不使用', '仅狩猎', '每战出击', '空弹出击', 'BOSS战出击', 'BOSS战BOSS出现后召唤'])
|
submarine.add_argument('--潜艇出击方案', default=default('--潜艇出击方案'), choices=['不使用', '仅狩猎', '每战出击', '空弹出击', 'BOSS战出击', 'BOSS战BOSS出现后召唤'])
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user