Exemple #1
0
        private void InitializeGame(bool custom)
        {
            while (true)
            {
                Map = MapGenerator.GenerateMap(Rng, GraphicsDevice.Viewport.Width / TileWidth, GraphicsDevice.Viewport.Height / TileHeight, custom ? 0 : 100);
                if (Map.Rooms.Count == 1)
                {
                    continue;                     // Only 1 room generated, we can do better.
                }
                Brushes = new BrushSet
                {
                    [Material.None]   = new Brush(Color.Black),
                    [Material.Dirt]   = new Brush(Color.SaddleBrown),
                    [Material.Grass]  = new Brush(Color.LawnGreen),
                    [Material.Gravel] = new Brush(Color.DarkGray),
                    [Material.Water]  = new Brush(Color.Aqua),
                    [Material.Wall]   = new Brush(Color.SlateGray)
                };

                Entities.Clear();
                if (!InitializePlayer())
                {
                    continue;                     // We failed to place the player, try regenerating.
                }
                var numberOfRats = Rng.Next(1, Map.Rooms.Count);
                for (var ratIndex = 0; ratIndex < numberOfRats; ++ratIndex)
                {
                    InitializeRat();
                }
                break;
            }
        }
Exemple #2
0
        /// <summary>
        /// Add new layout's set and add vertex to one
        /// </summary>
        /// <param name="vertex2D"></param>
        public void AddNewSet(Vertex2D vertex2D)
        {
            IVisualSet visualSet = null;

            switch (vertex2D.VertexType)
            {
            case VertexType.Vertex:
                visualSet = new SimpleSet();
                break;

            case VertexType.Brush:
                visualSet = new BrushSet();
                break;

            case VertexType.Eraser:
                visualSet = new EraserSet();
                break;

            case VertexType.Image:
                visualSet = new ImageSet();
                break;

            case VertexType.Spline:
                visualSet           = IsInstrumentChanged ? new SplineSet() : vertex2Ds.Last(x => x is SplineSet);
                IsInstrumentChanged = false;
                break;
            }

            visualSet?.Add(vertex2D);
            if (visualSet != null)
            {
                vertex2Ds.Add(visualSet);
            }
        }