Beispiel #1
0
    public bool CanRemoveRoom(Guid roomId)
    {
        RoomScript RoomScript = _RoomList[roomId].RoomScript;

        if (IsEntranceRoom(roomId))
        {
            return(false);
        }
        if (RoomScript.AllManSlotsAreEmpty() == false)
        {
            return(false);
        }

        // Check if it is linked to only one other room. Then, we can always safely remove
        if (CountExternalRoomLinks(roomId) == 1)
        {
            return(true);
        }

        // The room can be removed if any linked tiles still have access to entrance
        if (GridManager.Ref.CanTilesBeRemovedSafely(RoomScript.RoomData.CoveredIndizes) == false)
        {
            return(false);
        }

        return(true);
    }