# Equipment Icon Quality Audit Generated by `scripts/audit-equipment-icon-quality.mjs`. ## Summary - Catalog items: 23 - Generated procedural item textures: 23 - Slots: accessory 7, armor 5, weapon 11 - Ranks: common 11, treasure 12 - Texture size: 64px - Drawing grid: 28 units scaled 2.29x into the texture - Runtime item icon scene: `src/game/scenes/CampScene.ts` - Observed runtime display sizes: `14px`, `20px`, `21px`, `22px`, `30px` - Direct item texture render sites found: 5 ## Main Findings - Equipment item icons are generated at runtime in `BootScene`, not stored as individual raster images. - The 64px textures are drawn from a compact 28-unit source grid, so they are crisp but intentionally simple. - Battle combat preview mostly uses the high-resolution `battle-ui-icons` slot frames and item names; per-item textures appear primarily in camp/sortie equipment UI. - Treasure/common distinction often relies on UI frame color plus a small palette change, not a strong unique silhouette. - Reused helper silhouettes are the strongest quality risk because several different items collapse to the same shape at 14-22px. ## Completed Improvement Passes - weapon spear/polearm family: `green-dragon-glaive`, `serpent-spear`, `sky-piercer-halberd`, `iron-spear`, `western-cavalry-spear` - The previous shared spear/polearm silhouettes now use item-specific helper shapes with enough primitive detail for 20px and 30px equipment UI reads. - armor silhouettes: `oath-robe`, `reinforced-lamellar`, `cloth-armor`, `lamellar-armor`, `rebel-vest` - The previous shared armor and robe silhouettes now use item-specific helper shapes with stronger outer contours and material cues. ## Next Improvement Target - Target: accessory charms and tokens - Item ids: `bravery-token`, `mountain-guide-scroll`, `peach-charm`, `war-manual`, `wind-quiver`, `grain-pouch`, `yellow-scarf-charm` - Reason: Accessories are the smallest UI read and several use compact badge-like shapes. ## Highest-Risk Shared Silhouette Groups | score | signature | slots | ranks | items | | ---: | --- | --- | --- | --- | | 8 | `drawCharmIcon` | accessory | common, treasure | `peach-charm`, `yellow-scarf-charm` | | 6 | `drawAxeIcon` | weapon | common | `leader-axe` | | 6 | `drawSaberIcon` | weapon | common | `yellow-turban-saber` | | 6 | `drawSwordIcon` | weapon | common | `training-sword` | | 5 | `drawFanIcon` | weapon | treasure | `white-feather-fan` | ## Full Item Inventory | item id | slot | rank | draw helpers | calls | primitives | colors | concerns | | --- | --- | --- | --- | ---: | ---: | ---: | --- | | `green-dragon-glaive` | weapon | treasure | `drawGreenDragonGlaiveIcon` | 1 | 23 | 6 | none | | `serpent-spear` | weapon | treasure | `drawSerpentSpearIcon` | 1 | 29 | 4 | none | | `sky-piercer-halberd` | weapon | treasure | `drawSkyPiercerHalberdIcon` | 1 | 24 | 7 | none | | `twin-oath-blades` | weapon | treasure | `drawSwordIcon`
`drawSwordIcon` | 2 | 32 | 4 | none | | `white-feather-fan` | weapon | treasure | `drawFanIcon` | 1 | 19 | 3 | none | | `iron-spear` | weapon | common | `drawIronSpearIcon` | 1 | 26 | 7 | none | | `leader-axe` | weapon | common | `drawAxeIcon` | 1 | 7 | 2 | low primitive detail | | `short-bow` | weapon | common | `drawBowIcon` | 1 | 18 | 3 | none | | `training-sword` | weapon | common | `drawSwordIcon` | 1 | 16 | 4 | low primitive detail | | `western-cavalry-spear` | weapon | common | `drawWesternCavalrySpearIcon` | 1 | 27 | 7 | none | | `yellow-turban-saber` | weapon | common | `drawSaberIcon` | 1 | 12 | 2 | low primitive detail | | `oath-robe` | armor | treasure | `drawOathRobeIcon` | 1 | 25 | 6 | none | | `reinforced-lamellar` | armor | treasure | `drawReinforcedLamellarIcon` | 1 | 24 | 5 | none | | `cloth-armor` | armor | common | `drawClothArmorIcon` | 1 | 24 | 6 | none | | `lamellar-armor` | armor | common | `drawLamellarArmorIcon` | 1 | 23 | 4 | none | | `rebel-vest` | armor | common | `drawRebelVestIcon` | 1 | 24 | 7 | none | | `bravery-token` | accessory | treasure | `drawTokenIcon` | 1 | 4 | 2 | low primitive detail | | `mountain-guide-scroll` | accessory | treasure | `drawMapScrollIcon` | 1 | 13 | 5 | low primitive detail | | `peach-charm` | accessory | treasure | `drawCharmIcon` | 1 | 4 | 2 | shared helper silhouette
low primitive detail | | `war-manual` | accessory | treasure | `drawBookIcon` | 1 | 7 | 3 | low primitive detail | | `wind-quiver` | accessory | treasure | `drawQuiverIcon` | 1 | 8 | 2 | low primitive detail | | `grain-pouch` | accessory | common | `drawPouchIcon` | 1 | 7 | 2 | low primitive detail | | `yellow-scarf-charm` | accessory | common | `drawCharmIcon` | 1 | 4 | 2 | shared helper silhouette
low primitive detail | ## Recommended Next Batch Definition - Scope: improve accessory charms and tokens while keeping `item-${itemId}` texture keys stable. - Item ids: `bravery-token`, `mountain-guide-scroll`, `peach-charm`, `war-manual`, `wind-quiver`, `grain-pouch`, `yellow-scarf-charm` - Success criteria: Each accessory should keep a compact footprint while gaining a distinct readable prop shape at 20px and 30px. - Keep the existing 64px texture size unless a UI-wide equipment icon pass is planned. - Add before/after contact sheets and verify the sortie equipment list and equipment swap panel in a desktop browser.