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); }
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(); } }
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))); } } }
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(); } }
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)); }
private void Awake() { ins = this; }
public void FeatureFitsFailed(String Description, XY Translate, Dungeon Dungeon, Feature Feature) { Assert.IsFalse(RoomsGenerator.FeatureFits(Translate, Dungeon, Feature)); }
public void FeatureFitsTestSuccessful(XY Translate, Dungeon Dungeon, Feature Feature) { Assert.IsTrue(RoomsGenerator.FeatureFits(Translate, Dungeon, Feature)); }
private void Awake() { timeTillCover = new WaitForSeconds(waitTime); roomGenerator = FindObjectOfType <RoomsGenerator>(); }