Example #1
0
 public void ChangeMode()
 {
     Console.WriteLine("===Salle d'attente complete===");
     State = State.InGame;
     MasterOperation(false);
     GameManager = new GameManager(CurrentLobby.Players, _map, _em, this);
     Server.Stop();
     Console.WriteLine("Debut du jeu");
 }
        static void Main(string[] args)
        {
            Console.WriteLine("Game Server Key " + gameServerKey);

            client = new RedisClient();
            client.Subscribe(RedisChannels.CreateNewGameRequest, request =>
            {
                var gameId = Guid.NewGuid().ToString("N");
                var createNewGameRequest = (CreateNewGameRequest)request;
                GameManager gameManager = new GameManager(gameId) { InitialRequest = createNewGameRequest };

                games.Add(gameId, gameManager);
                //                Console.WriteLine("New Game Request " + games.Count);

                client.SendMessage("GameUpdate" + createNewGameRequest.GatewayKey, new GameUpdateRedisMessage()
                {
                    GameId = gameId,
                    UserKey = createNewGameRequest.UserKey,
                    GameServer = gameServerKey,
                    GameStatus = GameStatus.Started
                });
                startGame(gameManager);
            });

            client.Subscribe("GameServer" + gameServerKey, request =>
             {
                 var gameServerResponse = (GameServerRedisMessage)request;
                 games[gameServerResponse.GameId].DataClass.curAnswered(gameServerResponse.AnswerIndex);
             });

            timer = new Timer((e) =>
             {
                 var now = DateTime.Now;
                 var answersPerSecond = 0.0;

                 if (start != DateTime.MinValue)
                 {
                     answersPerSecond = AnswerCount / (now - start).TotalSeconds;
                 }
                 Console.WriteLine($"Games Done: {GamesDone} Answers: {AnswerCount} LiveGames: {games.Count} APS: {answersPerSecond}");
             }, null, 0, 500);

            Console.WriteLine("Press any [Enter] to close the host.");
            Console.ReadLine();
        }
 public DataClass(GameManager gameManager)
 {
     GameManager = gameManager;
     GameManager.DataClass = this;
 }
        private static void startGame(GameManager gameManager)
        {
            Engine engine = new Engine();
            var promise = getFile(@"./js/promise.js");
            var sevens = getFile(@"./js/sevens.js");

            var dataClass = new DataClass(gameManager);
            engine.SetValue("shuff", dataClass);
            engine.SetValue("exports", new { });
            engine.SetValue("require", new Func<string, JsValue>((file) =>
             {
                 var txt = getFile($@"./js/{file}.js");
                 engine.SetValue("shuff", dataClass);
                 engine.Execute("var exports={};" + txt);
                 return engine.GetValue("exports");
             }));

            engine.Execute(promise + "; " + sevens);
            engine.Execute("Main.run()");
        }