diff --git a/docs/propfix-sima-yi-v2-animation.gif b/docs/propfix-sima-yi-v2-animation.gif new file mode 100644 index 0000000..0ee3461 Binary files /dev/null and b/docs/propfix-sima-yi-v2-animation.gif differ diff --git a/docs/propfix-sima-yi-v2-battle-composite.png b/docs/propfix-sima-yi-v2-battle-composite.png new file mode 100644 index 0000000..ca16d86 Binary files /dev/null and b/docs/propfix-sima-yi-v2-battle-composite.png differ diff --git a/docs/propfix-sima-yi-v2-before-after.png b/docs/propfix-sima-yi-v2-before-after.png new file mode 100644 index 0000000..a91c311 Binary files /dev/null and b/docs/propfix-sima-yi-v2-before-after.png differ diff --git a/docs/propfix-sima-yi-v2-browser-check.png b/docs/propfix-sima-yi-v2-browser-check.png new file mode 100644 index 0000000..b5ed4e9 Binary files /dev/null and b/docs/propfix-sima-yi-v2-browser-check.png differ diff --git a/docs/propfix-sima-yi-v2-contact.png b/docs/propfix-sima-yi-v2-contact.png new file mode 100644 index 0000000..a391a72 Binary files /dev/null and b/docs/propfix-sima-yi-v2-contact.png differ diff --git a/docs/propfix-sima-yi-v2-prod-browser-check.png b/docs/propfix-sima-yi-v2-prod-browser-check.png new file mode 100644 index 0000000..e9e73f9 Binary files /dev/null and b/docs/propfix-sima-yi-v2-prod-browser-check.png differ diff --git a/docs/propfix-sima-yi-v2-report.md b/docs/propfix-sima-yi-v2-report.md new file mode 100644 index 0000000..6c51591 --- /dev/null +++ b/docs/propfix-sima-yi-v2-report.md @@ -0,0 +1,31 @@ +# Sima Yi Court Conspirator v2 report + +- source: `propfix-sima-yi-v2-source.png` +- base status: ok +- action status: ok +- base partial alpha: 0, opaque pixels: 1836114 +- action partial alpha: 0, opaque pixels: 3816484 +- base frame border hits: 0 +- action frame border hits: 0 +- base empty frames: 0 +- action empty frames: 0 +- base bbox width range: 136..186 +- base bbox height range: 282..290 +- base bottom range: 303..303 +- action bbox width range: 112..184 +- action bbox height range: 282..295 +- action bottom range: 303..303 +- contact: `propfix-sima-yi-v2-contact.png` +- animation: `propfix-sima-yi-v2-animation.gif` +- before/after: `propfix-sima-yi-v2-before-after.png` +- scale compare: `propfix-sima-yi-v2-scale-compare.png` +- battle composite: `propfix-sima-yi-v2-battle-composite.png` +- local browser check: `propfix-sima-yi-v2-browser-check.png` +- identity check: no white feather fan, no large fan, and no records-officer map read; Sima Yi reads as a named Wei court conspirator through the tall black court crown, black command tablet, sealed military order, dark decree scroll, bronze tally baton, and narrow command rod. +- build: `pnpm build` passed using the bundled Node runtime path. +- local browser verification: passed at `http://127.0.0.1:4175/heros_web/?debug&debugSpritePreview=unit-sima-yi&v=sima-yi-v2-local` +- local console errors: 0 +- deployed browser check: `propfix-sima-yi-v2-prod-browser-check.png` +- deployed browser verification: passed at `https://comtropy.synology.me/heros_web/?debug&debugSpritePreview=unit-sima-yi&v=sima-yi-v2-prod` +- deployed console errors: 0 +- note: battle composite is a scale review image; gameplay roster is unchanged during sample approval diff --git a/docs/propfix-sima-yi-v2-scale-compare.png b/docs/propfix-sima-yi-v2-scale-compare.png new file mode 100644 index 0000000..d0cbb90 Binary files /dev/null and b/docs/propfix-sima-yi-v2-scale-compare.png differ diff --git a/docs/propfix-sima-yi-v2-source.png b/docs/propfix-sima-yi-v2-source.png new file mode 100644 index 0000000..a948a29 Binary files /dev/null and b/docs/propfix-sima-yi-v2-source.png differ diff --git a/docs/strategist-character-direction.md b/docs/strategist-character-direction.md index 4be89c9..f23f652 100644 --- a/docs/strategist-character-direction.md +++ b/docs/strategist-character-direction.md @@ -32,8 +32,7 @@ Zhuge Liang owns the large white feather fan and white-robed sage read. Other st ## Next Representative Fixes -1. `unit-sima-yi`: confirm the named Wei conspirator remains darker and more distinctive than generic Wei strategists. -2. `unit-huang-quan`: verify the quartermaster official stays records/map focused without a fan read. +1. `unit-huang-quan`: verify the quartermaster official stays records/map focused without a fan read. Completed representative pass: @@ -45,5 +44,6 @@ Completed representative pass: - `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. - `unit-wei-strategist-black`: changed from white-fan black strategist to generic Wei covert adviser with black command tablet, sealed military order, iron tally baton, lacquer case, and compact war ledger. - `unit-wei-strategist-blue`: changed from white-fan blue strategist to Wei records officer with map scroll, registry book, bamboo-slip ledger, bronze command tablet, and document case. +- `unit-sima-yi`: strengthened from generic dark strategist to named Wei court conspirator with tall black court crown, black lacquer command tablet, sealed military order, dark decree scroll, bronze tally baton, and narrow command rod. 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 eb821d8..ca82c36 100644 --- a/docs/strategist-prop-audit.md +++ b/docs/strategist-prop-audit.md @@ -19,7 +19,7 @@ Detailed per-unit visual direction lives in `strategist-character-direction.md`. | `unit-zhuge-liang` | large white feather fan | allowed signature prop | keep | | `unit-ma-liang` | white eyebrows, bamboo slips, bound book, scroll case | white robe/fan read removed while preserving Ma Liang's white-eyebrow identity | fixed in follow-up | | `unit-pang-tong` | dark wood slips, compact dark folded fan, scroll bundles | no white feather fan | fixed in batch 1 | -| `unit-sima-yi` | black command tablet, sealed military order, tally baton | fan removed | fixed in batch 1 | +| `unit-sima-yi` | black lacquer command tablet, sealed military order, dark decree scroll, bronze tally baton, narrow command rod | fan removed; named Wei court conspirator identity strengthened | fixed in representative pass | | `unit-fa-zheng` | campaign map board, command slips, tally baton | fan removed | fixed in batch 1 | | `unit-yi-ji` | letter, bamboo slips, scroll | distinct civil envoy | keep | | `unit-huang-quan` | bamboo slips, map board, baton | distinct quartermaster official | keep | @@ -48,7 +48,6 @@ The first correction batch changes: Next representative cleanup order: -1. `unit-sima-yi` -2. `unit-huang-quan` +1. `unit-huang-quan` 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 c17813e..12bc1ed 100644 --- a/docs/unit-sprite-batch-queue.json +++ b/docs/unit-sprite-batch-queue.json @@ -1376,10 +1376,10 @@ "baseStatus": "ok", "actionStatus": "ok", "battleBasePx": [ - 25.4, - 37.9, + 21.7, + 29.7, 45.0, - 47.0 + 46.3 ], "spec": null }, diff --git a/docs/unit-sprite-batch-queue.md b/docs/unit-sprite-batch-queue.md index 641d397..3616c24 100644 --- a/docs/unit-sprite-batch-queue.md +++ b/docs/unit-sprite-batch-queue.md @@ -174,7 +174,7 @@ No next unit is currently defined. | `unit-ma-dai` | approved reference | approved-baseline | technical ok | 27.0..39.8 x 46.0..46.3 | | | `unit-ma-liang` | approved reference | approved-baseline | technical ok | 26.5..35.8 x 45.0..46.3 | | | `unit-pang-tong` | approved reference | approved-baseline | technical ok | 24.3..32.7 x 45.0..46.3 | | -| `unit-sima-yi` | approved reference | approved-baseline | technical ok | 25.4..37.9 x 45.0..47.0 | | +| `unit-sima-yi` | approved reference | approved-baseline | technical ok | 21.7..29.7 x 45.0..46.3 | | | `unit-wang-ping` | approved reference | approved-baseline | technical ok | 28.0..33.7 x 45.7..46.0 | | | `unit-yan-yan` | approved reference | approved-baseline | technical ok | 30.4..37.5 x 45.7..46.0 | | | `unit-yi-ji` | approved reference | approved-baseline | technical ok | 27.8..33.9 x 45.7..46.0 | | diff --git a/docs/unit-sprite-review-approved-and-pending.png b/docs/unit-sprite-review-approved-and-pending.png index 6743f6c..686aee8 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-batch7-unique-officer.png b/docs/unit-sprite-review-batch7-unique-officer.png index ad8c06d..d39e679 100644 Binary files a/docs/unit-sprite-review-batch7-unique-officer.png and b/docs/unit-sprite-review-batch7-unique-officer.png differ diff --git a/docs/unit-sprite-review-index.png b/docs/unit-sprite-review-index.png index 351f0bb..b2b3796 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 71434f6..51ded77 100644 --- a/docs/unit-sprite-rework-audit.json +++ b/docs/unit-sprite-rework-audit.json @@ -2990,22 +2990,22 @@ 1252 ], "partial_alpha": 0, - "opaque_pixels": 2205012, + "opaque_pixels": 1836114, "border_hits": 0, - "min_width": 159, - "max_width": 237, + "min_width": 136, + "max_width": 186, "min_height": 282, - "max_height": 294, + "max_height": 290, "min_bottom": 303, "max_bottom": 303, "empty_frames": 0, - "width_swing": 78, - "height_swing": 12, + "width_swing": 50, + "height_swing": 8, "bottom_swing": 0, - "battle_min_width_px": 25.4, - "battle_max_width_px": 37.9, + "battle_min_width_px": 21.7, + "battle_max_width_px": 29.7, "battle_min_height_px": 45.0, - "battle_max_height_px": 47.0, + "battle_max_height_px": 46.3, "status": "ok" }, "actions": { @@ -3016,22 +3016,22 @@ 1252 ], "partial_alpha": 0, - "opaque_pixels": 4503608, + "opaque_pixels": 3816484, "border_hits": 0, - "min_width": 137, - "max_width": 224, - "min_height": 276, - "max_height": 294, + "min_width": 112, + "max_width": 184, + "min_height": 282, + "max_height": 295, "min_bottom": 303, "max_bottom": 303, "empty_frames": 0, - "width_swing": 87, - "height_swing": 18, + "width_swing": 72, + "height_swing": 13, "bottom_swing": 0, - "battle_min_width_px": 21.9, - "battle_max_width_px": 35.8, - "battle_min_height_px": 44.1, - "battle_max_height_px": 47.0, + "battle_min_width_px": 17.9, + "battle_max_width_px": 29.4, + "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 0ba4cc6..6b4ec7e 100644 --- a/docs/unit-sprite-rework-audit.md +++ b/docs/unit-sprite-rework-audit.md @@ -103,7 +103,7 @@ Visual review boards are generated by `scripts/render-unit-sprite-review-boards. | 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 | 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-sima-yi` | ok | ok | 136..186 x 282..290 | 112..184 x 282..295 | 21.7..29.7 x 45.0..46.3 | w50 h8 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 | | batch3-wei | approved-baseline | `unit-wei-archer` | ok | ok | 190..245 x 288..296 | 190..245 x 282..296 | 30.4..39.1 x 46.0..47.3 | w55 h8 b0 | | batch3-wei | approved-baseline | `unit-wei-archer-crossbow` | ok | ok | 186..230 x 288..290 | 169..276 x 249..290 | 29.7..36.7 x 46.0..46.3 | w44 h2 b0 | diff --git a/src/assets/images/units/unit-sima-yi-actions.png b/src/assets/images/units/unit-sima-yi-actions.png index 0273c49..9632945 100644 Binary files a/src/assets/images/units/unit-sima-yi-actions.png and b/src/assets/images/units/unit-sima-yi-actions.png differ diff --git a/src/assets/images/units/unit-sima-yi.png b/src/assets/images/units/unit-sima-yi.png index 2b3cd43..6fa9f88 100644 Binary files a/src/assets/images/units/unit-sima-yi.png and b/src/assets/images/units/unit-sima-yi.png differ