不明な昇進[iImmo]は1ターンの行動不能で実装。
不明な昇進[iImmo]は1ターンの行動不能で実装。
def spellBanish(argsList): pCaster, pBestPlot, eSpell = argsList iX = pCaster.getX() iY = pCaster.getY() iWeak = gc.getInfoTypeForString('PROMOTION_WEAKEN') iImmoTurn = 1 iexp = pCaster.getExperience() iexp2 = iexp+20 pPlayer = 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())