Show explicit blackjack settlements across the stack
- Replace round payout multipliers with per-player settlement amounts - Update blackjack panel to display wager, payout, and net results
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,7 @@ export interface GameUIProps {
|
||||
isSpectator: boolean;
|
||||
onAction: (action: unknown) => void;
|
||||
players: { discordId: string; username: string }[];
|
||||
roundResult?: { payouts: Record<string, { net: number }> } | null;
|
||||
roundResult?: { settlements: Record<string, { wager: number; payout: number; net: number }> } | null;
|
||||
roomOptions?: { betAmount?: number; timeControl?: string };
|
||||
}
|
||||
|
||||
|
||||
@@ -103,3 +103,18 @@ body {
|
||||
.animate-in.slide-in-from-bottom-4 {
|
||||
animation: slideInFromBottom 0.3s ease-out forwards;
|
||||
}
|
||||
|
||||
@keyframes blackjack-card-deal {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(16px) scale(0.94) rotate(-5deg);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0) scale(1) rotate(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
.blackjack-card-deal {
|
||||
animation: blackjack-card-deal 320ms cubic-bezier(0.16, 1, 0.3, 1) both;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ interface PlayerInfo {
|
||||
}
|
||||
|
||||
interface RoundResult {
|
||||
payouts: Record<string, { net: number }>;
|
||||
settlements: Record<string, { wager: number; payout: number; net: number }>;
|
||||
}
|
||||
|
||||
interface GameRoomState {
|
||||
@@ -99,7 +99,15 @@ export function useGameRoom(roomId: string, userId: string, role?: string, prefe
|
||||
|
||||
case "GAME_UPDATE":
|
||||
// Broadcast with spectator view — only update state for spectators
|
||||
setState(prev => prev.isSpectator ? { ...prev, gameState: msg.state } : prev);
|
||||
setState(prev => {
|
||||
if (!prev.isSpectator) return prev;
|
||||
const phase = (msg.state as any)?.phase;
|
||||
return {
|
||||
...prev,
|
||||
gameState: msg.state,
|
||||
roundResult: phase === "betting" ? null : prev.roundResult,
|
||||
};
|
||||
});
|
||||
break;
|
||||
|
||||
case "PLAYER_JOINED":
|
||||
@@ -135,7 +143,7 @@ export function useGameRoom(roomId: string, userId: string, role?: string, prefe
|
||||
case "ROUND_SETTLED":
|
||||
setState(prev => ({
|
||||
...prev,
|
||||
roundResult: { payouts: msg.payouts },
|
||||
roundResult: { settlements: msg.settlements },
|
||||
}));
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user