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 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
4c915f17ac
commit
0faa31f3d8
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user