Esempio n. 1
0
        public override BaseGenerator LoadItem(Module module, string id, ObjectData data)
        {
            var dataObj = data.Data;

            BaseGenerator generator = null;

            var type = dataObj.EnsureString("Type");

            if (type == "Rooms")
            {
                var space = module.TileInfos.Ensure(dataObj.EnsureString("SpaceTileId"));
                var wall  = module.TileInfos.Ensure(dataObj.EnsureString("FillerTileId"));


                generator = new RoomsGenerator(space, wall,
                                               dataObj.EnsureInt("Width"),
                                               dataObj.EnsureInt("Height"),
                                               dataObj.EnsureInt("MaximumRoomsCount"),
                                               dataObj.EnsureInt("MinimumRoomWidth"),
                                               dataObj.EnsureInt("MaximumRoomWidth"));
            }
            else
            {
                RaiseError("Could not resolve type {0}.", type);
            }

            return(generator);
        }
Esempio n. 2
0
        public void AddFeatureAddsSpawnArea()
        {
            // Build an empty room
            var feature = AtlasWarriorsGame.DungeonGenerators.RoomsGenerator.CreateFeature(4, 3);
            var D       = GetDungeon(
                "          ",
                "          ",
                "          ",
                "          ",
                "          "
                );

            // Clear spawn areas to be fresh
            D.SpawnAreas.RemoveAll(i => true);

            // Add feature, with translation
            RoomsGenerator.AddFeature(new XY(2, 1), D, feature);

            // Check spawn area added
            Assert.AreEqual(1, D.SpawnAreas.Count, "No spawn area added");
            var area = D.SpawnAreas.First();

            // Test all correct
            for (int ix = 3; ix < 5; ++ix)
            {
                int iy = 2;
                Assert.IsTrue(area.Area.Contains(new XY(ix, iy)),
                              $"Part of spawn area new found at {ix}, {iy}");
            }
        }
    public override void OnInspectorGUI()
    {
        RoomsGenerator roomGen = target as RoomsGenerator;

        if (DrawDefaultInspector() || GUILayout.Button("Generate"))
        {
            roomGen.GenerateRooms();
        }
    }
Esempio n. 4
0
        public void AddFeature(XY Translate,
                               Dungeon Dungeon,
                               Feature Feature,
                               Dungeon DesiredDungeon)
        {
            RoomsGenerator.AddFeature(Translate, Dungeon, Feature);

            for (int ix = 0; ix < DesiredDungeon.Width; ++ix)
            {
                for (int iy = 0; iy < DesiredDungeon.Height; ++iy)
                {
                    Assert.AreEqual(Dungeon.GetCell(new XY(ix, iy)),
                                    DesiredDungeon.GetCell(new XY(ix, iy)));
                }
            }
        }
Esempio n. 5
0
    private void Start()
    {
        roomGenerator = FindObjectOfType <RoomsGenerator>();
        if (isStart)
        {
            x = roomGenerator.length / 2;
            y = roomGenerator.length / 2;
            roomGenerator.RoomPlacements[x, y] = true;
        }


        if (roomGenerator.CurrentNumberOfRooms < roomGenerator.MaxNumberOfRooms)
        {
            GenerateRoomsAtOpenings();
        }
    }
Esempio n. 6
0
        public void GeneratorCreatesPassages()
        {
            var passages = new List <Passage>();

            passages.Add(new Passage(Passage.PassageTypeEnum.StairsDown, "DOWN"));
            passages.Add(new Passage(Passage.PassageTypeEnum.StairsUp, "UP"));
            var dungeon = RoomsGenerator.Generate(40, 20, passages);

            // Confirm that in passages list
            Assert.IsTrue(dungeon.Passages.Any(
                              i => (i.PassageType == Passage.PassageTypeEnum.StairsDown) &&
                              (i.DestinationID == "DOWN")), "Down passage not added to passages");
            Assert.IsTrue(dungeon.Passages.Any(
                              i => (i.PassageType == Passage.PassageTypeEnum.StairsUp) &&
                              (i.DestinationID == "UP")), "Up passage not added to passages");

            // Confirm that dungeon tiles set to stairs down/up
            Assert.AreEqual(Dungeon.DungeonCell.StairDown, dungeon.GetCell(dungeon.Passages.First(
                                                                               i => i.PassageType == Passage.PassageTypeEnum.StairsDown).Location));
            Assert.AreEqual(Dungeon.DungeonCell.StairUp, dungeon.GetCell(dungeon.Passages.First(
                                                                             i => i.PassageType == Passage.PassageTypeEnum.StairsUp).Location));
        }
Esempio n. 7
0
 private void Awake()
 {
     ins = this;
 }
Esempio n. 8
0
 public void FeatureFitsFailed(String Description, XY Translate, Dungeon Dungeon, Feature Feature)
 {
     Assert.IsFalse(RoomsGenerator.FeatureFits(Translate, Dungeon, Feature));
 }
Esempio n. 9
0
 public void FeatureFitsTestSuccessful(XY Translate, Dungeon Dungeon, Feature Feature)
 {
     Assert.IsTrue(RoomsGenerator.FeatureFits(Translate, Dungeon, Feature));
 }
Esempio n. 10
0
 private void Awake()
 {
     timeTillCover = new WaitForSeconds(waitTime);
     roomGenerator = FindObjectOfType <RoomsGenerator>();
 }