def reqDivineRetribution(pCaster, eSpell=-1):
if not pCaster.isHuman():
iTeam = pCaster.getTeam()
eTeam = gc.getTeam(iTeam)
if eTeam.getAtWarCount(True) < 2:
return False
iDemon = gc.getInfoTypeForString('PROMOTION_DEMON')
iHoly = gc.getInfoTypeForString('DAMAGE_HOLY')
for iPlayer in xrange(gc.getMAX_PLAYERS()):
pPlayer = gc.getPlayer(iPlayer)
if pPlayer.isAlive():
(loopUnit, iter) = pPlayer.firstUnit(False)
while(loopUnit):
if not loopUnit.isDead(): #is the unit alive and valid?
if loopUnit.isImmuneToSpell(pCaster, eSpell):continue
iRace = loopUnit.getRace()
if iRace == iDemon:
return True
(loopUnit, iter) = pPlayer.nextUnit(iter, False)
return False
def spellDivineRetribution(pCaster, eSpell=-1):
iDemon = gc.getInfoTypeForString('PROMOTION_DEMON')
iUndead = gc.getInfoTypeForString('PROMOTION_UNDEAD')
iHoly = gc.getInfoTypeForString('DAMAGE_HOLY')
for iPlayer in xrange(gc.getMAX_PLAYERS()):
pPlayer = gc.getPlayer(iPlayer)
if pPlayer.isAlive():
(loopUnit, iter) = pPlayer.firstUnit(False)
while(loopUnit):
if not loopUnit.isDead(): #is the unit alive and valid?
if loopUnit.isImmuneToSpell(pCaster, eSpell):continue
iRace = loopUnit.getRace()
if iRace == iDemon:
loopUnit.doDamage(70, 100, pCaster, iHoly, False)
(loopUnit, iter) = pPlayer.nextUnit(iter, False)
def reqRequiem(pCaster, eSpell=-1):
if not pCaster.isHuman():
iTeam = pCaster.getTeam()
eTeam = gc.getTeam(iTeam)
if eTeam.getAtWarCount(True) < 2:
return False
iUndead = gc.getInfoTypeForString('PROMOTION_UNDEAD')
iHoly = gc.getInfoTypeForString('DAMAGE_HOLY')
for iPlayer in xrange(gc.getMAX_PLAYERS()):
pPlayer = gc.getPlayer(iPlayer)
if pPlayer.isAlive():
(loopUnit, iter) = pPlayer.firstUnit(False)
while(loopUnit):
if not loopUnit.isDead(): #is the unit alive and valid?
if loopUnit.isImmuneToSpell(pCaster, eSpell):continue
iRace = loopUnit.getRace()
if iRace == iUndead:
return True
(loopUnit, iter) = pPlayer.nextUnit(iter, False)
return False
def spellRequiem(pCaster, eSpell=-1):
iUndead = gc.getInfoTypeForString('PROMOTION_UNDEAD')
iHoly = gc.getInfoTypeForString('DAMAGE_HOLY')
for iPlayer in xrange(gc.getMAX_PLAYERS()):
pPlayer = gc.getPlayer(iPlayer)
if pPlayer.isAlive():
(loopUnit, iter) = pPlayer.firstUnit(False)
while(loopUnit):
if not loopUnit.isDead(): #is the unit alive and valid?
if loopUnit.isImmuneToSpell(pCaster, eSpell):continue
iRace = loopUnit.getRace()
if iRace == iUndead:
loopUnit.doDamage(70, 100, pCaster, iHoly, False)
(loopUnit, iter) = pPlayer.nextUnit(iter, False)