diff --git a/backend/src/utils.ts b/backend/src/utils.ts index ad0e618..1485dbf 100644 --- a/backend/src/utils.ts +++ b/backend/src/utils.ts @@ -1,5 +1,6 @@ import { Response } from 'express'; import { AuthRequest } from './middlewares/authMiddleware'; +import { CardColor, UNOCard } from './types'; export type ControllerFunction = ( req: AuthRequest, @@ -15,3 +16,43 @@ export function catchError(fn: ControllerFunction): ControllerFunction { } }; } + +export function getCardImageName(card: UNOCard): string { + function getColorAbbreviation(color: CardColor): string { + switch (color) { + case 'red': + return 'r'; + case 'blue': + return 'b'; + case 'green': + return 'g'; + case 'yellow': + return 'o'; + default: + return ''; + } + } + if (card.type === 'wild') { + if (card.value === 'colchange') { + return 'CC'; + } else { + return 'P4'; + } + } else if (card.type === 'special') { + let value; + switch (card.value) { + case 'skip': + value = 'r'; + break; + case 'reverse': + value = 'x'; + break; + case 'draw2': + value = 'p2'; + break; + } + return `${getColorAbbreviation(card.color)}${value}`; + } else { + return `${getColorAbbreviation(card.color)}${card.value}`; + } +}