feat(backend): implement changing card deck

This commit is contained in:
minie4 committed 2025-03-28 00:03:18 +01:00
1 parent 7bbe33725f
commit 4104b01978
3 files changed
+52 -1

No files matched your search

+19 -1
View File
@@ -123,6 +123,24 @@ func UpdateGameState(room *types.Room, newState types.GameState) {
OnRoomUpdate(room)
}
func SetCardDeck(room *types.Room, id int) bool {
if id < 0 || id > 1 {
return false
}
room.CardDeckId = id
OnRoomUpdate(room)
return true
}
func CreateCardDeckObj(room *types.Room) {
switch room.CardDeckId {
case 0:
room.CardDeck = &decks.Classic{}
case 1:
room.CardDeck = &decks.HexV1{}
}
}
func BroadcastInRoom(room *types.Room, topic string, data interface{}) {
for _, player := range room.Players {
if !player.Connection.IsConnected || player.Connection.Socket == nil {
@@ -179,7 +197,7 @@ func StartGame(room *types.Room) {
if room.GameState != types.StateLobby {
return
}
room.CardDeck = &decks.Classic{}
CreateCardDeckObj(room)
room.CardDeck.Init(room)
UpdateGameState(room, types.StateRunning)
UpdateAllPlayers(room)