/// <summary> /// Gets all available room templates for corridor rooms. /// </summary> private List <RoomTemplateGrid2D> GetCorridorRoomTemplates() { return(new List <RoomTemplateGrid2D>() { new RoomTemplateGrid2D( PolygonGrid2D.GetRectangle(4, 3), new ManualDoorModeGrid2D(new List <DoorGrid2D>() { new DoorGrid2D(new Vector2Int(0, 1), new Vector2Int(0, 2)), new DoorGrid2D(new Vector2Int(4, 1), new Vector2Int(4, 2)), } ), allowedTransformations: TransformationGrid2DHelper.GetRotations() ), new RoomTemplateGrid2D( PolygonGrid2D.GetRectangle(6, 3), new ManualDoorModeGrid2D(new List <DoorGrid2D>() { new DoorGrid2D(new Vector2Int(0, 1), new Vector2Int(0, 2)), new DoorGrid2D(new Vector2Int(6, 1), new Vector2Int(6, 2)), } ), allowedTransformations: TransformationGrid2DHelper.GetRotations() ), new RoomTemplateGrid2D( PolygonGrid2D.GetRectangle(8, 3), new ManualDoorModeGrid2D(new List <DoorGrid2D>() { new DoorGrid2D(new Vector2Int(0, 1), new Vector2Int(0, 2)), new DoorGrid2D(new Vector2Int(8, 1), new Vector2Int(8, 2)), } ), allowedTransformations: TransformationGrid2DHelper.GetRotations() ), }); }
/// <summary> /// Gets all available room templates for non-corridor rooms. /// </summary> /// <returns></returns> private Dictionary <string, RoomTemplateGrid2D> GetRoomTemplates() { return(new List <RoomTemplateGrid2D>() { new RoomTemplateGrid2D( PolygonGrid2D.GetRectangle(15, 19), new SimpleDoorModeGrid2D(1, 2), allowedTransformations: TransformationGrid2DHelper.GetRotations(), name: "Normal 1" ), new RoomTemplateGrid2D( PolygonGrid2D.GetRectangle(13, 15), new SimpleDoorModeGrid2D(1, 2), allowedTransformations: TransformationGrid2DHelper.GetRotations(), name: "Normal 2" ), new RoomTemplateGrid2D( new PolygonGrid2DBuilder() .AddPoint(-11, 6).AddPoint(-5, 6).AddPoint(-5, 5).AddPoint(-3, 5) .AddPoint(-3, 6).AddPoint(2, 6).AddPoint(2, 5).AddPoint(4, 5) .AddPoint(4, 6).AddPoint(10, 6).AddPoint(10, -1).AddPoint(4, -1) .AddPoint(4, 0).AddPoint(2, 0).AddPoint(2, -1).AddPoint(-3, -1) .AddPoint(-3, 0).AddPoint(-5, 0).AddPoint(-5, -1).AddPoint(-11, -1) .Build(), new SimpleDoorModeGrid2D(1, 2), // repeatMode: RoomTemplateRepeatMode.NoRepeat, allowedTransformations: TransformationGrid2DHelper.GetRotations(), name: "Normal 3" ), #region hidden:Other room templates new RoomTemplateGrid2D( new PolygonGrid2DBuilder() .AddPoint(-39, 1).AddPoint(-37, 1).AddPoint(-37, 10).AddPoint(-39, 10) .AddPoint(-39, 15).AddPoint(-26, 15).AddPoint(-26, 10).AddPoint(-28, 10) .AddPoint(-28, 1).AddPoint(-26, 1).AddPoint(-26, -4).AddPoint(-39, -4) .Build(), new SimpleDoorModeGrid2D(1, 2), allowedTransformations: TransformationGrid2DHelper.GetRotations(), name: "Normal 4" ), new RoomTemplateGrid2D( new PolygonGrid2DBuilder() .AddPoint(-14, 3).AddPoint(0, 3).AddPoint(0, 5).AddPoint(-14, 5) .AddPoint(-14, 12).AddPoint(8, 12).AddPoint(8, -4).AddPoint(-6, -4) .AddPoint(-6, -6).AddPoint(8, -6).AddPoint(8, -13).AddPoint(-14, -13) .Build(), new SimpleDoorModeGrid2D(1, 2), // repeatMode: RoomTemplateRepeatMode.NoRepeat, name: "Normal 5" ), new RoomTemplateGrid2D( PolygonGrid2D.GetSquare(13), new SimpleDoorModeGrid2D(1, 2), name: "Normal 6" ), new RoomTemplateGrid2D( PolygonGrid2D.GetSquare(11), new SimpleDoorModeGrid2D(1, 2), name: "Spawn" ), new RoomTemplateGrid2D( PolygonGrid2D.GetRectangle(26, 26), new SimpleDoorModeGrid2D(1, 4), allowedTransformations: TransformationGrid2DHelper.GetRotations(), name: "Boss" ), new RoomTemplateGrid2D(PolygonGrid2D.GetRectangle(20, 26), new SimpleDoorModeGrid2D(1, 4), allowedTransformations: TransformationGrid2DHelper.GetRotations(), name: "Hub 1" ), new RoomTemplateGrid2D( new PolygonGrid2DBuilder() .AddPoint(-8, 7).AddPoint(-7, 7).AddPoint(-7, 8).AddPoint(3, 8) .AddPoint(3, 7).AddPoint(4, 7).AddPoint(4, -3).AddPoint(3, -3) .AddPoint(3, -4).AddPoint(-7, -4).AddPoint(-7, -3).AddPoint(-8, -3) .Build(), new SimpleDoorModeGrid2D(1, 2), name: "Reward" ), new RoomTemplateGrid2D( PolygonGrid2D.GetRectangle(12, 17), new SimpleDoorModeGrid2D(1, 3), allowedTransformations: TransformationGrid2DHelper.GetRotations(), name: "Normal 7" ), new RoomTemplateGrid2D( new PolygonGrid2DBuilder() .AddPoint(-3, 4).AddPoint(4, 4).AddPoint(4, -1).AddPoint(-3, -1) .Build(), new ManualDoorModeGrid2D(new List <DoorGrid2D>() { new DoorGrid2D(new Vector2Int(4, 2), new Vector2Int(4, 1)), new DoorGrid2D(new Vector2Int(-3, 2), new Vector2Int(-3, 1)), new DoorGrid2D(new Vector2Int(0, 4), new Vector2Int(1, 4)), new DoorGrid2D(new Vector2Int(0, -1), new Vector2Int(1, -1)), } ), name: "Exit" ), new RoomTemplateGrid2D( new PolygonGrid2DBuilder() .AddPoint(-8, 7).AddPoint(-7, 7).AddPoint(-7, 8).AddPoint(3, 8) .AddPoint(3, 7).AddPoint(4, 7).AddPoint(4, -3).AddPoint(3, -3) .AddPoint(3, -4).AddPoint(-7, -4).AddPoint(-7, -3).AddPoint(-8, -3) .Build(), new SimpleDoorModeGrid2D(1, 2), name: "Shop" ), new RoomTemplateGrid2D( PolygonGrid2D.GetSquare(9), new SimpleDoorModeGrid2D(1, 2), name: "Secret" ) #endregion }.ToDictionary(x => x.Name, x => x)); }