Code:
def onCityRazed(self, argsList):
'City Razed'
city, iPlayer = argsList
iOwner = city.findHighestCulture()
# Partisans!
if city.getPopulation > 1 and iOwner != -1 and iPlayer != -1:
owner = gc.getPlayer(iOwner)
if not owner.isBarbarian() and owner.getNumCities() > 0:
if gc.getTeam(owner.getTeam()).isAtWar(gc.getPlayer(iPlayer).getTeam()):
if gc.getNumEventTriggerInfos() > 0: # prevents mods that don't have events from getting an error
iEvent = CvUtil.findInfoTypeNum(gc.getEventTriggerInfo, gc.getNumEventTriggerInfos(),'EVENTTRIGGER_PARTISANS')
if iEvent != -1 and gc.getGame().isEventActive(iEvent) and owner.getEventTriggerWeight(iEvent) >= 0:
triggerData = owner.initTriggeredData(iEvent, true, -1, city.getX(), city.getY(), iPlayer, city.getID(), -1, -1, -1, -1)
CvUtil.pyPrint("City Razed Event: %s" %(city.getName(),))
def onCityAcquired(self, argsList):
'City Acquired'
iPreviousOwner,iNewOwner,pCity,bConquest,bTrade = argsList
CvUtil.pyPrint('City Acquired Event: %s' %(pCity.getName()))
### techconquest begin ###
techcount=0
iX=pCity.getX()
iY=pCity.getY()
pLoser = gc.getPlayer(iPreviousOwner)
pWinner = gc.getPlayer(iNewOwner)
WinnerTeam=gc.getTeam(pWinner.getTeam())
LoserTeam=gc.getTeam(pLoser.getTeam())
for techcount in range (gc.getNumTechInfos()):
if ((LoserTeam.isHasTech(techcount)==true)and ((WinnerTeam.isHasTech(techcount)==false))):
WinnerTeam.setHasTech(techcount,1,iNewOwner,0,1)
CyInterface().addMessage(iNewOwner,false,15,CyTranslator().getText("TXT_KEY_TECH_CONQUERED",()),'',0,'Art/Interface/Buttons/General/happy_person.dds',ColorTypes(44), iX, iY, True,True)
break
### techconquest end ###
# Partisans!
if city.getPopulation > 1 and iOwner != -1 and iPlayer != -1:
owner = gc.getPlayer(iOwner)
if not owner.isBarbarian() and owner.getNumCities() > 0:
if gc.getTeam(owner.getTeam()).isAtWar(gc.getPlayer(iPlayer).getTeam()):
if gc.getNumEventTriggerInfos() > 0: # prevents mods that don't have events from getting an error
iEvent = CvUtil.findInfoTypeNum(gc.getEventTriggerInfo, gc.getNumEventTriggerInfos(),'EVENTTRIGGER_PARTISANS')
if iEvent != -1 and gc.getGame().isEventActive(iEvent) and owner.getEventTriggerWeight(iEvent) >= 0:
triggerData = owner.initTriggeredData(iEvent, true, -1, city.getX(), city.getY(), iPlayer, city.getID(), -1, -1, -1, -1)
Und bei der Civic habe ich NONE reingeschrieben, so dass es bei jeder Staatsform passieren können sollte. Jedenfalls ist das der Wert, der bei normalen Ereignissen steht. Ich vermute daher irgend einen anderen Trigger, den ich übersehen habe.