Improve armor equipment icon silhouettes

This commit is contained in:
2026-07-10 00:24:56 +09:00
parent 0e1613d1da
commit 2aedbdd71c
5 changed files with 280 additions and 99 deletions

View File

@@ -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) {