diff options
author | jbion <joffrey.bion@amadeus.com> | 2019-02-25 20:31:39 +0100 |
---|---|---|
committer | jbion <joffrey.bion@amadeus.com> | 2019-02-25 20:31:39 +0100 |
commit | 4f84ca4fc2c9f044dc6814da6e8c365d17a76a28 (patch) | |
tree | 7e6decb49ea12dc33f49fc7a98da30ebd2159494 /frontend/src/api/model.js | |
parent | Change page title to "Seven Wonders" (diff) | |
download | seven-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.js | 77 |
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[], }; |