if gc.getGame().isOption(GameOptionTypes.GAMEOPTION_WILD_MANA):
bOrcPlayer = gc.getPlayer(gc.getORC_PLAYER())
bAnimalPlayer = gc.getPlayer(gc.getANIMAL_PLAYER())
bDemonPlayer = gc.getPlayer(gc.getDEMON_PLAYER())
iRawMana = gc.getInfoTypeForString('BONUS_MANA')
iDesert = gc.getInfoTypeForString('TERRAIN_DESERT')
iGrass = gc.getInfoTypeForString('TERRAIN_GRASS')
iPlains = gc.getInfoTypeForString('TERRAIN_PLAINS')
iSnow = gc.getInfoTypeForString('TERRAIN_SNOW')
iTundra = gc.getInfoTypeForString('TERRAIN_TUNDRA')
iMarsh = gc.getInfoTypeForString('TERRAIN_MARSH')
lList = ['BONUS_MANA_SUN', 'BONUS_MANA_ICE', 'BONUS_MANA_AIR', 'BONUS_MANA_BODY', 'BONUS_MANA_CHAOS', 'BONUS_MANA_DEATH', 'BONUS_MANA_EARTH', 'BONUS_MANA_ENCHANTMENT', 'BONUS_MANA_ENTROPY', 'BONUS_MANA_FIRE', 'BONUS_MANA_LAW', 'BONUS_MANA_LIFE', 'BONUS_MANA_METAMAGIC', 'BONUS_MANA_MIND', 'BONUS_MANA_NATURE', 'BONUS_MANA_SHADOW', 'BONUS_MANA_SPIRIT', 'BONUS_MANA_WATER', 'BONUS_MANA_CREATION', 'BONUS_MANA_FORCE', 'BONUS_MANA_DIMENSIONAL', 'BONUS_MANA']
iMana = 15
if CyMap().getWorldSize() == gc.getInfoTypeForString('WORLDSIZE_DUEL'):
iMana = iMana - 7
if CyMap().getWorldSize() == gc.getInfoTypeForString('WORLDSIZE_TINY'):
iMana = iMana - 5
if CyMap().getWorldSize() == gc.getInfoTypeForString('WORLDSIZE_SMALL'):
iMana = iMana - 3
if CyMap().getWorldSize() == gc.getInfoTypeForString('WORLDSIZE_LARGE'):
iMana = iMana + 3
if CyMap().getWorldSize() == gc.getInfoTypeForString('WORLDSIZE_HUGE'):
iMana = iMana + 6
cf.addBonus('BONUS_MANA',iMana,'Art/Interface/Buttons/WorldBuilder/mana_button.dds')
for i in range (CyMap().numPlots()):
pPlot = CyMap().plotByIndex(i)
if pPlot.getImprovementType() == -1:
if pPlot.isWater() == False:
iBonus = pPlot.getBonusType(-1)
if iBonus == iRawMana:
iManaRnd = CyGame().getSorenRandNum(100, "Mana Creation")
iConvertRnd = 60
if gc.getGame().isOption(GameOptionTypes.GAMEOPTION_FERAL_MANA):
iConvertRnd = 100
if iManaRnd <= iConvertRnd:
sMana = lList[CyGame().getSorenRandNum(len(lList), "Pick Mana")-1]
iBonus = gc.getInfoTypeForString(sMana)
pPlot.setBonusType(iBonus)
if gc.getGame().isOption(GameOptionTypes.GAMEOPTION_MANA_GUARDIANS):
if iBonus == gc.getInfoTypeForString('BONUS_MANA_AIR'):
newUnit = bDemonPlayer.initUnit(gc.getInfoTypeForString('UNIT_LIGHTNING_ELEMENTAL'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_BODY'):
newUnit = bDemonPlayer.initUnit(gc.getInfoTypeForString('UNIT_FLESH_GOLEM'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_CHAOS'):
newUnit = bDemonPlayer.initUnit(gc.getInfoTypeForString('UNIT_CHAOS_MARAUDER'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_DEATH'):
newUnit = bDemonPlayer.initUnit(gc.getInfoTypeForString('UNIT_LICH'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_EARTH'):
newUnit = bDemonPlayer.initUnit(gc.getInfoTypeForString('UNIT_EARTH_ELEMENTAL'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_ENCHANTMENT'):
newUnit = bOrcPlayer.initUnit(gc.getInfoTypeForString('UNIT_WOOD_GOLEM'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_ENTROPY'):
newUnit = bDemonPlayer.initUnit(gc.getInfoTypeForString('UNIT_TAR_DEMON'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_FIRE'):
newUnit = bDemonPlayer.initUnit(gc.getInfoTypeForString('UNIT_FIRE_ELEMENTAL'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_LAW'):
newUnit = bOrcPlayer.initUnit(gc.getInfoTypeForString('UNIT_EINHERJAR'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_LIFE'):
newUnit = bOrcPlayer.initUnit(gc.getInfoTypeForString('UNIT_ANGEL'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_METAMAGIC'):
newUnit = bDemonPlayer.initUnit(gc.getInfoTypeForString('UNIT_THADE'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_MIND'):
newUnit = bDemonPlayer.initUnit(gc.getInfoTypeForString('UNIT_PSION'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_SHADOW'):
newUnit = bDemonPlayer.initUnit(gc.getInfoTypeForString('UNIT_SPECTRE'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_SPIRIT'):
newUnit = bOrcPlayer.initUnit(gc.getInfoTypeForString('UNIT_MONK'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_SUN'):
newUnit = bOrcPlayer.initUnit(gc.getInfoTypeForString('UNIT_AUREALIS'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_WATER'):
newUnit = bDemonPlayer.initUnit(gc.getInfoTypeForString('UNIT_WATER_ELEMENTAL'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_CREATION'):
newUnit = bAnimalPlayer.initUnit(gc.getInfoTypeForString('UNIT_ELK'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_FORCE'):
newUnit = bOrcPlayer.initUnit(gc.getInfoTypeForString('UNIT_DRAGON_SLAYER'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_DIMENSIONAL'):
newUnit = bDemonPlayer.initUnit(gc.getInfoTypeForString('UNIT_UBER_GNOSLING'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_ICE'):
newUnit = bDemonPlayer.initUnit(gc.getInfoTypeForString('UNIT_ICE_ELEMENTAL'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)
elif iBonus == gc.getInfoTypeForString('BONUS_MANA_NATURE'):
newUnit = bAnimalPlayer.initUnit(gc.getInfoTypeForString('UNIT_GUARDIAN_VINES'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.setHasPromotion(gc.getInfoTypeForString('PROMOTION_HELD'), True)