/// <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); };
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Уровень карты
        /// </summary>
        /// <param name="Size">Размер (в клетках)</param>
        public MapLevel(MapSize Size)
        {
            this.Size = Size;

            Cells = new MapMatrix <MapCell>(Size);
        }