if getNumB( Building["School of Govannon"]) > 0:
if (iCombatType == UnitCombat["Melee"] or iCombatType == UnitCombat["Archer"] or iCombatType == UnitCombat["Mounted"] or iCombatType == UnitCombat["Recon"] or iCombatType == UnitCombat["Adept"] or iCombatType == UnitCombat["Disciple"]):
lPromoList = []
iAirNum = getNumAvailBonuses( Mana["Air"])
if iAirNum > 0:
lPromoList = lPromoList + ['PROMOTION_AIR1', 'PROMOTION_AIR2', 'PROMOTION_AIR3']
...
iWatNum = getNumAvailBonuses( Mana["Water"])
if iWatNum > 0:
lPromoList = lPromoList + ['PROMOTION_WATER1', 'PROMOTION_WATER2', 'PROMOTION_WATER3']
iDimNum = getNumAvailBonuses( Mana["Dimensional"])
if iDimNum > 0:
lPromoList = lPromoList + ['PROMOTION_CREATION1', 'PROMOTION_CREATION2', 'PROMOTION_CREATION3']
iCreNum = getNumAvailBonuses( Mana["Creation"])
if iCreNum > 0:
lPromoList = lPromoList + ['PROMOTION_FORCE1', 'PROMOTION_FORCE2', 'PROMOTION_FORCE3']
iForNum = getNumAvailBonuses( Mana["Force"])
if iForNum > 0:
lPromoList = lPromoList + ['PROMOTION_DIMENSIONAL1', 'PROMOTION_DIMENSIONAL2', 'PROMOTION_DIMENSIONAL3']
if len(lPromoList) > 0:
sPromo = lPromoList[randNum(len(lPromoList), "Pick Promotion")]
if game.getSorenRandNum(100, "Spell Gain Check") < ((iAirNum + iBodyNum + iChaosNum + iDeathNum + iEarthNum + iEncNum + iEntNum + iFirNum + iIceNum + iLawNum + iLifNum + iMetNum + iMinNum + iNatNum + iShaNum + iSpiNum + iSunNum + iWatNum + iDimNum + iCreNum + iForNum)*3):
setPromo(getInfoType(sPromo), True)