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; }