Improve spear equipment icon silhouettes

This commit is contained in:
2026-07-10 00:19:27 +09:00
parent db319ea99f
commit 0e1613d1da
5 changed files with 315 additions and 92 deletions

View File

@@ -35,11 +35,11 @@ export class BootScene extends Phaser.Scene {
this.drawSwordIcon(graphics, 0xe8edf7, 0x8a5a32, -4);
this.drawSwordIcon(graphics, 0xd8b15f, 0x8a5a32, 4);
});
this.createItemIcon('item-green-dragon-glaive', (graphics) => this.drawPolearmIcon(graphics, 0x5fbf8f, 0xd8b15f));
this.createItemIcon('item-serpent-spear', (graphics) => this.drawSpearIcon(graphics, 0xe0e8ef, 0xb86b55));
this.createItemIcon('item-iron-spear', (graphics) => this.drawSpearIcon(graphics, 0xd8dfe6, 0x6cc5ff));
this.createItemIcon('item-sky-piercer-halberd', (graphics) => this.drawPolearmIcon(graphics, 0xd8dfe6, 0xd95f4f));
this.createItemIcon('item-western-cavalry-spear', (graphics) => this.drawSpearIcon(graphics, 0xe6d3a6, 0xb86b55));
this.createItemIcon('item-green-dragon-glaive', (graphics) => this.drawGreenDragonGlaiveIcon(graphics));
this.createItemIcon('item-serpent-spear', (graphics) => this.drawSerpentSpearIcon(graphics));
this.createItemIcon('item-iron-spear', (graphics) => this.drawIronSpearIcon(graphics));
this.createItemIcon('item-sky-piercer-halberd', (graphics) => this.drawSkyPiercerHalberdIcon(graphics));
this.createItemIcon('item-western-cavalry-spear', (graphics) => this.drawWesternCavalrySpearIcon(graphics));
this.createItemIcon('item-white-feather-fan', (graphics) => this.drawFanIcon(graphics, 0xf3f0df, 0x6e8eb8));
this.createItemIcon('item-yellow-turban-saber', (graphics) => this.drawSaberIcon(graphics, 0xd8b15f, 0x9c6b2f));
this.createItemIcon('item-short-bow', (graphics) => this.drawBowIcon(graphics, 0xc58a4c, 0xe8dfca));
@@ -95,31 +95,163 @@ export class BootScene extends Phaser.Scene {
graphics.fillCircle(8 + offsetX, 23, 2);
}
private drawPolearmIcon(graphics: Phaser.GameObjects.Graphics, bladeColor: number, accentColor: number) {
graphics.lineStyle(3, 0x8d5a3a, 1);
private drawGreenDragonGlaiveIcon(graphics: Phaser.GameObjects.Graphics) {
graphics.lineStyle(4, 0x704728, 1);
graphics.beginPath();
graphics.moveTo(8, 24);
graphics.lineTo(18, 5);
graphics.moveTo(6, 25);
graphics.lineTo(17, 5);
graphics.strokePath();
graphics.fillStyle(bladeColor, 1);
graphics.fillTriangle(17, 4, 25, 8, 18, 15);
graphics.lineStyle(2, accentColor, 1);
graphics.lineStyle(1, 0xc99755, 0.85);
graphics.beginPath();
graphics.moveTo(16, 12);
graphics.lineTo(23, 15);
graphics.moveTo(9, 22);
graphics.lineTo(17, 7);
graphics.strokePath();
graphics.fillStyle(0x236f54, 1);
graphics.fillEllipse(20, 9, 9, 15);
graphics.fillTriangle(15, 4, 24, 5, 18, 15);
graphics.fillTriangle(17, 13, 25, 18, 16, 17);
graphics.fillStyle(0x101820, 0.42);
graphics.fillTriangle(22, 4, 25, 8, 22, 11);
graphics.lineStyle(2, 0xbff0cf, 0.9);
graphics.beginPath();
graphics.moveTo(18, 5);
graphics.lineTo(22, 9);
graphics.lineTo(18, 15);
graphics.strokePath();
graphics.fillStyle(0xd8b15f, 1);
graphics.fillCircle(16, 15, 2);
graphics.fillTriangle(13, 16, 18, 15, 14, 20);
graphics.fillCircle(8, 24, 2);
}
private drawSerpentSpearIcon(graphics: Phaser.GameObjects.Graphics) {
graphics.lineStyle(3, 0x7a4d2e, 1);
graphics.beginPath();
graphics.moveTo(6, 25);
graphics.lineTo(10, 20);
graphics.lineTo(11, 16);
graphics.lineTo(14, 13);
graphics.lineTo(15, 9);
graphics.lineTo(21, 4);
graphics.strokePath();
graphics.fillStyle(0xe0e8ef, 1);
graphics.fillTriangle(20, 3, 25, 5, 20, 9);
graphics.fillTriangle(19, 6, 23, 10, 17, 12);
graphics.fillTriangle(21, 3, 18, 1, 19, 6);
graphics.lineStyle(1, 0xffffff, 0.75);
graphics.beginPath();
graphics.moveTo(21, 4);
graphics.lineTo(22, 8);
graphics.strokePath();
graphics.lineStyle(2, 0xb86b55, 1);
graphics.beginPath();
graphics.moveTo(8, 23);
graphics.lineTo(12, 21);
graphics.lineTo(10, 18);
graphics.lineTo(14, 15);
graphics.lineTo(13, 12);
graphics.lineTo(17, 10);
graphics.strokePath();
graphics.fillStyle(0xb86b55, 1);
graphics.fillTriangle(14, 13, 19, 12, 16, 17);
graphics.fillTriangle(12, 16, 16, 17, 13, 20);
graphics.fillCircle(12, 20, 1);
}
private drawIronSpearIcon(graphics: Phaser.GameObjects.Graphics) {
graphics.lineStyle(4, 0x6c4b32, 1);
graphics.beginPath();
graphics.moveTo(7, 24);
graphics.lineTo(20, 5);
graphics.strokePath();
graphics.lineStyle(1, 0xc49458, 0.85);
graphics.beginPath();
graphics.moveTo(9, 22);
graphics.lineTo(19, 7);
graphics.strokePath();
graphics.fillStyle(0xd8dfe6, 1);
graphics.fillTriangle(20, 3, 25, 5, 21, 9);
graphics.fillTriangle(18, 6, 21, 9, 17, 13);
graphics.lineStyle(1, 0xffffff, 0.75);
graphics.beginPath();
graphics.moveTo(20, 4);
graphics.lineTo(22, 7);
graphics.strokePath();
graphics.fillStyle(0x6cc5ff, 1);
graphics.fillRect(15, 12, 5, 2);
graphics.fillRect(13, 15, 5, 2);
graphics.fillStyle(0x50606a, 1);
graphics.fillCircle(7, 24, 2);
graphics.fillCircle(20, 10, 1);
graphics.lineStyle(1, 0x1d2b34, 0.75);
graphics.beginPath();
graphics.moveTo(16, 13);
graphics.lineTo(20, 10);
graphics.strokePath();
}
private drawSpearIcon(graphics: Phaser.GameObjects.Graphics, bladeColor: number, accentColor: number) {
graphics.lineStyle(3, 0x8d5a3a, 1);
private drawSkyPiercerHalberdIcon(graphics: Phaser.GameObjects.Graphics) {
graphics.lineStyle(4, 0x5c3c28, 1);
graphics.beginPath();
graphics.moveTo(7, 24);
graphics.lineTo(20, 4);
graphics.moveTo(7, 25);
graphics.lineTo(17, 5);
graphics.strokePath();
graphics.lineStyle(1, 0xbb8550, 0.85);
graphics.beginPath();
graphics.moveTo(9, 23);
graphics.lineTo(17, 7);
graphics.strokePath();
graphics.fillStyle(0xd8dfe6, 1);
graphics.fillTriangle(17, 3, 23, 5, 18, 10);
graphics.fillEllipse(21, 10, 12, 10);
graphics.fillTriangle(18, 9, 27, 10, 20, 17);
graphics.fillTriangle(16, 10, 10, 12, 16, 16);
graphics.fillStyle(0x101820, 0.44);
graphics.fillTriangle(22, 6, 26, 10, 21, 13);
graphics.lineStyle(2, 0xffffff, 0.7);
graphics.beginPath();
graphics.moveTo(18, 5);
graphics.lineTo(21, 10);
graphics.lineTo(18, 15);
graphics.strokePath();
graphics.fillStyle(0xd95f4f, 1);
graphics.fillTriangle(14, 13, 19, 13, 15, 20);
graphics.fillTriangle(12, 15, 16, 17, 12, 22);
graphics.fillStyle(0xd8b15f, 1);
graphics.fillCircle(16, 14, 2);
}
private drawWesternCavalrySpearIcon(graphics: Phaser.GameObjects.Graphics) {
graphics.lineStyle(4, 0x72512f, 1);
graphics.beginPath();
graphics.moveTo(4, 24);
graphics.lineTo(22, 4);
graphics.strokePath();
graphics.lineStyle(1, 0xd0a061, 0.9);
graphics.beginPath();
graphics.moveTo(7, 22);
graphics.lineTo(21, 6);
graphics.strokePath();
graphics.fillStyle(0xe6d3a6, 1);
graphics.fillTriangle(21, 3, 27, 4, 23, 9);
graphics.fillTriangle(20, 6, 23, 9, 18, 12);
graphics.lineStyle(1, 0xffffff, 0.6);
graphics.beginPath();
graphics.moveTo(22, 4);
graphics.lineTo(23, 8);
graphics.strokePath();
graphics.fillStyle(0x2f5f8f, 1);
graphics.fillTriangle(13, 10, 20, 11, 15, 17);
graphics.fillStyle(0xd8b15f, 1);
graphics.fillTriangle(14, 12, 19, 13, 15, 16);
graphics.fillCircle(13, 13, 1);
graphics.lineStyle(2, 0xb86b55, 1);
graphics.beginPath();
graphics.moveTo(9, 19);
graphics.lineTo(12, 17);
graphics.moveTo(12, 16);
graphics.lineTo(15, 14);
graphics.strokePath();
graphics.fillStyle(bladeColor, 1);
graphics.fillTriangle(18, 4, 24, 2, 22, 9);
graphics.fillStyle(accentColor, 1);
graphics.fillTriangle(15, 11, 20, 9, 17, 15);
}
private drawSaberIcon(graphics: Phaser.GameObjects.Graphics, bladeColor: number, gripColor: number) {