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),
|
('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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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}')
|
||||||
|
Loading…
Reference in New Issue
Block a user