public static int StairsDownNextToGenerate(int roomWidth, int roomHeight) { if (_instance.roomHistory.Count == 0) { return(-1); } var refRoom = _instance.roomHistory[_instance.roomHistory.Count - 1]; var pos = RoomMath.GetCorrespondingPosition(refRoom, TileType.StairsUp, roomWidth, roomHeight, true); var coord = Coordinate.FromPosition(pos, roomWidth); if (RoomMath.CoordinateOnCorner(coord, roomWidth, roomHeight)) { if (coord.x == 0) { coord.x = 1; } else if (coord.y == 0) { coord.y = 1; } else { coord.x -= 1; } } return(coord.ToPosition(roomWidth, roomHeight)); }