if pPlayer.isHasTech(gc.getInfoTypeForString('TECH_KNOWLEDGE_OF_THE_ETHER')):
iAlcinusClass = gc.getInfoTypeForString('UNITCLASS_ALCINUS')
iAlcinusUpgradeClass = gc.getInfoTypeForString('UNITCLASS_ALCINUS_UPGRADED')
iAlcinusArchmageClass = gc.getInfoTypeForString('UNITCLASS_ALCINUS_ARCHMAGE')
if pPlayer.getUnitClassCount(iAlcinusClass) + pPlayer.getUnitClassCount(iAlcinusUpgradeClass) + pPlayer.getUnitClassCount(iAlcinusArchmageClass) == 0:
iAlcinusOdds = 6
estiEnd = CyGame().getEstimateEndTurn()
if ( estiEnd >= 1500 ):
iAlcinusOdds = 2
elif ( estiEnd >= 750 ):
iAlcinusOdds = 3
elif ( estiEnd >= 500 ):
iAlcinusOdds = 4
elif ( estiEnd >= 330 ):
iAlcinusOdds = 5
else:
iAlcinusOdds = iAlcinusOdds
if CyGame().getSorenRandNum(20, "Alcinus spawn check") < iAlcinusOdds:
if gc.getPlayer(gc.getBARBARIAN_PLAYER()).getUnitClassCount(iAlcinusClass) + gc.getPlayer(gc.getBARBARIAN_PLAYER()).getUnitClassCount(iAlcinusUpgradeClass) + gc.getPlayer(gc.getBARBARIAN_PLAYER()).getUnitClassCount(iAlcinusArchmageClass) == 0:
if pPlayer.isHasTech(gc.getInfoTypeForString('TECH_STRENGTH_OF_WILL')):
newUnit = pPlayer.initUnit(gc.getInfoTypeForString('UNIT_ALCINUS_ARCHMAGE'), pTomb.getX(), pTomb.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ESTRANGED'), True)
lPromoList = []
lPromoList = lPromoList + ['PROMOTION_AIR2', 'PROMOTION_AIR3']
lPromoList = lPromoList + ['PROMOTION_BODY2', 'PROMOTION_BODY3']
lPromoList = lPromoList + ['PROMOTION_CHAOS2', 'PROMOTION_CHAOS3']
lPromoList = lPromoList + ['PROMOTION_DEATH2', 'PROMOTION_DEATH3']
lPromoList = lPromoList + ['PROMOTION_EARTH2', 'PROMOTION_EARTH3']
lPromoList = lPromoList + ['PROMOTION_ENCHANTMENT2', 'PROMOTION_ENCHANTMENT3']
lPromoList = lPromoList + ['PROMOTION_ENTROPY2', 'PROMOTION_ENTROPY3']
lPromoList = lPromoList + ['PROMOTION_FIRE2', 'PROMOTION_FIRE3']
lPromoList = lPromoList + ['PROMOTION_ICE2', 'PROMOTION_ICE3']
lPromoList = lPromoList + ['PROMOTION_LAW2', 'PROMOTION_LAW3']
lPromoList = lPromoList + ['PROMOTION_LIFE2', 'PROMOTION_LIFE3']
lPromoList = lPromoList + ['PROMOTION_METAMAGIC2', 'PROMOTION_METAMAGIC3']
lPromoList = lPromoList + ['PROMOTION_MIND2', 'PROMOTION_MIND3']
lPromoList = lPromoList + ['PROMOTION_NATURE2', 'PROMOTION_NATURE3']
lPromoList = lPromoList + ['PROMOTION_SHADOW2', 'PROMOTION_SHADOW3']
lPromoList = lPromoList + ['PROMOTION_SPIRIT2', 'PROMOTION_SPIRIT3']
lPromoList = lPromoList + ['PROMOTION_SUN2', 'PROMOTION_SUN3']
lPromoList = lPromoList + ['PROMOTION_WATER2', 'PROMOTION_WATER3']
lPromoList = lPromoList + ['PROMOTION_CREATION2', 'PROMOTION_CREATION3']
lPromoList = lPromoList + ['PROMOTION_FORCE2', 'PROMOTION_FORCE3']
sPromo = lPromoList[CyGame().getSorenRandNum(len(lPromoList), "Pick Promotion")-1]
newUnit.setHasPromotion(gc.getInfoTypeForString(sPromo), True)
else:
if pPlayer.isHasTech(gc.getInfoTypeForString('TECH_SORCERY')):
newUnit = pPlayer.initUnit(gc.getInfoTypeForString('UNIT_ALCINUS_UPGRADED'), pTomb.getX(), pTomb.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ESTRANGED'), True)
if CyGame().getSorenRandNum(14, "Learn new Spell")<3:
lPromoList = []
lPromoList = lPromoList + ['PROMOTION_AIR1', 'PROMOTION_AIR2']
lPromoList = lPromoList + ['PROMOTION_BODY1', 'PROMOTION_BODY2']
lPromoList = lPromoList + ['PROMOTION_CHAOS1', 'PROMOTION_CHAOS2']
lPromoList = lPromoList + ['PROMOTION_DEATH1', 'PROMOTION_DEATH2']
lPromoList = lPromoList + ['PROMOTION_EARTH1', 'PROMOTION_EARTH2']
lPromoList = lPromoList + ['PROMOTION_ENCHANTMENT1', 'PROMOTION_ENCHANTMENT2']
lPromoList = lPromoList + ['PROMOTION_ENTROPY1', 'PROMOTION_ENTROPY2']
lPromoList = lPromoList + ['PROMOTION_FIRE1', 'PROMOTION_FIRE2']
lPromoList = lPromoList + ['PROMOTION_ICE1', 'PROMOTION_ICE2']
lPromoList = lPromoList + ['PROMOTION_LAW1', 'PROMOTION_LAW2']
lPromoList = lPromoList + ['PROMOTION_LIFE1', 'PROMOTION_LIFE2']
lPromoList = lPromoList + ['PROMOTION_METAMAGIC1', 'PROMOTION_METAMAGIC2']
lPromoList = lPromoList + ['PROMOTION_MIND1', 'PROMOTION_MIND2']
lPromoList = lPromoList + ['PROMOTION_NATURE1', 'PROMOTION_NATURE2']
lPromoList = lPromoList + ['PROMOTION_SHADOW1', 'PROMOTION_SHADOW2']
lPromoList = lPromoList + ['PROMOTION_SPIRIT1', 'PROMOTION_SPIRIT2']
lPromoList = lPromoList + ['PROMOTION_SUN1', 'PROMOTION_SUN2']
lPromoList = lPromoList + ['PROMOTION_WATER1', 'PROMOTION_WATER2']
lPromoList = lPromoList + ['PROMOTION_CREATION1', 'PROMOTION_CREATION2']
lPromoList = lPromoList + ['PROMOTION_FORCE1', 'PROMOTION_FORCE2']
sPromo = lPromoList[CyGame().getSorenRandNum(len(lPromoList), "Pick Promotion")-1]
newUnit.setHasPromotion(gc.getInfoTypeForString(sPromo), True)
else:
newUnit = pPlayer.initUnit(gc.getInfoTypeForString('UNIT_ALCINUS'), pTomb.getX(), pTomb.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ESTRANGED'), True)