I have uploaded a new version.
You may download the Installer
here or the Archive
here.
It is mostly fixes for the bugs that the previous version introduced, but also adds a few new features and some changes which I hope will make it run more quickly.
I decided to get rid of the lines in def unitCannotMoveInto(self,argsList): which pertained to features, as they really only mattered in scenarios where I had already used a more efficient method of making those tiles impassible.
To assure that Mountaineers won't pass through features like Volcanoes, Sea Ice, Walls, and Fallout, I have given them prerequisite resists.
(Edit: I just recalled that I tried this method several months back, and then gave up on them once I realized that it can prevent flying units from passing over features like sea ice too. I'll probably undo this change eventually, but I don't think it is worth a new upload immediately.)
I decided that Hallowed Ground, instead of being impassible to Demons, the Undead, and the Demon Possessed, should instead damage any Demons, Undead, or other units destined to return as Manes who should happen to pass through them. (This is currently only used in the Lord of the Balors scenario though, and the AI players are forbidden to pass through those tiles anyway.)
Mercurians units with promotions like Demon or Unholy Taint no longer have these removed (inefficiently) through python automatically each turn. They still have them removed when the units are created, but it is now possible to capture units with those promotions. Now, the Mercurians have a "Purge Self of Evil" ability (available at Righteousness) which can be used of any unit which may return as Manes, and Demon, or any Undead unit. It reduces the AC, removes evil religions, removes evil promotions, kills the undead, and transforms Demons into Angels. A demon of tier 4 will be transformed into a Repentant Angel, unless you are already at your national limit of those.
Gibbon Goetia has been implemented as a Shape Shifter, with this ability working through a spell rather than automatically on combat.
Various TXT_KEYs have been updated.
I just found a minor python bug, but I don't think it should have any real effect. The Baron Duin Halfmorn still has <PythonPostCombatWon>postCombatSpreadLycanthropy(pCaster,pOpponent,75)</PythonPostCombatWon>, even though I deleted that define when I moved the code into CvEventManager.py's def onCombatResult(self, argsList):