Latest alpha version in post #18
The idea of this modmod is to have civs spawn with map and tech knowledge drawn from their neighbors; this will prevent silly things like America being many techs ahead of everyone at spawn.
Previous discussion, moved from another thread:
For techs, three functions in RiseAndFall:
assignNormalTechs(self, iCiv, b600AD)
assignMinimalTechs(self, iCiv, b600AD)
shareTechs(self, iCiv, lNeighbors)
Don't mess with the bTraded flag for the spawn techs; that could create weird prerequisite holes, and drive the world further behind. Since the lists aren't that long, the number known to allow sharing with the new civ should keep to two.
For testing purposes, the human will get techs and maps just like the AI. After all, taking a snapshot at spawn is a very nice way to see what's happening. Final version- well, we'll see.
Oh, and I'm writing code already. I have mucked around quite a bit already and picked up a lot of knowledge.
The neighbor list for this purpose will include dead civs; they still have techs even though they've lost. I'll stick to the standard lists for the most part; just add Arabia to Turkey's list and build a new one for America. The list I'd go with is: any Old World civ with a current city in North or Central America (American victory condition area), the neighbors of those civs, the Aztecs, and the Maya.
The idea of this modmod is to have civs spawn with map and tech knowledge drawn from their neighbors; this will prevent silly things like America being many techs ahead of everyone at spawn.
Previous discussion, moved from another thread:
The structure I'd go with:Yeah, I was also thinking Python only.
I've started working on functions you could use. This is what I have so far:
Spoiler :custom.getAreaCivs() returns a list of all the Civs with cities present inside an predefined area. You can use any of the Core/Normal/Broader Areas or any other area, and it also handles exceptions (used to define Core/Normal area).Code:### dynamic starts within RiseAndFall.py ### ## def getAreaCivs(self, TL, BR, lExceptions, bMajorOnly, bAIOnly): ## def makeTechList(self, iCiv, bTraded): ## def copyTechs(self, iCiv, tTechList, iNumHits, bHuman): ## def copyWorldMap(self, iReceiver, lProviders, iNumHits, bHuman):
custom.makeTechList() returns a list containing all the Techs owned by iCiv. I'll look into making it possible to except traded Techs (as Tech brokering isn't allowed in RFC) with bTraded.
custom.copyTechs() takes a tuple list containing several merged Tech lists (above function) as an argument with a target value to determine what Techs iReceiver should get.
custom.copyWorldMap() takes a list of Civs and a target value to determine which map plots should be revealed to iReceiver.
Other functions I'm working on at the moment include:
Any other suggestions are also welcome!Spoiler :Code:def foundCity(self, lCity, name, iPopulation, bForce, iCityCulture, iCulture, iUnitType, iNumUnits, iReligion, lBuildings): def flipCity(self, tCityPlot, iNewOwner, bOnlyAI, iOldOwner, bAIOnly, bMinorsOnly, bConquest, bKillUnits, iNumGarrison, bConscript): def createGarrison(self, iCiv, bHuman, tCityPlot, iNumUnits, bConscript): def setBuildings(self, tCityPlot, lBuildings): def setGlobalBuilding(self, iCiv, iBuilding):
![]()
For techs, three functions in RiseAndFall:
assignNormalTechs(self, iCiv, b600AD)
assignMinimalTechs(self, iCiv, b600AD)
shareTechs(self, iCiv, lNeighbors)
Don't mess with the bTraded flag for the spawn techs; that could create weird prerequisite holes, and drive the world further behind. Since the lists aren't that long, the number known to allow sharing with the new civ should keep to two.
For testing purposes, the human will get techs and maps just like the AI. After all, taking a snapshot at spawn is a very nice way to see what's happening. Final version- well, we'll see.
Oh, and I'm writing code already. I have mucked around quite a bit already and picked up a lot of knowledge.
The neighbor list for this purpose will include dead civs; they still have techs even though they've lost. I'll stick to the standard lists for the most part; just add Arabia to Turkey's list and build a new one for America. The list I'd go with is: any Old World civ with a current city in North or Central America (American victory condition area), the neighbors of those civs, the Aztecs, and the Maya.