def spellDovielloDuel(caster):
pPlot = caster.plot()
for i in range(pPlot.getNumUnits()):
pUnit = pPlot.getUnit(i)
iRnd = CyGame().getSorenRandNum(100, "Doviello Duel")
if pUnit.getID() != caster.getID() and pUnit.getUnitType() == caster.getUnitType() and pUnit.getOwner() == iOwner:
if iRnd < 43:
caster.changeExperience(pUnit.getExperienceTimes100() / 4, -1, False, False, False)
caster.setDamage(25, caster.getOwner())
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_DOVIELLO_DUEL_WIN", ()),'',1,'Art/Interface/Buttons/Buildings/Arena.dds',ColorTypes(8),caster.getX(),caster.getY(),True,True)
pUnit.kill(True, PlayerTypes.NO_PLAYER)
if (iRnd >=43 and iRnd < 86):
pUnit.changeExperience(caster.getExperienceTimes100() / 4, -1, False, False, False)
pUnit.setDamage(25, pUnit.getOwner())
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_DOVIELLO_DUEL_LOSS", ()),'',1,'Art/Interface/Buttons/Buildings/Arena.dds',ColorTypes(8),caster.getX(),caster.getY(),True,True)
caster.kill(True, PlayerTypes.NO_PLAYER)
if (iRnd >=86 and iRnd < 96):
caster.changeExperience(pUnit.getExperienceTimes100() / 10, -1, False, False, False)
caster.setDamage(75, caster.getOwner())
pUnit.changeExperience(caster.getExperienceTimes100() / 10, -1, False, False, False)
pUnit.setDamage(75, pUnit.getOwner())
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_DOVIELLO_DUEL_DRAW", ()),'',1,'Art/Interface/Buttons/Buildings/Arena.dds',ColorTypes(8),caster.getX(),caster.getY(),True,True)
else:
CyInterface().addMessage(caster.getOwner(),True,25,CyTranslator().getText("TXT_KEY_MESSAGE_ARENA_DEATH", ()),'',1,'Art/Interface/Buttons/Buildings/Arena.dds',ColorTypes(7),caster.getX(),caster.getY(),True,True)
caster.kill(True, PlayerTypes.NO_PLAYER)
pUnit.kill(True, PlayerTypes.NO_PLAYER)