Fixes #4; Show game stats instead of UUIDs in lobby
release-tag / release-image (push) Successful in 57s

This commit is contained in:
2024-05-12 12:06:05 +02:00
parent 4dc370de12
commit 82994274c1
6 changed files with 92 additions and 65 deletions
+8 -1
View File
@@ -2,6 +2,7 @@ import { type GameObjectRegister } from "."
import { type Team } from "./Team"
import { type GameObjectNetcode } from "./GameObject"
import type { Card } from "./Card"
import type { Player } from "./Player"
export interface GameNetcode extends GameObjectNetcode {
market_stack: Array<string>
@@ -9,14 +10,17 @@ export interface GameNetcode extends GameObjectNetcode {
gem_stack: Array<string>
started: boolean
current_turn: string
players: Array<string>
ended: boolean
}
export type Game = Omit<GameNetcode, 'market_stack' | 'market' | 'gem_stack' | 'current_turn'> & {
export type Game = Omit<GameNetcode, 'market_stack' | 'market' | 'gem_stack' | 'current_turn' | 'player'> & {
market_stack: Array<Card>
market: Array<Card | null>
gem_stack: Array<Card>
current_turn: Team
players: Array<Player>
}
export function create_game(input: GameNetcode, register: GameObjectRegister) {
return new Proxy<any>(input, {
@@ -34,6 +38,9 @@ export function create_game(input: GameNetcode, register: GameObjectRegister) {
if (prop == "current_turn") {
return register.teams.get(input.current_turn)
}
if (prop == "players") {
return target.players.map(e => register.players.get(e))
}
return Reflect.get(target, prop, reciever);
},
set(target, prop, val, receiver) {