def reqPirateCove(caster):
if caster.getUnitClassType() != gc.getInfoTypeForString('UNITCLASS_WORKER'):
return False
if not canCast(caster):
return False
pPlayer = gc.getPlayer(caster.getOwner())
if pPlayer.getCivilizationType() != gc.getInfoTypeForString('CIVILIZATION_LANUN'):
return False
if pPlayer.isHuman() == False:
return False
iX = caster.getX()
iY = caster.getY()
pPlot = caster.plot()
if pPlot.isWater():
return False
if pPlot.area().getNumTiles() == 1:
return False
if pPlot.isCity():
return False
if (pPlot.isOwned() and pPlot.getOwner() != caster.getOwner()):
return False
if pPlot.getImprovementType() != -1:
return False
bValid = False
for iiX in range(iX-1, iX+2, 1):
for iiY in range(iY-1, iY+2, 1):
pPlot = CyMap().plot(iiX,iiY)
if pPlot.isWater():
bValid = True
if bValid == False:
return False
for iiX in range(iX-2, iX+3, 1):
for iiY in range(iY-2, iY+3, 1):
pPlot = CyMap().plot(iiX,iiY)
if pPlot.getImprovementType() == gc.getInfoTypeForString('IMPROVEMENT_PIRATE_COVE'):
return False
return True