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); }
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()); }