Compare commits
2 Commits
419b36c22f
...
da90e012fc
Author | SHA1 | Date | |
---|---|---|---|
da90e012fc | |||
c4e35ac3ae |
@ -120,11 +120,11 @@ const Hand: React.FC<HandProps> = ({ buildActive, setBuildActive, setCardActive
|
|||||||
}
|
}
|
||||||
return B.turn - A.turn; /* Put playable cards on top */
|
return B.turn - A.turn; /* Put playable cards on top */
|
||||||
})
|
})
|
||||||
.map((card: any) => (
|
.map((card: any, idx: number) => (
|
||||||
<Development
|
<Development
|
||||||
onClick={() => cardClicked(card)}
|
onClick={() => cardClicked(card)}
|
||||||
card={card}
|
card={card}
|
||||||
key={`${type}-${card.card}`}
|
key={`${type}-${card.card}-${card.turn ?? "t"}-${idx}`}
|
||||||
type={`${type}-${card.card}`}
|
type={`${type}-${card.card}`}
|
||||||
/>
|
/>
|
||||||
));
|
));
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -20,11 +20,15 @@ export interface Player {
|
|||||||
cities: number;
|
cities: number;
|
||||||
longestRoad: number;
|
longestRoad: number;
|
||||||
mustDiscard?: number;
|
mustDiscard?: number;
|
||||||
|
/* Resources */
|
||||||
sheep: number;
|
sheep: number;
|
||||||
wheat: number;
|
wheat: number;
|
||||||
stone: number;
|
stone: number;
|
||||||
brick: number;
|
brick: number;
|
||||||
wood: number;
|
wood: number;
|
||||||
|
desert: number; /* Not used -- for Typescript compliance */
|
||||||
|
bank: number; /* Not used -- for Typescript compliance */
|
||||||
|
/* End Resources */
|
||||||
army: number;
|
army: number;
|
||||||
points: number;
|
points: number;
|
||||||
ports: number;
|
ports: number;
|
||||||
@ -38,6 +42,11 @@ export interface Player {
|
|||||||
turnStart: number;
|
turnStart: number;
|
||||||
totalTime: number;
|
totalTime: number;
|
||||||
banks: ResourceType[];
|
banks: ResourceType[];
|
||||||
|
/* Offer */
|
||||||
|
gives: OfferItem[];
|
||||||
|
gets: OfferItem[];
|
||||||
|
offerRejected: Record<PlayerColor, boolean>;
|
||||||
|
/* End Offer */
|
||||||
}
|
}
|
||||||
|
|
||||||
export type CornerType = "settlement" | "city" | "none";
|
export type CornerType = "settlement" | "city" | "none";
|
||||||
@ -72,20 +81,21 @@ export interface Turn {
|
|||||||
limits?: any;
|
limits?: any;
|
||||||
roll?: number;
|
roll?: number;
|
||||||
volcano?: number | null | undefined;
|
volcano?: number | null | undefined;
|
||||||
free?: boolean;
|
free: boolean;
|
||||||
freeRoads?: number;
|
freeRoads: number;
|
||||||
select?: Record<string, number>;
|
select?: Record<string, number>;
|
||||||
active?: string;
|
active: "volcano" | "robber" | "road-building" | "offer" | null;
|
||||||
robberInAction?: boolean;
|
robberInAction: boolean;
|
||||||
placedRobber?: number;
|
placedRobber: boolean;
|
||||||
offer?: Offer;
|
developmentPurchased: boolean;
|
||||||
|
offer: Offer | null;
|
||||||
[key: string]: any;
|
[key: string]: any;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface DevelopmentCard {
|
export interface DevelopmentCard {
|
||||||
card?: number | string;
|
card?: number | string;
|
||||||
type?: string;
|
type?: string;
|
||||||
[key: string]: any;
|
turn?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Import from schema for DRY compliance
|
// Import from schema for DRY compliance
|
||||||
@ -105,8 +115,8 @@ export interface PersistentSessionData {
|
|||||||
resources?: number;
|
resources?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type PlayerColor = "R" | "B" | "O" | "W" | "robber" | "unassigned";
|
export type PlayerColor = "R" | "B" | "O" | "W" | "robber" | "bank" | "unassigned";
|
||||||
export const PLAYER_COLORS: PlayerColor[] = ["R", "B", "O", "W", "robber", "unassigned"];
|
export const PLAYER_COLORS: PlayerColor[] = ["R", "B", "O", "W", "robber", "bank", "unassigned"];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Runtime Session type = Persistent + Transient
|
* Runtime Session type = Persistent + Transient
|
||||||
@ -115,14 +125,15 @@ export const PLAYER_COLORS: PlayerColor[] = ["R", "B", "O", "W", "robber", "unas
|
|||||||
export type Session = PersistentSessionData & TransientSessionState;
|
export type Session = PersistentSessionData & TransientSessionState;
|
||||||
|
|
||||||
export interface OfferItem {
|
export interface OfferItem {
|
||||||
type: string; // 'bank' or resource key or other
|
type: ResourceType; // 'bank' or resource key or other
|
||||||
count: number;
|
count: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Offer {
|
export interface Offer {
|
||||||
gets: OfferItem[];
|
gets: OfferItem[];
|
||||||
gives: OfferItem[];
|
gives: OfferItem[];
|
||||||
[key: string]: any;
|
name: string;
|
||||||
|
color: PlayerColor; // Omit for bank trades
|
||||||
}
|
}
|
||||||
|
|
||||||
export type ResourceType = "wood" | "brick" | "sheep" | "wheat" | "stone" | "desert" | "bank";
|
export type ResourceType = "wood" | "brick" | "sheep" | "wheat" | "stone" | "desert" | "bank";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user