feat: use sprite sheet for Old Maid card rendering

- Replace custom-drawn Old Maid card with sprite frame (frame 13)
- Load oldmaid-cards.png spritesheet in PreloadScene
- Rename GOFISH_CARD_FRAME to OLDMAID_CARD_FRAME for clarity
This commit is contained in:
Brian Fertig 2026-05-31 19:21:09 -06:00
parent 2bb4d14c97
commit 57c0a55710
2 changed files with 5 additions and 18 deletions

View File

@ -95,7 +95,7 @@ const SUIT_COLORS = {
h: { fill: 0xfbe7e2, stroke: 0xc92a2a, glyph: '#c92a2a' },
d: { fill: 0xfbe7e2, stroke: 0xc92a2a, glyph: '#c92a2a' },
};
const GOFISH_CARD_FRAME = { A: 0, '2': 1, '3': 2, '4': 3, '5': 4, '6': 5, '7': 6, '8': 7, '9': 8, T: 9, J: 10, Q: 11, K: 12 };
const OLDMAID_CARD_FRAME = { A: 0, '2': 1, '3': 2, '4': 3, '5': 4, '6': 5, '7': 6, '8': 7, '9': 8, T: 9, J: 10, Q: 11, K: 12, OM: 13 };
// ── Scene ───────────────────────────────────────────────────────────────────
export default class OldMaidGame extends Phaser.Scene {
@ -323,24 +323,10 @@ export default class OldMaidGame extends Phaser.Scene {
return;
}
// Special unmatched Old Maid card — distinct custom face.
if (card.isOldMaid) {
g.fillStyle(0x2c1a3a, 1);
g.fillRoundedRect(x, y, CARD_W, CARD_H, CARD_R);
g.lineStyle(3, 0xc678dd, 1);
g.strokeRoundedRect(x + 2, y + 2, CARD_W - 4, CARD_H - 4, CARD_R - 1);
container.add(g);
container.add(this.add.text(0, -8, '👵', { fontFamily: 'sans-serif', fontSize: '52px' }).setOrigin(0.5));
container.add(this.add.text(0, y + CARD_H - 22, 'OLD MAID', {
fontFamily: 'Righteous', fontSize: '13px', color: '#e6c8ff',
}).setOrigin(0.5));
return;
}
const frame = GOFISH_CARD_FRAME[card.rank];
if (frame !== undefined && this.textures.exists('gofish-cards')) {
const frame = OLDMAID_CARD_FRAME[card.rank];
if (frame !== undefined && this.textures.exists('oldmaid-cards')) {
g.destroy();
container.add(this.add.image(0, 0, 'gofish-cards', frame).setDisplaySize(CARD_W, CARD_H).setOrigin(0.5));
container.add(this.add.image(0, 0, 'oldmaid-cards', frame).setDisplaySize(CARD_W, CARD_H).setOrigin(0.5));
return;
}

View File

@ -88,6 +88,7 @@ export default class PreloadScene extends Phaser.Scene {
this.load.spritesheet('dominion-tokens', '/assets/images/dominion-tokens.png', { frameWidth: 150, frameHeight: 150 });
this.load.spritesheet('ttr-cards', '/assets/images/tickettoride-cards.png', { frameWidth: 270, frameHeight: 390 });
this.load.spritesheet('gofish-cards', '/assets/images/gofish-cards.png', { frameWidth: 270, frameHeight: 390 });
this.load.spritesheet('oldmaid-cards', '/assets/images/oldmaid-cards.png', { frameWidth: 270, frameHeight: 390 });
this.load.spritesheet('tab-icons', '/assets/images/tab-icons.png', { frameWidth: 128, frameHeight: 128 });
this.load.spritesheet('game-icons', '/assets/images/game-icons.png', { frameWidth: 44, frameHeight: 44 });
}