iMana = gc.getInfoTypeForString('BONUS_MANA_AIR')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
elif iStateReligion == iRunes:
iNum -=1
if iCiv == iHippus or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AIR1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AIR2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AIR3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_BODY')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
if iCiv == iCalabim or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BODY1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BODY2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BODY3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_CHAOS')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
elif iStateReligion == iOrder:
iNum -= 1
if iCiv == iDoviello or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CHAOS1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CHAOS2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CHAOS3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_CREATION')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
elif iStateReligion == iVeil:
iNum -= 1
if iCiv == iKuriotates or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CREATION1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CREATION2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CREATION3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_DEATH')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
if iCiv == iSidar or iCiv == iMercurians:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_UNDEAD_SLAYING'), True)
elif iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DEATH1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DEATH2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DEATH3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_DIMENSIONAL')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
if iCiv == iSheaim or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DIMENSIONAL1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DIMENSIONAL2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DIMENSIONAL3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_EARTH')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
elif iStateReligion == iRunes:
iNum += 1
if iCiv == iKhazad or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_EARTH1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_EARTH2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_EARTH3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_ENCHANTMENT')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
if iCiv == iLuchuirp or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENCHANTMENT1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENCHANTMENT2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENCHANTMENT3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_ENTROPY')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
elif iStateReligion == iVeil:
iNum += 1
if iCiv == iMercurians:
pass
elif iCiv == iInfernal or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENTROPY1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENTROPY2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENTROPY3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_FIRE')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
elif iStateReligion == iOverlords:
iNum -= 1
elif iStateReligion ==iHand:
iNum -= 1
if iCiv == iClan or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_FIRE1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_FIRE2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_FIRE3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_FORCE')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
if iCiv == iGrigori or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_FORCE1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_FORCE2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_FORCE3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_ICE')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
elif iStateReligion ==iHand:
iNum += 1
elif iStateReligion == iLeaves:
iNum -= 1
if iCiv == iIllians or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ICE1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ICE2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ICE3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_LAW')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
elif iStateReligion == iOrder:
iNum += 1
if iCiv == iBannor or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LAW1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LAW2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LAW3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_LIFE')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
if iCiv == iMercurians or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LIFE1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LIFE2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LIFE3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_METAMAGIC')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
if iCiv == iAmurites or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_METAMAGIC1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_METAMAGIC2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_METAMAGIC3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_MIND')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
if iCiv == iBalseraphs or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MIND1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MIND2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MIND3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_NATURE')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
elif iStateReligion == iLeaves:
iNum += 1
elif iStateReligion ==iHand:
iNum -= 1
if iCiv == iLjosalfar or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_NATURE1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_NATURE2'), True)
self.onUnitPromoted([unit, gc.getInfoTypeForString('PROMOTION_NATURE2')])
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_NATURE3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_SHADOW')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
elif iStateReligion == iEsus:
iNum += 1
elif iStateReligion == iEmpyrean:
iNum -= 1
if iCiv == iSvartalfar or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SHADOW1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SHADOW2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SHADOW3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_SPIRIT')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
if iCiv == iElohim or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SPIRIT1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SPIRIT2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SPIRIT3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_SUN')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
elif iStateReligion == iEsus:
iNum -= 1
elif iStateReligion == iEmpyrean:
iNum += 1
if iCiv == iMalakim or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUN1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUN2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUN3'), True)
iMana = gc.getInfoTypeForString('BONUS_MANA_WATER')
iNum = pPlayer.getNumAvailableBonuses(iMana)
if unit.isBarbarian():
iNum += CyGame().getSorenRandNum(pArea.getNumBonuses(iMana), "Barbaran Mana")
elif iStateReligion == iOverlords:
iNum += 1
if iCiv == iLanun or iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WATER1'), True)
if iNum > 3 and unit.isHasPromotion(iChanneling2):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WATER2'), True)
if iNum > 4 and unit.isHasPromotion(iChanneling3):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WATER3'), True)