0
0
mirror of https://github.com/ok-oldking/ok-wuthering-waves.git synced 2025-06-05 08:25:28 +00:00
firedcto@gmail.com 1f2de04f01 修复F2打不开书
修复boss传送不了
2024-11-14 22:42:43 +08:00

82 lines
2.9 KiB
Python

import time
from src.char.BaseChar import BaseChar, Priority
class Camellya(BaseChar):
def __init__(self, *args):
super().__init__(*args)
self.last_heavy = 0
def do_get_switch_priority(self, current_char: BaseChar, has_intro=False, target_low_con=False):
if has_intro:
return Priority.MAX - 1
else:
return super().do_get_switch_priority(current_char, has_intro)
def wait_resonance_not_gray(self, timeout=5):
start = time.time()
while self.current_resonance() == 0:
self.click()
self.sleep(0.1)
if time.time() - start > timeout:
self.logger.error('wait wait_resonance_not_gray timed out')
def do_perform(self):
if self.has_intro:
self.continues_normal_attack(1.2)
self.click_liberation()
start_con = self.get_current_con()
if start_con < 0.82:
loop_time = 1.1
else:
loop_time = 4.1
budding_start_time = time.time()
budding = False
full = False
while time.time() - budding_start_time < loop_time or self.task.find_one('camellya_budding', threshold=0.7):
current_con = self.get_current_con()
if (start_con - current_con > 0.1) and not budding:
self.logger.info(f'confull start budding {current_con}')
budding_start_time = time.time()
loop_time = 5.1
budding = True
elif current_con == 1 and not budding and not full:
full = True
loop_time = 1
budding_start_time = time.time()
start_con = current_con
if self.click_liberation():
pass
elif self.click_resonance(send_click=False)[0]:
if self.get_current_con() < 0.82 and not budding:
self.click_echo()
return self.switch_next_char()
else:
self.click(interval=0.1)
self.task.next_frame()
self.check_combat()
if budding:
self.click_resonance()
self.click_echo()
self.switch_next_char()
# def handle_budding(self):
# self.logger.info('camellya_budding start')
# budding_start_time = time.time()
# i = 0
# while time.time() - budding_start_time < 4 or self.task.find_one('camellya_budding', threshold=0.7):
# if self.resonance_available():
# self.send_resonance_key(interval=0.1)
# if self.current_resonance() < 0.7:
# return
# else:
# self.click(interval=0.1)
# i += 1
# self.logger.info(f'camellya_budding end')
# self.click_resonance()
# def switch_next_char(self, *args):
# self.task.screenshot(f'ca_switch_out_{self.current_con}')
# super().switch_next_char(*args)