Best way to make this code shorter?

I’m working on dungeon generation and i ended up with a long code, I would like to shorten it if possible, but i’m a big noob, anyone got any ideas?

if (roomScript.rCheck[0].room != null) {
            if (roomScript.connectionsAvailable[0] == true || roomScript.rCheck[0].connectionsAvailable[2] == true) {
                roomScript.roomConnections[0].SetActive(false);
                roomScript.connectionsEnabled[0] = true;
                roomScript.connectionsConnected[0] = true;
                roomScript.connectionsAvailable[0] = false;

                roomScript.rCheck[0].roomScript.roomConnections[2].SetActive(false);
                roomScript.rCheck[0].roomScript.connectionsEnabled[2] = true;
                roomScript.rCheck[0].roomScript.connectionsConnected[2] = true;
                roomScript.rCheck[0].roomScript.connectionsAvailable[2] = false;
            }
        }

        if (roomScript.rCheck[1].room != null) {
            if (roomScript.connectionsAvailable[1] == true || roomScript.rCheck[1].connectionsAvailable[3] == true) {
                roomScript.roomConnections[1].SetActive(false);
                roomScript.connectionsEnabled[1] = true;
                roomScript.connectionsConnected[1] = true;
                roomScript.connectionsAvailable[1] = false;

                roomScript.rCheck[1].roomScript.roomConnections[3].SetActive(false);
                roomScript.rCheck[1].roomScript.connectionsEnabled[3] = true;
                roomScript.rCheck[1].roomScript.connectionsConnected[3] = true;
                roomScript.rCheck[1].roomScript.connectionsAvailable[3] = false;
            }
        }

        if (roomScript.rCheck[2].room != null) {
            if (roomScript.connectionsAvailable[2] == true || roomScript.rCheck[2].connectionsAvailable[0] == true) {
                roomScript.roomConnections[2].SetActive(false);
                roomScript.connectionsEnabled[2] = true;
                roomScript.connectionsConnected[2] = true;
                roomScript.connectionsAvailable[2] = false;

                roomScript.rCheck[2].roomScript.roomConnections[0].SetActive(false);
                roomScript.rCheck[2].roomScript.connectionsEnabled[0] = true;
                roomScript.rCheck[2].roomScript.connectionsConnected[0] = true;
                roomScript.rCheck[2].roomScript.connectionsAvailable[0] = false;
            }
        }

        if (roomScript.rCheck[3].room != null) {
            if (roomScript.connectionsAvailable[3] == true || roomScript.rCheck[3].connectionsAvailable[1] == true) {
                roomScript.roomConnections[3].SetActive(false);
                roomScript.connectionsEnabled[3] = true;
                roomScript.connectionsConnected[3] = true;
                roomScript.connectionsAvailable[3] = false;

                roomScript.rCheck[3].roomScript.roomConnections[1].SetActive(false);
                roomScript.rCheck[3].roomScript.connectionsEnabled[1] = true;
                roomScript.rCheck[3].roomScript.connectionsConnected[1] = true;
                roomScript.rCheck[3].roomScript.connectionsAvailable[1] = false;
            }
        }

Use a for loop :slight_smile:
instead of using a number use an integer

for (int i = 0; i < roomScript.connectionsAvailable[].length; i++) 
{
    roomScript.roomConnections*.SetActive(false);*

}

Specifically a for loop like this:

for (int i = 0; i < 4; i++)
{
    int i2 = (2+i) % 4;
    var rCheck = roomScript.rCheck*;*

if (rCheck.room != null)
{
if (roomScript.connectionsAvailable || rCheck.connectionsAvailable[i2])
{
roomScript.roomConnections*.SetActive(false);*
roomScript.connectionsEnabled = true;
roomScript.connectionsConnected = true;
roomScript.connectionsAvailable[0] = false;

rCheck.roomScript.roomConnections[i2].SetActive(false);
rCheck.roomScript.connectionsEnabled[i2] = true;
rCheck.roomScript.connectionsConnected[i2] = true;
rCheck.roomScript.connectionsAvailable[i2] = false;
}
}
}
This does the same as your current code.