if pCity.getNumRealBuilding(gc.getInfoTypeForString('BUILDING_CITADEL_OF_LIGHT')) > 0:
iX = pCity.getX()
iY = pCity.getY()
eTeam = gc.getTeam(pPlayer.getTeam())
iBestValue = 0
pBestPlot = -1
for iiX in range(iX-2, iX+3, 1):
for iiY in range(iY-2, iY+3, 1):
pPlot2 = CyMap().plot(iiX,iiY)
bEnemy = false
bNeutral = false
iValue = 0
if pPlot2.isVisibleEnemyUnit(iPlayer):
for i in range(pPlot2.getNumUnits()):
pUnit = pPlot2.getUnit(i)
if eTeam.isAtWar(pUnit.getTeam()):
iValue += 5 * pUnit.baseCombatStr()
else:
bNeutral = true
if (iValue > iBestValue and bNeutral == false):
iBestValue = iValue
pBestPlot = pPlot2
if (pBestPlot != -1 and pPlot.getNumUnits() != 0):
caster = -1
for i in range(pPlot.getNumUnits()):
pUnit = pPlot.getUnit(i)
if (caster == -1 or pUnit.getLevel() > caster.getLevel()):
caster = pUnit
for i in range(pBestPlot.getNumUnits()):
pUnit = pBestPlot.getUnit(i)
pUnit.doDamage(10, 30, caster, gc.getInfoTypeForString('DAMAGE_FIRE'), true)
if (pPlot.getFeatureType() == gc.getInfoTypeForString('FEATURE_FOREST') or pPlot.getFeatureType() == gc.getInfoTypeForString('FEATURE_JUNGLE')):
if CyGame().getSorenRandNum(100, "Flames Spread") <= gc.getDefineINT('FLAMES_SPREAD_CHANCE'):
pPlot.setImprovementType(gc.getInfoTypeForString('IMPROVEMENT_SMOKE'))
CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_PILLAR_OF_FIRE'),pBestPlot.getPoint())