Here is my save, but I am also using "Better Naval AI" mod-mod...is that an issue? If so, no worries, if not, thank you and look forward to hearing anything!![]()
I just tried an experiment with the Mercurains-put a barb ogre and a Kuriotate/Good/RoK warrior between a lot of peaks and a barb ogre and a Kandros Fir/Neutral/RoK warrior between some other peaks. On the next turn, the barb ogres killed both the warriors, but I didn't get any spirits reborn in my empire? Both of them were RoK, and Cardith was Good. Even tried it out with a Soldier of Kilmorph and a Stonewarden. Is there something I miss about this mechanic?
EDIT:Tried it out with about ten Runekeepers and I got 2 angels. The civilopedia entry says they are created, not a 'chance' of them being created.
I second That.
RoK (and FoL?) only gives chances for creating angels.
only order and empy always create angels.
I believe the chance depends on the number of angels you already have, and the xp of the unit that dies.
It's based on the unit's religion.
I second That.
RoK (and FoL?) only gives chances for creating angels.
only order and empy always create angels.
if (unit.getReligion() == gc.getInfoTypeForString('RELIGION_COUNCIL_OF_ESUS') or unit.getReligion() == gc.getInfoTypeForString('RELIGION_THE_ASHEN_VEIL') or unit.getReligion() == gc.getInfoTypeForString('RELIGION_OCTOPUS_OVERLORDS') or unit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_DEATH1')) or unit.isHasPromotion(gc.getInfoTypeForString('PROMOTION_ENTROPY1'))):
cf.giftUnit(gc.getInfoTypeForString('UNIT_MANES'), gc.getInfoTypeForString('CIVILIZATION_INFERNAL'), 0, unit.plot(), unit.getOwner())
cf.giftUnit(gc.getInfoTypeForString('UNIT_MANES'), gc.getInfoTypeForString('CIVILIZATION_INFERNAL'), 0, unit.plot(), unit.getOwner())
if (unit.getReligion() == gc.getInfoTypeForString('RELIGION_THE_EMPYREAN') or unit.getReligion() == gc.getInfoTypeForString('RELIGION_THE_ORDER') or unit.getReligion() == gc.getInfoTypeForString('RELIGION_RUNES_OF_KILMORPH') or (unit.getUnitCombatType() != gc.getInfoTypeForString('UNITCOMBAT_ANIMAL') and pPlayer.getCivilizationType() == gc.getInfoTypeForString('CIVILIZATION_MERCURIANS'))):
cf.giftUnit(gc.getInfoTypeForString('UNIT_ANGEL'), gc.getInfoTypeForString('CIVILIZATION_MERCURIANS'), unit.getExperience(), unit.plot(), unit.getOwner())
def giftUnit(self, iUnit, iCivilization, iXP, pFromPlot, iFromPlayer):
iAngel = gc.getInfoTypeForString('UNIT_ANGEL')
iManes = gc.getInfoTypeForString('UNIT_MANES')
if (iUnit == iAngel or iUnit == iManes):
iChance = 100 - (CyGame().countCivPlayersAlive() * 3)
iChance = iChance + iXP
if iChance < 5:
iChance = 5
if iChance > 95:
iChance = 95
if CyGame().getSorenRandNum(100, "Gift Unit") > iChance:
iUnit = -1
if iUnit != -1:
bValid = False
for iPlayer in range(gc.getMAX_PLAYERS()):
pPlayer = gc.getPlayer(iPlayer)
if (pPlayer.isAlive()):
if pPlayer.getCivilizationType() == iCivilization:
py = PyPlayer(iPlayer)
if pPlayer.getNumCities() > 0:
iRnd = CyGame().getSorenRandNum(py.getNumCities(), "Gift Unit")
pCity = py.getCityList()[iRnd]
pPlot = pCity.plot()
newUnit = pPlayer.initUnit(iUnit, pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.changeExperience(iXP, -1, false, false, false)
newUnit.setWeapons()
if (pFromPlot != -1 and gc.getPlayer(iFromPlayer).isHuman()):
bValid = True
if pPlayer.isHuman():
if iUnit == iManes:
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_ADD_MANES",()),'AS2D_UNIT_FALLS',1,'Art/Interface/Buttons/Promotions/Demon.dds',ColorTypes(7),pPlot.getX(),pPlot.getY(),True,True)
if iUnit == iAngel:
CyInterface().addMessage(iPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_ADD_ANGEL",()),'AS2D_UNIT_FALLS',1,'Art/Interface/Buttons/Promotions/Angel.dds',ColorTypes(7),pPlot.getX(),pPlot.getY(),True,True)
if (pPlayer.isHuman() == False and iUnit == iManes and pCity != -1):
if CyGame().getSorenRandNum(100, "Manes") < (100 - (pCity.getPopulation() * 5)):
pCity.changePopulation(1)
newUnit.kill(True, PlayerTypes.NO_PLAYER)
if bValid:
if iUnit == iManes:
CyInterface().addMessage(iFromPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_UNIT_FALLS",()),'AS2D_UNIT_FALLS',1,'Art/Interface/Buttons/Promotions/Demon.dds',ColorTypes(7),pFromPlot.getX(),pFromPlot.getY(),True,True)
if iUnit == iAngel:
CyInterface().addMessage(iFromPlayer,True,25,CyTranslator().getText("TXT_KEY_MESSAGE_UNIT_RISES",()),'AS2D_UNIT_FALLS',1,'Art/Interface/Buttons/Promotions/Angel.dds',ColorTypes(7),pFromPlot.getX(),pFromPlot.getY(),True,True)
When I played Internet game with my friend when I used Gibbon Goetia (I wished to control another civilization) his game crushed.
if (iUnit == iAngel or iUnit == iManes):
iChance = 100 - (CyGame().countCivPlayersAlive() * 3)
iChance = iChance + iXP
if iChance < 5:
iChance = 5
if iChance > 95:
iChance = 95
if CyGame().getSorenRandNum(100, "Gift Unit") > iChance:
iUnit = -1
Just for anyone who who speaks English instead of code, I'm fairly sure this means that when a unit dies, in a normal 7 civilization game, any unit with the appropriate religon has a (79+their xp)% chance of being reborn, but there will all always be at least a 5% chance that they won't get reborn.