def onTechAcquired(self, argsList):
'Tech Acquired'
iTechType, iTeam, iPlayer, bAnnounce = argsList
# Note that iPlayer may be NULL (-1) and not a refer to a player object
# Show tech splash when applicable
if (iPlayer > -1 and bAnnounce and not CyInterface().noTechSplash()):
if (gc.getGame().isFinalInitialized() and not gc.getGame().GetWorldBuilderMode()):
if ((not gc.getGame().isNetworkMultiPlayer()) and (iPlayer == gc.getGame().getActivePlayer())):
popupInfo = CyPopupInfo()
popupInfo.setButtonPopupType(ButtonPopupTypes.BUTTONPOPUP_PYTHON_SCREEN)
popupInfo.setData1(iTechType)
popupInfo.setText(u"showTechSplash")
popupInfo.addPopup(iPlayer)
# debug all players recieving techs: CyInterface().addMessage(CyGame().getActivePlayer(),True,25,'%s was finished by Player %d' %(PyInfo.TechnologyInfo(iTechType).getDescription(), iPlayer),'AS2D_DISCOVERBONUS',1,'Art/Interface/Buttons/TerrainFeatures/Forest.dds',ColorTypes(8),0,0,False,False)
#Check if religious tech
bRTech = False
if iTechType == gc.getInfoTypeForString("TECH_MEDITATION"):
iRelCheck = gc.getInfoTypeForString("RELIGION_BUDDHISM")
if not gc.getGame().isReligionSlotTaken(iRelCheck):
bRTech = True
if iTechType == gc.getInfoTypeForString("TECH_POLYTHEISM"):
iRelCheck = gc.getInfoTypeForString("RELIGION_HINDUISM")
if not gc.getGame().isReligionSlotTaken(iRelCheck):
bRTech = True
if iTechType == gc.getInfoTypeForString("TECH_MONOTHEISM"):
iRelCheck = gc.getInfoTypeForString("RELIGION_JUDAISM")
if not gc.getGame().isReligionSlotTaken(iRelCheck):
bRTech = True
if iTechType == gc.getInfoTypeForString("TECH_THEOLOGY"):
iRelCheck = gc.getInfoTypeForString("RELIGION_CHRISTIANITY")
if not gc.getGame().isReligionSlotTaken(iRelCheck):
bRTech = True
if iTechType == gc.getInfoTypeForString("TECH_CODE_OF_LAWS"):
iRelCheck = gc.getInfoTypeForString("RELIGION_CONFUCIANISM")
if not gc.getGame().isReligionSlotTaken(iRelCheck):
bRTech = True
if iTechType == gc.getInfoTypeForString("TECH_PHILOSOPHY"):
iRelCheck = gc.getInfoTypeForString("RELIGION_TAOISM")
if not gc.getGame().isReligionSlotTaken(iRelCheck):
bRTech = True
if iTechType == gc.getInfoTypeForString("TECH_DIVINE_RIGHT"):
iRelCheck = gc.getInfoTypeForString("RELIGION_ISLAM")
if not gc.getGame().isReligionSlotTaken(iRelCheck):
bRTech = True
#Check if player already has Holy City
bHolyCity = False
lCities = PyPlayer(iPlayer).getCityList()
for iCity in range(len(lCities)):
pCity = gc.getPlayer(iPlayer).getCity(lCities[iCity].getID())
for iReligionLoop in range( gc.getNumReligionInfos()):
if pCity.isHolyCityByType(iReligionLoop):
bHolyCity = True
if bRTech == True:
if bHolyCity == False:
if CyGame().isOption(GameOptionTypes.GAMEOPTION_PICK_RELIGION):
if gc.getPlayer(iPlayer).isHuman():
return
#old code, not needed: self.doPickReligionPopup(iPlayer,iRelCheck)
else:
iNewReligion = self.AI_chooseReligion(iPlayer)
if iNewReligion > -1:
gc.getPlayer(iPlayer).foundReligion(iNewReligion,iRelCheck,True)
else:
for i in range(gc.getNumReligionInfos()):
if gc.getReligionInfo(i).getTechPrereq() == iTechType:
if gc.getGame().isReligionFounded(i) == False:
gc.getPlayer(iPlayer).foundReligion(i,i,True)
if (not self.__LOG_TECH):
return
CvUtil.pyPrint('%s was finished by Team %d'
%(PyInfo.TechnologyInfo(iTechType).getDescription(), iTeam))