public void RoomReplacedWithSmallRoomsCantThenBeMadeLargeAgain() { //Load sample template 8x4 RoomTemplate baseRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testalignmentroom1.room"); RoomTemplate joinedRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testalignmentroom2.room"); RoomTemplate replacementRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testoverlap2.room"); TemplatedMapBuilder mapBuilder = new TemplatedMapBuilder(); TemplatedMapGenerator mapGen = new TemplatedMapGenerator(mapBuilder); mapGen.PlaceRoomTemplateAtPosition(baseRoom, new Point(0, 0)); mapGen.PlaceRoomTemplateAlignedWithExistingDoor(joinedRoom, null, mapGen.PotentialDoors[0], 0, 0); mapGen.ReplaceRoomTemplate(0, new Connection(0, 1), replacementRoom, 0); //Here we use the knowledge that we deleted index 0, so the new replacement room is at index 1 Assert.IsFalse(mapGen.ReplaceRoomTemplate(0, new Connection(0, 1), baseRoom, 0)); }
public void RoomCantBeReplacedWithLargeRooms() { //Load sample template 8x4 RoomTemplate baseRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testalignmentroom1.room"); RoomTemplate joinedRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testalignmentroom2.room"); RoomTemplate replacementRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testoverlap3.room"); TemplatedMapBuilder mapBuilder = new TemplatedMapBuilder(); TemplatedMapGenerator mapGen = new TemplatedMapGenerator(mapBuilder); mapGen.PlaceRoomTemplateAtPosition(baseRoom, new Point(0, 0)); mapGen.PlaceRoomTemplateAlignedWithExistingDoor(joinedRoom, null, mapGen.PotentialDoors[0], 0, 0); Assert.IsFalse(mapGen.ReplaceRoomTemplate(0, new Connection(0, 1), replacementRoom, 0)); }
public void ExcessAreaFromReplacedRoomsAreRemovedWhenSmallerRoomReplacesThem() { //Load sample template 8x4 RoomTemplate baseRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testalignmentroom1.room"); RoomTemplate joinedRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testalignmentroom2.room"); RoomTemplate replacementRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testoverlap2.room"); TemplatedMapBuilder mapBuilder = new TemplatedMapBuilder(); TemplatedMapGenerator mapGen = new TemplatedMapGenerator(mapBuilder); mapGen.PlaceRoomTemplateAtPosition(baseRoom, new Point(0, 0)); mapGen.PlaceRoomTemplateAlignedWithExistingDoor(joinedRoom, null, mapGen.PotentialDoors[0], 0, 0); mapGen.ReplaceRoomTemplate(0, new Connection(0, 1), replacementRoom, 0); var map = mapBuilder.MergeTemplatesIntoMap(GetStandardTerrainMapping()); Assert.AreEqual(MapTerrain.Void, map.mapSquares[0, 0].Terrain); }
public void RoomCanBeReplacedWithSmallerRoomsWithAlignmentCorrected() { //Load sample template 8x4 RoomTemplate baseRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testalignmentroom1.room"); RoomTemplate joinedRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testalignmentroom2.room"); RoomTemplate replacementRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testoverlap2.room"); TemplatedMapBuilder mapBuilder = new TemplatedMapBuilder(); TemplatedMapGenerator mapGen = new TemplatedMapGenerator(mapBuilder); mapGen.PlaceRoomTemplateAtPosition(baseRoom, new Point(0, 0)); mapGen.PlaceRoomTemplateAlignedWithExistingDoor(joinedRoom, null, mapGen.PotentialDoors[0], 0, 0); var replaceSuccess = mapGen.ReplaceRoomTemplate(0, new Connection(0, 1), replacementRoom, 0); //Check replacement was successful and terrain is correct var map = mapBuilder.MergeTemplatesIntoMap(GetStandardTerrainMapping()); Assert.AreEqual(MapTerrain.Wall, map.mapSquares[4, 1].Terrain); }
public void ReplaceRoomsHaveTheSameIds() { //Load sample template 8x4 RoomTemplate baseRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testalignmentroom1.room"); RoomTemplate joinedRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testalignmentroom2.room"); RoomTemplate replacementRoom = LoadTemplateFromFile("DDRogueTest.testdata.vaults.testoverlap2.room"); TemplatedMapBuilder mapBuilder = new TemplatedMapBuilder(); TemplatedMapGenerator mapGen = new TemplatedMapGenerator(mapBuilder); var originalId = mapGen.PlaceRoomTemplateAtPosition(baseRoom, new Point(0, 0)); mapGen.PlaceRoomTemplateAlignedWithExistingDoor(joinedRoom, null, mapGen.PotentialDoors[0], 0, 0); var placementSucess = mapGen.ReplaceRoomTemplate(0, new Connection(0, 1), replacementRoom, 0); var roomTemplateById = mapGen.GetRoomTemplateById(originalId).Room; //This is a bit weak as an integration test - the replacement room gets rotated hence the strange comparison Assert.AreEqual(replacementRoom.Height, roomTemplateById.Width); }