summaryrefslogtreecommitdiff
path: root/sw-common-model/src
diff options
context:
space:
mode:
authorJoffrey Bion <joffrey.bion@gmail.com>2021-03-08 00:09:30 +0100
committerJoffrey Bion <joffrey.bion@gmail.com>2021-03-08 00:11:00 +0100
commitaff9c012e15286718ec6358b153dfabcc3e8d573 (patch)
tree647c6a1093f755b83ed9ad35db2025148c21980b /sw-common-model/src
parentFix empty guilds check (diff)
downloadseven-wonders-aff9c012e15286718ec6358b153dfabcc3e8d573.tar.gz
seven-wonders-aff9c012e15286718ec6358b153dfabcc3e8d573.tar.bz2
seven-wonders-aff9c012e15286718ec6358b153dfabcc3e8d573.zip
Move GameState to the client
Diffstat (limited to 'sw-common-model/src')
-rw-r--r--sw-common-model/src/commonMain/kotlin/org/luxons/sevenwonders/model/PlayerState.kt43
1 files changed, 0 insertions, 43 deletions
diff --git a/sw-common-model/src/commonMain/kotlin/org/luxons/sevenwonders/model/PlayerState.kt b/sw-common-model/src/commonMain/kotlin/org/luxons/sevenwonders/model/PlayerState.kt
index 725b1654..90d23aa9 100644
--- a/sw-common-model/src/commonMain/kotlin/org/luxons/sevenwonders/model/PlayerState.kt
+++ b/sw-common-model/src/commonMain/kotlin/org/luxons/sevenwonders/model/PlayerState.kt
@@ -1,52 +1,9 @@
package org.luxons.sevenwonders.model
import kotlinx.serialization.Serializable
-import org.luxons.sevenwonders.model.api.PlayerDTO
-import org.luxons.sevenwonders.model.boards.Board
-import org.luxons.sevenwonders.model.boards.RelativeBoardPosition
-import org.luxons.sevenwonders.model.cards.CardBack
-import org.luxons.sevenwonders.model.cards.HandCard
-import org.luxons.sevenwonders.model.cards.HandRotationDirection
import org.luxons.sevenwonders.model.wonders.WonderBuildability
@Serializable
-data class GameState(
- val gameId: Long,
- val playerIndex: Int,
- val currentAge: Age,
- val players: List<PlayerDTO>,
- val boards: List<Board>,
- val handRotationDirection: HandRotationDirection,
- val action: TurnAction,
- val preparedCardsByUsername: Map<String, CardBack?> = emptyMap(),
- val currentPreparedMove: PlayerMove? = null,
-) {
- val currentPreparedCard: HandCard?
- get() {
- val hand = (action as? TurnAction.PlayFromHand)?.hand
- return hand?.firstOrNull { it.name == currentPreparedMove?.cardName }
- }
-
- val RelativeBoardPosition.absoluteIndex: Int
- get() = getIndexFrom(playerIndex, boards.size)
-}
-
-fun GameState.getOwnBoard(): Board = boards[playerIndex]
-
-fun GameState.getBoard(position: RelativeBoardPosition): Board = boards[position.absoluteIndex]
-
-fun GameState.getNonNeighbourBoards(): List<Board> {
- val nPlayers = boards.size
- if (nPlayers <= 3) {
- return emptyList()
- }
- val first = (playerIndex + 2) % nPlayers
- val last = (playerIndex - 2 + nPlayers) % nPlayers
- val range = if (first <= last) first..last else ((first until nPlayers) + (0..last))
- return range.map { boards[it] }
-}
-
-@Serializable
data class PlayerTurnInfo(
val playerIndex: Int,
val table: TableState,
bgstack15