summaryrefslogtreecommitdiff
path: root/frontend/src/api/model.js
diff options
context:
space:
mode:
authorjbion <joffrey.bion@amadeus.com>2019-02-25 20:31:39 +0100
committerjbion <joffrey.bion@amadeus.com>2019-02-25 20:31:39 +0100
commit4f84ca4fc2c9f044dc6814da6e8c365d17a76a28 (patch)
tree7e6decb49ea12dc33f49fc7a98da30ebd2159494 /frontend/src/api/model.js
parentChange page title to "Seven Wonders" (diff)
downloadseven-wonders-4f84ca4fc2c9f044dc6814da6e8c365d17a76a28.tar.gz
seven-wonders-4f84ca4fc2c9f044dc6814da6e8c365d17a76a28.tar.bz2
seven-wonders-4f84ca4fc2c9f044dc6814da6e8c365d17a76a28.zip
Improve output model
Diffstat (limited to 'frontend/src/api/model.js')
-rw-r--r--frontend/src/api/model.js77
1 files changed, 68 insertions, 9 deletions
diff --git a/frontend/src/api/model.js b/frontend/src/api/model.js
index 54be5cf8..011b59ec 100644
--- a/frontend/src/api/model.js
+++ b/frontend/src/api/model.js
@@ -42,34 +42,75 @@ export type ApiPlayer = {
};
export type ApiTable = {
+ boards: ApiBoard[],
+ currentAge: number,
+ handRotationDirection: HandRotationDirection,
+ lastPlayedMoves: ApiPlayedMove[],
+ nbPlayers: number,
+};
+export type ApiBoard = {
+ playerIndex: number,
+ wonder: ApiWonder,
+ production: ApiProduction,
+ publicProduction: ApiProduction,
+ science: ApiScience,
+ military: ApiMilitary,
+ playedCards: ApiTableCard[],
+ gold: number,
};
-export type ApiAction = {};
+export type ApiWonder = {
+ name: string,
+ initialResource: ApiResourceType,
+ stages: ApiWonderStage[],
+ image: string,
+ nbBuiltStages: Int,
+ buildability: ApiWonderBuildability,
+}
+
+export type ApiWonderStage = {
+ cardBack: ApiCardBack | null,
+ isBuilt: boolean,
+ requirements: ApiRequirements,
+ builtDuringLastMove: boolean,
+}
+
+export type HandRotationDirection = 'LEFT' | 'RIGHT';
+
+export type ApiAction = 'PLAY' | 'PLAY_2' | 'PLAY_LAST' | 'PICK_NEIGHBOR_GUILD' | 'WAIT';
export type ApiCard = {
name: string,
- image: string
+ color: Color,
+ requirements: ApiRequirements,
+ chainParent: String | null,
+ chainChildren: String[],
+ image: string,
+ back: ApiCardBack
};
export type ApiHandCard = ApiCard & {
- playability: ApiPlayability
+ playability: ApiPlayability,
};
export type ApiPlayability = {
- playable: boolean
+ playable: boolean,
+ chainable: boolean,
+ minPrice: number,
};
export type ApiTableCard = ApiCard & {
+ playedDuringLastMove: boolean,
};
export type ApiCardBack = {
- image: string
+ image: string,
};
export type ApiPreparedCard = {
player: ApiPlayer,
- cardBack: ApiCardBack
+ cardBack: ApiCardBack,
};
export type ApiPlayerTurnInfo = {
@@ -91,16 +132,34 @@ export type ApiMoveType = "PLAY" | "PLAY_FREE" | "UPGRADE_WONDER" | "DISCARD" |
export type ApiProvider = "LEFT_NEIGHBOUR" | "RIGHT_NEIGHBOUR";
export type ApiResourceType = "WOOD" | "STONE" | "ORE" | "CLAY" | "GLASS" | "PAPYRUS" | "LOOM";
+export type ApiProduction = {
+ fixedResources: ApiCountedResource[],
+ alternativeResources: ApiResourceType[][],
+}
+
+export type ApiCountedResource = {
+ type: ApiResourceType,
+ count: number,
+}
+
export type ApiResources = {
- quantities: Map<ApiResourceType, number>
+ quantities: Map<ApiResourceType, number>,
};
+
export type ApiBoughtResources = {
provider: ApiProvider,
- resources: ApiResources
+ resources: ApiResources,
};
export type ApiPlayerMove = {
type: ApiMoveType,
cardName: string,
- boughtResources: ApiBoughtResources[]
+ boughtResources: ApiBoughtResources[],
+};
+
+export type ApiPlayedMove = {
+ playerIndex: number,
+ type: ApiMoveType,
+ card: ApiTableCard,
+ boughtResources: ApiBoughtResources[],
};
bgstack15