/// <summary> /// Состояние уровня карты /// </summary> /// <param name="Level">Уровень</param> /// <param name="Index">Координата уровня</param> public MapLevelState(MapLevel Level, UInt16 Index) { if (Level == null) { throw new ArgumentNullException("Level", "Level of MapLevelState cannot be null"); } this.Index = Index; this.Level = Level; Cells = new MapMatrix <MapCellState>(Level.Size); for (UInt16 x = 0; x < Size.Width; x++) { for (UInt16 y = 0; y < Size.Height; y++) { if (Level.Cells[x, y] == null) { Cells[x, y] = null; } else { Cells[x, y] = new MapCellState(Level.Cells[x, y], new MapPoint(Index, x, y)); Cells[x, y].WallDestroying += (sender, cell, args) => { OnWallDestroying(cell, args.Wall); }; Cells[x, y].WallDestroyed += (sender, cell, args) => { OnWallDestroyed(cell, args.Wall); }; } } } }
/// <summary> /// Уровень карты /// </summary> /// <param name="Size">Размер (в клетках)</param> public MapLevel(MapSize Size) { this.Size = Size; Cells = new MapMatrix <MapCell>(Size); }