def onCityAcquired(self, argsList):
'City Acquired'
iPreviousOwner,iNewOwner,pCity,bConquest,bTrade = argsList
# Tech By Conquest Mod
# The Loser
pPlayer1 = gc.getPlayer(iPreviousOwner)
pTeam1 = gc.getTeam(pPlayer1.getTeam())
# The Winner
pPlayer2 = gc.getPlayer(iNewOwner)
pTeam2 = gc.getTeam(pPlayer2.getTeam())
FoundTransferTech = False
if bConquest:
if not pPlayer1.isNone() and not pPlayer1.isBarbarian():
for iTech in range(gc.getNumTechInfos()):
# Does Player1 have a Tech that Player2 does not have?
if pTeam1.isHasTech(iTech):
if not pTeam2.isHasTech(iTech):
iTechToTransfer = iTech
FoundTransferTech = True
break
if FoundTransferTech:
TechDescription = PyInfo.TechnologyInfo(iTech).getDescription()
CyInterface().addImmediateMessage("Your scientists have discovered the knowledge of " + str(TechDescription), "")
pTeam2.setHasTech(iTech,True,iNewOwner,False,False)
# Show tech splash
if (iNewOwner > -1 and not CyInterface().noTechSplash()):
if (gc.getGame().isFinalInitialized() and not gc.getGame().GetWorldBuilderMode()):
if ((not gc.getGame().isNetworkMultiPlayer()) and (iNewOwner == gc.getGame().getActivePlayer())):
popupInfo = CyPopupInfo()
popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_PYTHON_SCREEN)
popupInfo.setData1(iTech)
popupInfo.setText(u"showTechSplash")
popupInfo.addPopup(iNewOwner)
elif gc.getGame().getActivePlayer() == iNewOwner:
CyInterface().addImmediateMessage("The vanquished have no useful scientific knowledge.", "")
# End Tech By Conquest Mod
CvUtil.pyPrint('City Acquired Event: %s' %(pCity.getName()))
# Flavian Start #
pNewOwner = gc.getPlayer(iNewOwner)
b_BUILDING_FLAVIAN = gc.getInfoTypeForString("BUILDING_FLAVIAN")
obsoleteTech = gc.getBuildingInfo(b_BUILDING_FLAVIAN).getObsoleteTech()
if ( gc.getTeam(pNewOwner.getTeam()).isHasTech(obsoleteTech) == false or obsoleteTech == -1 ):
flavian = false
for iCity in range(pNewOwner.getNumCities()):
if flavian == false:
ppCity = pNewOwner.getCity(iCity)
if ( ppCity.getNumActiveBuilding(b_BUILDING_FLAVIAN)==true ):
flavian = true
if flavian == true:
civ_type = gc.getPlayer(iPreviousOwner).getCivilizationType()
for iBuilding in range(gc.getNumBuildingClassInfos()):
iUniqueBuilding = gc.getCivilizationInfo(civ_type).getCivilizationBuildings(iBuilding);
iDefaultBuilding = gc.getBuildingClassInfo(iBuilding).getDefaultBuildingIndex();
if (iDefaultBuilding > -1 and iUniqueBuilding > -1 and iDefaultBuilding != iUniqueBuilding):
if ( pCity.getNumActiveBuilding(iDefaultBuilding)==true ):
pCity.setNumRealBuilding(iDefaultBuilding,0)
pCity.setNumRealBuilding(iUniqueBuilding,1)
CyInterface().addMessage(iNewOwner,false,15,CyTranslator().getText("TXT_KEY_BUILDING_FLAVIAN_GAMETXT",( pCity.getName(), PyHelpers.PyInfo.BuildingInfo(iUniqueBuilding).getDescription() , PyHelpers.PyInfo.BuildingInfo(iDefaultBuilding).getDescription() )),'',0,gc.getBuildingInfo(iUniqueBuilding).getButton(),ColorTypes(11),pCity.getX(),pCity.getY(),True,True)
## Flavian End ##