mirror of
https://github.com/LmeSzinc/StarRailCopilot.git
synced 2024-11-25 18:05:26 +00:00
commit
be3e0699da
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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}')
|
||||
|
Loading…
Reference in New Issue
Block a user