Committed another update to remade DangerPlots. Healing rates are now properly calculated via DangerPlots, including possible healing from killing a unit; however, I have not accounted for possible healing from pillage actions, so I still need to shoehorn that in somehow. The AI also will include all units that attacked onto visible tiles last turn into its DangerPlots calculations regardless of unit visibility. This is a fairly good approximation for human "intuition", though the AI does still have a fairly short-term (1 turn) memory; implementing long-term memory that doesn't cheat would be a gigantic pain (you'd theoretically need the AI to keep track of all non-visible enemy units and try to guess whether they are still alive and where they might be), so I don't think I'll try.
I also fixed an issue I found with my move-and-shoot code: it turns out that A* nodes' Data1 (move) values are multiplied by the move denominator (60), so my check for whether a tile's Data1 > (Set up count) resulted in incorrect decisions for all artillery units (catapult, trebuchet, cannon, artillery, and any corresponding UU's).
Ai is buying in your build, I had an issue. Sorry about that.
Welp, I just uploaded a semi-fix for the DoHurry() stuff with my latest batch of commits, since I wasn't seeing DoHurry() messages in my homeland logs, either. Unit purchases for operations don't actually go through DoHurry(), BTW, they go through a different set of algorithms. The newly tweaked DoHurry() functions assemble a "rush list" each time they are run, then attempt to buy the choice that will give them the lowest amount of yield spent per turns of production. Even if the previous DoHurry() functions worked correctly, the lists they used were still only updated every time the previous production order was finished, whereas now they're updated every turn (for better or for worse).
I haven't tested the newly tweaked DoHurry() functions because Visual Studio is acting up again and refusing to build. I have a sneaking suspicion that the faith-based DoHurry() function is going to work horribly, since faith-based religious buildings don't have a production cost...
As for debugging algorithms that don't seem to fire, I generally set up a couple of breakpoints in Visual Studio, attach its debugger to Civ5 running AuI, and then check to see which breakpoints are reached and which ones aren't.
PS. LoneGazebo, I see you've been adding elements of my remade DangerPlots to the Community Patch. I really wouldn't recommend it, that stuff is still very unstable (eg. I've often been getting crashes due to corrupted function calls that all originate from remade bits of DangerPlots), and I've yet to mitigate double counting (the fact that the system assumes that a unit will attack every enemy unit in its attack range instead of just one). The new Great Works swapping code seems to be fine and self contained, though my juggling of pointers to vectors of pointers in ThemeBuilding() will probably make your eyes bleed (I also haven't tested its performance, it's entirely possible that my seemingly clever solution actually runs worse than Firaxis' braindead one).