本文整理匯總了Python中PlayerUtil.isSaltWaterPort方法的典型用法代碼示例。如果您正苦於以下問題:Python PlayerUtil.isSaltWaterPort方法的具體用法?Python PlayerUtil.isSaltWaterPort怎麽用?Python PlayerUtil.isSaltWaterPort使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類PlayerUtil
的用法示例。
在下文中一共展示了PlayerUtil.isSaltWaterPort方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: canCityBuildUnit
# 需要導入模塊: import PlayerUtil [as 別名]
# 或者: from PlayerUtil import isSaltWaterPort [as 別名]
def canCityBuildUnit(unitInfo, city, eAskingTeam, checkBonuses=True):
# religion
if unitInfo.isPrereqReligion():
if not city or city.getReligionCount() > 0:
# EF: Seems odd to enforce NO religions in the city,
# but this is how CvPlot.canTrain() does it.
# The function should actually be called isPrereqNoReligion().
return False
eReligion = unitInfo.getPrereqReligion()
if eReligion != -1 and not (city and city.isHasReligion(eReligion)):
return False
# corporation
eCorp = unitInfo.getPrereqCorporation()
if eCorp != -1 and not (city and city.isActiveCorporation(eCorp)):
return False
# skipping isPrereqBonuses as the land part looks broken
# and we don't want to limit work boats if all resources are covered
# domain
if unitInfo.getDomainType() == DomainTypes.DOMAIN_SEA:
if not (city and PlayerUtil.isSaltWaterPort(city, eAskingTeam)):
return False
# EF: this is how CyPlot does it
# plot = city.plot()
# if not plot.isWater() or not plot.isCoastalLand(unitInfo.getMinAreaSize()):
# continue
else:
minArea = unitInfo.getMinAreaSize()
if minArea != -1:
if eAskingTeam != -1 or not city or city.plot().area().getNumTiles() < minArea:
return False
# holy city
eReligion = unitInfo.getHolyCity()
if eReligion != -1 and not (city and city.isHolyCity(eReligion)):
return False
# building
eBuilding = unitInfo.getPrereqBuilding()
if eBuilding != -1:
if eAskingTeam != -1 or not city:
return False
if city.getNumBuilding(eBuilding) == 0:
eSpecialBuilding = gc.getBuildingInfo(eBuilding).getSpecialBuildingType()
if eSpecialBuilding == -1 or not gc.getPlayer(city.getOwner()).isSpecialBuildingNotRequired(
eSpecialBuilding
):
return False
# resources
if checkBonuses and not cityHasBonusesForUnit(unitInfo, city):
return False
# passes all tests for this city
return True