private void createRandomMap(float voidCount)
    {
        List <MapVoid> newVoids  = new List <MapVoid>();
        List <bool>    connected = new List <bool>();

        List <Vector2> locations = new List <Vector2>();

        //Added player spawn point
        locations.Add(Player.position);
        MapChamber spawnChamber = MapChamber.RandomChamber(Player.position, 3);

        PlayerSpawn     = Instantiate(PortalPrefab, spawnChamber.Location, Quaternion.identity).GetComponent <Portal>();
        Player.position = spawnChamber.locations[0];
        //addChamberTrigger(PlayerSpawn, spawnChamber);
        PlayerSpawn = (Portal)ChamberTrigger.SetupChamberTrigger(PortalPrefab, spawnChamber);
        newVoids.Add(spawnChamber);
        connected.Add(false);

        Map     map    = Map.StaticMap;
        Vector2 origin = new Vector2(map.MapOrigin.x * map.HorizontalSpacing, map.MapOrigin.y * map.VerticalSpacing);
        Vector2 mapMin = origin + new Vector2(15, 15);
        Vector2 mapMax = origin + new Vector2(map.MapWidth, map.MapHeight) - new Vector2(15, 15);

        //create snake Chamber
        Vector2    snakeChamberLoc = Utility.HoneycombGridToWorldPostion(new HoneycombPos(150, 100));
        MapChamber snakeChamber    = MapChamber.RandomChamber(snakeChamberLoc, 15);

        //ChamberTrigger snakeChamberTrigger = Instantiate(ChamberTriggerPrefab, snakeChamberLoc, Quaternion.identity).GetComponent<ChamberTrigger>();
        //addChamberTrigger(snakeChamberTrigger, snakeChamber);
        ChamberTrigger.SetupChamberTrigger(ChamberTriggerPrefab, snakeChamber);
        newVoids.Add(snakeChamber);
        SnakePit.position = snakeChamberLoc;

        //create random chambers
        for (int i = 0; i < voidCount; i += 1)
        {
            float xLoc   = Random.Range(mapMin.x, mapMax.x);
            float yLoc   = Random.Range(mapMin.y, mapMax.y);
            float radius = Random.Range(5, 15);
            newVoids.Add(MapChamber.RandomChamber(new Vector2(xLoc, yLoc), radius));
            connected.Add(false);

            locations.Add(new Vector2(xLoc, yLoc));
        }

        //MapChamber endChamber = (MapChamber)newVoids[newVoids.Count - 1];
        //for(int i = 1; i < voidCount - 1; i+=1)
        //{
        //    if(Vector2.Distance(spawnChamber.Location, endChamber.Location) < Vector2.Distance(spawnChamber.Location, ((MapChamber)newVoids[i]).Location)) {
        //        endChamber = (MapChamber)newVoids[i];
        //    }
        //}
        MapChamber endChamber = MapChamber.EndChamberTunnel(Player.position, 8);

        newVoids.Add(endChamber);
        connected.Add(false);
        locations.Add(Utility.WorldPointToHoneycombPos(Player.position));
        //setup Exit tunnel
        //Exit = Instantiate(PortalPrefab, endChamber.Location, Quaternion.identity).GetComponent<Portal>();
        //addChamberTrigger(Exit, endChamber);
        Exit = (Portal)ChamberTrigger.SetupChamberTrigger(PortalPrefab, endChamber);
        ExitTunnel.position = Exit.Chamber.Location;



        //connect chambers
        for (int i = 0; i < voidCount; i += 1)
        {
            while (!connected[i])
            {
                int connecting = (int)Random.Range(0, voidCount - 1);
                if (connecting != i)
                {
                    newVoids.Add(MapPath.CreateJoggingPath(((MapChamber)newVoids[i]).ClosestEntrancePoint(locations[connecting]), locations[connecting], -2, 2, 2, 6, 2, 2));
                    connected[i] = true;
                }
            }
        }

        map.AddVoid(newVoids);

        mapVoids = newVoids;
        //Debug.Log("void wall count: " + newVoids[newVoids.Count - 1].GetVoidWalls().Count);
    }
    public static ChamberTrigger SetupChamberTrigger(GameObject prefab, MapChamber chamber)
    {
        ChamberTrigger trigger = Instantiate(prefab, chamber.Location, Quaternion.identity).GetComponent <ChamberTrigger>();

        return((trigger).Setup(chamber));
    }