def revealPlots(iUnitX, iUnitY):
"""Reveal All up to distance 2, Forests & Rivers up to distance 3, Hills & Lakes up to distance 4, Mountains & Oases up to distance 5 and Boni up to distance 6"""
for iX in range(iUnitX - 6, iUnitX + 7):
for iY in range(iUnitY - 6, iUnitY + 7):
cyPlot = cyMap.plot(iX, iY)
iabsX, iabsY = abs(iX-iUnitX), abs(iY-iUnitY)
if cyPlot.isRevealed(iTeam, False) or (iabsX==6 and iabsY==6): # skip corners and already revealed plots
continue
eBT = cyPlot.getBonusType(iTeam)
if ( (max(iabsX, iabsY) < 3) # All
or ( (cyPlot.isRiver() or (cyPlot.getFeatureType() == eForest)) and (max(iabsX, iabsY) < 4) ) # Forests & Rivers
or ( (cyPlot.isHills() or cyPlot.isLake()) and (max(iabsX, iabsY) < 5) ) # Hills & Lakes
or ( (cyPlot.isPeak() or (cyPlot.getFeatureType() == eOasis)) and (max(iabsX, iabsY) < 6) ) # Mountains & Oases
or ( eBT==eBanana or eBT==eClam or eBT==eCorn or eBT==eCow or eBT==eCrab or eBT==eDeer or eBT==eDye or eBT==eFish or eBT==eFur or eBT==eGems or eBT==eGold or eBT==eIncense or eBT==eIvory or eBT==eMarble or eBT==ePig or eBT==eRice or eBT==eSheep or eBT==eSilk or eBT==eSilver or eBT==eSpices or eBT==eStone or eBT==eSugar or eBT==eWhale or eBT==eWheat or eBT==eWine ) ): # Boni
cyPlot.setRevealed(iTeam, True, False, -1)