summaryrefslogtreecommitdiff
path: root/sw-engine
diff options
context:
space:
mode:
Diffstat (limited to 'sw-engine')
-rw-r--r--sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/Game.kt10
-rw-r--r--sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/converters/Boards.kt70
-rw-r--r--sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/converters/Table.kt6
3 files changed, 42 insertions, 44 deletions
diff --git a/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/Game.kt b/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/Game.kt
index bbd96d33..8cdda393 100644
--- a/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/Game.kt
+++ b/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/Game.kt
@@ -5,7 +5,7 @@ import org.luxons.sevenwonders.engine.boards.Table
import org.luxons.sevenwonders.engine.cards.Card
import org.luxons.sevenwonders.engine.cards.Decks
import org.luxons.sevenwonders.engine.cards.Hands
-import org.luxons.sevenwonders.engine.converters.toApiTable
+import org.luxons.sevenwonders.engine.converters.toGameState
import org.luxons.sevenwonders.engine.converters.toPlayedMove
import org.luxons.sevenwonders.engine.converters.toTableCard
import org.luxons.sevenwonders.engine.data.LAST_AGE
@@ -14,7 +14,7 @@ import org.luxons.sevenwonders.engine.moves.Move
import org.luxons.sevenwonders.engine.moves.resolve
import org.luxons.sevenwonders.engine.score.ScoreBoard
import org.luxons.sevenwonders.model.Action
-import org.luxons.sevenwonders.model.ApiTable
+import org.luxons.sevenwonders.model.GameState
import org.luxons.sevenwonders.model.PlayerMove
import org.luxons.sevenwonders.model.PlayerTurnInfo
import org.luxons.sevenwonders.model.cards.CardBack
@@ -54,7 +54,7 @@ class Game internal constructor(
return PlayerTurnInfo(
playerIndex = player.index,
- table = table.toApiTable(),
+ table = table.toGameState(),
action = action,
hand = hand,
preparedMove = preparedMoves[player.index]?.toPlayedMove(),
@@ -107,7 +107,7 @@ class Game internal constructor(
* had not prepared their moves (unless these players had nothing to do). To avoid this, please check if everyone
* is ready using [allPlayersPreparedTheirMove].
*/
- fun playTurn(): ApiTable {
+ fun playTurn(): GameState {
makeMoves()
if (endOfAgeReached()) {
executeEndOfAgeEvents()
@@ -118,7 +118,7 @@ class Game internal constructor(
rotateHandsIfRelevant()
startNewTurn()
}
- return table.toApiTable()
+ return table.toGameState()
}
private fun makeMoves() {
diff --git a/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/converters/Boards.kt b/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/converters/Boards.kt
index ad03c228..efb2613e 100644
--- a/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/converters/Boards.kt
+++ b/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/converters/Boards.kt
@@ -1,26 +1,26 @@
package org.luxons.sevenwonders.engine.converters
import org.luxons.sevenwonders.engine.Player
-import org.luxons.sevenwonders.engine.boards.Military
-import org.luxons.sevenwonders.engine.boards.Science
import org.luxons.sevenwonders.engine.boards.ScienceType
-import org.luxons.sevenwonders.engine.cards.Requirements
import org.luxons.sevenwonders.engine.moves.Move
-import org.luxons.sevenwonders.engine.resources.Production
import org.luxons.sevenwonders.engine.resources.Resources
import org.luxons.sevenwonders.model.MoveType
-import org.luxons.sevenwonders.model.boards.ApiBoard
-import org.luxons.sevenwonders.model.boards.ApiMilitary
-import org.luxons.sevenwonders.model.boards.ApiProduction
-import org.luxons.sevenwonders.model.boards.ApiRequirements
-import org.luxons.sevenwonders.model.boards.ApiScience
import org.luxons.sevenwonders.model.cards.TableCard
import org.luxons.sevenwonders.model.resources.CountedResource
-import org.luxons.sevenwonders.model.wonders.ApiWonder
-import org.luxons.sevenwonders.model.wonders.ApiWonderStage
import org.luxons.sevenwonders.engine.boards.Board as InternalBoard
+import org.luxons.sevenwonders.engine.boards.Military as InternalMilitary
+import org.luxons.sevenwonders.engine.boards.Science as InternalScience
+import org.luxons.sevenwonders.engine.cards.Requirements as InternalRequirements
+import org.luxons.sevenwonders.engine.resources.Production as InternalProduction
import org.luxons.sevenwonders.engine.wonders.Wonder as InternalWonder
import org.luxons.sevenwonders.engine.wonders.WonderStage as InternalWonderStage
+import org.luxons.sevenwonders.model.boards.Board as ApiBoard
+import org.luxons.sevenwonders.model.boards.Military as ApiMilitary
+import org.luxons.sevenwonders.model.boards.Production as ApiProduction
+import org.luxons.sevenwonders.model.boards.Requirements as ApiRequirements
+import org.luxons.sevenwonders.model.boards.Science as ApiScience
+import org.luxons.sevenwonders.model.wonders.ApiWonder as ApiWonder
+import org.luxons.sevenwonders.model.wonders.ApiWonderStage as ApiWonderStage
internal fun InternalBoard.toApiBoard(player: Player, lastMove: Move?): ApiBoard =
ApiBoard(
@@ -45,34 +45,33 @@ internal fun List<TableCard>.toColumns(): List<List<TableCard>> {
return listOf(resourceCardsCol) + otherColsSorted
}
-internal fun InternalWonder.toApiWonder(player: Player, lastMove: Move?): ApiWonder =
- ApiWonder(
- name = name,
- initialResource = initialResource,
- stages = stages.map { it.toApiWonderStage(lastBuiltStage == it, lastMove) },
- image = image,
- nbBuiltStages = nbBuiltStages,
- buildability = computeBuildabilityBy(player)
- )
-
-internal fun InternalWonderStage.toApiWonderStage(
- isLastBuiltStage: Boolean,
- lastMove: Move?
-): ApiWonderStage = ApiWonderStage(
- cardBack = cardBack,
- isBuilt = isBuilt,
- requirements = requirements.toApiRequirements(),
- builtDuringLastMove = lastMove?.type == MoveType.UPGRADE_WONDER && isLastBuiltStage
+internal fun InternalWonder.toApiWonder(player: Player, lastMove: Move?): ApiWonder = ApiWonder(
+ name = name,
+ initialResource = initialResource,
+ stages = stages.map { it.toApiWonderStage(lastBuiltStage == it, lastMove) },
+ image = image,
+ nbBuiltStages = nbBuiltStages,
+ buildability = computeBuildabilityBy(player)
)
-internal fun Production.toApiProduction(): ApiProduction =
+internal fun InternalWonderStage.toApiWonderStage(isLastBuiltStage: Boolean, lastMove: Move?): ApiWonderStage =
+ ApiWonderStage(
+ cardBack = cardBack,
+ isBuilt = isBuilt,
+ requirements = requirements.toApiRequirements(),
+ builtDuringLastMove = lastMove?.type == MoveType.UPGRADE_WONDER && isLastBuiltStage
+ )
+
+internal fun InternalProduction.toApiProduction(): ApiProduction =
ApiProduction(
- fixedResources = getFixedResources().toCountedResourcesList(), alternativeResources = getAlternativeResources()
+ fixedResources = getFixedResources().toCountedResourcesList(),
+ alternativeResources = getAlternativeResources()
)
-internal fun Requirements.toApiRequirements(): ApiRequirements =
+internal fun InternalRequirements.toApiRequirements(): ApiRequirements =
ApiRequirements(
- gold = gold, resources = resources.toCountedResourcesList()
+ gold = gold,
+ resources = resources.toCountedResourcesList()
)
internal fun Resources.toCountedResourcesList(): List<CountedResource> =
@@ -80,10 +79,9 @@ internal fun Resources.toCountedResourcesList(): List<CountedResource> =
.map { (type, count) -> CountedResource(count, type) }
.sortedBy { it.type }
-internal fun Military.toApiMilitary(): ApiMilitary =
- ApiMilitary(nbShields, totalPoints, nbDefeatTokens)
+internal fun InternalMilitary.toApiMilitary(): ApiMilitary = ApiMilitary(nbShields, totalPoints, nbDefeatTokens)
-internal fun Science.toApiScience(): ApiScience =
+internal fun InternalScience.toApiScience(): ApiScience =
ApiScience(
jokers = jokers,
nbWheels = getQuantity(ScienceType.WHEEL),
diff --git a/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/converters/Table.kt b/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/converters/Table.kt
index d2f5410b..77843334 100644
--- a/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/converters/Table.kt
+++ b/sw-engine/src/main/kotlin/org/luxons/sevenwonders/engine/converters/Table.kt
@@ -1,12 +1,12 @@
package org.luxons.sevenwonders.engine.converters
import org.luxons.sevenwonders.engine.SimplePlayer
-import org.luxons.sevenwonders.engine.boards.Table
import org.luxons.sevenwonders.engine.moves.Move
-import org.luxons.sevenwonders.model.ApiTable
import org.luxons.sevenwonders.model.PlayedMove
+import org.luxons.sevenwonders.engine.boards.Table
+import org.luxons.sevenwonders.model.GameState
-internal fun Table.toApiTable(): ApiTable = ApiTable(
+internal fun Table.toGameState(): GameState = GameState(
boards = boards.mapIndexed { i, b -> b.toApiBoard(SimplePlayer(i, this), lastPlayedMoves.getOrNull(i)) },
currentAge = currentAge,
handRotationDirection = handRotationDirection,
bgstack15