Tech trade screen enhancement for No Tech Brokering

Morgawr

Civ Fanatic
Joined
Apr 6, 2007
Messages
1,235
Since BTS came out I've always been playing with the No Tech Brokering option and I love it. However, I have noticed that once you acquire a tech through trading, you lose track of who else has that tech because it vanishes from the trading screen. On the other hand, if an AI acquires a tech through trade, it goes to the "Can't trade" column, which is great. What I would like is the equivalent of the "Can't trade" column for the human player. It could be called "Can't receive". (since the column names are AI-centric) This way, if I have a tech and the AI does not have it, but I cannot trade it to them because I got it from another AI, that will appear in the "Can't receive" column for that AI. I believe this can be accomplished with a simple addition/modification to the section of the code below from CvExoticForeignAdvisor.py. The problem is, I don't have the Python or modding expertise to do this myself, so I'd be grateful if anyone knows how to do this.

Code:
if (gc.getTeam(activePlayer.getTeam()).isTechTrading() or gc.getTeam(currentPlayer.getTeam()).isTechTrading() ):
	
	for iLoopTech in range(gc.getNumTechInfos()):
		
		tradeData.iData = iLoopTech
		
		if (activePlayer.canTradeItem(iLoopPlayer, tradeData, False)): # wants
			self.techIconGrid.addIcon( currentRow, 1, gc.getTechInfo(iLoopTech).getButton() , WidgetTypes.WIDGET_PEDIA_JUMP_TO_TECH, iLoopTech )
		
		elif currentPlayer.canResearch(iLoopTech, False):
			self.techIconGrid.addIcon( currentRow, 2, gc.getTechInfo(iLoopTech).getButton(), WidgetTypes.WIDGET_PEDIA_JUMP_TO_TECH, iLoopTech )
		
		if (currentPlayer.canTradeItem(self.iActiveLeader, tradeData, False)):
			if (currentPlayer.getTradeDenial(self.iActiveLeader, tradeData) == DenialTypes.NO_DENIAL): # will trade
				self.techIconGrid.addIcon( currentRow, 4, gc.getTechInfo(iLoopTech).getButton() , WidgetTypes.WIDGET_PEDIA_JUMP_TO_TECH, iLoopTech )
			else: # won't trade							self.techIconGrid.addIcon( currentRow, 5, gc.getTechInfo(iLoopTech).getButton() , WidgetTypes.WIDGET_PEDIA_JUMP_TO_TECH, iLoopTech )
		
		elif (gc.getTeam(currentPlayer.getTeam()).isHasTech(iLoopTech) and activePlayer.canResearch(iLoopTech, False)):
			self.techIconGrid.addIcon( currentRow, 6, gc.getTechInfo(iLoopTech).getButton()

I don't even care about creating an extra column, this could go in the "Can research" column (col. 2) since I never use it. Any input is appreciated! :)
 
It turns out that the recent patch did fix the can research column so it now includes techs that you get through trade and cannot trade. I found a way to modify this column in the code above so that it only displays those techs and not all the techs that the AI can research.
 
Back
Top Bottom