Schafkopf-Server/Sources/App/Infos/TableInfo.swift
2021-12-09 11:18:26 +01:00

57 lines
1.2 KiB
Swift

import Foundation
struct TableInfo: Codable {
let id: String
let name: String
let player: PlayerInfo
let playerLeft: PlayerInfo?
let playerAcross: PlayerInfo?
let playerRight: PlayerInfo?
let playableGames: [GameId]
/// The cards in the hand of the player
let cards: [CardInfo]
/// The action the player can perform
let actions: [ActionId]
let playerSelectsGame: Bool
init(id: String, name: String,
own: PlayerInfo, left: PlayerInfo?,
across: PlayerInfo?, right: PlayerInfo?,
games: [GameType] = [], actions: [PlayerAction],
cards: [PlayableCard],
selectGame: Bool = false) {
self.id = id
self.name = name
self.player = own
self.playerLeft = left
self.playerAcross = across
self.playerRight = right
self.playableGames = games.map { $0.id }
self.actions = actions.map { $0.id }
self.cards = cards.map { $0.cardInfo }
self.playerSelectsGame = selectGame
}
}
extension TableInfo {
}
extension TableInfo: Comparable {
static func < (lhs: TableInfo, rhs: TableInfo) -> Bool {
lhs.name < rhs.name
}
}