不明な昇進[iImmo]は1ターンの行動不能で実装。
不明な昇進[iImmo]は1ターンの行動不能で実装。
def spellBanish(argsList):pCaster, pBestPlot, eSpell = argsListiX = pCaster.getX()iY = pCaster.getY()iWeak = gc.getInfoTypeForString('PROMOTION_WEAKEN')iImmoTurn = 1iexp = pCaster.getExperience()iexp2 = iexp+20pPlayer = gc.getPlayer(pCaster.getOwner())pCaster.doDamage(25, 99, gc.getInfoTypeForString('DAMAGE_HOLY'))if iexp <= 20:for iiX in xrange(iX-1, iX+2, 1):pPlot = CyMap().plot(iiX,iY)for i in xrange(pPlot.getNumUnits()):pUnit = pPlot.getUnit(i)if not pUnit.isAlive():pUnit.doDamage(iexp, iexp2, gc.getInfoTypeForString('DAMAGE_HOLY'))if pPlot.isVisibleToWatchingHuman():CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_CREATION'),pPlot.getPoint())for iiY in xrange(iY-1, iY+2, 1):pPlot2 = CyMap().plot(iX,iiY)for i2 in xrange(pPlot2.getNumUnits()):pUnit = pPlot2.getUnit(i2)if not pUnit.isAlive():pUnit.doDamage(iexp, iexp2, gc.getInfoTypeForString('DAMAGE_HOLY'))if pPlot2.isVisibleToWatchingHuman():CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_CREATION'),pPlot2.getPoint())if iexp > 20 and iexp <= 50:for iiX in xrange(iX-2, iX+3, 1):pPlot = CyMap().plot(iiX,iY)for i in xrange(pPlot.getNumUnits()):pUnit = pPlot.getUnit(i)if not pUnit.isAlive():pUnit.doDamage(30, iexp2, gc.getInfoTypeForString('DAMAGE_HOLY'))if pPlot.isVisibleToWatchingHuman():CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_CREATION'),pPlot.getPoint())for iiY in xrange(iY-2, iY+3, 1):pPlot2 = CyMap().plot(iX,iiY)for i2 in xrange(pPlot2.getNumUnits()):pUnit = pPlot2.getUnit(i2)if not pUnit.isAlive():pUnit.doDamage(30, iexp2, gc.getInfoTypeForString('DAMAGE_HOLY'))if pPlot2.isVisibleToWatchingHuman():CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_CREATION'),pPlot2.getPoint())if iexp > 50 and iexp <= 100:for iiX in xrange(iX-2, iX+3, 1):pPlot = CyMap().plot(iiX,iY)for i in xrange(pPlot.getNumUnits()):pUnit = pPlot.getUnit(i)if not pUnit.isAlive():pUnit.doDamage(50, 70, gc.getInfoTypeForString('DAMAGE_HOLY'))pUnit.setHasPromotion(iWeak, True)if pPlot.isVisibleToWatchingHuman():CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_CREATION'),pPlot.getPoint())for iiY in xrange(iY-2, iY+3, 1):pPlot2 = CyMap().plot(iX,iiY)for i2 in xrange(pPlot2.getNumUnits()):pUnit = pPlot2.getUnit(i2)if not pUnit.isAlive():pUnit.doDamage(50, 70, gc.getInfoTypeForString('DAMAGE_HOLY'))pUnit.setHasPromotion(iWeak, True)if pPlot2.isVisibleToWatchingHuman():CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_CREATION'),pPlot2.getPoint())if CyMap().plot(iX,iY).isVisibleToWatchingHuman():CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_AIR_SUMMON'),CyMap().plot(iX,iY).getPoint())if iexp > 100 and iexp <= 200:for iiX in xrange(iX-3, iX+4, 1):pPlot = CyMap().plot(iiX,iY)for i in xrange(pPlot.getNumUnits()):pUnit = pPlot.getUnit(i)if not pUnit.isAlive():pUnit.doDamage(60, 80, gc.getInfoTypeForString('DAMAGE_HOLY'))pUnit.setHasPromotion(iWeak, True)if pPlot.isVisibleToWatchingHuman():CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_CREATION'),pPlot.getPoint())for iiY in xrange(iY-3, iY+4, 1):pPlot2 = CyMap().plot(iX,iiY)for i2 in xrange(pPlot2.getNumUnits()):pUnit = pPlot2.getUnit(i2)if not pUnit.isAlive():pUnit.doDamage(60, 80, gc.getInfoTypeForString('DAMAGE_HOLY'))pUnit.setHasPromotion(iWeak, True)if pPlot2.isVisibleToWatchingHuman():CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_CREATION'),pPlot2.getPoint())if CyMap().plot(iX,iY).isVisibleToWatchingHuman():CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_TW'),CyMap().plot(iX,iY).getPoint())if iexp > 200:for iiX in xrange(iX-3, iX+4, 1):pPlot = CyMap().plot(iiX,iY)for i in xrange(pPlot.getNumUnits()):pUnit = pPlot.getUnit(i)if not pUnit.isAlive():pUnit.doDamage(75, 99, gc.getInfoTypeForString('DAMAGE_HOLY'))pUnit.setHasPromotion(iWeak, True)pUnit.changeImmobileTimer(iImmoTurn)pUnit.setHasCasted(True)if pPlot.isVisibleToWatchingHuman():CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_CREATION'),pPlot.getPoint())for iiY in xrange(iY-3, iY+4, 1):pPlot2 = CyMap().plot(iX,iiY)for i2 in xrange(pPlot2.getNumUnits()):pUnit = pPlot2.getUnit(i2)if not pUnit.isAlive():pUnit.doDamage(75, 99, gc.getInfoTypeForString('DAMAGE_HOLY'))pUnit.setHasPromotion(iWeak, True)pUnit.changeImmobileTimer(iImmoTurn)pUnit.setHasCasted(True)if pPlot2.isVisibleToWatchingHuman():CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_CREATION'),pPlot2.getPoint())if CyMap().plot(iX,iY).isVisibleToWatchingHuman():CyEngine().triggerEffect(gc.getInfoTypeForString('EFFECT_TW'),CyMap().plot(iX,iY).getPoint())