Schafkopf-Server/Sources/App/Infos/PlayerInfo.swift
2021-12-23 12:52:13 +01:00

46 lines
1.2 KiB
Swift

import Foundation
struct PlayerInfo: Codable, Equatable {
/// The name of the player
let name: PlayerName
var points = 0
/// Indicates that the player is active, i.e. a session is established
var isConnected = false
/// The player is the next one to perform an action
var isNextActor = false
/// The card which the player added to the current trick
var playedCard: CardId? = nil
/// The height of the player card on the table stack
var positionInTrick = 0
/// The number of times the player doubled the game cost (initial double and raises)
var numberOfDoubles = 0
var leadsGame = false
var state: [PlayerStateId] = []
init(name: PlayerName) {
self.name = name
}
/// Convert the property names into shorter strings for JSON encoding
enum CodingKeys: String, CodingKey {
case name = "name"
case points = "points"
case isConnected = "connected"
case isNextActor = "active"
case playedCard = "card"
case positionInTrick = "position"
case numberOfDoubles = "doubles"
case leadsGame = "leads"
case state = "state"
}
}