From 2aedbdd71c35086a3df8f07f8a8c2c1b8f53b0a9 Mon Sep 17 00:00:00 2001 From: Wickedness Date: Fri, 10 Jul 2026 00:24:56 +0900 Subject: [PATCH] Improve armor equipment icon silhouettes --- docs/equipment-icon-armor-pass.md | 30 ++++ docs/equipment-icon-armor-sortie-prep.png | Bin 0 -> 120256 bytes docs/equipment-icon-quality-audit.md | 33 ++-- scripts/audit-equipment-icon-quality.mjs | 138 ++++++++++------- src/game/scenes/BootScene.ts | 178 ++++++++++++++++++---- 5 files changed, 280 insertions(+), 99 deletions(-) create mode 100644 docs/equipment-icon-armor-pass.md create mode 100644 docs/equipment-icon-armor-sortie-prep.png diff --git a/docs/equipment-icon-armor-pass.md b/docs/equipment-icon-armor-pass.md new file mode 100644 index 0000000..333efa8 --- /dev/null +++ b/docs/equipment-icon-armor-pass.md @@ -0,0 +1,30 @@ +# Armor Equipment Icon Pass + +Generated after the armor icon rework in `src/game/scenes/BootScene.ts`. + +## Scope + +- `oath-robe` +- `reinforced-lamellar` +- `cloth-armor` +- `lamellar-armor` +- `rebel-vest` + +## Before and After + +| item id | previous helper | current helper | previous primitives | current primitives | audit concerns | +| --- | --- | --- | ---: | ---: | --- | +| `oath-robe` | `drawRobeIcon` | `drawOathRobeIcon` | 7 | 25 | none | +| `reinforced-lamellar` | `drawArmorIcon` | `drawReinforcedLamellarIcon` | 12 | 24 | none | +| `cloth-armor` | `drawRobeIcon` | `drawClothArmorIcon` | 7 | 24 | none | +| `lamellar-armor` | `drawArmorIcon` | `drawLamellarArmorIcon` | 12 | 23 | none | +| `rebel-vest` | `drawVestIcon` | `drawRebelVestIcon` | 4 | 24 | none | + +## Browser QA + +![Sortie prep armor icon QA](./equipment-icon-armor-sortie-prep.png) + +- URL checked: `http://127.0.0.1:4198/heros_web/?debug&debugSortiePrep&renderer=canvas` +- Result: sortie prep opened on a desktop 1280x720 canvas and rendered the generated armor textures in roster, slot, and detail surfaces. +- Browser console warnings/errors: none observed. +- Follow-up target from the updated audit: accessory charms and tokens. diff --git a/docs/equipment-icon-armor-sortie-prep.png b/docs/equipment-icon-armor-sortie-prep.png new file mode 100644 index 0000000000000000000000000000000000000000..7f8121f9581b22156f5a793874b29797d7dc605e GIT binary patch literal 120256 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%0A*}t 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 literal 0 HcmV?d00001 diff --git a/docs/equipment-icon-quality-audit.md b/docs/equipment-icon-quality-audit.md index aa59373..4519ba8 100644 --- a/docs/equipment-icon-quality-audit.md +++ b/docs/equipment-icon-quality-audit.md @@ -26,27 +26,24 @@ Generated by `scripts/audit-equipment-icon-quality.mjs`. - 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: armor silhouettes -- Item ids: `oath-robe`, `reinforced-lamellar`, `cloth-armor`, `lamellar-armor`, `rebel-vest` -- Reason: Armor and robes are readable but still depend on simple triangular torsos and small color accents; this is now the largest remaining shared-equipment silhouette group. - -## Follow-Up Targets - -- accessory charms and tokens: `bravery-token`, `mountain-guide-scroll`, `peach-charm`, `war-manual`, `wind-quiver`, `grain-pouch`, `yellow-scarf-charm` - - Accessories are the smallest UI read and several use compact badge-like shapes. +- 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 | `drawArmorIcon` | armor | common, treasure | `reinforced-lamellar`, `lamellar-armor` | | 8 | `drawCharmIcon` | accessory | common, treasure | `peach-charm`, `yellow-scarf-charm` | -| 8 | `drawRobeIcon` | armor | common, treasure | `oath-robe`, `cloth-armor` | | 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 @@ -63,11 +60,11 @@ Generated by `scripts/audit-equipment-icon-quality.mjs`. | `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 | `drawRobeIcon` | 1 | 7 | 3 | shared helper silhouette
low primitive detail | -| `reinforced-lamellar` | armor | treasure | `drawArmorIcon` | 1 | 12 | 3 | shared helper silhouette
low primitive detail | -| `cloth-armor` | armor | common | `drawRobeIcon` | 1 | 7 | 3 | shared helper silhouette
low primitive detail | -| `lamellar-armor` | armor | common | `drawArmorIcon` | 1 | 12 | 3 | shared helper silhouette
low primitive detail | -| `rebel-vest` | armor | common | `drawVestIcon` | 1 | 4 | 3 | 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 | @@ -78,8 +75,8 @@ Generated by `scripts/audit-equipment-icon-quality.mjs`. ## Recommended Next Batch Definition -- Scope: improve armor silhouettes while keeping `item-${itemId}` texture keys stable. -- Item ids: `oath-robe`, `reinforced-lamellar`, `cloth-armor`, `lamellar-armor`, `rebel-vest` -- Success criteria: Each armor item should keep its slot identity while gaining a distinct outer silhouette and material cue at 20px and 30px. +- 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. diff --git a/scripts/audit-equipment-icon-quality.mjs b/scripts/audit-equipment-icon-quality.mjs index 6e274c8..eecb3ac 100644 --- a/scripts/audit-equipment-icon-quality.mjs +++ b/scripts/audit-equipment-icon-quality.mjs @@ -313,58 +313,84 @@ function buildRecommendations(itemRows, groupedRows) { 'sky-piercer-halberd', 'western-cavalry-spear' ]; - const weaponPolearmRows = itemRows.filter((row) => weaponPolearmTargetIds.includes(row.itemId)); - const armorIds = itemRows.filter((row) => row.slot === 'armor').map((row) => row.itemId); + const armorTargetIds = ['oath-robe', 'reinforced-lamellar', 'cloth-armor', 'lamellar-armor', 'rebel-vest']; const accessoryIds = itemRows.filter((row) => row.slot === 'accessory').map((row) => row.itemId); - const weaponPolearmComplete = - weaponPolearmRows.length === weaponPolearmTargetIds.length && - weaponPolearmRows.every((row) => row.icon && row.primitiveCount >= 18) && - new Set(weaponPolearmRows.map((row) => row.signature)).size === weaponPolearmRows.length; - - const completedTargets = weaponPolearmComplete - ? [ - { - title: 'weapon spear/polearm family', - itemIds: weaponPolearmRows.map((row) => row.itemId), - reason: 'The previous shared spear/polearm silhouettes now use item-specific helper shapes with enough primitive detail for 20px and 30px equipment UI reads.' - } - ] - : []; + const targets = [ + { + title: 'weapon spear/polearm family', + itemIds: weaponPolearmTargetIds, + completeReason: + 'The previous shared spear/polearm silhouettes now use item-specific helper shapes with enough primitive detail for 20px and 30px equipment UI reads.', + openReason: + 'These are high-frequency equipment surfaces and several treasure/common weapons share a thin diagonal shaft silhouette; upgrading this group gives the clearest identity gain in sortie prep and equipment swap screens.', + successCriteria: + 'Each item should read as a distinct weapon silhouette at 20px and 30px, with treasure weapons visibly richer than common weapons.' + }, + { + title: 'armor silhouettes', + itemIds: armorTargetIds, + completeReason: + 'The previous shared armor and robe silhouettes now use item-specific helper shapes with stronger outer contours and material cues.', + openReason: + 'Armor and robes are readable but still depend on simple triangular torsos and small color accents; this is now the largest remaining shared-equipment silhouette group.', + successCriteria: + 'Each armor item should keep its slot identity while gaining a distinct outer silhouette and material cue at 20px and 30px.' + }, + { + title: 'accessory charms and tokens', + itemIds: accessoryIds, + completeReason: + 'Accessory icons now use distinct badge, scroll, charm, pouch, manual, and quiver silhouettes at small camp UI sizes.', + openReason: 'Accessories are the smallest UI read and several use compact badge-like shapes.', + successCriteria: + 'Each accessory should keep a compact footprint while gaining a distinct readable prop shape at 20px and 30px.' + } + ].map((target) => ({ + ...target, + rows: itemRows.filter((row) => target.itemIds.includes(row.itemId)) + })); + const completedTargets = targets + .filter((target) => improvementTargetComplete(target)) + .map((target) => ({ + title: target.title, + itemIds: target.rows.map((row) => row.itemId), + reason: target.completeReason + })); + const nextTarget = + targets.find((target) => !improvementTargetComplete(target)) ?? { + title: 'remaining low-detail equipment icons', + rows: itemRows.filter((row) => row.concerns.length > 0), + openReason: 'All named batches are complete; remaining work should be selected from the low-detail inventory rows.', + successCriteria: 'Clear remaining low-detail concerns without changing stable texture keys.' + }; + const nextTargetIndex = targets.findIndex((target) => target.title === nextTarget.title); + const followUps = targets + .filter((target, index) => index > nextTargetIndex && !improvementTargetComplete(target)) + .map((target) => ({ + title: target.title, + itemIds: target.rows.map((row) => row.itemId), + reason: target.openReason + })); return { completedTargets, - firstTargetTitle: weaponPolearmComplete ? 'armor silhouettes' : 'weapon spear/polearm family', - firstTargetIds: weaponPolearmComplete ? armorIds : weaponPolearmRows.map((row) => row.itemId), - firstTargetReason: weaponPolearmComplete - ? 'Armor and robes are readable but still depend on simple triangular torsos and small color accents; this is now the largest remaining shared-equipment silhouette group.' - : 'These are high-frequency equipment surfaces and several treasure/common weapons share a thin diagonal shaft silhouette; upgrading this group gives the clearest identity gain in sortie prep and equipment swap screens.', - firstTargetSuccessCriteria: weaponPolearmComplete - ? 'Each armor item should keep its slot identity while gaining a distinct outer silhouette and material cue at 20px and 30px.' - : 'Each item should read as a distinct weapon silhouette at 20px and 30px, with treasure weapons visibly richer than common weapons.', - followUps: weaponPolearmComplete - ? [ - { - title: 'accessory charms and tokens', - itemIds: accessoryIds, - reason: 'Accessories are the smallest UI read and several use compact badge-like shapes.' - } - ] - : [ - { - title: 'armor silhouettes', - itemIds: armorIds, - reason: 'Armor and robes are readable but depend on simple triangular torsos and small color accents.' - }, - { - title: 'accessory charms and tokens', - itemIds: accessoryIds, - reason: 'Accessories are the smallest UI read and several use compact badge-like shapes.' - } - ], + firstTargetTitle: nextTarget.title, + firstTargetIds: nextTarget.rows.map((row) => row.itemId), + firstTargetReason: nextTarget.openReason, + firstTargetSuccessCriteria: nextTarget.successCriteria, + followUps, topRiskGroups: groupedRows.slice(0, 5) }; } +function improvementTargetComplete(target) { + return ( + target.rows.length === target.itemIds.length && + target.rows.every((row) => row.icon && row.primitiveCount >= 18) && + new Set(target.rows.map((row) => row.signature)).size === target.rows.length + ); +} + function renderReport({ iconSourceSize, iconTextureSize, itemRows, groupedRows, recommendations, sceneUsage }) { const slotCounts = countBy(itemRows, (row) => row.slot); const rankCounts = countBy(itemRows, (row) => row.rank); @@ -403,13 +429,7 @@ function renderReport({ iconSourceSize, iconTextureSize, itemRows, groupedRows, `- Item ids: ${recommendations.firstTargetIds.map((itemId) => `\`${itemId}\``).join(', ')}`, `- Reason: ${recommendations.firstTargetReason}`, '', - '## Follow-Up Targets', - '', - ...recommendations.followUps.flatMap((target) => [ - `- ${target.title}: ${target.itemIds.map((itemId) => `\`${itemId}\``).join(', ')}`, - ` - ${target.reason}` - ]), - '', + ...renderFollowUpTargets(recommendations.followUps), '## Highest-Risk Shared Silhouette Groups', '', '| score | signature | slots | ranks | items |', @@ -463,6 +483,22 @@ function renderCompletedTargets(completedTargets) { ]; } +function renderFollowUpTargets(followUps) { + if (!followUps.length) { + return []; + } + + return [ + '## Follow-Up Targets', + '', + ...followUps.flatMap((target) => [ + `- ${target.title}: ${target.itemIds.map((itemId) => `\`${itemId}\``).join(', ')}`, + ` - ${target.reason}` + ]), + '' + ]; +} + function countBy(rows, keySelector) { return rows.reduce((counts, row) => { const key = keySelector(row); diff --git a/src/game/scenes/BootScene.ts b/src/game/scenes/BootScene.ts index 8dc668b..6998156 100644 --- a/src/game/scenes/BootScene.ts +++ b/src/game/scenes/BootScene.ts @@ -45,11 +45,11 @@ export class BootScene extends Phaser.Scene { this.createItemIcon('item-short-bow', (graphics) => this.drawBowIcon(graphics, 0xc58a4c, 0xe8dfca)); this.createItemIcon('item-leader-axe', (graphics) => this.drawAxeIcon(graphics, 0xd8dfe6, 0x8d5a3a)); - this.createItemIcon('item-cloth-armor', (graphics) => this.drawRobeIcon(graphics, 0x91a8bc, 0xe8dfca)); - this.createItemIcon('item-lamellar-armor', (graphics) => this.drawArmorIcon(graphics, 0x7d8792, 0xd8b15f)); - this.createItemIcon('item-oath-robe', (graphics) => this.drawRobeIcon(graphics, 0x4e7aa8, 0xf0c0a8)); - this.createItemIcon('item-reinforced-lamellar', (graphics) => this.drawArmorIcon(graphics, 0xb8c4ce, 0x59a6d6)); - this.createItemIcon('item-rebel-vest', (graphics) => this.drawVestIcon(graphics, 0xb88b4a, 0xd8b15f)); + this.createItemIcon('item-cloth-armor', (graphics) => this.drawClothArmorIcon(graphics)); + this.createItemIcon('item-lamellar-armor', (graphics) => this.drawLamellarArmorIcon(graphics)); + this.createItemIcon('item-oath-robe', (graphics) => this.drawOathRobeIcon(graphics)); + this.createItemIcon('item-reinforced-lamellar', (graphics) => this.drawReinforcedLamellarIcon(graphics)); + this.createItemIcon('item-rebel-vest', (graphics) => this.drawRebelVestIcon(graphics)); this.createItemIcon('item-peach-charm', (graphics) => this.drawCharmIcon(graphics, 0xf0a6a4, 0xd8b15f)); this.createItemIcon('item-war-manual', (graphics) => this.drawBookIcon(graphics, 0x5b78a0, 0xe8dfca)); @@ -325,41 +325,159 @@ export class BootScene extends Phaser.Scene { graphics.fillCircle(16, 25, 3); } - private drawArmorIcon(graphics: Phaser.GameObjects.Graphics, baseColor: number, accentColor: number) { - graphics.fillStyle(baseColor, 1); - graphics.fillTriangle(14, 4, 24, 11, 20, 24); - graphics.fillTriangle(14, 4, 4, 11, 8, 24); - graphics.fillRect(8, 10, 12, 14); - graphics.lineStyle(2, accentColor, 0.9); - graphics.strokeRect(9, 11, 10, 12); - graphics.lineStyle(1, 0x05070a, 0.6); + private drawClothArmorIcon(graphics: Phaser.GameObjects.Graphics) { + graphics.fillStyle(0x6f889a, 1); + graphics.fillTriangle(14, 4, 25, 10, 21, 23); + graphics.fillTriangle(14, 4, 3, 10, 7, 23); + graphics.fillRoundedRect(8, 8, 12, 16, 2); + graphics.fillStyle(0x91a8bc, 1); + graphics.fillTriangle(10, 8, 18, 8, 14, 15); + graphics.fillRect(9, 14, 10, 9); + graphics.fillStyle(0x34434d, 0.8); + graphics.fillTriangle(14, 7, 18, 23, 10, 23); + graphics.lineStyle(2, 0xe8dfca, 0.95); graphics.beginPath(); - graphics.moveTo(10, 16); - graphics.lineTo(18, 16); + graphics.moveTo(9, 11); + graphics.lineTo(14, 15); + graphics.lineTo(19, 11); + graphics.moveTo(8, 18); + graphics.lineTo(20, 18); + graphics.strokePath(); + graphics.lineStyle(1, 0x26313a, 0.85); + graphics.beginPath(); + graphics.moveTo(7, 13); + graphics.lineTo(10, 22); + graphics.moveTo(21, 13); + graphics.lineTo(18, 22); graphics.moveTo(11, 20); graphics.lineTo(17, 20); graphics.strokePath(); + graphics.fillStyle(0xd8b15f, 1); + graphics.fillCircle(14, 18, 1); } - private drawRobeIcon(graphics: Phaser.GameObjects.Graphics, baseColor: number, accentColor: number) { - graphics.fillStyle(baseColor, 1); - graphics.fillTriangle(14, 4, 24, 24, 4, 24); - graphics.fillStyle(0x101820, 0.45); - graphics.fillTriangle(14, 8, 18, 24, 10, 24); - graphics.lineStyle(2, accentColor, 1); + private drawLamellarArmorIcon(graphics: Phaser.GameObjects.Graphics) { + graphics.fillStyle(0x4f5964, 1); + graphics.fillTriangle(14, 4, 25, 11, 21, 24); + graphics.fillTriangle(14, 4, 3, 11, 7, 24); + graphics.fillRect(7, 8, 14, 16); + graphics.fillStyle(0x7d8792, 1); + graphics.fillRect(9, 9, 4, 5); + graphics.fillRect(15, 9, 4, 5); + graphics.fillRect(8, 15, 5, 4); + graphics.fillRect(15, 15, 5, 4); + graphics.fillRect(10, 20, 3, 4); + graphics.fillRect(15, 20, 3, 4); + graphics.lineStyle(2, 0xd8b15f, 0.9); + graphics.strokeRect(8, 8, 12, 16); + graphics.lineStyle(1, 0x101820, 0.75); graphics.beginPath(); - graphics.moveTo(14, 6); - graphics.lineTo(14, 23); + graphics.moveTo(14, 8); + graphics.lineTo(14, 24); + graphics.moveTo(8, 15); + graphics.lineTo(20, 15); + graphics.moveTo(9, 20); + graphics.lineTo(19, 20); + graphics.strokePath(); + graphics.fillStyle(0xd8b15f, 1); + graphics.fillCircle(14, 6, 1); + graphics.fillCircle(10, 13, 1); + graphics.fillCircle(18, 13, 1); + } + + private drawOathRobeIcon(graphics: Phaser.GameObjects.Graphics) { + graphics.fillStyle(0x304f7d, 1); + graphics.fillTriangle(14, 3, 27, 14, 22, 25); + graphics.fillTriangle(14, 3, 1, 14, 6, 25); + graphics.fillRoundedRect(7, 7, 14, 18, 2); + graphics.fillStyle(0x4e7aa8, 1); + graphics.fillTriangle(9, 8, 19, 8, 15, 25); + graphics.fillTriangle(7, 13, 2, 22, 9, 19); + graphics.fillTriangle(21, 13, 26, 22, 19, 19); + graphics.fillStyle(0xf0c0a8, 1); + graphics.fillTriangle(10, 6, 18, 6, 14, 13); + graphics.fillStyle(0x192840, 0.65); + graphics.fillTriangle(14, 10, 18, 25, 11, 25); + graphics.lineStyle(2, 0xd8b15f, 0.95); + graphics.beginPath(); + graphics.moveTo(9, 9); + graphics.lineTo(14, 14); + graphics.lineTo(19, 9); + graphics.moveTo(9, 18); + graphics.lineTo(20, 18); + graphics.strokePath(); + graphics.lineStyle(1, 0xe8dfca, 0.8); + graphics.beginPath(); + graphics.moveTo(14, 14); + graphics.lineTo(14, 24); + graphics.moveTo(5, 21); + graphics.lineTo(10, 18); + graphics.moveTo(23, 21); + graphics.lineTo(18, 18); graphics.strokePath(); } - private drawVestIcon(graphics: Phaser.GameObjects.Graphics, baseColor: number, accentColor: number) { - graphics.fillStyle(baseColor, 1); - graphics.fillRect(7, 7, 14, 18); - graphics.fillStyle(0x101820, 0.7); - graphics.fillTriangle(11, 7, 17, 7, 14, 14); - graphics.lineStyle(2, accentColor, 0.9); - graphics.strokeRect(8, 8, 12, 16); + private drawReinforcedLamellarIcon(graphics: Phaser.GameObjects.Graphics) { + graphics.fillStyle(0x5f6d78, 1); + graphics.fillTriangle(14, 3, 27, 10, 22, 24); + graphics.fillTriangle(14, 3, 1, 10, 6, 24); + graphics.fillRoundedRect(6, 8, 16, 16, 2); + graphics.fillStyle(0xb8c4ce, 1); + graphics.fillRect(8, 8, 5, 7); + graphics.fillRect(15, 8, 5, 7); + graphics.fillRect(8, 16, 5, 4); + graphics.fillRect(15, 16, 5, 4); + graphics.fillRect(10, 21, 8, 3); + graphics.fillStyle(0x8fa2b2, 1); + graphics.fillTriangle(6, 10, 1, 15, 7, 18); + graphics.fillTriangle(22, 10, 27, 15, 21, 18); + graphics.lineStyle(2, 0x59a6d6, 0.95); + graphics.strokeRoundedRect(7, 8, 14, 16, 2); + graphics.lineStyle(1, 0x101820, 0.8); + graphics.beginPath(); + graphics.moveTo(14, 7); + graphics.lineTo(14, 24); + graphics.moveTo(8, 15); + graphics.lineTo(20, 15); + graphics.moveTo(8, 20); + graphics.lineTo(20, 20); + graphics.strokePath(); + graphics.fillStyle(0x59a6d6, 1); + graphics.fillCircle(10, 12, 1); + graphics.fillCircle(18, 12, 1); + graphics.fillCircle(14, 18, 1); + } + + private drawRebelVestIcon(graphics: Phaser.GameObjects.Graphics) { + graphics.fillStyle(0x8a5a32, 1); + graphics.fillTriangle(8, 6, 20, 6, 22, 25); + graphics.fillTriangle(8, 6, 5, 24, 14, 22); + graphics.fillStyle(0xb88b4a, 1); + graphics.fillRect(7, 8, 6, 15); + graphics.fillRect(15, 8, 6, 16); + graphics.fillStyle(0x5d3b27, 1); + graphics.fillTriangle(12, 8, 16, 8, 14, 16); + graphics.fillTriangle(6, 20, 12, 22, 8, 25); + graphics.fillTriangle(16, 23, 22, 24, 19, 26); + graphics.fillStyle(0xd8b15f, 1); + graphics.fillTriangle(7, 6, 20, 6, 14, 10); + graphics.fillRect(10, 16, 8, 2); + graphics.lineStyle(2, 0x101820, 0.75); + graphics.strokeRect(7, 8, 14, 16); + graphics.lineStyle(1, 0xe8dfca, 0.8); + graphics.beginPath(); + graphics.moveTo(9, 11); + graphics.lineTo(12, 15); + graphics.moveTo(18, 11); + graphics.lineTo(15, 15); + graphics.moveTo(9, 20); + graphics.lineTo(13, 18); + graphics.moveTo(16, 20); + graphics.lineTo(20, 18); + graphics.strokePath(); + graphics.fillStyle(0x9b4c3a, 1); + graphics.fillCircle(10, 14, 1); + graphics.fillCircle(18, 17, 1); } private drawCharmIcon(graphics: Phaser.GameObjects.Graphics, baseColor: number, accentColor: number) {