New World Barb Civ Techs

phungus420

Deity
Joined
Mar 1, 2003
Messages
6,296
New World Barbarian Civs still get way too many techs when they spawn. I know in the last update (2.61), it says that they now only get techs as compared to the Barbarians, and not the full old world civs; however from extensive playtesting it becomes obvious something is still wrong here. They always spawn far more advanced then the barbarians. I think there are two possibilities as to why. First is either the code isn't working right, and they are still getting gifted techs based on all civs, and not just the barbs. Second is that they are being gifted new techs on spawning, a tech sweetener as applied to all barbarian civs to make them competitive. For new world spawned civs, they don't need the competitive bonuses, they are supposed to be backwards.

How could we go about further reducing the tech level of new world barbarian civs? They really need to be brought down quite a bit. Currently when you meet New world barb civs they are usually in the early renaissance, nearly on par with the tech level of the old world civs, they should be in the early medieval/late classical at the latest (early would probably be fine), otherwise there isn't much point in having an Old World.
 
I tried to split up the give tech function, and military style function like so:

Code:
	if( bNewWorldMethod and self.iNewWorldPolicy > 0 ) :
		def giveTechs( self, newPlayerIdx, closeTeams, bNewWorldMethod = False, bBuilderBonus = 0, militaryStyle = None, bVerbose = True ) :
...
	else :
		def giveTechs( self, newPlayerIdx, closeTeams, bNewWorldMethod = False, bBuilderBonus = 0, militaryStyle = None, bVerbose = True ) :
...
But it fails because bNewWorldMethod is not defined. So I tried to find where bNewWorldMethod is defined, and then set it at the begining of the file so the def functions could call it. However the only place I found where it is set is here:
Code:
def giveTechs( self, newPlayerIdx, closeTeams, bNewWorldMethod = False, bBuilderBonus = 0, militaryStyle = None, bVerbose = True ) :
In the def giveTechs heading. Which means that it's always false, and I think this is why New World civs still get ungodly amounts of techs, there is no method to ever turn this true, and thus discriminate in the def giveTechs function. I'm uploading the file I currently have, as I think it'll be useful. All that needs to be done is to define bNewWorldMethod at the top of the file, so it can be used to run the different def giveTechs functions. At least I think that's all that needs to be done.

Also I'd be perfectly happy to try to tackle this, but I have no idea how to define if bNewWorldMethod were true, or not.
 
jdog any ideas on this? How would I insert a check inside that the def giveTechs function so that most of it isn't applied to New World civs?
 
Bumping because I can't fix this, and the current code does not work.

Any ideas jdog?
 
I don't know about the Revolution.ini file. Perhaps it's because the one in the UserSettings file is the original, with all the comments and such. Try deleting it and let BUG generate a new one, maybe that'll fix it (though it will loose all the comments).

I tried the new BarbCiv code and New World barbarians are still getting gifted alot of techs. A new world city just spawned in my test game and got gifted Priesthood, Iron Working, Sailing, and Mathematics, on top of what techs the barbarians knew. So I don't think the new code is working properly :(
 
So I figured out what the problem with the ini file was ... in Revolution.xml, for most of the options only an id was specified but no key. Maybe the system is supposed to use the id for the key if no key is given, but by changing the line to have id="NewWorldPolicy" key="NewWorldPolicy", then the options from the old config file are read.

So in 2.61, Revolution.ini has no effect (except for the few settings for which both id and key are specified). Not sure if some change in BUG caused this to stop working or whether it's never worked since we switched to the BUG system ...
 
The 2.61 release doesn't have a Revolution.xml file, it loads directly from the Revolution.ini file by using CvConfigParser.py and CvPath.py. On some systems this caused a loss of interface for the user, so I converted it all over to BUG in the SVN; this was a very recent change, I did that last week or the week before.
 
Edit:

Checked the new updated code, and it works better. However new world barb civs are still getting gifted a couple technologies. Specifically the Ethiopians in the test game just spawned with Writing and Priesthood and all techs known by the barbarians. That's alot better then in the previous test where they got Iron Working, Priesthood, Mathematics, and Sailing, but they really shouldn't get gifted any techs over what the barbs have. New world barbarian civs are far too advanced on Terra style maps and cutting them down drastically is what's needed; this way it would actually have the feel of discovering the new world if the civs you encounter are backwards in comparison to the Old World civs.
 
Back
Top Bottom