def effectSilenced(caster):
caster.cast(gc.getInfoTypeForString('SPELL_SILENCED'))
def spellSilenced(caster):
pPlayer = gc.getPlayer(caster.getOwner())
pPlot = caster.plot()
iAdept = gc.getInfoTypeForString('UNITCOMBAT_ADEPT')
iSpellstaff = gc.getInfoTypeForString('PROMOTION_SPELLSTAFF')
iSophiaFull = gc.getInfoTypeForString('PROMOTION_RING_OF_SOPHIA')
iSophiaEmpty = gc.getInfoTypeForString('PROMOTION_RING_OF_SOPHIA_EMPTY')
lList = []
promotions = [ 'PROMOTION_AIR1','PROMOTION_BODY1','PROMOTION_CHAOS1','PROMOTION_DEATH1','PROMOTION_EARTH1','PROMOTION_ENCHANTMENT1','PROMOTION_ENTROPY1','PROMOTION_FIRE1','PROMOTION_LAW1','PROMOTION_LIFE1','PROMOTION_MIND1','PROMOTION_NATURE1','PROMOTION_SHADOW1','PROMOTION_SPIRIT1','PROMOTION_SUN1','PROMOTION_WATER1','PROMOTION_AIR2','PROMOTION_BODY2','PROMOTION_CHAOS2','PROMOTION_DEATH2','PROMOTION_EARTH2','PROMOTION_ENCHANTMENT2','PROMOTION_ENTROPY2','PROMOTION_FIRE2','PROMOTION_LAW2','PROMOTION_LIFE2','PROMOTION_MIND2','PROMOTION_NATURE2','PROMOTION_SHADOW2','PROMOTION_SPIRIT2','PROMOTION_SUN2','PROMOTION_WATER2']
newUnit = pPlayer.initUnit(caster.getUnitType(), caster.getX(), caster.getY(), UnitAITypes.NO_UNITAI, DirectionTypes.DIRECTION_SOUTH)
newUnit.convert(caster)
if newUnit.isHasPromotion(iSpellstaff):
newUnit.setHasPromotion(iSpellstaff, False)
if newUnit.isHasPromotion(iSophiaFull):
newUnit.setHasPromotion(iSophiaFull, False)
newUnit.setHasPromotion(iSophiaEmpty, True)
if newUnit.getUnitCombatType() == iAdept:
for i in promotions:
if newUnit.isHasPromotion(gc.getInfoTypeForString(i)):
lList = lList + [gc.getInfoTypeForString(i)]
newUnit.setHasPromotion(lList[CyGame().getSorenRandNum(len(lList), "Destroy Magic")-1], False)
newUnit.setHasCasted(True)
CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_PIT_BEAST_SUMMON'), pPlot.getPoint())