87 lines
5.5 KiB
Markdown
87 lines
5.5 KiB
Markdown
# Equipment Icon Quality Audit
|
|
|
|
Generated by `scripts/audit-equipment-icon-quality.mjs` from the current catalog, PNG headers, and runtime source.
|
|
|
|
## Result
|
|
|
|
- Status: **PASS**
|
|
- Catalog contract: 23/23 items
|
|
- Complete 128/32 pairs: 23/23
|
|
- Fully valid catalog rows: 23/23
|
|
- 128px payload: 393,307 B (384.1 KiB) across 23 PNG files
|
|
- 32px payload: 40,270 B (39.3 KiB) across 23 PNG files
|
|
- Browser visual QA baseline: `1920x1080` CSS viewport at 100% zoom
|
|
|
|
## Asset Coverage
|
|
|
|
- 128px missing: none
|
|
- 32px missing: none
|
|
- 128px uncataloged/extra: none
|
|
- 32px uncataloged/extra: none
|
|
- Required PNG format: exact square dimensions, 8-bit RGBA (PNG color type 6), non-empty file.
|
|
|
|
## Boot Loading Contract
|
|
|
|
| check | result | contract |
|
|
| --- | --- | --- |
|
|
| 128px source glob | PASS | `equipment-icons/128/*.png` is imported eagerly |
|
|
| 32px source glob | PASS | `equipment-icons/32/*.png` is imported eagerly |
|
|
| full texture preload | PASS | 128px files load as `item-${id}` |
|
|
| micro texture preload | PASS | 32px files load as `item-${id}-micro` |
|
|
| catalog-derived texture key | PASS | file stem becomes the stable item texture id |
|
|
| procedural fallback guard | PASS | procedural full icon is created only when the loaded texture key is absent |
|
|
| procedural fallback coverage | PASS | 23/23 catalog ids have a base-key fallback |
|
|
|
|
The authored 128px files are the normal `item-${id}` textures and the authored 32px files are the `item-${id}-micro` textures. The existing procedural 64px drawing path is retained only as a **loaded-base-texture-missing fallback**: its guard leaves a successfully loaded authored base texture untouched. Micro textures are static assets, so their completeness is enforced by this audit rather than by the procedural fallback.
|
|
|
|
## Camp Render Usage
|
|
|
|
- Micro render sites: 4
|
|
- Full render sites: 2
|
|
|
|
| tier | source location | method | key expression | requested display size |
|
|
| --- | --- | --- | --- | --- |
|
|
| micro | `src/game/scenes/CampScene.ts:16367` | `renderSortieEquipmentIcons` | `item-${item.id}-micro` | `iconSize` |
|
|
| micro | `src/game/scenes/CampScene.ts:21970` | `renderEquipmentCompareRow` | `item-${entry.item.id}-micro` | `22px` |
|
|
| micro | `src/game/scenes/CampScene.ts:22012` | `renderEquipmentEffectSummary` | `item-${entry.item.id}-micro` | `20px` |
|
|
| micro | `src/game/scenes/CampScene.ts:22158` | `renderEquipmentInventoryBox` | `item-${entry.item.id}-micro` | `21px` |
|
|
| full | `src/game/scenes/CampScene.ts:22341` | `renderEquipmentCard` | `item-${item.id}` | `30px` |
|
|
| full | `src/game/scenes/CampScene.ts:23078` | `renderEquipmentSwapComparisonCard` | `item-${item.id}` | `40px` |
|
|
|
|
Micro textures are used for compact sortie, inventory, and equipped-item rows. Full textures are used for larger equipment cards and the compare/confirm panel.
|
|
|
|
## Full Catalog Inventory
|
|
|
|
| item id | slot | rank | 128px PNG | bytes | 32px PNG | bytes | pair | concerns |
|
|
| --- | --- | --- | --- | ---: | --- | ---: | --- | --- |
|
|
| `green-dragon-glaive` | weapon | treasure | 128x128 RGBA8 | 9,893 | 32x32 RGBA8 | 1,252 | yes | none |
|
|
| `iron-spear` | weapon | common | 128x128 RGBA8 | 6,364 | 32x32 RGBA8 | 830 | yes | none |
|
|
| `leader-axe` | weapon | common | 128x128 RGBA8 | 12,684 | 32x32 RGBA8 | 1,487 | yes | none |
|
|
| `serpent-spear` | weapon | treasure | 128x128 RGBA8 | 6,832 | 32x32 RGBA8 | 952 | yes | none |
|
|
| `short-bow` | weapon | common | 128x128 RGBA8 | 12,987 | 32x32 RGBA8 | 1,543 | yes | none |
|
|
| `sky-piercer-halberd` | weapon | treasure | 128x128 RGBA8 | 11,490 | 32x32 RGBA8 | 1,473 | yes | none |
|
|
| `training-sword` | weapon | common | 128x128 RGBA8 | 8,933 | 32x32 RGBA8 | 1,260 | yes | none |
|
|
| `twin-oath-blades` | weapon | treasure | 128x128 RGBA8 | 15,345 | 32x32 RGBA8 | 1,852 | yes | none |
|
|
| `western-cavalry-spear` | weapon | common | 128x128 RGBA8 | 7,505 | 32x32 RGBA8 | 883 | yes | none |
|
|
| `white-feather-fan` | weapon | treasure | 128x128 RGBA8 | 24,987 | 32x32 RGBA8 | 2,422 | yes | none |
|
|
| `yellow-turban-saber` | weapon | common | 128x128 RGBA8 | 12,895 | 32x32 RGBA8 | 1,568 | yes | none |
|
|
| `cloth-armor` | armor | common | 128x128 RGBA8 | 23,329 | 32x32 RGBA8 | 2,185 | yes | none |
|
|
| `lamellar-armor` | armor | common | 128x128 RGBA8 | 21,179 | 32x32 RGBA8 | 1,970 | yes | none |
|
|
| `oath-robe` | armor | treasure | 128x128 RGBA8 | 23,579 | 32x32 RGBA8 | 2,207 | yes | none |
|
|
| `rebel-vest` | armor | common | 128x128 RGBA8 | 20,584 | 32x32 RGBA8 | 1,768 | yes | none |
|
|
| `reinforced-lamellar` | armor | treasure | 128x128 RGBA8 | 20,788 | 32x32 RGBA8 | 1,920 | yes | none |
|
|
| `bravery-token` | accessory | treasure | 128x128 RGBA8 | 26,569 | 32x32 RGBA8 | 2,418 | yes | none |
|
|
| `grain-pouch` | accessory | common | 128x128 RGBA8 | 25,980 | 32x32 RGBA8 | 2,336 | yes | none |
|
|
| `mountain-guide-scroll` | accessory | treasure | 128x128 RGBA8 | 24,057 | 32x32 RGBA8 | 2,290 | yes | none |
|
|
| `peach-charm` | accessory | treasure | 128x128 RGBA8 | 15,997 | 32x32 RGBA8 | 1,592 | yes | none |
|
|
| `war-manual` | accessory | treasure | 128x128 RGBA8 | 21,080 | 32x32 RGBA8 | 1,978 | yes | none |
|
|
| `wind-quiver` | accessory | treasure | 128x128 RGBA8 | 20,471 | 32x32 RGBA8 | 2,084 | yes | none |
|
|
| `yellow-scarf-charm` | accessory | common | 128x128 RGBA8 | 19,779 | 32x32 RGBA8 | 2,000 | yes | none |
|
|
|
|
## Findings
|
|
|
|
- All 23 catalog items have valid, paired 128px and 32px RGBA8 PNG assets.
|
|
- File stems map to stable Boot texture keys for both full and micro tiers.
|
|
- Camp compact rows use micro textures while larger cards and comparison panels use full textures.
|
|
- Procedural icons remain a load-failure fallback for base item keys, not the normal rendered asset path.
|