feat: improve first-session combat and visual assets
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 199 KiB After Width: | Height: | Size: 432 KiB |
@@ -1,86 +1,86 @@
|
||||
# Equipment Icon Quality Audit
|
||||
|
||||
Generated by `scripts/audit-equipment-icon-quality.mjs`.
|
||||
Generated by `scripts/audit-equipment-icon-quality.mjs` from the current catalog, PNG headers, and runtime source.
|
||||
|
||||
## Summary
|
||||
## Result
|
||||
|
||||
- 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`
|
||||
- Direct item texture render sites found: 5
|
||||
- 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
|
||||
|
||||
## Main Findings
|
||||
## Asset Coverage
|
||||
|
||||
- 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.
|
||||
- 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.
|
||||
|
||||
## Completed Improvement Passes
|
||||
## Boot Loading Contract
|
||||
|
||||
- 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.
|
||||
- accessory charms and tokens: `bravery-token`, `mountain-guide-scroll`, `peach-charm`, `war-manual`, `wind-quiver`, `grain-pouch`, `yellow-scarf-charm`
|
||||
- Accessory icons now use distinct badge, scroll, charm, pouch, manual, and quiver silhouettes at small camp UI sizes.
|
||||
- remaining low-detail weapon icons: `leader-axe`, `training-sword`, `yellow-turban-saber`
|
||||
- The final low-detail common weapons now use dedicated axe, training sword, and Yellow Turban saber silhouettes.
|
||||
| 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 |
|
||||
|
||||
## Next Improvement Target
|
||||
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.
|
||||
|
||||
- Target: no flagged equipment icon batch
|
||||
- Item ids: none currently flagged
|
||||
- Reason: No generated equipment icon currently has a low-detail or shared-helper audit concern; choose the next visual asset pass from in-game QA.
|
||||
## Camp Render Usage
|
||||
|
||||
## Highest-Risk Shared Silhouette Groups
|
||||
- Micro render sites: 4
|
||||
- Full render sites: 2
|
||||
|
||||
| score | signature | slots | ranks | items |
|
||||
| ---: | --- | --- | --- | --- |
|
||||
| 5 | `drawFanIcon` | weapon | treasure | `white-feather-fan` |
|
||||
| 5 | `drawGreenDragonGlaiveIcon` | weapon | treasure | `green-dragon-glaive` |
|
||||
| 5 | `drawSerpentSpearIcon` | weapon | treasure | `serpent-spear` |
|
||||
| 5 | `drawSkyPiercerHalberdIcon` | weapon | treasure | `sky-piercer-halberd` |
|
||||
| 5 | `drawSwordIcon+drawSwordIcon` | weapon | treasure | `twin-oath-blades` |
|
||||
| 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` |
|
||||
|
||||
## Full Item Inventory
|
||||
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.
|
||||
|
||||
| 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`<br>`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 | `drawLeaderAxeIcon` | 1 | 26 | 8 | none |
|
||||
| `short-bow` | weapon | common | `drawBowIcon` | 1 | 18 | 3 | none |
|
||||
| `training-sword` | weapon | common | `drawTrainingSwordIcon` | 1 | 31 | 7 | none |
|
||||
| `western-cavalry-spear` | weapon | common | `drawWesternCavalrySpearIcon` | 1 | 27 | 7 | none |
|
||||
| `yellow-turban-saber` | weapon | common | `drawYellowTurbanSaberIcon` | 1 | 35 | 4 | none |
|
||||
| `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 | `drawBraveryTokenIcon` | 1 | 19 | 5 | none |
|
||||
| `mountain-guide-scroll` | accessory | treasure | `drawMountainGuideScrollIcon` | 1 | 23 | 7 | none |
|
||||
| `peach-charm` | accessory | treasure | `drawPeachCharmIcon` | 1 | 22 | 5 | none |
|
||||
| `war-manual` | accessory | treasure | `drawWarManualIcon` | 1 | 20 | 7 | none |
|
||||
| `wind-quiver` | accessory | treasure | `drawWindQuiverIcon` | 1 | 24 | 6 | none |
|
||||
| `grain-pouch` | accessory | common | `drawGrainPouchIcon` | 1 | 22 | 5 | none |
|
||||
| `yellow-scarf-charm` | accessory | common | `drawYellowScarfCharmIcon` | 1 | 25 | 5 | none |
|
||||
## Full Catalog Inventory
|
||||
|
||||
## Recommended Next Batch Definition
|
||||
| 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 |
|
||||
|
||||
- Scope: no generated equipment icon is currently below the audit threshold.
|
||||
- Item ids: none currently flagged
|
||||
- Success criteria: Keep the generated equipment icon audit green while selecting the next art target from runtime screenshots.
|
||||
- Suggested next area: map/background or unit sprite assets that still look low-resolution in gameplay.
|
||||
## 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.
|
||||
|
||||
Reference in New Issue
Block a user