fix: post-loot seal calibration hops are non-fatal

After Vizier/De Seis are dead, a failed recalibration traverse aborted
the whole Diablo run (threw away two boss kills at 13:43). The seal
stage re-anchors at the pentagram via template loop immediately after,
so just skip the extra loot pass and continue.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
alex
2026-06-10 13:45:51 +02:00
parent a05a13be67
commit 95bd5a76ec

View File

@@ -1076,12 +1076,17 @@ class Hammerdin(Paladin):
wait(0.3, 1.2)
### LOOT ###
self._picked_up_items |= self._pickit.pick_up_items(self)
if not self._pather.traverse_nodes([612], self): return False # , timeout=3):
if self._skill_hotkeys["redemption"]:
keyboard.send(self._skill_hotkeys["redemption"])
wait(0.3, 0.6)
self._picked_up_items |= self._pickit.pick_up_items(self)
if not self._pather.traverse_nodes([612], self): return False # , timeout=3): # recalibrate after loot
# Post-loot calibration is NON-FATAL: Vizier is dead; the pentagram
# template loop right after re-anchors position.
if self._pather.traverse_nodes([612], self):
if self._skill_hotkeys["redemption"]:
keyboard.send(self._skill_hotkeys["redemption"])
wait(0.3, 0.6)
self._picked_up_items |= self._pickit.pick_up_items(self)
if not self._pather.traverse_nodes([612], self):
Logger.warning("A1-L: post-loot recalibration failed — continuing to pentagram loop")
else:
Logger.warning("A1-L: post-loot calibration failed — skipping extra loot pass")
elif seal_layout == "A2-Y":
### APPROACH ###
@@ -1124,7 +1129,10 @@ class Hammerdin(Paladin):
keyboard.send(self._skill_hotkeys["redemption"])
wait(0.3, 0.6)
self._picked_up_items |= self._pickit.pick_up_items(self)
if not self._pather.traverse_nodes([622], self): return False # , timeout=3): #recalibrate after loot
# Post-loot recalibration is NON-FATAL: Vizier is dead; the pentagram
# template loop right after re-anchors position.
if not self._pather.traverse_nodes([622], self):
Logger.warning("A2-Y: post-loot recalibration failed — continuing to pentagram loop")
else:
Logger.warning(seal_layout + ": Invalid location for kill_deseis("+ seal_layout +"), should not happen.")
@@ -1213,12 +1221,17 @@ class Hammerdin(Paladin):
#if Config().general["info_screenshots"]: cv2.imwrite(f"./log/screenshots/info/info_check_deseis_dead" + seal_layout + "_" + time.strftime("%Y%m%d_%H%M%S") + ".png", grab())
### LOOT ###
self._picked_up_items |= self._pickit.pick_up_items(self)
if not self._pather.traverse_nodes([641], self): return False # , timeout=3):
if not self._pather.traverse_nodes([646], self): return False # , timeout=3):
self._picked_up_items |= self._pickit.pick_up_items(self)
if not self._pather.traverse_nodes([646], self): return False # , timeout=3):
if not self._pather.traverse_nodes([640], self): return False # , timeout=3):
self._picked_up_items |= self._pickit.pick_up_items(self)
# Post-loot calibration hops are NON-FATAL: De Seis is already dead and
# the seal stage re-anchors at the pentagram via template loop right
# after. Aborting the run here threw away two dead bosses (2026-06-10).
if self._pather.traverse_nodes([641], self) and self._pather.traverse_nodes([646], self):
self._picked_up_items |= self._pickit.pick_up_items(self)
if self._pather.traverse_nodes([646], self) and self._pather.traverse_nodes([640], self):
self._picked_up_items |= self._pickit.pick_up_items(self)
else:
Logger.warning("B2-U: post-loot calibration hop failed — skipping last loot pass")
else:
Logger.warning("B2-U: post-loot calibration hop failed — skipping extra loot passes")
else:
Logger.warning(seal_layout + ": Invalid location for kill_deseis("+ seal_layout +"), should not happen.")