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),
('Rogue.RogueWorld.SimulatedUniverseElite', 'Rogue.RogueWorld.SimulatedUniverseFarm', convert_rogue_farm),
# 2.3
('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'),
('Dungeon.Planner.Item_Moon_Madness_Fang', 'Dungeon.Planner.Item_Moon_Rage_Fang',
convert_Item_Moon_Madness_Fang),
]
@cached_property

View File

@ -37,3 +37,8 @@ def convert_rogue_farm(value):
value['value'] = 100 - value['value']
value['total'] = 100
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()
def wait_selected(self, skip_first_screenshot=True):
"""
Args:
skip_first_screenshot:
Returns:
bool: If success
"""
timeout = Timer(2, count=6).start()
while 1:
if skip_first_screenshot:
@ -328,7 +335,7 @@ class InventoryManager:
self.update()
if self.selected is not None:
break
return True
if timeout.reached():
logger.warning('Wait inventory selected timeout')
break
return False

View File

@ -511,7 +511,8 @@ class Synthesize(CombatObtain, ItemUI):
row:
Returns:
bool: True if success
StoredPlannerProxy: Same row with updated data
or None if failed
"""
for _ in range(3):
logger.hr('Synthesize planner row', level=1)
@ -523,19 +524,24 @@ class Synthesize(CombatObtain, ItemUI):
self.planner.load_obtained_amount(obtained)
if not row.need_synthesize():
logger.warning('Planner row do not need to synthesize')
return False
return None
# Check current item again
current = self.synthesize_get_item()
if current.item_group == row.item.item_group:
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:
logger.warning(f'Item changed after getting obtain, expected: {row.item}, current: {current}')
continue
logger.error('synthesize_planner_row_select failed 3 times')
return False
return None
def synthesize_planner(self):
"""
@ -548,12 +554,14 @@ class Synthesize(CombatObtain, ItemUI):
logger.hr('Synthesize planner', level=1)
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():
continue
success = self.synthesize_planner_row_select(row)
if not success:
row = self.synthesize_planner_row_select(row)
if row is None:
continue
logger.info(f'Synthesize row: {row}')