public void press(int posBalloon) { //En caso de que alguien haya pulsado antes, nos aseguramos de que el globo sigue sin ser explotado if (!GameInfo.casillas[posBalloon].isPopped) { string balloonColor = GameInfo.jugadores[Context.ConnectionId].color; //Explotamos el globo en los otros clientes GameInfo.casillas[posBalloon].popBalloon(balloonColor); Clients.All.popBalloon(posBalloon, balloonColor); GameInfo.poppedBalloons++; //Le damos el punto por explotar el globo al jugador que lo haya explotado GameInfo.jugadores[Context.ConnectionId].puntuacion++; Clients.Caller.updatePersonalScore(GameInfo.jugadores[Context.ConnectionId].puntuacion); //Actualizamos la puntuación global de todos los jugadores GameInfo.globalScore++; Clients.All.updateGlobalScore(GameInfo.globalScore); //Actualizamos el ranking de todos los jugadores ordenado por puntuación Clients.All.updateRanking(GameInfo.jugadores.Values.ToList().OrderByDescending(x => x.puntuacion)); //Si ya no quedan globos por explotar if (GameInfo.poppedBalloons == GameInfo.numberOfBalloons) { GameInfo.poppedBalloons = 0; GestoraCasilla.generarCasillas(); Clients.All.loadBalloons(GameInfo.casillas); } } }
public void Configuration(IAppBuilder app) { app.MapSignalR(); GestoraCasilla.generarCasillas(); GameInfo.globalScore = 0; GameInfo.jugadores = new Dictionary <string, Jugador>(); GameInfo.poppedBalloons = 0; GameInfo.numberOfPlayers = 0; GameInfo.colors = loadColors(); //Marcar un usuario como desconectado tras 5 segundos GlobalHost.Configuration.DisconnectTimeout = TimeSpan.FromSeconds(6); }