Example #1
0
    private int RoomSelector(int num)
    {
        Room room = floor.Rooms[num];

        if (room is Triangle)
        {
            return(RoomSelector(num - 1));
        }

        room.ActualizeCanCreate(ref floor.posRooms, floor.RInitialized);

        if (num == pointerRoom && room.PosibilitiesSq == 0)
        {
            pointerRoom++;
            return(RoomSelector(num + 1));
        }
        else if (num == pointerRoom)
        {
            return(num);
        }

        int rand = Random.Range(0, 100);

        if (room is Square)
        {
            switch (room.PosibilitiesSq)
            {
            case 1:
                if (rand <= 20)
                {
                    return(num);
                }
                break;

            case 2:
                if (rand <= 40)
                {
                    return(num);
                }
                break;

            case 3:
                if (rand <= 60)
                {
                    return(num);
                }
                break;
            }
        }
        else if (room is RectangleV || room is RectangleH)
        {
            switch (room.PosibilitiesSq)
            {
            case 1:
                if (rand <= 18)
                {
                    return(num);
                }
                break;

            case 2:
                if (rand <= 36)
                {
                    return(num);
                }
                break;

            case 3:
                if (rand <= 54)
                {
                    return(num);
                }
                break;

            case 4:
                if (rand <= 72)
                {
                    return(num);
                }
                break;

            case 5:
                if (rand <= 90)
                {
                    return(num);
                }
                break;
            }
        }
        else if (room is HexagonalV || room is HexagonalH)
        {
            switch (room.PosibilitiesSq)
            {
            case 1:
                if (rand <= 60)
                {
                    return(num);
                }
                break;
            }
        }
        else
        {
            switch (room.PosibilitiesSq)
            {
            case 1:
                if (rand <= 20)
                {
                    return(num);
                }
                break;

            case 2:
                if (rand <= 40)
                {
                    return(num);
                }
                break;

            case 3:
                if (rand <= 50)
                {
                    return(num);
                }
                break;

            case 4:
                if (rand <= 60)
                {
                    return(num);
                }
                break;

            case 5:
                if (rand <= 70)
                {
                    return(num);
                }
                break;

            case 6:
                if (rand <= 80)
                {
                    return(num);
                }
                break;

            case 7:
                if (rand <= 90)
                {
                    return(num);
                }
                break;
            }
        }

        return(RoomSelector(num - 1));
    }