Ich habe ein Problem mit folgenden Code in der CvGameUtils
Code:
if eBuilding == gc.getInfoTypeForString("BUILDING_DEFLECTOR") or eBuilding == gc.getInfoTypeForString("BUILDING_ADV_DEFLECTOR"):
if pCity.getNumRealBuilding(gc.getInfoTypeForString("BUILDING_ADV_DEFLECTOR")) or pCity.getNumRealBuilding(gc.getInfoTypeForString("BUILDING_DEFLECTOR_SHIELDING")): return True
iPlayer = pCity.getOwner()
pPlayer = gc.getPlayer(iPlayer)
for i in range (pPlayer.getNumCities()):
if pPlayer.getCity(i).getNumRealBuilding(gc.getInfoTypeForString("BUILDING_NATIONAL_SHIELD")): return True
Dieser soll verhindern das, nachdem man den ADV_DEFLECTOR gebaut hat, wieder der DEFLECTOR erscheint.
Bzw. nachdem man den DEFLECTOR_SHIELDING gebaut hat, der ADV_DEFLECTOR wieder gebaut werden kann.
Im Eventmanager habe ich noch das hier:
Code:
if iBuildingType == CvUtil.findInfoTypeNum(gc.getBuildingInfo, gc.getNumBuildingInfos(), "BUILDING_ADV_DEFLECTOR"):
pCity.setNumRealBuilding(CvUtil.findInfoTypeNum(gc.getBuildingInfo, gc.getNumBuildingInfos(), "BUILDING_DEFLECTOR"), False)
elif iBuildingType == CvUtil.findInfoTypeNum(gc.getBuildingInfo, gc.getNumBuildingInfos(), "BUILDING_DEFLECTOR_SHIELDING"):
pCity.setNumRealBuilding(CvUtil.findInfoTypeNum(gc.getBuildingInfo, gc.getNumBuildingInfos(), "BUILDING_ADV_DEFLECTOR"), False)
elif iBuildingType == CvUtil.findInfoTypeNum(gc.getBuildingInfo, gc.getNumBuildingInfos(), "BUILDING_NATIONAL_SHIELD"):
for i in range (pPlayer.getNumCities()):
pPlayer.getCity(i).setNumRealBuilding(CvUtil.findInfoTypeNum(gc.getBuildingInfo, gc.getNumBuildingInfos(), "BUILDING_DEFLECTOR"), False)
pPlayer.getCity(i).setNumRealBuilding(CvUtil.findInfoTypeNum(gc.getBuildingInfo, gc.getNumBuildingInfos(), "BUILDING_ADV_DEFLECTOR"), False)