more info in tooltips

This commit is contained in:
Gavin McDonald
2025-04-15 15:48:36 -04:00
parent 46e56212e7
commit 4df12a80b0
4 changed files with 78 additions and 12 deletions

9
tools/cardTypes.ts Normal file
View File

@@ -0,0 +1,9 @@
import { TarokkaGameCard, TarokkaGameHigh, TarokkaGameLow, TarokkaGameBase } from '@/types';
export const isHighCard = (card: TarokkaGameCard): card is TarokkaGameHigh =>
'prophecy' in card && 'allies' in card.prophecy;
export const isLowCard = (card: TarokkaGameCard): card is TarokkaGameLow =>
'prophecy' in card && 'playerText' in card.prophecy;
export const isBaseCard = (card: TarokkaGameCard): card is TarokkaGameBase => !('prophecy' in card);

35
tools/getCardInfo.ts Normal file
View File

@@ -0,0 +1,35 @@
import { isHighCard, isLowCard } from '@/tools/cardTypes';
import { Layout, TarokkaGameCard } from '@/types';
export default function getTooltip(card: TarokkaGameCard, position: Layout, dm: boolean) {
const { card: cardName, description, flipped } = card;
let text: string[] = [position.text];
if (flipped) {
if (dm) text.push(`${cardName}: ${description}`);
if (isHighCard(card)) {
// High deck ally
if (position.id === 'ally') {
if (dm) text.push(`Ally: ${card.prophecy.allies[0].ally}`);
if (dm) text.push(card.prophecy.allies[0].dmText);
text.push(card.prophecy.allies[0].playerText);
}
// High deck Strahd
if (position.id === 'strahd') {
if (dm) text.push(card.prophecy.strahd.dmText);
text.push(card.prophecy.strahd.playerText);
}
}
// Low deck Tome, Ravenkind, or Sunsword
if (isLowCard(card)) {
if (dm) text.push(card.prophecy.dmText);
text.push(card.prophecy.playerText);
}
}
return text;
}