예제 #1
0
        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);
                }
            }
        }
예제 #2
0
        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);
        }