private void InitializeRoom(bool moveRoom = false)
    {
        if (previousRoom != null)
        {
            Destroy(previousRoom.gameObject);
        }

        Debug.Log("setting previous room to: " + currentRoom);
        previousRoom = currentRoom;

        var roomGo = Instantiate(Resources.Load("Prefabs/Room"), currentSpawnPos, Quaternion.identity, transform) as GameObject;

        currentSpawnPos    = new Vector2(0, 0.5f);
        roomGo.name       += roomsVisited;
        currentRoom        = roomGo.GetComponent <Room>();
        currentRoomEnemies = new List <Enemy>();

        if (moveRoom)
        {
            MoveRooms();
            directionOfArrival = directionInTransit;
        }
        roomsVisited++;

        GlobalStuff.FreezeAllMovement();
        GlobalStuff.LoseAllControl();
        StartCoroutine(DelayBlockingExits());
    }
    public void Warp(WarpTile.WarpDirection warpDir)
    {
        directionInTransit = warpDir;
        if (canWarp)
        {
            GlobalStuff.PauseGame();
            HidePlayers();
            canWarp = false;

            InitializeRoom(true);
        }
    }
    private void ShowAndTeleportPlayers()
    {
        WarpTile.WarpDirection warp = WarpTile.GetOppositeDirection(directionInTransit);

        var room = GetRoom;

        if (!Player1.isPlayerDead)
        {
            Player1.transform.position = warpTiles[warp].GetPlayerStartingPosition(Player1.controller.playerNumber);
            Player1.ShowPlayer();
        }

        if (!Player2.isPlayerDead)
        {
            Player2.transform.position = warpTiles[warp].GetPlayerStartingPosition(Player2.controller.playerNumber);
            Player2.ShowPlayer();
        }
    }
    private void CheckRoomCoords(WarpTile.WarpDirection warpDir)
    {
        Vector2 spawnPos = Vector2.zero;

        switch (warpDir)
        {
        case WarpTile.WarpDirection.LEFT:
            spawnPos.x = -17;
            break;

        case WarpTile.WarpDirection.RIGHT:
            spawnPos.x = 17;
            break;

        case WarpTile.WarpDirection.UP:
            spawnPos.y = 11.5f;
            break;

        case WarpTile.WarpDirection.DOWN:
            spawnPos.y = -11.5f;
            break;
        }
        currentSpawnPos += spawnPos;
    }