def spellWonder(caster):
iCount = CyGame().getSorenRandNum(3, "Wonder") + 3
pPlayer = gc.getPlayer(caster.getOwner())
pPlot = caster.plot()
bCity = False
point = pPlot.getPoint()
if pPlot.isCity():
bCity = True
for i in range (iCount):
iRnd = CyGame().getSorenRandNum(63, "Wonder")
if iRnd == 0:
caster.cast(gc.getInfoTypeForString('SPELL_BLAZE'))
if iRnd == 1:
caster.cast(gc.getInfoTypeForString('SPELL_BLESS'))
if iRnd == 2:
caster.cast(gc.getInfoTypeForString('SPELL_BLINDING_LIGHT'))
if iRnd == 3:
caster.cast(gc.getInfoTypeForString('SPELL_BLOOM'))
if iRnd == 4:
caster.cast(gc.getInfoTypeForString('SPELL_BLUR'))
if iRnd == 5:
caster.cast(gc.getInfoTypeForString('SPELL_CHARM_PERSON'))
if iRnd == 6:
caster.cast(gc.getInfoTypeForString('SPELL_CONTAGION'))
if iRnd == 7:
caster.cast(gc.getInfoTypeForString('SPELL_COURAGE'))
if iRnd == 8:
caster.cast(gc.getInfoTypeForString('SPELL_CRUSH'))
if iRnd == 9:
caster.cast(gc.getInfoTypeForString('SPELL_DESTROY_UNDEAD'))
if iRnd == 10:
caster.cast(gc.getInfoTypeForString('SPELL_DISPEL_MAGIC'))
if iRnd == 11:
caster.cast(gc.getInfoTypeForString('SPELL_EARTHQUAKE'))
if iRnd == 12:
caster.cast(gc.getInfoTypeForString('SPELL_ENCHANTED_BLADE'))
if iRnd == 13:
CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_SPELL1'),point)
CyAudioGame().Play3DSound("AS3D_SPELL_DEFILE",point.x,point.y,point.z)
for iX in range(pPlot.getX()-1, pPlot.getX()+2, 1):
for iY in range(pPlot.getY()-1, pPlot.getY()+2, 1):
pLoopPlot = CyMap().plot(iX,iY)
if pLoopPlot.isNone() == False:
pLoopPlot.changePlotCounter(100)
if iRnd == 14:
caster.cast(gc.getInfoTypeForString('SPELL_ENTANGLE'))
if iRnd == 15:
caster.cast(gc.getInfoTypeForString('SPELL_ESCAPE'))
if iRnd == 16:
caster.cast(gc.getInfoTypeForString('SPELL_FIREBALL'))
if iRnd == 17:
caster.cast(gc.getInfoTypeForString('SPELL_FLAMING_ARROWS'))
if iRnd == 18:
caster.cast(gc.getInfoTypeForString('SPELL_FLOATING_EYE'))
if iRnd == 19:
caster.cast(gc.getInfoTypeForString('SPELL_HASTE'))
if iRnd == 20:
caster.cast(gc.getInfoTypeForString('SPELL_HASTURS_RAZOR'))
if iRnd == 21:
caster.cast(gc.getInfoTypeForString('SPELL_HEAL'))
if iRnd == 22:
caster.cast(gc.getInfoTypeForString('SPELL_HIDE'))
if iRnd == 23:
caster.cast(gc.getInfoTypeForString('SPELL_LOYALTY'))
if iRnd == 24:
caster.cast(gc.getInfoTypeForString('SPELL_MAELSTROM'))
if iRnd == 25:
caster.cast(gc.getInfoTypeForString('SPELL_MORALE'))
if iRnd == 26:
caster.cast(gc.getInfoTypeForString('SPELL_MUTATION'))
if iRnd == 27:
caster.cast(gc.getInfoTypeForString('SPELL_PILLAR_OF_FIRE'))
if iRnd == 28:
caster.cast(gc.getInfoTypeForString('SPELL_POISONED_BLADE'))
if iRnd == 29:
caster.cast(gc.getInfoTypeForString('SPELL_REVELATION'))
if iRnd == 30:
caster.cast(gc.getInfoTypeForString('SPELL_RING_OF_FLAMES'))
if iRnd == 31:
caster.cast(gc.getInfoTypeForString('SPELL_RUST'))
if iRnd == 32:
caster.cast(gc.getInfoTypeForString('SPELL_SANCTIFY'))
if iRnd == 33:
caster.cast(gc.getInfoTypeForString('SPELL_SCORCH'))
if iRnd == 34:
caster.cast(gc.getInfoTypeForString('SPELL_SHADOWWALK'))
if iRnd == 35:
caster.cast(gc.getInfoTypeForString('SPELL_SPORES'))
if iRnd == 36:
caster.cast(gc.getInfoTypeForString('SPELL_SPRING'))
if iRnd == 37:
caster.cast(gc.getInfoTypeForString('SPELL_STONESKIN'))
if iRnd == 38:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_AIR_ELEMENTAL'))
if iRnd == 39:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_AUREALIS'))
if iRnd == 40:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_BALOR'))
if iRnd == 41:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_DJINN'))
if iRnd == 42:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_EARTH_ELEMENTAL'))
if iRnd == 43:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_EINHERJAR'))
if iRnd == 44:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_FIRE_ELEMENTAL'))
if iRnd == 45:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_KRAKEN'))
if iRnd == 46:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_MISTFORM'))
if iRnd == 47:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_PIT_BEAST'))
if iRnd == 48:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_SAND_LION'))
if iRnd == 49:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_SPECTRE'))
if iRnd == 50:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_TIGER'))
if iRnd == 51:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_TREANT'))
if iRnd == 52:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_WATER_ELEMENTAL'))
if iRnd == 53:
caster.cast(gc.getInfoTypeForString('SPELL_SUMMON_WRAITH'))
if iRnd == 54:
caster.cast(gc.getInfoTypeForString('SPELL_TSUNAMI'))
if iRnd == 55:
caster.cast(gc.getInfoTypeForString('SPELL_VALOR'))
if iRnd == 56:
caster.cast(gc.getInfoTypeForString('SPELL_VITALIZE'))
if iRnd == 57:
caster.cast(gc.getInfoTypeForString('SPELL_WITHER'))
if iRnd == 58:
if bCity == False:
pPlot.setImprovementType(gc.getInfoTypeForString('IMPROVEMENT_PENGUINS'))
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_WONDER_PENGUINS", ()),'',1,'Art/Interface/Buttons/Improvements/Penguins.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
if iRnd == 59:
if bCity == False:
pPlot.setImprovementType(gc.getInfoTypeForString('IMPROVEMENT_MUSHROOMS'))
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_WONDER_MUSHROOMS", ()),'',1,'Art/Interface/Buttons/Improvements/Mushrooms.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
if iRnd == 60:
for iProm in range(gc.getNumPromotionInfos()):
if caster.isHasPromotion(iProm):
if gc.getPromotionInfo(iProm).isRace():
caster.setHasPromotion(iProm, False)
caster.setUnitArtStyleType(gc.getInfoTypeForString('UNIT_ARTSTYLE_BABOON'))
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_WONDER_BABOON", ()),'',1,'Art/Interface/Buttons/Units/Margalard.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
if iRnd == 61:
CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_SPELL1'),point)
CyAudioGame().Play3DSound("AS3D_SPELL_SANCTIFY",point.x,point.y,point.z)
for iX in range(pPlot.getX()-2, pPlot.getX()+3, 1):
for iY in range(pPlot.getY()-2, pPlot.getY()+3, 1):
pLoopPlot = CyMap().plot(iX,iY)
if pLoopPlot.isNone() == False:
pLoopPlot.changePlotCounter(-100)
if iRnd == 62:
newUnit = pPlayer.initUnit(gc.getInfoTypeForString('UNIT_SPIDERKIN'), pPlot.getX(), pPlot.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_WONDER_SPIDERKIN", ()),'',1,'Art/Interface/Buttons/Units/Spiderkin.dds',ColorTypes(8),pPlot.getX(),pPlot.getY(),True,True)
newUnit.setDuration(3)