### Settings for Jamie's Rome Mod
from CvPythonExtensions import *
from CivPlayer import *
Interface = CyInterface()
Translator = CyTranslator()
# constants
iNumMajorPlayers = 8
pHumanCiv = instance(Game.getActivePlayer())
eBarbarian = gc.getBARBARIAN_PLAYER()
pBarbarianCiv = CivPlayer(eBarbarian)
# eNums
def getIndex(category, entry):
"""
Returns the enumerated index value (integer) of the specified entry belonging to the
specified category, as specified by the XML.
"""
key = category.replace(" ", "") + "_" + entry.replace(" ", "_")
return gc.getInfoTypeForString(key.upper())
ePalace = getIndex("Building", "Palace")
eNaval = getIndex("Unit Combat", "Naval")
eQuintrireme = getIndex("Unit Class", "Quintrireme")
ePrivateer = getIndex("Unit Class", "Privateer")
eAdvancedSwordsman = getIndex("Unit Class", "Swordsman II")
eWarrior = getIndex("Unit", "Warrior")
eAxeman = getIndex("Unit", "Axeman")
eSwordsman = getIndex("Unit", "Swordsman")
eSpearmanII = getIndex("Unit", "Spearman II")
eSwordsmanII = getIndex("Unit", "Swordsman II")
eCatapult = getIndex("Unit", "Catapult")
eConstruction = getIndex("Tech", "Construction")
eBronzeWorking = getIndex("Tech", "Bronze Working")
eIronWorking = getIndex("Tech", "Iron Working")
eAdvancedBronzeWorking = getIndex("Tech", "Advanced Bronze Working")
eAdvanceIronWorking = getIndex("Tech", "Advanced Iron Working")
eFood = YieldTypes.YIELD_FOOD
eProduction = YieldTypes.YIELD_PRODUCTION
eCommerce = YieldTypes.YIELD_COMMERCE
eSea = getIndex("Domain", "Sea")
eHills = PlotTypes.PLOT_HILLS
eDesert = getIndex("Terrain", "Desert")
ePlains = getIndex("Terrain", "Plains")
eForest = getIndex("Feature", "Forest")
eUniversalSuffrage = getIndex("Civic", "Universal Suffrage")
eSlavery = getIndex("Civic", "Slavery")
eLabor = getIndex("Civic Option", "Labor")
eMinorEvent = InterfaceMessageTypes.MESSAGE_TYPE_MINOR_EVENT
eRed = getIndex("Color", "Red")
eGreen = getIndex("Color", "Green")
eWhite = getIndex("Color", "White")
eAttackCity = UnitAITypes.UNITAI_ATTACK_CITY
eUnknownAI = UnitAITypes.UNITAI_UNKNOWN
eNoDirection = DirectionTypes.NO_DIRECTION
# helper functions
def addMessage(tag, tStrings, tColor, tCoords=(-1, -1)):
eColor = getColor(*tColor)
if eColor == None: return
message = Translator.getText(tag, tStrings)
bArrow = tCoords != (-1, -1)
Interface.addMessage(pHumanCiv.get(playerID), True, 20, message, "", eMinorEvent, "", eColor, tCoords[0], tCoords[1], bArrow, bArrow)
def getColor(bHuman, bAI, bOther=None):
if bHuman:
return eGreen
elif bAI:
return eRed
elif bOther:
return eWhite
def getCoords(pInstance):
return (pInstance.getX(), pInstance.getY())
def isChance(iProbability):
return getRandNum(100, "isChance()") < iProbability
def getRandNum(iRange, debug="getRandNum()"):
return Game.getSorenRandNum(iRange, debug)
def getUnitClass(pUnit):
return gc.getUnitInfo(pUnit.getUnitType()).getUnitClassType()
def isEnemyTerritory(pUnit, pPlot, pTeam):
return pUnit.isRivalTerritory() and pTeam.isAtWar(pPlot.getTeam())