I was trying to modify a mod I found here that changed the tech exchange to function not by trade by by open borders. I was wondering if anyone could point out any errors I have in my code, as I have been attempting to debug it for a few days and am banging my head against the wall...
Thanks in advance for your help...
Thanks in advance for your help...
Code:
## Sid Meier's Civilization 4
## Copyright Firaxis Games 2005
## OpenTech by Naf, with minor edits by Derwin
from CvPythonExtensions import *
import CvUtil
import PyHelpers
import Popup as PyPopup
# globals
gc = CyGlobalContext()
PyInfo = PyHelpers.PyInfo
PyPlayer = PyHelpers.PyPlayer
class OpenTech:
def onTechSelected(self, argsList):
'Tech Selected'
iTechType, iPlayer = argsList
player = gc.getPlayer(iPlayer)
cutOut = False
for iTeam in range(gc.getMAX_TEAMS()):
oTeam = gc.getTeam(iTeam)
eTeam = gc.getTeam(player.getTeam())
listTech = []
if cutOut != True:
if oTeam.isHasTech(iTechType) and eTeam.isOpenBorders(iTechType) == True and player.isResearchingTech(iTechType):
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE"), 1)
cutOut = True
else:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE"), 0)
cutOut = False
for iteam in range(gc.getMAX_TEAMS()):
oTeam = gc.getTeam(iteam)
eTeam = gc.getTeam(player.getTeam())
if cutOut != True:
if oTeam.isHasTech(iTechType) and oTeam.canContact(TeamType eTeam) == True and player.isResearchingTech(iTechType):
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE2"), 1)
cutOut = True
else:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE2"), 0)
cutOut = False
h=0
for iteam in range(gc.getMAX_TEAMS()):
oTeam = gc.getTeam(iteam)
eTeam = gc.getTeam(player.getTeam())
if oTeam.isHasTech(iTechType) and oTeam.canContact(TeamType eTeam) == True and player.isResearchingTech(iTechType):
h=h+1
hbar = (gc.countCivPlayersAlive()/2)
hbar2 = (3*gc.countCivPlayersAlive()/4)
if (h>hbar):
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE3"), 1)
else:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE3"), 0)
if (h>hbar2):
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE4"), 1)
else:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE4"), 0)
def onBeginPlayerTurn(self, argsList):
'Called at the beginning of a players turn'
iGameTurn, iPlayer = argsList
player = gc.getPlayer(iPlayer)
cutOut = False
pyPrint("Being player turn)
for iTeam in range(gc.getMAX_TEAMS()):
oTeam = gc.getTeam(iTeam)
eTeam = gc.getTeam(player.getTeam())
for iLoopTech in range(gc.getNumTechInfos()):
listTech = []
if cutOut != True:
if oTeam.isHasTech(iLoopTech) and eTeam.isOpenBorders(iTeam) == True and player.isResearchingTech(iLoopTech):
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE"), 1)
cutOut = True
else:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE"), 0)
cutOut = False
if cutOut != True:
if oTeam.isHasTech(iLoopTech) and oTeam.canContact(TeamType eTeam) == True and player.isResearchingTech(iLoopTech):
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE2"), 1)
cutOut = True
else:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE2"), 0)
cutOut = False
h=0
if oTeam.isHasTech(iLoopTech) and oTeam.canContact(TeamType eTeam) == True and player.isResearchingTech(iLoopTech):
h += 1
hbar = (gc.countCivPlayersAlive()/2)
hbar2 = (3*gc.countCivPlayersAlive()/4)
if h>hbar:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE3"), 1)
else:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE3"), 0)
if h>hbar2:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE4"), 1)
else:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE4"), 0)
def onEndPlayerTurn(self, argsList):
'Called at the end of the beginning of a players turn'
iGameTurn, iPlayer = argsList
player = gc.getPlayer(iPlayer)
cutOut = False
for iTeam in range(gc.getMAX_TEAMS()):
oTeam = gc.getTeam(iTeam)
eTeam = gc.getTeam(player.getTeam())
for iLoopTech in range(gc.getNumTechInfos()):
listTech = []
if cutOut != True:
if oTeam.isHasTech(iLoopTech) and eTeam.isOpenBorders(iTeam) == True and player.isResearchingTech(iLoopTech):
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE"), 1)
cutOut = True
else:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE"), 0)
cutOut=False
if cutOut != True:
if oTeam.isHasTech(iLoopTech) and oTeam.canContact(TeamType eTeam) == True and player.isResearchingTech(iLoopTech):
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE2"), 1)
cutOut = True
else:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE2"), 0)
cutOut = False
h=0
if oTeam.isHasTech(iLoopTech) and oTeam.canContact(TeamType eTeam) == True and player.isResearchingTech(iLoopTech):
h += 1
hbar = (gc.countCivPlayersAlive())/2
hbar2 = 3*(gc.countCivPlayersAlive())/4
if h>hbar:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE3"), 1)
else:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE3"), 0)
if h>hbar2:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE4"), 1)
else:
for i in range(player.getNumCities()):
player.getCity(i).setHasRealBuilding(gc.getInfoTypeForString("BUILDING_ACADEMY_EXCHANGE4"), 0)