diff --git a/docs/propfix-shu-strategist-field-v3-animation.gif b/docs/propfix-shu-strategist-field-v3-animation.gif new file mode 100644 index 0000000..cf74719 Binary files /dev/null and b/docs/propfix-shu-strategist-field-v3-animation.gif differ diff --git a/docs/propfix-shu-strategist-field-v3-battle-composite.png b/docs/propfix-shu-strategist-field-v3-battle-composite.png new file mode 100644 index 0000000..ca5834c Binary files /dev/null and b/docs/propfix-shu-strategist-field-v3-battle-composite.png differ diff --git a/docs/propfix-shu-strategist-field-v3-before-after.png b/docs/propfix-shu-strategist-field-v3-before-after.png new file mode 100644 index 0000000..ccd5b3b Binary files /dev/null and b/docs/propfix-shu-strategist-field-v3-before-after.png differ diff --git a/docs/propfix-shu-strategist-field-v3-browser-check.png b/docs/propfix-shu-strategist-field-v3-browser-check.png new file mode 100644 index 0000000..4f45297 Binary files /dev/null and b/docs/propfix-shu-strategist-field-v3-browser-check.png differ diff --git a/docs/propfix-shu-strategist-field-v3-contact.png b/docs/propfix-shu-strategist-field-v3-contact.png new file mode 100644 index 0000000..5557a18 Binary files /dev/null and b/docs/propfix-shu-strategist-field-v3-contact.png differ diff --git a/docs/propfix-shu-strategist-field-v3-report.md b/docs/propfix-shu-strategist-field-v3-report.md new file mode 100644 index 0000000..a528d61 --- /dev/null +++ b/docs/propfix-shu-strategist-field-v3-report.md @@ -0,0 +1,28 @@ +# Shu Frontline Field Strategist v3 report + +- source: `propfix-shu-strategist-field-v3-source.png` +- base status: ok +- action status: ok +- base partial alpha: 0, opaque pixels: 2012058 +- action partial alpha: 0, opaque pixels: 4482872 +- base frame border hits: 0 +- action frame border hits: 0 +- base empty frames: 0 +- action empty frames: 0 +- base bbox width range: 144..202 +- base bbox height range: 287..295 +- base bottom range: 303..303 +- action bbox width range: 130..230 +- action bbox height range: 282..295 +- action bottom range: 303..303 +- contact: `propfix-shu-strategist-field-v3-contact.png` +- animation: `propfix-shu-strategist-field-v3-animation.gif` +- before/after: `propfix-shu-strategist-field-v3-before-after.png` +- scale compare: `propfix-shu-strategist-field-v3-scale-compare.png` +- battle composite: `propfix-shu-strategist-field-v3-battle-composite.png` +- browser check: `propfix-shu-strategist-field-v3-browser-check.png` +- identity note: replaced the white-fan sage-like field strategist read with a rugged Shu frontline staff officer centered on folded field map, short baton, bamboo slips, leather scroll case, and order pouch. +- local build: passed +- local browser console errors: 0 +- local browser battle check: passed at `http://127.0.0.1:4173/heros_web/?debug&debugSpritePreview=unit-shu-strategist-field&v=shu-field-v3-local` +- note: battle composite is a scale review image; gameplay roster is unchanged during sample approval diff --git a/docs/propfix-shu-strategist-field-v3-scale-compare.png b/docs/propfix-shu-strategist-field-v3-scale-compare.png new file mode 100644 index 0000000..68a9dd1 Binary files /dev/null and b/docs/propfix-shu-strategist-field-v3-scale-compare.png differ diff --git a/docs/propfix-shu-strategist-field-v3-source.png b/docs/propfix-shu-strategist-field-v3-source.png new file mode 100644 index 0000000..c384aed Binary files /dev/null and b/docs/propfix-shu-strategist-field-v3-source.png differ diff --git a/docs/strategist-character-direction.md b/docs/strategist-character-direction.md index 5905c70..5317311 100644 --- a/docs/strategist-character-direction.md +++ b/docs/strategist-character-direction.md @@ -32,9 +32,9 @@ Zhuge Liang owns the large white feather fan and white-robed sage read. Other st ## Next Representative Fixes -1. `unit-shu-strategist-field`: keep a practical frontline staff read with field map and short baton. -2. `unit-wei-strategist-black`: verify the covert adviser keeps dark props instead of a pale fan read. -3. `unit-wei-strategist-blue`: verify the records officer stays map/registry focused instead of fan-focused. +1. `unit-wei-strategist-black`: verify the covert adviser keeps dark props instead of a pale fan read. +2. `unit-wei-strategist-blue`: verify the records officer stays map/registry focused instead of fan-focused. +3. `unit-sima-yi`: confirm the named Wei conspirator remains darker and more distinctive than generic Wei strategists. Completed representative pass: @@ -43,5 +43,6 @@ Completed representative pass: - `unit-shu-strategist-white`: changed from white-fan pale strategist to muted jade Shu civil aide with document bundle, brush case, bamboo-slip ledger, and sealed letters. - `unit-wu-strategist-fire`: changed from white-fan fire strategist to ember-red fire tactician with bronze tally, oil-map board, red command tablet, and talisman strips. - `unit-wu-strategist-river`: changed from white-fan river strategist to blue-green river-route tactician with water-route map board, scroll tube, oar-shaped baton, and navigation slips. +- `unit-shu-strategist-field`: changed from white-fan sage-like field strategist to rugged Shu frontline staff officer with folded field map, short baton, bamboo slips, leather scroll case, and order pouch. Every representative fix should include contact sheet, animation GIF, battle preview, before/after, alpha audit, build, and browser check. diff --git a/docs/strategist-prop-audit.md b/docs/strategist-prop-audit.md index f5f8602..9a1e7a2 100644 --- a/docs/strategist-prop-audit.md +++ b/docs/strategist-prop-audit.md @@ -24,7 +24,7 @@ Detailed per-unit visual direction lives in `strategist-character-direction.md`. | `unit-yi-ji` | letter, bamboo slips, scroll | distinct civil envoy | keep | | `unit-huang-quan` | bamboo slips, map board, baton | distinct quartermaster official | keep | | `unit-shu-strategist` | writing brush, bamboo slips, compact field map | white feather fan removed | fixed in batch 1 | -| `unit-shu-strategist-field` | field map / staff officer variant | must stay practical and green, not sage-white | later identity pass | +| `unit-shu-strategist-field` | folded field map, short baton, bamboo slips, leather scroll case, order pouch | white fan and sage-white read removed; frontline staff officer identity restored | fixed in representative pass | | `unit-shu-strategist-white` | muted jade civil aide, document bundle, brush case, bamboo-slip ledger | white robe/fan pairing removed; Shu administrative aide identity restored | fixed in representative pass | | `unit-wei-strategist` | bronze command tablet, war ledger, compact map board | white feather fan removed; Wei court analyst identity restored | fixed in representative pass | | `unit-wei-strategist-black` | dark strategist prop variant | acceptable if fan stays dark and compact | later identity pass | @@ -48,8 +48,8 @@ The first correction batch changes: Next representative cleanup order: -1. `unit-shu-strategist-field` -2. `unit-wei-strategist-black` -3. `unit-wei-strategist-blue` +1. `unit-wei-strategist-black` +2. `unit-wei-strategist-blue` +3. `unit-sima-yi` Later cleanup should remove white-feather-fan reads from remaining generic strategist variants after the representative fixes are verified. diff --git a/docs/unit-sprite-batch-queue.json b/docs/unit-sprite-batch-queue.json index 587f62b..643105f 100644 --- a/docs/unit-sprite-batch-queue.json +++ b/docs/unit-sprite-batch-queue.json @@ -444,9 +444,9 @@ "baseStatus": "ok", "actionStatus": "ok", "battleBasePx": [ - 26.5, - 32.9, - 44.2, + 23.0, + 32.3, + 45.8, 47.1 ], "spec": null diff --git a/docs/unit-sprite-batch-queue.md b/docs/unit-sprite-batch-queue.md index 8a67a41..ea5a58b 100644 --- a/docs/unit-sprite-batch-queue.md +++ b/docs/unit-sprite-batch-queue.md @@ -66,7 +66,7 @@ No next unit is currently defined. | `unit-shu-spearman-guard` | approved reference | approved-baseline | technical ok | 29.4..32.7 x 44.2..47.1 | | | `unit-shu-spearman-veteran` | approved reference | approved-baseline | technical ok | 26.0..32.9 x 46.3..47.1 | | | `unit-shu-strategist` | approved reference | approved-baseline | technical ok | 23.8..39.8 x 45.0..46.0 | `unit-sprite-batch2-shu-strategist-spec.md` | -| `unit-shu-strategist-field` | approved reference | approved-baseline | technical ok | 26.5..32.9 x 44.2..47.1 | | +| `unit-shu-strategist-field` | approved reference | approved-baseline | technical ok | 23.0..32.3 x 45.8..47.1 | | | `unit-shu-strategist-white` | approved reference | approved-baseline | technical ok | 26.7..35.5 x 45.0..46.3 | | ### Batch 3 Wei generic units diff --git a/docs/unit-sprite-review-approved-and-pending.png b/docs/unit-sprite-review-approved-and-pending.png index 001f15b..e6e9c0c 100644 Binary files a/docs/unit-sprite-review-approved-and-pending.png and b/docs/unit-sprite-review-approved-and-pending.png differ diff --git a/docs/unit-sprite-review-batch2-shu.png b/docs/unit-sprite-review-batch2-shu.png index 59d7266..df4c58a 100644 Binary files a/docs/unit-sprite-review-batch2-shu.png and b/docs/unit-sprite-review-batch2-shu.png differ diff --git a/docs/unit-sprite-review-index.png b/docs/unit-sprite-review-index.png index b042072..ce4857c 100644 Binary files a/docs/unit-sprite-review-index.png and b/docs/unit-sprite-review-index.png differ diff --git a/docs/unit-sprite-rework-audit.json b/docs/unit-sprite-rework-audit.json index b4fbafd..dad700d 100644 --- a/docs/unit-sprite-rework-audit.json +++ b/docs/unit-sprite-rework-audit.json @@ -2876,21 +2876,21 @@ 1252 ], "partial_alpha": 0, - "opaque_pixels": 2059816, + "opaque_pixels": 2012058, "border_hits": 0, - "min_width": 166, - "max_width": 206, - "min_height": 277, + "min_width": 144, + "max_width": 202, + "min_height": 287, "max_height": 295, "min_bottom": 303, "max_bottom": 303, "empty_frames": 0, - "width_swing": 40, - "height_swing": 18, + "width_swing": 58, + "height_swing": 8, "bottom_swing": 0, - "battle_min_width_px": 26.5, - "battle_max_width_px": 32.9, - "battle_min_height_px": 44.2, + "battle_min_width_px": 23.0, + "battle_max_width_px": 32.3, + "battle_min_height_px": 45.8, "battle_max_height_px": 47.1, "status": "ok" }, @@ -2902,21 +2902,21 @@ 1252 ], "partial_alpha": 0, - "opaque_pixels": 5157870, + "opaque_pixels": 4482872, "border_hits": 0, - "min_width": 166, - "max_width": 269, - "min_height": 277, + "min_width": 130, + "max_width": 230, + "min_height": 282, "max_height": 295, "min_bottom": 303, "max_bottom": 303, "empty_frames": 0, - "width_swing": 103, - "height_swing": 18, + "width_swing": 100, + "height_swing": 13, "bottom_swing": 0, - "battle_min_width_px": 26.5, - "battle_max_width_px": 43.0, - "battle_min_height_px": 44.2, + "battle_min_width_px": 20.8, + "battle_max_width_px": 36.7, + "battle_min_height_px": 45.0, "battle_max_height_px": 47.1, "status": "ok" } diff --git a/docs/unit-sprite-rework-audit.md b/docs/unit-sprite-rework-audit.md index 1e17beb..c51bdc6 100644 --- a/docs/unit-sprite-rework-audit.md +++ b/docs/unit-sprite-rework-audit.md @@ -101,7 +101,7 @@ Visual review boards are generated by `scripts/render-unit-sprite-review-boards. | batch2-shu | approved-baseline | `unit-shu-spearman-guard` | ok | ok | 184..205 x 277..295 | 176..276 x 232..295 | 29.4..32.7 x 44.2..47.1 | w21 h18 b0 | | batch2-shu | approved-baseline | `unit-shu-spearman-veteran` | ok | ok | 163..206 x 290..295 | 143..276 x 221..295 | 26.0..32.9 x 46.3..47.1 | w43 h5 b0 | | batch2-shu | approved-baseline | `unit-shu-strategist` | ok | ok | 149..249 x 282..288 | 125..237 x 248..288 | 23.8..39.8 x 45.0..46.0 | w100 h6 b0 | -| batch2-shu | approved-baseline | `unit-shu-strategist-field` | ok | ok | 166..206 x 277..295 | 166..269 x 277..295 | 26.5..32.9 x 44.2..47.1 | w40 h18 b0 | +| batch2-shu | approved-baseline | `unit-shu-strategist-field` | ok | ok | 144..202 x 287..295 | 130..230 x 282..295 | 23.0..32.3 x 45.8..47.1 | w58 h8 b0 | | batch2-shu | approved-baseline | `unit-shu-strategist-white` | ok | ok | 167..222 x 282..290 | 140..209 x 282..295 | 26.7..35.5 x 45.0..46.3 | w55 h8 b0 | | batch7-unique-officer | approved-baseline | `unit-sima-yi` | ok | ok | 159..237 x 282..294 | 137..224 x 276..294 | 25.4..37.9 x 45.0..47.0 | w78 h12 b0 | | batch7-unique-officer | approved-baseline | `unit-wang-ping` | ok | ok | 175..211 x 286..288 | 158..256 x 286..295 | 28.0..33.7 x 45.7..46.0 | w36 h2 b0 | diff --git a/src/assets/images/units/unit-shu-strategist-field-actions.png b/src/assets/images/units/unit-shu-strategist-field-actions.png index a784f34..9fca5f6 100644 Binary files a/src/assets/images/units/unit-shu-strategist-field-actions.png and b/src/assets/images/units/unit-shu-strategist-field-actions.png differ diff --git a/src/assets/images/units/unit-shu-strategist-field.png b/src/assets/images/units/unit-shu-strategist-field.png index ee4c208..2172e9d 100644 Binary files a/src/assets/images/units/unit-shu-strategist-field.png and b/src/assets/images/units/unit-shu-strategist-field.png differ