Code:
watchedFactionID = watchedFactionID == nil and inInstance and hasDungeonTabard and tabardID
That resoves to a boolean
Code:
if watchedFactionID == nil and inInstance == AnythingButNilOrFalse and hasDungeonTabard == AnythingButNilOrFalse and tabardID == AnythingButNilOrFalse then
watchedFactionID = true
else
watchedFactionID = false
end
which means watchedFactionID won't be nil for the others because it will always be true or false (boolean).
Maybe:
Code:
watchedFactionID = (watchedFactionID == nil and inInstance and hasDungeonTabard) and tabardID or nil
Code:
if watchedFactionID = (watchedFactionID == nil and inInstance == AnythingButNilOrFalse and hasDungeonTabard == AnythingButNilOrFalse) then
watchedFactionID = tabardID
else
watchedFactionID = nil
end
(Define your truth) and (then make an assigment if true) or (other assigment [defaults to false if no "or" and truth is not met])