Mir ist heute aufgefallen, dass ich eine andere Funktion offenbar gar nicht richtig getestet habe: Der Verlust des Vorteils eines Vasallen durch Tod dieses Vasallen.
PHP-Code:
### Vasallenbonus entziehen beginn ###
pPreviousOwner = gc.getPlayer(iPreviousOwner)
if pPreviousOwner.getNumCities() == 0:
pPreviousTeam = gc.getTeam(pPreviousOwner.getTeam())
if any(pPreviousTeam.isVassal(i) for i in range(gc.getMAX_CIV_TEAMS())):
pHegemon = gc.getTeam(next(pPreviousTeam.isVassal(i) for i in range(gc.getMAX_CIV_TEAMS())))
if pPreviousOwner.hasTrait(gc.getInfoTypeForString("TRAIT_STADTSTAAT_PRODUCTIVE")):
pHegemon.setHasTech(gc.getInfoTypeForString("TECH_SUPPORT_STADTSTAATEN_PRODUCTIVE"),False,gc.getTeam(iMaster).getLeaderID(),False,True)
if pPreviousOwner.hasTrait(gc.getInfoTypeForString("TRAIT_STADTSTAAT_MERKANTILE")):
pHegemon.setHasTech(gc.getInfoTypeForString("TECH_SUPPORT_STADTSTAATEN_MERKANTILE"),False,gc.getTeam(iMaster).getLeaderID(),False,True)
if pPreviousOwner.hasTrait(gc.getInfoTypeForString("TRAIT_STADTSTAAT_MARITIME")):
pHegemon.setHasTech(gc.getInfoTypeForString("TECH_SUPPORT_STADTSTAATEN_MARITIME"),False,gc.getTeam(iMaster).getLeaderID(),False,True)
if pPreviousOwner.hasTrait(gc.getInfoTypeForString("TRAIT_STADTSTAAT_MILITARY")):
pHegemon.setHasTech(gc.getInfoTypeForString("TECH_SUPPORT_STADTSTAATEN_MILITARY"),False,gc.getTeam(iMaster).getLeaderID(),False,True)
if pPreviousOwner.hasTrait(gc.getInfoTypeForString("TRAIT_STADTSTAAT_ARTISTIC")):
(loopCity, iter) = pHegemon.firstCity(false)
while(loopCity):
loopCity.setNumRealBuilding(gc.getCivilizationInfo(pHegemon.getCivilizationType()).getCivilizationBuildings(gc.getInfoTypeForString("BUILDINGCLASS_SUPPORT_STADTSTAAT_ARTISTIC")),0)
(loopCity, iter) = pHegemon.nextCity(iter, false)
if pHegemon.isHuman():
CyInterface().addImmediateMessage(CyTranslator().getText("TXT_KEY_VASALLENGESCHENK_SUPPORT_STADTSTAAT_LOST",()),"" )
### Vasallenbonus entziehen Ende ###
Diese Zeile hier hat das Problem, dass "next" nicht definiert ist. Vermutlich eine Funktion aus einer höheren Python-Version, die mir einer der fleißigen Helfer hier damals vorgeschlagen hat. Kann man diese Funktion irgendwie anders darstellen?
PHP-Code:
pHegemon = gc.getTeam(next(pPreviousTeam.isVassal(i) for i in range(gc.getMAX_CIV_TEAMS())))