def onUnitMove(self, argsList):
'unit move'
pPlot,pUnit = argsList
player = PyPlayer(pUnit.getOwner())
unitInfo = PyInfo.UnitInfo(pUnit.getUnitType())
pPlayer = gc.getPlayer(pUnit.getOwner())
iSummoned = gc.getInfoTypeForString('PROMOTION_SUMMONED')
iSummoned2 = gc.getInfoTypeForString('PROMOTION_SUMMONED2')
iSummoned3 = gc.getInfoTypeForString('PROMOTION_SUMMONED3')
iMounted = gc.getInfoTypeForString('UNITCOMBAT_MOUNTED')
iNaval = gc.getInfoTypeForString('UNITCOMBAT_NAVAL')
iRecon = gc.getInfoTypeForString('UNITCOMBAT_RECON')
iX = pUnit.getX()
iY = pUnit.getY()
for iiX in range(iX-1, iX+2, 1):
for iiY in range(iY-1, iY+2, 1):
p2Plot = CyMap().plot(iiX,iiY)
if p2Plot.isOwned():
pPlot = pUnit.plot()
p2Player = gc.getPlayer(p2Plot.getOwner())
eTeam = gc.getTeam(pPlayer.getTeam())
i2Team = p2Player.getTeam()
if (eTeam.isAtWar(i2Team) and pPlot.getOwner() != pUnit.getOwner()):
if p2Plot.getImprovementType() == gc.getInfoTypeForString('IMPROVEMENT_FORT'):
iRnd = CyGame().getSorenRandNum(100, "Maniac")
if pUnit.isHasPromotion(iSummoned):
iRnd = iRnd + 100
if pUnit.isHasPromotion(iSummoned2):
iRnd = iRnd + 100
if pUnit.isHasPromotion(iSummoned3):
iRnd = iRnd + 100
if pUnit.getUnitCombatType() == iMounted:
iRnd = iRnd + 50
if pUnit.getUnitCombatType() == iNaval:
iRnd = iRnd + 50
if pUnit.getUnitCombatType() == iRecon:
iRnd = iRnd + 25
if iRnd <= 100:
pUnit.finishMoves()
CyInterface().addMessage(pUnit.getOwner(),True,25,'The nearby Fort hampers unit manoeuvres.','AS2D_COMBAT',1,'Art/Interface/Buttons/Builds/BuildFort.dds',ColorTypes(8),pUnit.getX(),pUnit.getY(),True,True)
if p2Plot.isCity():
iRnd = CyGame().getSorenRandNum(100, "Maniac")
if pUnit.isHasPromotion(iSummoned):
iRnd = iRnd + 100
if pUnit.isHasPromotion(iSummoned2):
iRnd = iRnd + 100
if pUnit.isHasPromotion(iSummoned3):
iRnd = iRnd + 100
if pUnit.getUnitCombatType() == iMounted:
iRnd = iRnd + 50
if pUnit.getUnitCombatType() == iNaval:
iRnd = iRnd + 50
if pUnit.getUnitCombatType() == iRecon:
iRnd = iRnd + 25
if iRnd <= 100:
pUnit.finishMoves()
CyInterface().addMessage(pUnit.getOwner(),True,25,'The nearby City hampers unit manoeuvres.','AS2D_COMBAT',1,'Art/Interface/Buttons/Buildings/City.dds',ColorTypes(8),pUnit.getX(),pUnit.getY(),True,True)