func HandlerFactory(game *game.Game) func(http.ResponseWriter, *http.Request) { res := func(w http.ResponseWriter, r *http.Request) { fmt.Println("connection") conn, err := upgrader.Upgrade(w, r, nil) if err != nil { fmt.Println(err) return } player := game.AddPlayer() var playerDeadTurn int64 = 0 for err == nil { err = MessageHandler(conn, game, player) if playerDeadTurn == 0 && player.GetStructure().GetHealth() <= 0 { playerDeadTurn = game.Turn } if playerDeadTurn != 0 && playerDeadTurn+200 < game.Turn { player = game.AddPlayer() playerDeadTurn = 0 } } game.World.RemoveUnit(player.GetId()) } return res }