Add weather rules and streamline setup

This commit is contained in:
2026-04-09 17:42:19 -04:00
parent 8b50482621
commit 1cc85397bd
5 changed files with 161 additions and 51 deletions

View File

@@ -24,6 +24,7 @@ export type SetupState = {
initiativeMode: "fixed" | "bid";
biddingOrderRule: "rotating" | "lowest_growth_income";
weatherDraftEnabled: boolean;
weatherDraftCount: number;
winCondition: "rounds" | "top_leaves";
maxRounds: number;
topLeafTarget: number;
@@ -52,6 +53,7 @@ export type GameConfig = {
initiativeMode: SetupState["initiativeMode"];
biddingOrderRule: SetupState["biddingOrderRule"];
weatherDraftEnabled: boolean;
weatherDraftCount: number;
winCondition: SetupState["winCondition"];
maxRounds: number;
topLeafTarget: number;
@@ -110,6 +112,7 @@ export type ColumnEnergy = {
terminalRow: number;
intercepted: boolean;
ownerId: PlayerId | null;
playersPresent: PlayerId[];
hitNode: Position | null;
rootKey: NodeKey | null;
branchNodes: Position[];
@@ -183,12 +186,17 @@ export type GamePhase = "initiative" | "turn" | "round_end" | "game_over";
export type WeatherCardId =
| "leaf_surge"
| "branching_season"
| "storehouse"
| "sun_ladder"
| "west_light"
| "east_light"
| "high_noon"
| "edge_bloom"
| "wide_reach"
| "tall_reward";
| "tall_reward"
| "stalemate"
| "split_light"
| "shared_light";
export type WeatherCardDefinition = {
id: WeatherCardId;