コード例 #1
0
 public ServerManager(GameCore.Game game)
 {
     gameController = game ?? throw new ArgumentNullException(nameof(game));
     game.Started  += new EventHandler((o, e) =>
     {
         var shuffled = players.Shuffle();
         for (int i = 0; i < shuffled.Length; i++)
         {
             shuffled[i].Value.Index = i;
         }
         ForEachClient(a => a.GameStart(new Size(game.Columns, game.Rows), prefabLimitDict, players.ToDictionary(b => b.Key, c => (c.Value.Index, color: c.Value.Color))));
     });
     game.PrefabPlaced += new EventHandler <GameCore.Game.EventArgsPrefab>((o, e) =>
     {
         ForEachClient(a => a.Place(e.PlayerID, e.PrefabID, e.Location, e.Rotate));
     });
     game.PlayerChanged += new EventHandler((o, e) =>
     {
         ForEachClient(a => a.ChangePlayer(game.CurrentPlayer));
     });
 }
コード例 #2
0
        void StartGame()
        {
            int index = 1;

            foreach (var item in players.Shuffle())
            {
                item.Value.Index = index++;
            }
            int size = 5 + (players.Count * random.Next(4, 6));

            gameSizeStart  = new Size(size + random.Next(-5, 5), size + random.Next(-5, 5));
            gameController = new GameCore.Game();
            gameController.Prefabs.Set(standartPrefabLimit);
            gameController.Players.Set(players.ToDictionary(a => a.Value.Index, a => new Player(a.Value.Color)));
            gameController.Start(gameSizeStart.Width, gameSizeStart.Height);
            ForEachClient(a => a.ReadyTimer(0));
            Thread.Sleep(200);
            ForEachClient(a => a.GameStart(gameSizeStart, standartPrefabLimit, players.ToDictionary(b => b.Key, c => (c.Value.Index, c.Value.Color))));
            Console.WriteLine("GameStarted");
            isGameRunning = true;
        }
コード例 #3
0
 public ClientManager(GameCore.Game game)
 {
     Game = game ?? throw new ArgumentNullException(nameof(game));
 }