2022-12-14 21:19:47 +00:00
|
|
|
package server
|
|
|
|
|
2023-04-18 20:47:51 +00:00
|
|
|
import (
|
|
|
|
"github.com/google/uuid"
|
|
|
|
)
|
2022-12-14 21:19:47 +00:00
|
|
|
|
2023-04-18 20:47:51 +00:00
|
|
|
type Lobby map[uuid.UUID]Player
|
2022-12-14 21:19:47 +00:00
|
|
|
|
2023-04-18 20:54:32 +00:00
|
|
|
var lobbyInstance Lobby = nil
|
2022-12-14 21:19:47 +00:00
|
|
|
|
2023-04-18 20:54:32 +00:00
|
|
|
func GetLobby() Lobby {
|
2022-12-14 21:19:47 +00:00
|
|
|
if lobbyInstance == nil {
|
|
|
|
lobbyInstance = newLobby()
|
|
|
|
}
|
|
|
|
|
|
|
|
return lobbyInstance
|
|
|
|
}
|
|
|
|
|
2023-04-18 20:54:32 +00:00
|
|
|
func newLobby() Lobby {
|
|
|
|
lobby := make(map[uuid.UUID]Player, 0)
|
|
|
|
return lobby
|
2022-12-14 21:19:47 +00:00
|
|
|
}
|
|
|
|
|
2023-04-18 20:47:51 +00:00
|
|
|
func (lobby Lobby) RegisterPlayer(player *Player) {
|
2023-04-22 19:41:24 +00:00
|
|
|
lobby[player.Uuid] = *player
|
2023-04-18 20:47:51 +00:00
|
|
|
|
2023-05-28 15:43:05 +00:00
|
|
|
var players []Player
|
2022-12-14 21:19:47 +00:00
|
|
|
|
2023-05-28 15:43:05 +00:00
|
|
|
for _, player := range lobby {
|
|
|
|
if !player.InGame {
|
|
|
|
players = append(players, player)
|
2023-04-18 20:47:51 +00:00
|
|
|
}
|
2023-05-28 15:43:05 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if len(players) < 2 {
|
|
|
|
return
|
|
|
|
}
|
2022-12-14 21:19:47 +00:00
|
|
|
|
2023-05-28 15:43:05 +00:00
|
|
|
game := NewGame()
|
2023-04-22 17:23:46 +00:00
|
|
|
|
2023-05-28 15:43:05 +00:00
|
|
|
game.addPlayersToGame([2]Player(players[:2]))
|
2023-04-22 19:41:24 +00:00
|
|
|
|
2022-12-14 21:19:47 +00:00
|
|
|
}
|