def onUnitCreated(self, argsList):
'Unit Completed'
unit = argsList[0]
player = PyPlayer(unit.getOwner())
pPlayer = gc.getPlayer(unit.getOwner())
iChanneling2 = gc.getInfoTypeForString('PROMOTION_CHANNELING2')
iChanneling3 = gc.getInfoTypeForString('PROMOTION_CHANNELING3')
if unit.getUnitCombatType() == gc.getInfoTypeForString('UNITCOMBAT_ADEPT'):
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_AIR'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AIR1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AIR2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_AIR3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_BODY'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BODY1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BODY2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_BODY3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_CHAOS'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CHAOS1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CHAOS2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_CHAOS3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_DEATH'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DEATH1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DEATH2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_DEATH3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_EARTH'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_EARTH1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_EARTH2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_EARTH3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_ENCHANTMENT'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENCHANTMENT1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENCHANTMENT2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENCHANTMENT3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_ENTROPY'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENTROPY1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENTROPY2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ENTROPY3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_FIRE'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_FIRE1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_FIRE2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_FIRE3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_ICE'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ICE1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ICE2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_ICE3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_LAW'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LAW1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LAW2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LAW3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_LIFE'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LIFE1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LIFE2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_LIFE3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_METAMAGIC'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_METAMAGIC1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_METAMAGIC2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_METAMAGIC3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_MIND'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MIND1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MIND2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_MIND3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_NATURE'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_NATURE1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_NATURE2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_NATURE3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_SHADOW'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SHADOW1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SHADOW2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SHADOW3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_SPIRIT'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SPIRIT1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SPIRIT2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SPIRIT3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_SUN'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUN1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUN2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_SUN3'), True)
iNum = pPlayer.getNumAvailableBonuses(gc.getInfoTypeForString('BONUS_MANA_WATER'))
if iNum > 1:
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WATER1'), True)
if (iNum > 2 and unit.isHasPromotion(iChanneling2)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WATER2'), True)
if (iNum > 3 and unit.isHasPromotion(iChanneling3)):
unit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_WATER3'), True)