Every check for
watchedFactionID==nil is overwriting
watchedFactionID with
false whenever it isn't
nil.
-also-
Code:
watchedFactionID = watchedFactionID == nil and not inInstance and zonesAndFactions[uiMapID] or watchedFactionID = watchedFactionID == nil and self.fallbackRepID
This should be throwing a syntax error since you can't have an assignment operator (=) in the middle of an expression.