In my modmod you have to make the AC rise first before the evil units start spreading hell quickly. Demon and Unholy Taint have this as a PyPerTurn effect
Code:
def effectTaint(caster):
if not gc.getGame().isOption(GameOptionTypes.GAMEOPTION_NO_PLOT_COUNTER):
pPlot = caster.plot()
pPlot.changePlotCounter(CyGame().getGlobalCounter()/10)
Since the plot counter is an integer which gets truncated, the Armageddon counter has to reach 10 before units spread hell at all. The AC would have to be at 100 for a single unit to be able to raise the plot counter enough to become hell in base FfH, and 2 such units (or one unit with both of those evil promotions) would be needed even at 100 AC in my version because I changed the move to hell terrain to occur at a plot counter of 20 so the corruption is a little more subtle at first. I've played around with different formulas in past versions, some of which spread hell way too quickly. I'm thinking this one might not be quite quick enough though.
The doHell code does not make a tile hell if the alignment and Armageddon Counter restrictions are met, it merely allows hell to spread there from neighboring tiles that are already hell. I think your code should make it so that good lands can become hell, but that does not mean they often will. The recent change in my modmod I mentioned was something much more catastrophic than that, making the Apocalypse event (the one that claims that hell has merged with Erebus, and cuts the population of non-Fallow trait civs' cities in half) actually turn all tiles to hell immediately. (The change in resources and some features will have to wait a turn for the doHell to run again though.)
To do so open Assets\python\entrypoints\CvRandomEventInterface.py, scroll down to def doArmageddonApocalypse(argsList): (it should be at about line54), and add this:
Code:
for i in range (CyMap().numPlots()):
pPlot = CyMap().plotByIndex(i)
pPlot.changePlotCounter(100)
and of course save.
p.s. If you are going to post code and ask for help, you should really put it within [code][/code] tags so that indentation and white space are preserved properly. White space is very important in python, so loosing that could hide serious errors. If you wonder how I wrote those tags out like that without them causing coding formatting, it is because I used [plain][/plain] tags around them.