Merge pull request #533 from LmeSzinc/dev

Bug fix
This commit is contained in:
LmeSzinc 2024-06-19 23:09:47 +08:00 committed by GitHub
commit be3e0699da
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 31 additions and 11 deletions

View File

@ -688,8 +688,8 @@ class ConfigUpdater:
('Dungeon.DungeonDaily.CalyxCrimson', 'Dungeon.DungeonDaily.CalyxCrimson', convert_20_dungeon), ('Dungeon.DungeonDaily.CalyxCrimson', 'Dungeon.DungeonDaily.CalyxCrimson', convert_20_dungeon),
('Rogue.RogueWorld.SimulatedUniverseElite', 'Rogue.RogueWorld.SimulatedUniverseFarm', convert_rogue_farm), ('Rogue.RogueWorld.SimulatedUniverseElite', 'Rogue.RogueWorld.SimulatedUniverseFarm', convert_rogue_farm),
# 2.3 # 2.3
('Dungeon.Planner.Item_Moon_Madness_Fang', 'Dungeon.Planner.Item_Moon_Rage_Fang'), ('Dungeon.Planner.Item_Moon_Madness_Fang', 'Dungeon.Planner.Item_Moon_Rage_Fang',
('Dungeon.Planner.Item_Moon_Madness_Fang.item', 'Dungeon.Planner.Item_Moon_Rage_Fang.item'), convert_Item_Moon_Madness_Fang),
] ]
@cached_property @cached_property

View File

@ -37,3 +37,8 @@ def convert_rogue_farm(value):
value['value'] = 100 - value['value'] value['value'] = 100 - value['value']
value['total'] = 100 value['total'] = 100
return value return value
def convert_Item_Moon_Madness_Fang(value):
if isinstance(value, dict):
value['item'] = 'Moon_Rage_Fang'
return value

View File

@ -319,6 +319,13 @@ class InventoryManager:
self.update() self.update()
def wait_selected(self, skip_first_screenshot=True): def wait_selected(self, skip_first_screenshot=True):
"""
Args:
skip_first_screenshot:
Returns:
bool: If success
"""
timeout = Timer(2, count=6).start() timeout = Timer(2, count=6).start()
while 1: while 1:
if skip_first_screenshot: if skip_first_screenshot:
@ -328,7 +335,7 @@ class InventoryManager:
self.update() self.update()
if self.selected is not None: if self.selected is not None:
break return True
if timeout.reached(): if timeout.reached():
logger.warning('Wait inventory selected timeout') logger.warning('Wait inventory selected timeout')
break return False

View File

@ -511,7 +511,8 @@ class Synthesize(CombatObtain, ItemUI):
row: row:
Returns: Returns:
bool: True if success StoredPlannerProxy: Same row with updated data
or None if failed
""" """
for _ in range(3): for _ in range(3):
logger.hr('Synthesize planner row', level=1) logger.hr('Synthesize planner row', level=1)
@ -523,19 +524,24 @@ class Synthesize(CombatObtain, ItemUI):
self.planner.load_obtained_amount(obtained) self.planner.load_obtained_amount(obtained)
if not row.need_synthesize(): if not row.need_synthesize():
logger.warning('Planner row do not need to synthesize') logger.warning('Planner row do not need to synthesize')
return False return None
# Check current item again # Check current item again
current = self.synthesize_get_item() current = self.synthesize_get_item()
if current.item_group == row.item.item_group: if current.item_group == row.item.item_group:
logger.info('Selected at target item') logger.info('Selected at target item')
return True try:
new = self.planner.rows[row.item.name]
return new
except KeyError:
logger.error(f'synthesize_planner_row_select: row {row} disappeared after updating obtained')
return None
else: else:
logger.warning(f'Item changed after getting obtain, expected: {row.item}, current: {current}') logger.warning(f'Item changed after getting obtain, expected: {row.item}, current: {current}')
continue continue
logger.error('synthesize_planner_row_select failed 3 times') logger.error('synthesize_planner_row_select failed 3 times')
return False return None
def synthesize_planner(self): def synthesize_planner(self):
""" """
@ -548,12 +554,14 @@ class Synthesize(CombatObtain, ItemUI):
logger.hr('Synthesize planner', level=1) logger.hr('Synthesize planner', level=1)
self.ui_ensure(page_synthesize) self.ui_ensure(page_synthesize)
for row in self.planner.rows.values(): # Cache things to iter
rows = list(self.planner.rows.values())
for row in rows:
if not row.need_synthesize(): if not row.need_synthesize():
continue continue
success = self.synthesize_planner_row_select(row) row = self.synthesize_planner_row_select(row)
if not success: if row is None:
continue continue
logger.info(f'Synthesize row: {row}') logger.info(f'Synthesize row: {row}')