def getDistanceSubtrahend(iPlayer): iCiv = gc.getPlayer(iPlayer).getCivilizationType() return utils.getOrElse(dDistanceSubtrahend, iCiv, 4)
def getReligiousTolerance(iPlayer): iCiv = gc.getPlayer(iPlayer).getCivilizationType() return utils.getOrElse(dReligiousTolerance, iCiv, 3)
def getTakenTilesThreshold(iPlayer): iCiv = gc.getPlayer(iPlayer).getCivilizationType() return utils.getOrElse(dTakenTilesThreshold, iCiv, 13)
def getCompactnessModifier(iPlayer): iCiv = gc.getPlayer(iPlayer).getCivilizationType() return utils.getOrElse(dCompactnessModifier, iCiv, 40)
def getTargetDistanceValueModifier(iPlayer): iCiv = gc.getPlayer(iPlayer).getCivilizationType() return utils.getOrElse(dTargetDistanceValueModifier, iCiv, 10)
def exportFlip(iPlayer, dFlipZoneEdits): if iPlayer not in dFlipZoneEdits.keys(): sText = "No changes between current flipzone and flipzone defined in python" popup = PyPopup.PyPopup() popup.setBodyString(sText) popup.launch(True, PopupStates.POPUPSTATE_IMMEDIATE) return iCiv = gc.getPlayer(iPlayer).getCivilizationType() sName = gc.getCivilizationInfo(iCiv).getShortDescription(0) if iPlayer == iHolyRome: sName = "HolyRome" elif iPlayer == iAztecs: sName = "Aztecs" lNewFlipPlotList, lNewAIPlotList = dFlipZoneEdits[iPlayer] if utils.isReborn(iPlayer): lOldFlipPlotList = Areas.getRebirthArea(iPlayer) else: lOldFlipPlotList = Areas.getBirthArea(iPlayer) bFlipChanged = len(lOldFlipPlotList) != len(lNewFlipPlotList) if not bFlipChanged: for tPlot in lNewFlipPlotList: if tPlot not in lOldFlipPlotList: bFlipChanged = True break else: if iPlayer in Areas.dChangedBirthArea: tTL, tBR = Areas.getBirthRectangle(iPlayer, True) lOldAIPlotList = [tPlot for tPlot in utils.getPlotList(tTL, tBR, utils.getOrElse(Areas.dBirthAreaExceptions, iPlayer, [])) if tPlot not in lOldFlipPlotList] else: lOldAIPlotList = [] bFlipChanged = len(lOldAIPlotList) != len(lNewAIPlotList) if not bFlipChanged: for tPlot in lNewAIPlotList: if tPlot not in lOldAIPlotList: bFlipChanged = True break if bFlipChanged: Bottom = iWorldY Top = 0 Left = iWorldX Right = 0 for (x, y) in lNewFlipPlotList: if (x, y) in lNewAIPlotList: continue if x < Left: Left = x if x > Right: Right = x if y < Bottom: Bottom = y if y > Top: Top = y BL = (Left, Bottom) TR = (Right, Top) lExceptions = [] for tPlot in utils.getPlotList(BL, TR): if tPlot not in lNewFlipPlotList: lExceptions.append(tPlot) if lNewAIPlotList: BottomAI = iWorldY TopAI = 0 LeftAI = iWorldX RightAI = 0 for (x, y) in lNewAIPlotList+lNewFlipPlotList: if x < LeftAI: LeftAI = x if x > RightAI: RightAI = x if y < BottomAI: BottomAI = y if y > TopAI: TopAI = y BLAI = (LeftAI, BottomAI) TRAI = (RightAI, TopAI) file = open(IMAGE_LOCATION + "\FlipZones\\" + sName + ".txt", 'wt') try: if not utils.isReborn(iPlayer): file.write("# tBirthArea\n") file.write("("+ str(BL) + ",\t" + str(TR) + "),\t# " + sName) if lExceptions: file.write("\n\n# dBirthAreaExceptions\n") file.write("i" + sName + " : " + str(lExceptions) + ",") else: file.write("# dRebirthArea\n") file.write("i" + sName + " : " "("+ str(BL) + ",\t" + str(TR) + "),") if lExceptions: file.write("\n\n# dRebirthAreaExceptions\n") file.write("i" + sName + " : " + str(lExceptions) + ",") if lNewAIPlotList: if not utils.isReborn(iPlayer): file.write("\n\n# dChangedBirthArea\n") file.write("("+ str(BLAI) + ",\t" + str(TRAI) + "),\t# " + sName) finally: file.close() sText = "Flipzone map of %s exported" %sName else: sText = "No changes between current flipzone and flipzone defined in python" popup = PyPopup.PyPopup() popup.setBodyString(sText) popup.launch(True, PopupStates.POPUPSTATE_IMMEDIATE)
def getDistanceFactor(iPlayer): iCiv = gc.getPlayer(iPlayer).getCivilizationType() return utils.getOrElse(dDistanceFactor, iCiv, 500)
def exportAllFlip(dFlipZoneEdits): lAllFlips = [] lAllExceptions = [] lAllAIPlots = [] for iPlayer in range(iNumPlayers): iCiv = gc.getPlayer(iPlayer).getCivilizationType() sName = gc.getCivilizationInfo(iCiv).getShortDescription(0) if iPlayer == iHolyRome: sName = "HolyRome" elif iPlayer == iAztecs: sName = "Aztecs" if iPlayer in dFlipZoneEdits.keys(): lNewFlipPlotList, lNewAIPlotList = dFlipZoneEdits[iPlayer] else: if utils.isReborn(iPlayer): lNewFlipPlotList = Areas.getRebirthArea(iPlayer) else: lNewFlipPlotList = Areas.getBirthArea(iPlayer) if iPlayer in Areas.dChangedBirthArea: tTL, tBR = Areas.getBirthRectangle(iPlayer, True) lNewAIPlotList = [tPlot for tPlot in utils.getPlotList(tTL, tBR, utils.getOrElse(Areas.dBirthAreaExceptions, iPlayer, [])) if tPlot not in lNewFlipPlotList] else: lNewAIPlotList = [] Bottom = iWorldY Top = 0 Left = iWorldX Right = 0 for (x, y) in lNewFlipPlotList: if (x, y) in lNewAIPlotList: continue if x < Left: Left = x if x > Right: Right = x if y < Bottom: Bottom = y if y > Top: Top = y BL = (Left, Bottom) TR = (Right, Top) lExceptions = [] for tPlot in utils.getPlotList(BL, TR): if tPlot not in lNewFlipPlotList: lExceptions.append(tPlot) if lNewAIPlotList: BottomAI = iWorldY TopAI = 0 LeftAI = iWorldX RightAI = 0 for (x, y) in lNewAIPlotList+lNewFlipPlotList: if (x, y) in lExceptions: continue if x < LeftAI: LeftAI = x if x > RightAI: RightAI = x if y < BottomAI: BottomAI = y if y > TopAI: TopAI = y BLAI = (LeftAI, BottomAI) TRAI = (RightAI, TopAI) lAllFlips.append("("+ str(BL) + ",\t" + str(TR) + "),\t# " + sName) if lExceptions: lAllExceptions.append("i" + sName + " : " + str(lExceptions) + ",") if lNewAIPlotList: lAllAIPlots.append("i" + sName + " : (" + str(BLAI) + ",\t" + str(TRAI) + "),") file = open(IMAGE_LOCATION + "\FlipZones\\AllFlipZones.txt", 'wt') try: file.write("tBirthArea = (\n") for sString in lAllFlips: file.write(sString + "\n") file.write(")") if lAllAIPlots: file.write("\n\ndChangedBirthArea = {\n") for sString in lAllAIPlots: file.write(sString + "\n") file.write("}") if lAllExceptions: file.write("\n\ndBirthAreaExceptions = {\n") for sString in lAllExceptions: file.write(sString + "\n") file.write("}") finally: file.close() sText = "All flipzone maps exported" popup = PyPopup.PyPopup() popup.setBodyString(sText) popup.launch(True, PopupStates.POPUPSTATE_IMMEDIATE)