private void CallRandomRoom() { int activeRooms = 0; int activeLastRooms = 0; int totalActiveRooms = 0; for (int i = 0; i < rooms.Length; ++i) { if (!rooms[i].GetComponent <RoomScript>().isBroken) { ++activeRooms; } } for (int i = 0; i < lastRooms.Length; ++i) { if (!lastRooms[i].GetComponent <RoomScript>().isBroken) { ++activeLastRooms; } } totalActiveRooms = activeLastRooms + activeRooms; // choose last rooms to disappear if (totalActiveRooms > 0) { if (activeRooms > 0) { while (roomScript == null) { RoomScript avaiableRoom = rooms[Random.Range(0, rooms.Length)].GetComponent <RoomScript>(); if (!avaiableRoom.isBroken) { roomScript = avaiableRoom; } } } else if (activeLastRooms > 0) { while (roomScript == null) { RoomScript avaiableRoom = lastRooms[Random.Range(0, lastRooms.Length)].GetComponent <RoomScript>(); if (!avaiableRoom.isBroken) { roomScript = avaiableRoom; } } } roomScript.StartFlash(flashDuration, fastFlashTimer, flashSpeed, fastFlashSpeed, flashColor, fastFlashColor); } else { GameManagerScript.instance.GameOver(); } }