public override void Build(SceneGame world)
        {
            World  = world;
            Random = new Random(Seed);

            Map         = world.CreateMap(100, 100);
            Map.Bonuses = Bonuses;
            world.SetMapId(Guid.NewGuid(), Map);

            foreach (var bonus in Bonuses)
            {
                bonus.Bonus.Apply(GroupGenerator);
            }

            MapGenerator generator = new MapGenerator(Map.Width, Map.Height, Seed, GroupGenerator, Bonuses);

            generator.SetupDefaultOres();
            generator.Generate();
            generator.Print(Map);

            Rooms = generator.GetRooms(Map).ToList();

            int followups = 1;

            if (Random.NextDouble() < 0.4)
            {
                followups = Random.Next(2, 4);
            }
            for (int i = 0; i < followups; i++)
            {
                var       nextStair = BuildStairRoom();
                var       group     = nextStair.Group;
                StairDown stairTile = new StairDown()
                {
                    Type = StairType.Random,
                    Seed = Random.Next(),
                };
                stairTile.InitBonuses();
                nextStair.Replace(stairTile);
            }
        }
        public override void Build(SceneGame world)
        {
            World  = world;
            Random = new Random(Seed);

            Map         = world.CreateMap(100, 100);
            Map.Bonuses = Bonuses;

            MapGenerator generatorHome = new MapGenerator(Map.Width, Map.Height, Seed, new GroupSet(GroupGenerator.Home), Bonuses)
            {
                PointCount     = 7,
                PointDeviation = 35,
            };

            generatorHome.Generate();
            generatorHome.Print(Map);

            Rooms = generatorHome.GetRooms(Map).ToList();

            BuildSmeltery(Rooms);
            BuildStoreRoom(Rooms);
        }