Ahwaric
Shrubbery-hugger
I am trying to adapt Jeckel's forts to Orbi. I want simplified version, just fort commander & cultural borders. I have managed (using final frontier code) to spawn Fort Commander when the fort is build, then spread borders to the tile and mantain it, together with ownership changing after the fort capture.
But I have one problem I can't deal with. When more than one worker builds the fort, I get one fort commander for each worker building it. Is it possible to limit the spawning to just one unit?
My current code related to spawning is:
Any ideas?
But I have one problem I can't deal with. When more than one worker builds the fort, I get one fort commander for each worker building it. Is it possible to limit the spawning to just one unit?
My current code related to spawning is:
Code:
def onImprovementBuilt(self, argsList):
'Improvement Built'
iImprovement, iX, iY = argsList
pPlot = CyMap().plot(iX, iY)
iImprovementFortID = CvUtil.findInfoTypeNum(gc.getImprovementInfo,gc.getNumImprovementInfos(),'IMPROVEMENT_FORT')
iUnitWorkerID = CvUtil.findInfoTypeNum(gc.getUnitInfo,gc.getNumUnitInfos(),'UNIT_WORKER')
# Fort finished
if (iImprovement == iImprovementFortID):
pPlot = CyMap().plot(iX, iY)
# Look for Worker on this plot
for iUnitLoop in range(pPlot.getNumUnits()):
pUnit = pPlot.getUnit(iUnitLoop)
if (pUnit.getScriptData() == "BuildingFort"):
self.doMakeFort(pUnit.getOwner(), iX, iY)
if (not self.__LOG_IMPROVEMENT):
return
CvUtil.pyPrint('Improvement %s was built at %d, %d'
%(PyInfo.ImprovementInfo(iImprovement).getDescription(), iX, iY))
def doMakeFort(self, iPlayer, iX, iY):
pPlayer = gc.getPlayer(iPlayer)
pPlot = CyMap().plot(iX, iY)
# Create Commander Unit
iUnitFortID = CvUtil.findInfoTypeNum(gc.getUnitInfo,gc.getNumUnitInfos(),'UNIT_FORT_COMMANDER')
pPlayer.initUnit(iUnitFortID, iX, iY, UnitAITypes.UNITAI_ATTACK, DirectionTypes.NO_DIRECTION)
self.updateFortCulture(iPlayer, iX, iY)
Any ideas?