public bool CanDesireBeAddressed(DesireType desireType) { //TODO more intelligently loop through rooms, i.e. only rooms that could possibly contain the desire/object type List <RoomObjectType> objTypes = RoomObject.GetObjectsImpactingDesireType(desireType); for (int i = 0; i < allRooms.Count; i++) { for (int j = 0; j < allRooms[i].Count; j++) { for (int k = 0; k < objTypes.Count; k++) { if (allRooms[i][j].ContainsObjectOfRoomObjectType(objTypes[k])) { return(true); } } } } return(false); }