Trying to address performance concerns I added a debug fader sprite that pops each time a new tile is revealed, the content of the tilemaps is calculated on the fly. This helped my find a fix a bug that was bogging down the game in some situations.
The way the world reveal works is I calculate the triangle area for what you can see and save it as a list of coordinates, and then just brute force the update. The update routine runs 10x per second and cycles through every coordinate in every active list every update. I sort them so I do the brightest colors last, so it overwrites the darker colors, but this is really inefficient when I get lots of overlapping areas that are all revealed and causes a big spike of CPU usage every time the update runs.
I wanted to see if I could do more to make it run better. So I created a new list that holds a list of the coordinate lists and I change the update routine to run at 60fps, but only update 1 triangle on the list each time. So now I slowly cycle through the list and that smooths out the processor usage.
That caused other problems with overlapping triangles. I ended up using a dictionary to store keys for the X&"|"&Y coords of every tile when it gets updated, so I could see if that tile had already been set this cycle if it is in more than one coordinate list. Each cycle clears out the dictionary contents and I then sorted the list of lists to update the brightest ones first and it all works.