forked from MagicBane/Server
CombatManager shield checks, weapon skill/mastery lookups in AbstractCharacter, armor defense and PlayerCharacter.validEquip read getItemSkillUsed/getItemSkillMasteryUsed. Offline parity (p15d.py, 7586 rows): 0 mastery differences; skill used differs only where the legacy loader blanked it. The cache keeps "Cloth" (226 ARMOR templates), which the legacy loader turned into "". Cloth is a placeholder in Skills.cfg that no character has, so getArmorDefense now checks for it explicitly and still returns the flat defense rating. No weapon uses Cloth and no power equip prereq names it, so the other sites behave the same. Value changes: - 195340 Fortified Dragon Plate Helm of the Lion: skill used is the unresolved hash "2624663" instead of "". Defense is still the flat rating (no such skill), but players wearing it now hit the "armor equipped without the necessary skill" error log. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>