openyourmind
Chieftain
- Joined
- Feb 22, 2016
- Messages
- 51
Hello,
i am trying to merge next war python features with Better Bat AI ( based on BUG mod). All is ok, but part of event manager refuses to work. Upon raze, if city has one of three buildings (arcology), it should create a different ruin (by game definition, improvement).
From python debug, I can see 2 improvements are built if one of surviving buildings is arcology. My only guess is that game builds 2 ruins and replaces my custom one. I tried to raze city without the buildings that would cause creation of special ruins, and debug shows only one improvement built
Here is the log
Here is original eventmanager code
here is the one created for the merge, kindly provided by Dancing Hoskuld.
any help is appreciated.
i am trying to merge next war python features with Better Bat AI ( based on BUG mod). All is ok, but part of event manager refuses to work. Upon raze, if city has one of three buildings (arcology), it should create a different ruin (by game definition, improvement).
From python debug, I can see 2 improvements are built if one of surviving buildings is arcology. My only guess is that game builds 2 ruins and replaces my custom one. I tried to raze city without the buildings that would cause creation of special ruins, and debug shows only one improvement built
Here is the log
Spoiler :
Code:
19:51:25 DEBUG: Timer - scores took 15 ms
19:51:25 DEBUG: Timer - scores took 15 ms
19:51:27 DEBUG: BugEventManager - event gotoPlotSet: (<CvPythonExtensions.CyPlot object at 0x1F1F95E0>, 0)
19:51:28 DEBUG: BugEventManager - event gotoPlotSet: (<CvPythonExtensions.CyPlot object at 0x1F1F96C0>, 0)
19:51:29 DEBUG: BugEventManager - event changeWar: (1, 0, 1)
19:51:29 DEBUG: BugEventManager - event improvementBuilt: (2, 98, 15)
19:51:29 DEBUG: BugEventManager - event cityLost: (<CvPythonExtensions.CyCity object at 0x1F1F95E0>,)
19:51:29 DEBUG: BugEventManager - event improvementDestroyed: (2, 0, 98, 15)
19:51:29 DEBUG: BugEventManager - event cityAcquired: (1, 0, <CvPythonExtensions.CyCity object at 0x1F1F95E0>, 1, 0)
PY:City Acquired Event: Moscow
19:51:29 DEBUG: BugEventManager - event unitMove: (<CvPythonExtensions.CyPlot object at 0x1F1F95E0>, <CvPythonExtensions.CyUnit object at 0x1F45B260>, <CvPythonExtensions.CyPlot object at 0x1F45B3E8>)
19:51:29 DEBUG: BugEventManager - event selectionGroupPushMission: (0, 0, 1, [49157])
19:51:29 DEBUG: Timer - scores took 16 ms
19:51:29 DEBUG: Timer - scores took 15 ms
19:51:32 DEBUG: Timer - scores took 16 ms
19:51:34 DEBUG: BugEventManager - event cityRazed: (<CvPythonExtensions.CyCity object at 0x1F200378>, 0)
PY:City Razed Event: Moscow
PY:City Razed Event: Moscow
19:51:34 DEBUG: BugEventManager - event improvementBuilt: (2, 98, 15)
19:51:34 DEBUG: BugEventManager - event cityLost: (<CvPythonExtensions.CyCity object at 0x1F200378>,)
19:51:35 DEBUG: Timer - scores took 15 ms
19:51:36 DEBUG: BugEventManager - event windowActivation: (0,)
19:52:05 DEBUG: BugEventManager - event windowActivation: (1,)
99 SCREEN TURNED ON
19:52:06 DEBUG: Timer - scores took 25 ms
19:52:12 DEBUG: BugEventManager - event gotoPlotSet: (<CvPythonExtensions.CyPlot object at 0x1F1F3F48>, 0)
19:52:12 DEBUG: BugEventManager - event gotoPlotSet: (<CvPythonExtensions.CyPlot object at 0x1F1F3FB8>, 0)
19:52:12 DEBUG: BugEventManager - event improvementBuilt: (2, 101, 16)
19:52:12 DEBUG: BugEventManager - event cityLost: (<CvPythonExtensions.CyCity object at 0x1F1F3FB8>,)
19:52:12 DEBUG: BugEventManager - event improvementDestroyed: (2, 0, 101, 16)
19:52:12 DEBUG: BugEventManager - event cityAcquired: (1, 0, <CvPythonExtensions.CyCity object at 0x1F1F3FB8>, 1, 0)
PY:City Acquired Event: Rostov
19:52:12 DEBUG: BugEventManager - event unitMove: (<CvPythonExtensions.CyPlot object at 0x1F1F3FB8>, <CvPythonExtensions.CyUnit object at 0x1F1F3880>, <CvPythonExtensions.CyPlot object at 0x1F1F3810>)
19:52:12 DEBUG: BugEventManager - event selectionGroupPushMission: (0, 0, 1, [57350])
19:52:12 DEBUG: Timer - scores took 15 ms
19:52:14 DEBUG: Timer - scores took 16 ms
19:52:16 DEBUG: BugEventManager - event cityRazed: (<CvPythonExtensions.CyCity object at 0x1F45B7D8>, 0)
PY:City Razed Event: Rostov
PY:City Razed Event: Rostov
19:52:16 DEBUG: BugEventManager - event improvementBuilt: (3, 101, 16)
19:52:16 DEBUG: BugEventManager - event improvementBuilt: (2, 101, 16)
19:52:16 DEBUG: BugEventManager - event cityLost: (<CvPythonExtensions.CyCity object at 0x1F45B7D8>,)
19:52:16 DEBUG: Timer - scores took 15 ms
19:52:17 DEBUG: BugEventManager - event windowActivation: (0,)
Here is original eventmanager code
Spoiler :
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)
#Raze the Arcology
owner = PyPlayer(city.getOwner())
razor = PyPlayer(iPlayer)
self.iArcologyCityID = -1
if city.getNumRealBuilding(gc.getInfoTypeForString("BUILDING_ARCOLOGY")) or city.getNumRealBuilding(gc.getInfoTypeForString("BUILDING_ARCOLOGY_SHIELDING")) or city.getNumRealBuilding(gc.getInfoTypeForString("BUILDING_DEFLECTOR_SHIELDING")):
self.iArcologyCityID = city.getID()
CvUtil.pyPrint('Player %d Civilization %s City %s was razed by Player %d'
%(owner.getID(), owner.getCivilizationName(), city.getName(), razor.getID()))
CvUtil.pyPrint("City Razed Event: %s" %(city.getName(),))
def onCityLost(self, argsList):
'City Lost'
city = argsList[0]
player = PyPlayer(city.getOwner())
if city.getID() == self.iArcologyCityID:
city.plot().setImprovementType(gc.getInfoTypeForString("IMPROVEMENT_CITY_RUINS_ARCOLOGY"))
here is the one created for the merge, kindly provided by Dancing Hoskuld.
Spoiler :
Code:
def onCityRazed( argsList):
'City Razed'
city, iPlayer = argsList
iOwner = city.findHighestCulture()
#Raze the Arcology
owner = PyPlayer(city.getOwner())
razor = PyPlayer(iPlayer)
self.iArcologyCityID = -1
if city.getNumRealBuilding(g_iArcologyID) or city.getNumRealBuilding(g_iArcologyShieldingID) or city.getNumRealBuilding(g_iDeflectorShieldingID):
city.plot().setImprovementType(gc.getInfoTypeForString("IMPROVEMENT_CITY_RUINS_ARCOLOGY")):
self.iArcologyCityID = city.getID()
def onCityLost(self, argsList):
'City Lost'
city = argsList[0]
player = PyPlayer(city.getOwner())
if city.getID() == self.iArcologyCityID:
city.plot().setImprovementType(gc.getInfoTypeForString("IMPROVEMENT_CITY_RUINS_ARCOLOGY"))
any help is appreciated.
Last edited: