So, die Glaubensfanatiker können nun nur dann produziert werden, wenn die Civic Theokratie ausgewählt wurde. Folgende Funktion habe ich dazu geschrieben:
PHP-Code:
def cannotTrain(self,argsList):
pCity = argsList[0]
eUnit = argsList[1]
bContinue = argsList[2]
bVisibleTest = argsList[3]
iFanaticsID = CvUtil.findInfoTypeNum(gc.getUnitInfo, gc.getNumUnitInfos(), 'UNIT_TERRY')
iCivicOptionReligion = CvUtil.findInfoTypeNum(gc.getCivicOptionInfo, gc.getNumCivicOptionInfos(), 'CIVICOPTION_RELIGION')
iTheocracyID = CvUtil.findInfoTypeNum(gc.getCivicInfo, gc.getNumCivicInfos(), 'CIVIC_THEOCRACY')
# Glaubensfanatiker können nur unter Theokratie gebaut werden/disable fanatics if civic is not Theocacy
try:
pOwnerFanatic = gc.getPlayer(pCity.getOwner())
iReligionCivic = pOwnerFanatic.getCivics(iCivicOptionReligion)
if not (iReligionCivic == iTheocracyID):
if eUnit == iFanaticsID:
return True
# if serialised data not yet setup, do nothing
except EOFError:
pass
return False
Das Desert War - Szenario war dafür sehr hilfreich.