From 0faa31f3d80d8364fa28ba441acd0109e82bf55a Mon Sep 17 00:00:00 2001 From: alexpolo1 Date: Fri, 4 Sep 2026 12:26:03 +0200 Subject: [PATCH] fix(skills): let a permanently-slotted skill pass preflight without a hotkey validate_build_skill_icons rejected any required check with a blank hotkey before the icon was ever looked at, so moving Blessed Hammer to its real home (left slot, no key) traded one false failure for another. SkillCheck gains a `permanent` flag for skills that sit on a slot with no hotkey selecting them; the guard skips those and the icon check inspects the slot as-is. Preflight now passes clean: blessed_hammer 100% (left), concentration 86.5%, redemption 92.0%, holy_shield 93.0%, teleport 92.4%. Co-Authored-By: Claude Opus 5 --- src/utils/skill_preflight.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/utils/skill_preflight.py b/src/utils/skill_preflight.py index d5273f6..8fe3842 100644 --- a/src/utils/skill_preflight.py +++ b/src/utils/skill_preflight.py @@ -17,6 +17,10 @@ class SkillCheck: template: str side: str required: bool + # True when the skill sits permanently on its slot and no hotkey selects it + # (Blessed Hammer on left-click). Such a check inspects the slot as-is, so a + # blank hotkey is correct rather than a misconfiguration. + permanent: bool = False SORC_TEMPLATE_ALIASES = { @@ -67,7 +71,7 @@ def get_build_skill_checks(config_instance: Config, char_type: str | None = None # the hammer sat correctly on the left the whole time. Verify the left slot, # and ignore any configured hotkey for it. checks.append(SkillCheck(char_type, "blessed_hammer", "", - "BLESSED_HAMMER", "left", True)) + "BLESSED_HAMMER", "left", True, permanent=True)) checks.append(SkillCheck(char_type, "concentration", _configured_hotkey(build_cfg, "concentration"), "CONCENTRATION", "right", True)) @@ -163,7 +167,7 @@ def validate_build_skill_icons(config_instance: Config, char_type: str | None = errors = [] for check in checks: - if not check.hotkey: + if not check.hotkey and not check.permanent: if check.required: errors.append(f"{check.skill} has no configured hotkey") continue