OAC0.29におけるグランドクロスのバグ修正

不明な昇進[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())
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX