Exemplo n.º 1
0
        private async Task StoreDrawData(string[] playerIDs, Map _map, List <Player> _players, List <Bomb> _bombs, List <Powerup> _powerups, List <Explosion> _explosions, List <Message> _messages)
        {
            TTile[] tiles = new TTile[_map.tiles.Length];
            for (int i = 0; i < _map.tiles.Length; i++)
            {
                tiles[i] = new TTile()
                {
                    x = _map.tiles[i].x, y = _map.tiles[i].y, texture = _map.tiles[i].texture
                };
            }
            TMap map = new TMap()
            {
                tiles = tiles
            };

            // ------
            TPlayer[] players = new TPlayer[_players.Count];
            for (int i = 0; i < _players.Count; i++)
            {
                players[i] = new TPlayer()
                {
                    x = _players[i].x, y = _players[i].y, texture = _players[i].texture
                };
            }
            // ------
            BombTransport[]      bombs      = _bombs.Select(bomb => (BombTransport)bombCreator.Pack(bomb)).ToArray();
            PowerupTransport[]   powerups   = _powerups.Select(powerup => (PowerupTransport)powerupCreator.Pack(powerup)).ToArray();
            ExplosionTransport[] explosions = _explosions.Select(explosion => (ExplosionTransport)explosionCreator.Pack(explosion)).ToArray();
            Message[]            messages   = _messages.ToArray();
            //await _hub.Clients.Clients(playerIDs[0], playerIDs[1], playerIDs[2], playerIDs[3]).SendAsync("StoreDrawData", map, players, bombs, powerups, explosions, messages);
            await _hub.Clients.All.SendAsync("StoreDrawData", map, players, bombs, powerups, explosions, messages);
        }
Exemplo n.º 2
0
        public GameManager(int w, int h, int cellSize, int tX, int tY)
        {
            Width  = w;
            Height = h;

            InitX = tX;
            InitY = tY;

            CellSize = cellSize;

            Map = new ITile[Width * Height];


            for (int y = 0; y < Height; y++)
            {
                for (int x = 0; x < Width; x++)
                {
                    int num = RANDOM.Next(0, 10);
                    if (num < 4)
                    {
                        this[x, y] = new CornerTile(x + InitX, y + InitY, CellSize, CellSize);
                    }
                    else if (num > 4 && num < 7)
                    {
                        this[x, y] = new StraightTile(x + InitX, y + InitY, CellSize, CellSize);
                    }
                    else
                    {
                        this[x, y] = new TTile(x + InitX, y + InitY, CellSize, CellSize);
                    }
                }
            }

            this[2, 3].AddContent(new AdditionalContent());
            this[6, 2].AddContent(new AdditionalContent());
            this[1, 1].AddContent(new AdditionalContent());
            this[6, 4].AddContent(new AdditionalContent());
            this[3, 3].AddContent(new AdditionalContent());
        }