1
0

Compare commits

..

No commits in common. "da90e012fc29960239e0fc2803e17d27e96b256d" and "419b36c22f283b7269c26c027b3c29c442180c7e" have entirely different histories.

3 changed files with 722 additions and 983 deletions

View File

@ -120,11 +120,11 @@ const Hand: React.FC<HandProps> = ({ buildActive, setBuildActive, setCardActive
}
return B.turn - A.turn; /* Put playable cards on top */
})
.map((card: any, idx: number) => (
.map((card: any) => (
<Development
onClick={() => cardClicked(card)}
card={card}
key={`${type}-${card.card}-${card.turn ?? "t"}-${idx}`}
key={`${type}-${card.card}`}
type={`${type}-${card.card}`}
/>
));

File diff suppressed because it is too large Load Diff

View File

@ -20,15 +20,11 @@ export interface Player {
cities: number;
longestRoad: number;
mustDiscard?: number;
/* Resources */
sheep: number;
wheat: number;
stone: number;
brick: number;
wood: number;
desert: number; /* Not used -- for Typescript compliance */
bank: number; /* Not used -- for Typescript compliance */
/* End Resources */
army: number;
points: number;
ports: number;
@ -42,11 +38,6 @@ export interface Player {
turnStart: number;
totalTime: number;
banks: ResourceType[];
/* Offer */
gives: OfferItem[];
gets: OfferItem[];
offerRejected: Record<PlayerColor, boolean>;
/* End Offer */
}
export type CornerType = "settlement" | "city" | "none";
@ -81,21 +72,20 @@ export interface Turn {
limits?: any;
roll?: number;
volcano?: number | null | undefined;
free: boolean;
freeRoads: number;
free?: boolean;
freeRoads?: number;
select?: Record<string, number>;
active: "volcano" | "robber" | "road-building" | "offer" | null;
robberInAction: boolean;
placedRobber: boolean;
developmentPurchased: boolean;
offer: Offer | null;
active?: string;
robberInAction?: boolean;
placedRobber?: number;
offer?: Offer;
[key: string]: any;
}
export interface DevelopmentCard {
card?: number | string;
type?: string;
turn?: number;
[key: string]: any;
}
// Import from schema for DRY compliance
@ -115,8 +105,8 @@ export interface PersistentSessionData {
resources?: number;
}
export type PlayerColor = "R" | "B" | "O" | "W" | "robber" | "bank" | "unassigned";
export const PLAYER_COLORS: PlayerColor[] = ["R", "B", "O", "W", "robber", "bank", "unassigned"];
export type PlayerColor = "R" | "B" | "O" | "W" | "robber" | "unassigned";
export const PLAYER_COLORS: PlayerColor[] = ["R", "B", "O", "W", "robber", "unassigned"];
/**
* Runtime Session type = Persistent + Transient
@ -125,15 +115,14 @@ export const PLAYER_COLORS: PlayerColor[] = ["R", "B", "O", "W", "robber", "bank
export type Session = PersistentSessionData & TransientSessionState;
export interface OfferItem {
type: ResourceType; // 'bank' or resource key or other
type: string; // 'bank' or resource key or other
count: number;
}
export interface Offer {
gets: OfferItem[];
gives: OfferItem[];
name: string;
color: PlayerColor; // Omit for bank trades
[key: string]: any;
}
export type ResourceType = "wood" | "brick" | "sheep" | "wheat" | "stone" | "desert" | "bank";