def setup(self): iTurn = getTurnForYear(-600) if utils.getScenario() == i600AD: #late start condition iTurn = getTurnForYear(900) elif utils.getScenario() == i1700AD: iTurn = getTurnForYear(1720) data.iNextTurnAIWar = iTurn + gc.getGame().getSorenRandNum(iMaxIntervalEarly-iMinIntervalEarly, 'random turn')
def foundMinorCities(self, iGameTurn): for i in range(len(tMinorCities)): iYear, tPlot, iPlayer, sName, iPopulation, iUnitType, iNumUnits = tMinorCities[ i] if iGameTurn < getTurnForYear(iYear): return if iGameTurn > getTurnForYear(iYear) + 10: continue if data.lMinorCityFounded[i]: continue x, y = tPlot plot = gc.getMap().plot(x, y) if plot.isCity(): continue # special cases if not self.canFoundCity(sName): continue lReligions = [] bForceSpawn = False if sName == 'Kyiv': lReligions = [iOrthodoxy, iCatholicism] if iPlayer == iCeltia and utils.getScenario() != i3000BC: iPlayer = iIndependent if sName == 'Buda': bForceSpawn = True if not self.isFreePlot(tPlot, bForceSpawn): continue utils.evacuate(tPlot) if self.foundCity(iPlayer, tPlot, sName, iPopulation, iUnitType, iNumUnits, lReligions): data.lMinorCityFounded[i] = True
def initPlayerTechs(iPlayer): initTechs(iPlayer, getStartingTechs(iPlayer)) if iPlayer == iChina and utils.getScenario( ) == i3000BC and utils.getHumanID() != iPlayer: initTech(iPlayer, iProperty) initTech(iPlayer, iAlloys)
def setup(self): for iPlayer in range(iNumMajorPlayers): data.players[iPlayer].iPlagueCountdown = -utils.getTurns(iImmunity) data.lGenericPlagueDates[0] = 80 data.lGenericPlagueDates[ 2] = 300 # safe value to prevent plague at start of 1700 AD scenario if utils.getScenario() == i3000BC: data.lGenericPlagueDates[0] = getTurnForYear( 400) + utils.variation(20) data.lGenericPlagueDates[1] = getTurnForYear(1300) + utils.variation( 20) # Avoid interfering with the Indian UHV if utils.getHumanID( ) == iIndia and data.lGenericPlagueDates[1] <= getTurnForYear(1200): data.lGenericPlagueDates[1] = getTurnForYear(1200) + 1 if utils.getScenario != i1700AD: data.lGenericPlagueDates[2] = getTurnForYear( 1650) + utils.variation(20) data.lGenericPlagueDates[3] = getTurnForYear(1850) + utils.variation( 20) undoPlague = gc.getGame().getSorenRandNum(8, 'undo') if undoPlague <= 3: data.lGenericPlagueDates[undoPlague] = -1
def getAdjustedModifier(iPlayer, iModifier): if utils.getScenario( ) > i3000BC and iPlayer < iVikings and not iPlayer in [iInuit]: if iModifier in dLateScenarioModifiers: return getModifier( iPlayer, iModifier) * dLateScenarioModifiers[iModifier] / 100 return getModifier(iPlayer, iModifier)
def init(): for iPlayer in range(iNumTotalPlayersB): updateModifiers(iPlayer) if utils.getScenario() > i3000BC and iPlayer < iVikings: adjustModifiers(iPlayer) gc.getPlayer(iPlayer).updateMaintenance()
def onTechAcquired(self, iTech, iPlayer): if utils.getScenario() == i1700AD: return if iTech == iPrintingPress: if gc.getPlayer(iPlayer).getStateReligion() == iCatholicism: if not gc.getGame().isReligionFounded(iProtestantism): gc.getPlayer(iPlayer).foundReligion(iProtestantism, iProtestantism, True) self.reformation() for iReligion in range(iNumReligions): self.checkLateReligionFounding(iReligion, iTech)
def onTechAcquired(self, iTech, iPlayer): if utils.getScenario() == i1700AD: return if iTech == iAcademia: if gc.getPlayer(iPlayer).getStateReligion() == iCatholicism: if not gc.getGame().isReligionFounded(iProtestantism): gc.getPlayer(iPlayer).foundReligion(iProtestantism, iProtestantism, True) self.reformation() for iReligion in range(iNumReligions): self.checkLateReligionFounding(iReligion, iTech)
def setup(self): for iPlayer in range(iNumMajorPlayers): data.players[iPlayer].iPlagueCountdown = -utils.getTurns(iImmunity) if utils.getScenario() == i3000BC: #early start condition data.lGenericPlagueDates[0] = getTurnForYear(400) + gc.getGame().getSorenRandNum(40, 'Variation') - 20 else: data.lGenericPlagueDates[0] = 80 data.lGenericPlagueDates[1] = getTurnForYear(1300) + gc.getGame().getSorenRandNum(40, 'Variation') - 20 if utils.getScenario != i1700AD: data.lGenericPlagueDates[2] = getTurnForYear(1650) + gc.getGame().getSorenRandNum(40, 'Variation') - 20 else: data.lGenericPlagueDates[2] = 300 # Safe value to prevent plague at start of 1700 scenario data.lGenericPlagueDates[3] = getTurnForYear(1850) + gc.getGame().getSorenRandNum(40, 'Variation') - 20 undoPlague = gc.getGame().getSorenRandNum(8, 'undo') if undoPlague <= 3: data.lGenericPlagueDates[undoPlague] = -1
def onBeginGameTurn(self, argsList): iGameTurn = argsList[0] self.rnf.checkTurn(iGameTurn) self.barb.checkTurn(iGameTurn) self.rel.checkTurn(iGameTurn) self.res.checkTurn(iGameTurn) self.up.checkTurn(iGameTurn) self.aiw.checkTurn(iGameTurn) self.pla.checkTurn(iGameTurn) self.com.checkTurn(iGameTurn) self.corp.checkTurn(iGameTurn) sta.checkTurn(iGameTurn) cong.checkTurn(iGameTurn) if iGameTurn % 10 == 0: dc.checkTurn(iGameTurn) if utils.getScenario() == i3000BC and iGameTurn == getTurnForYear(600): for iPlayer in range(iVikings): Modifiers.adjustInflationModifier(iPlayer) return 0
def init(): for iPlayer in range(iNumTotalPlayersB): updateModifiers(iPlayer) if utils.getScenario() > i3000BC and iPlayer < iVikings: adjustModifiers(iPlayer)
def getStartingTechs(iPlayer): return getScenarioTechs(utils.getScenario(), iPlayer)
def getAdjustedModifier(iPlayer, iModifier): if utils.getScenario() > i3000BC and iPlayer < iVikings: if iModifier in dLateScenarioModifiers: return getModifier(iPlayer, iModifier) * dLateScenarioModifiers[iModifier] / 100 return getModifier(iPlayer, iModifier)
def onTechAcquired(self, argsList): iTech, iTeam, iPlayer, bAnnounce = argsList iHuman = utils.getHumanID() iEra = gc.getTechInfo(iTech).getEra() if utils.getScenario() == i600AD and gc.getGame().getGameTurn() == getTurnForYear(600): #late start condition return if utils.getScenario() == i1700AD and gc.getGame().getGameTurn() == getTurnForYear(1700): return sta.onTechAcquired(iPlayer, iTech) AIParameters.onTechAcquired(iPlayer, iTech) if gc.getGame().getGameTurn() > getTurnForYear(tBirth[iPlayer]): vic.onTechAcquired(iPlayer, iTech) cnm.onTechAcquired(argsList[2]) if gc.getPlayer(iPlayer).isAlive() and gc.getGame().getGameTurn() > getTurnForYear(tBirth[iPlayer]) and iPlayer < iNumPlayers: self.rel.onTechAcquired(argsList[0], argsList[2]) if (gc.getGame().getGameTurn() > getTurnForYear(1700)): self.aiw.forgetMemory(argsList[0], argsList[2]) if iTech == iAstronomy: if iPlayer in [iSpain, iFrance, iEngland, iGermany, iVikings, iNetherlands, iPortugal]: data.players[iPlayer].iAstronomyTurn = gc.getGame().getGameTurn() elif iTech == iCompass: if iPlayer == iVikings: gc.getMap().plot(49, 62).setTerrainType(iCoast, True, True) elif iTech == iMedicine: self.pla.onTechAcquired(argsList[0], argsList[2]) elif iTech == iRailroad: self.rnf.onRailroadDiscovered(argsList[2]) if iTech in [iAstronomy, iGunpowder]: teamPlayer = gc.getTeam(iPlayer) if teamPlayer.isHasTech(iAstronomy) and teamPlayer.isHasTech(iGunpowder): self.rnf.earlyTradingCompany(iPlayer) if iTech in [iEconomics, iRifling]: teamPlayer = gc.getTeam(iPlayer) if teamPlayer.isHasTech(iEconomics) and teamPlayer.isHasTech(iRifling): self.rnf.lateTradingCompany(iPlayer) if utils.getHumanID() != iPlayer: if iPlayer == iJapan and iEra == iIndustrial: utils.moveCapital(iPlayer, (116, 47)) # Toukyou elif iPlayer == iItaly and iEra == iIndustrial: utils.moveCapital(iPlayer, (60, 44)) # Roma elif iPlayer == iVikings and iEra == iRenaissance: utils.moveCapital(iPlayer, (63, 59)) # Stockholm elif iPlayer == iHolyRome and iEra == iRenaissance: utils.moveCapital(iPlayer, (62, 49)) # Wien # Spain's core extends when reaching the Renaissance and there are no Moors in Iberia # at the same time, the Moorish core relocates to Africa if iPlayer == iSpain and iEra == iRenaissance and not utils.isReborn(iSpain): bNoMoors = True if gc.getPlayer(iMoors).isAlive(): for city in utils.getCityList(iMoors): if city.plot().getRegionID() == rIberia: bNoMoors = False if bNoMoors: utils.setReborn(iSpain, True) utils.setReborn(iMoors, True) # Italy's core extends when reaching the Industrial era if iPlayer == iItaly and iEra == iIndustrial: utils.setReborn(iItaly, True) # Arabia's core moves to Iraq when Philosophy is discovered if iPlayer == iArabia and iTech == iPhilosophy: utils.setReborn(iArabia, True) # Japan's core extends when reaching the Industrial era if iPlayer == iJapan and iEra == iIndustrial: utils.setReborn(iJapan, True) # Germany's core shrinks when reaching the Modern era if iPlayer == iGermany and iEra == iModern: utils.setReborn(iGermany, True)
def checkTurn(self, iGameTurn): #handicap level modifier iHandicap = gc.getHandicapInfo( gc.getGame().getHandicapType()).getBarbarianSpawnModifier() # Leoreth: buff certain cities if independent / barbarian (imported from SoI) if iGameTurn % 20 == 10: for tMinorState in tMinorStates: iStartYear, iEndYear, tPlot, lUnitList = tMinorState if utils.isYearIn(iStartYear, iEndYear): x, y = tPlot plot = gc.getMap().plot(x, y) iOwner = plot.getOwner() if plot.isCity( ) and plot.getNumUnits() < 4 and iOwner >= iNumPlayers: iUnit = utils.getRandomEntry(lUnitList) utils.makeUnit(iUnit, iOwner, tPlot, 1) if utils.isYearIn(-100, 1600): # Brown Bear in Chukchi self.checkLimitedSpawn(iBarbarian, iPolarBear, 1, 5, (140, 65), (148, 76), self.spawnBears, iGameTurn, 10, 1) # Brown Bear and American Black Bear in Alaska and Western Canada self.checkLimitedSpawn(iBarbarian, iPolarBear, 1, 5, (0, 67), (24, 77), self.spawnBears, iGameTurn, 5, 3) # Polar Bear in Greenland and Eastern Canada self.checkLimitedSpawn(iBarbarian, iPolarBear, 1, 5, (25, 63), (44, 77), self.spawnBears, iGameTurn, 5, 5) if utils.isYearIn(-3000, -850): if iHandicap >= 0: self.checkSpawn(iBarbarian, iWarrior, 1, (92, 53), (116, 62), self.spawnMinors, iGameTurn, 5, 0) # Wolves and Brown Bears in Russia and Siberia self.checkSpawn(iBarbarian, iWolf, 1, (89, 66), (125, 75), self.spawnNatives, iGameTurn, 5, 2) self.checkSpawn(iBarbarian, iBear, 1, (89, 66), (125, 75), self.spawnNatives, iGameTurn, 5, 4) # Panthers, Hyenas, and Lions in South Africa self.checkSpawn(iBarbarian, iLion, 1, (67, 12), (84, 34), self.spawnNatives, iGameTurn, 4, 1) self.checkSpawn(iBarbarian, iPanther, 1, (67, 12), (84, 34), self.spawnNatives, iGameTurn, 4, 3) self.checkLimitedSpawn(iBarbarian, iHyena, 1, 5, (67, 12), (84, 34), self.spawnNatives, iGameTurn, 5, 3) # Panthers and Tigers in India, South China, Indochina, and Indonesia self.checkLimitedSpawn(iBarbarian, iPanther, 1, 5, (101, 32), (130, 49), self.spawnNatives, iGameTurn, 5, 1) self.checkLimitedSpawn(iBarbarian, iTiger, 1, 5, (101, 32), (130, 49), self.spawnNatives, iGameTurn, 5, 1) #Asian Black Bears in China, Japan, Manchuria, Vietnam, and Korea self.checkLimitedSpawn(iBarbarian, iBear, 1, 5, (120, 35), (141, 66), self.spawnNatives, iGameTurn, 5, 3) # Jaguars in Brazil, Colombia, and Mesoamerica self.checkLimitedSpawn(iBarbarian, iJaguarAnimal, 1, 5, (34, 24), (49, 36), self.spawnNatives, iGameTurn, 5, 1) self.checkLimitedSpawn(iBarbarian, iJaguarAnimal, 1, 5, (26, 29), (40, 38), self.spawnNatives, iGameTurn, 5, 3) self.checkLimitedSpawn(iBarbarian, iJaguarAnimal, 1, 5, (19, 36), (30, 45), self.spawnNatives, iGameTurn, 5, 3) #celts if utils.isYearIn(-650, -110): self.checkSpawn(iBarbarian, iSwordsman, 1, (57, 56), (76, 61), self.spawnMinors, iGameTurn, 6, 0) if iHandicap >= 0: self.checkSpawn(iBarbarian, iAxeman, 1, (57, 56), (76, 61), self.spawnMinors, iGameTurn, 8, 5, ["TXT_KEY_ADJECTIVE_GAUL"]) #norse if utils.isYearIn(-650, 550): self.checkSpawn(iBarbarian, iGalley, 1, (55, 59), (66, 68), self.spawnPirates, iGameTurn, 20, 0, ["TXT_KEY_ADJECTIVE_NORSE"]) #mongolia if utils.isYearIn(-210, 400): self.checkSpawn(iBarbarian, iHorseArcher, 3 + iHandicap, (118, 55), (129, 58), self.spawnNomads, iGameTurn, 7 - iHandicap, 0, ["TXT_KEY_ADJECTIVE_XIONGNU"]) elif utils.isYearIn(-210, 400): self.checkSpawn(iBarbarian, iHorseArcher, 1 + iHandicap, (106, 54), (114, 59), self.spawnNomads, iGameTurn, 7 - iHandicap, 0, ["TXT_KEY_ADJECTIVE_XIONGNU"]) elif utils.isYearIn(-210, 400): self.checkSpawn(iBarbarian, iHorseArcher, 1 + iHandicap, (114, 60), (125, 65), self.spawnNomads, iGameTurn, 7 - iHandicap, 0, ["TXT_KEY_ADJECTIVE_XIONGNU"]) elif utils.isYearIn(400, 900): iNumUnits = 3 + iHandicap self.checkSpawn( iBarbarian, iHorseArcher, iNumUnits, (110, 58), (129, 65), self.spawnNomads, iGameTurn, 6 - iHandicap, 0, ["TXT_KEY_ADJECTIVE_GOKTURK", "TXT_KEY_ADJECTIVE_UIGHUR"]) elif utils.isYearIn(900, 1100): iNumUnits = 3 + iHandicap self.checkSpawn( iBarbarian, iKeshik, iNumUnits, (110, 58), (129, 65), self.spawnInvaders, iGameTurn, 6, 0, ["TXT_KEY_ADJECTIVE_JURCHEN", "TXT_KEY_ADJECTIVE_KHITAN"]) #tibet if utils.isYearIn(-350, 200): self.checkSpawn(iBarbarian, iLightSwordsman, 1 + iHandicap, (107, 48), (116, 52), self.spawnMinors, iGameTurn, 10 - iHandicap, 3, ["TXT_KEY_ADJECTIVE_TIBETAN"]) elif utils.isYearIn(200, 1100): self.checkSpawn(iBarbarian, iSwordsman, 1 + iHandicap, (107, 48), (116, 52), self.spawnMinors, iGameTurn, 10 - iHandicap, 3, ["TXT_KEY_ADJECTIVE_TIBETAN"]) # Deccan barbarians if utils.isYearIn(-1000, 1200): iUnit = iArcher iStrength = iHandicap if iGameTurn >= getTurnForYear(-500): iUnit = iAxeman if iGameTurn >= getTurnForYear(0): iStrength += 1 if iGameTurn >= getTurnForYear(200): iUnit = iSwordsman self.checkSpawn(iBarbarian, iUnit, iStrength, (101, 31), (111, 42), self.spawnInvaders, iGameTurn, 8 - iHandicap, 0, ["Hindi"]) # elephants in india pre-khmer if utils.isYearIn(-210, 700): self.checkSpawn(iBarbarian, iWarElephant, 1, (103, 35), (117, 45), self.spawnInvaders, iGameTurn, 8 - iHandicap, 4) # elephants in africa if utils.isYearIn(1110, 1450): self.checkSpawn(iBarbarian, iWarElephant, 2, (75, 18), (83, 25), self.spawnInvaders, iGameTurn, 8 - iHandicap, 4) # Longbowman in africa if utils.isYearIn(1450, 1600): self.checkSpawn(iBarbarian, iLongbowman, 2, (75, 18), (83, 25), self.spawnInvaders, iGameTurn, 8 - iHandicap, 4) # OromoWarrior in africa if utils.isYearIn(1610, 1850): self.checkSpawn(iBarbarian, iOromoWarrior, 2, (75, 18), (83, 25), self.spawnInvaders, iGameTurn, 8 - iHandicap, 4) #Indo-Scythians if utils.isYearIn(-200, 400): self.checkSpawn(iBarbarian, iHorseman, 2, (97, 47), (104, 51), self.spawnNomads, iGameTurn, 8 - iHandicap, 4, ["TXT_KEY_ADJECTIVE_INDO_SCYTHIAN"]) #Kushana if utils.isYearIn(30, 220): self.checkSpawn(iBarbarian, iHorseman, 3 + iHandicap, (97, 47), (104, 51), self.spawnInvaders, iGameTurn, 8, 3, ["TXT_KEY_ADJECTIVE_KUSHANA"]) #Hephtalites if utils.isYearIn(400, 550): self.checkSpawn(iBarbarian, iHorseArcher, 2 + iHandicap, (97, 47), (104, 51), self.spawnInvaders, iGameTurn, 5 - iHandicap, 2, ["TXT_KEY_ADJECTIVE_HEPHTHALITE"]) # Holkans in classical Mesoamerica if utils.isYearIn(-200, 100): self.checkSpawn(iBarbarian, iHolkan, 1, (15, 36), (27, 44), self.spawnUprising, iGameTurn, 7, 5) if utils.isYearIn(100, 600): self.checkSpawn(iBarbarian, iHolkan, 1, (15, 36), (27, 44), self.spawnUprising, iGameTurn, 6, 4) elif utils.isYearIn(600, 1000): self.checkSpawn(iBarbarian, iHolkan, 1, (15, 36), (27, 44), self.spawnUprising, iGameTurn, 4, 2) # Picta Aucacs in pre-Incan Andes if utils.isYearIn(800, 1100): self.checkSpawn(iBarbarian, iPictaAucac, 1, (29, 17), (33, 24), self.spawnUprising, iGameTurn, 4, 2) # Jaguars in classical Mesoamerica if utils.isYearIn(150, 500): self.checkSpawn(iBarbarian, iJaguar, 1, (15, 36), (27, 44), self.spawnUprising, iGameTurn, 6, 4) elif utils.isYearIn(500, 1150): self.checkSpawn(iBarbarian, iJaguar, 1, (15, 36), (27, 44), self.spawnUprising, iGameTurn, 4, 2) #pirates in Mediterranean if utils.isYearIn(-210, 50): self.checkSpawn(iBarbarian, iWarGalley, 1, (55, 44), (84, 54), self.spawnPirates, iGameTurn, 8, 0) #pirates in Barbary coast if not gc.getPlayer(iMoors).isAlive(): if utils.isYearIn(-50, 700): self.checkSpawn(iBarbarian, iWarGalley, 1, (52, 41), (72, 49), self.spawnPirates, iGameTurn, 18, 0) elif utils.isYearIn(700, 1400): self.checkSpawn(iBarbarian, iWarGalley, 1, (52, 41), (72, 49), self.spawnPirates, iGameTurn, 8, 0) #pirates in Indian ocean if utils.isYearIn(-650, 700): self.checkSpawn(iBarbarian, iWarGalley, 1, (84, 24), (106, 42), self.spawnPirates, iGameTurn, 18, 0) elif utils.isYearIn(700, 1700): self.checkSpawn(iBarbarian, iHeavyGalley, 1, (84, 24), (106, 42), self.spawnPirates, iGameTurn, 10, 0) # Leoreth: Barbarians in Anatolia (Hittites), replace Hattusas spawn #if utils.isYearIn(-2000, -800): #self.checkSpawn(iBarbarian, iHuluganni, 1 + iHandicap, (81, 51), (86, 55), self.spawnInvaders, iGameTurn, 16, 0, ["TXT_KEY_ADJECTIVE_HITTITE"]) if utils.isYearIn(-2000, -800): self.checkSpawn(iBarbarian, iChariot, 1 + iHandicap, (81, 51), (86, 55), self.spawnInvaders, iGameTurn, 16, 0) #barbarians in europe if utils.isYearIn(-210, 470): self.checkSpawn(iBarbarian, iAxeman, 3 + iHandicap, (57, 55), (74, 61), self.spawnInvaders, iGameTurn, 10, 0, ["TXT_KEY_ADJECTIVE_GERMANIC"]) self.checkSpawn(iBarbarian, iAxeman, 2 + iHandicap, (74, 58), (81, 66), self.spawnInvaders, iGameTurn, 12, 2, ["TXT_KEY_ADJECTIVE_GERMANIC"]) # Leoreth: begins 100 AD instead of 50 AD if utils.isYearIn(100, 470): self.checkSpawn(iBarbarian, iSwordsman, 4, (66, 55), (82, 66), self.spawnInvaders, iGameTurn, 8, 5, ["TXT_KEY_ADJECTIVE_GERMANIC"]) if utils.isYearIn(300, 550): self.checkSpawn(iBarbarian, iAxeman, 4 + iHandicap, (55, 49), (63, 61), self.spawnInvaders, iGameTurn, 5, 4, ["TXT_KEY_ADJECTIVE_VISIGOTHIC"]) self.checkSpawn(iBarbarian, iSwordsman, 4 + iHandicap, (55, 49), (63, 61), self.spawnInvaders, iGameTurn, 5, 2, ["TXT_KEY_ADJECTIVE_VISIGOTHIC"]) self.checkSpawn(iBarbarian, iHorseArcher, 4, (62, 58), (76, 64), self.spawnInvaders, iGameTurn, 5, 0, ["TXT_KEY_ADJECTIVE_HUNNIC"]) if utils.isYearIn(300, 700): self.checkSpawn(iBarbarian, iHorseArcher, 3 + iHandicap, (65, 60), (106, 63), self.spawnInvaders, iGameTurn, 3, 2, ["TXT_KEY_ADJECTIVE_HUNNIC"]) #Leoreth: barbarians in Balkans / Black Sea until the High Middle Ages (Bulgarians, Cumans, Pechenegs) if utils.isYearIn(680, 1000): self.checkSpawn( iBarbarian, iHorseArcher, 3 + iHandicap, (73, 55), (81, 60), self.spawnInvaders, iGameTurn, 6, 2, ["TXT_KEY_ADJECTIVE_AVAR", "TXT_KEY_ADJECTIVE_BULGAR"]) if utils.isYearIn(900, 1200): self.checkSpawn(iBarbarian, iHorseArcher, 3 + iHandicap, (79, 58), (92, 61), self.spawnInvaders, iGameTurn, 8, 5, ["TXT_KEY_ADJECTIVE_CUMAN"]) #1SDAN: Qarmatians (Abu Tahir al-Jannabi) if utils.isYearIn(900, 1000): self.checkSpawn(iBarbarian, iHorseArcher, 1 + iHandicap, (91, 39), (95, 41), self.spawnInvaders, iGameTurn, 3, 2, ["TXT_KEY_ADJECTIVE_QARMATIAN"]) #barbarians in central asia if utils.isYearIn(-1600, -850): self.checkLimitedSpawn(iBarbarian, iVulture, 1, 3, (84, 42), (90, 44), self.spawnNomads, iGameTurn, 8 - iHandicap, 2, ["TXT_KEY_ADJECTIVE_ASSYRIAN"]) elif utils.isYearIn(-850, -200): self.checkSpawn(iBarbarian, iHorseman, 1 + iHandicap, (80, 56), (90, 60), self.spawnInvaders, iGameTurn, 10 - 2 * iHandicap, 3, ["TXT_KEY_ADJECTIVE_SCYTHIAN"]) elif utils.isYearIn(-200, 600): self.checkSpawn(iBarbarian, iHorseman, 2 + iHandicap, (92, 49), (98, 59), self.spawnInvaders, iGameTurn, 7 - iHandicap, 2, ["TXT_KEY_ADJECTIVE_PARTHIAN"]) elif utils.isYearIn(600, 900): #if utils.getScenario() == i3000BC: #late start condition self.checkSpawn(iBarbarian, iOghuz, 2 + iHandicap, (91, 50), (103, 58), self.spawnNomads, iGameTurn, 8 - iHandicap, 2) elif utils.isYearIn(900, 1040): #if utils.getScenario() == i3000BC: #late start condition self.checkSpawn(iBarbarian, iOghuz, 2 + iHandicap, (91, 50), (106, 62), self.spawnNomads, iGameTurn, 6 - iHandicap, 2) # late Central Asian barbarians if utils.isYearIn(1200, 1600): if not utils.getAreaCitiesCiv( iMongolia, utils.getPlotList((82, 58), (95, 70))): self.checkSpawn( iBarbarian, iKeshik, 1 + iHandicap, (88, 57), (94, 61), self.spawnNomads, iGameTurn, 10 - iHandicap, 5, ["TXT_KEY_ADJECTIVE_TATAR", "TXT_KEY_ADJECTIVE_NOGAI"]) if utils.isYearIn(1400, 1700): if utils.getAreaCities(utils.getPlotList((91, 58), (106, 62))): self.checkSpawn( iBarbarian, iKeshik, 1 + iHandicap, (91, 58), (106, 62), self.spawnNomads, iGameTurn, 10 - 2 * iHandicap, 2, ["TXT_KEY_ADJECTIVE_UZBEK", "TXT_KEY_ADJECTIVE_KAZAKH"]) #barbarians in Elam if utils.isYearIn(-1600, -1000): self.checkSpawn(iBarbarian, iChariot, 1, (92, 43), (99, 50), self.spawnMinors, iGameTurn, 9 - iHandicap, 0, ["TXT_KEY_ADJECTIVE_ELAMITE"]) #barbarians in north africa if utils.isYearIn(-210, 50): self.checkSpawn(iBarbarian, iCamelRider, 1, (60, 38), (78, 42), self.spawnNomads, iGameTurn, 9 - iHandicap, 3, ["TXT_KEY_ADJECTIVE_BERBER"]) elif utils.isYearIn(50, 900): if utils.getScenario() == i3000BC: #late start condition self.checkSpawn(iBarbarian, iCamelRider, 1 + iHandicap, (60, 38), (78, 42), self.spawnNomads, iGameTurn, 10 - iHandicap, 5, ["TXT_KEY_ADJECTIVE_BERBER"]) elif utils.isYearIn(900, 1800): self.checkSpawn(iBarbarian, iCamelArcher, 1, (60, 33), (78, 42), self.spawnNomads, iGameTurn, 10 - iHandicap, 4, ["TXT_KEY_ADJECTIVE_BERBER"]) #camels in arabia if utils.isYearIn(190, 550): self.checkSpawn(iBarbarian, iCamelArcher, 1, (85, 36), (96, 42), self.spawnNomads, iGameTurn, 9 - iHandicap, 7, ["TXT_KEY_ADJECTIVE_BEDOUIN"]) if utils.isYearIn(-800, 1300) and self.includesActiveHuman( [iEgypt, iMamluks, iArabia]): iNumUnits = iHandicap if utils.getScenario() == i3000BC: iNumUnits += 1 self.checkSpawn(iBarbarian, iMedjay, iNumUnits, (78, 33), (82, 41), self.spawnUprising, iGameTurn, 12, 4, ["TXT_KEY_ADJECTIVE_NUBIAN"]) if utils.isYearIn(450, 1600): if utils.getScenario() == i3000BC: self.checkSpawn(iNative, iImpi, 2 + iHandicap, (68, 12), (85, 31), self.spawnNatives, iGameTurn, 10, 4) else: self.checkSpawn(iNative, iImpi, 2 + iHandicap, (68, 12), (85, 31), self.spawnNatives, iGameTurn, 15, 4) elif utils.isYearIn(1600, 1800): self.checkSpawn(iNative, iPombos, 2 + iHandicap, (68, 12), (85, 31), self.spawnNatives, iGameTurn, 10, 4) #west africa if utils.isYearIn(450, 1700): if iGameTurn < getTurnForYear(1300): sAdj = ["TXT_KEY_ADJECTIVE_GHANAIAN"] else: sAdj = ["TXT_KEY_ADJECTIVE_SONGHAI"] self.checkSpawn(iNative, iImpi, 2, (55, 28), (70, 34), self.spawnMinors, iGameTurn, 16, 10, sAdj) if utils.isYearIn(1200, 1700): self.checkSpawn(iBarbarian, iFarari, 2, (54, 31), (76, 43), self.spawnMinors, iGameTurn, 16, 4, sAdj) #bulala in Chad if utils.isYearIn(1210, 1571): self.checkSpawn(iNative, iLongbowman, 1, (70, 33), (75, 37), self.spawnNatives, iGameTurn, 5, 2, ["TXT_KEY_ADJECTIVE_BULALA"]) #American natives if utils.isYearIn(-100, 400): self.checkSpawn(iNative, iDogSoldier, 2 + iHandicap, (13, 46), (24, 56), self.spawnNatives, iGameTurn, 20, 0) if utils.isYearIn(400, 1100): self.checkSpawn(iNative, iDogSoldier, 1 + iHandicap, (13, 46), (24, 56), self.spawnNatives, iGameTurn, 20, 0) if utils.getScenario() == i3000BC: #late start condition self.checkSpawn(iNative, iJaguar, 3, (12, 45), (24, 55), self.spawnNatives, iGameTurn, 16 - 2 * iHandicap, 10) else: #late start condition self.checkSpawn(iNative, iJaguar, 2, (12, 45), (24, 55), self.spawnNatives, iGameTurn, 16 - 2 * iHandicap, 10) if utils.isYearIn(1300, 1600): self.checkSpawn(iNative, iDogSoldier, 2 + iHandicap, (12, 45), (24, 55), self.spawnNatives, iGameTurn, 8, 0) if utils.isYearIn(1400, 1800): self.checkSpawn(iNative, iDogSoldier, 1 + iHandicap, (8, 50), (34, 60), self.spawnUprising, iGameTurn, 12, 0) self.checkSpawn(iNative, iDogSoldier, 1 + iHandicap, (8, 50), (34, 60), self.spawnUprising, iGameTurn, 12, 6) if utils.isYearIn(1300, 1600): if iGameTurn % 18 == 0: if not gc.getMap().plot(28, 31).isUnit(): utils.makeUnitAI(iChimuSuchucChiquiAucac, iNative, (28, 31), UnitAITypes.UNITAI_ATTACK, 2 + iHandicap) elif iGameTurn % 18 == 9: if not gc.getMap().plot(34, 20).isUnit(): utils.makeUnitAI(iChimuSuchucChiquiAucac, iNative, (34, 20), UnitAITypes.UNITAI_ATTACK, 2 + iHandicap) if self.includesActiveHuman( [iAmerica, iEngland, iFrance, iMississippi]): if utils.isYearIn(1700, 1900): self.checkSpawn(iNative, iMountedBrave, 1 + iHandicap, (14, 52), (23, 62), self.spawnNomads, iGameTurn, 12 - iHandicap, 2) if utils.isYearIn(1500, 1850): self.checkSpawn(iNative, iMohawk, 1, (24, 54), (31, 61), self.spawnUprising, iGameTurn, 8, 4) # if iGameTurn == getTurnForYear(-500): # gc.getMap().plot(19, 41).setImprovementType(iHut) # utils.makeUnitAI(iHolkan, iNative, (19, 41), UnitAITypes.UNITAI_ATTACK, 2) # Oromos in the Horn of Africa if utils.isYearIn(1500, 1700): iNumUnits = 1 if pEthiopia.isAlive(): iNumUnits += 1 if utils.isYearIn(1650, 1800): iNumUnits += 1 self.checkSpawn(iBarbarian, iOromoWarrior, iNumUnits, (80, 29), (85, 32), self.spawnInvaders, iGameTurn, 8, 3) #pirates in the Caribbean if utils.isYearIn(1600, 1800): self.checkSpawn(iNative, iPrivateer, 1, (25, 37), (38, 53), self.spawnPirates, iGameTurn, 5, 0) #pirates in Asia if utils.isYearIn(1500, 1900): self.checkSpawn(iNative, iPrivateer, 1, (83, 24), (133, 42), self.spawnPirates, iGameTurn, 8, 0) if iGameTurn < getTurnForYear( tMinorCities[len(tMinorCities) - 1][0]) + 10: self.foundMinorCities(iGameTurn) if iGameTurn == getTurnForYear(-1200): pJerusalem = gc.getGame().getHolyCity(iJudaism) if pJerusalem and pJerusalem.getOwner() >= iNumMajorPlayers: pJerusalem.setHasRealBuilding(iJewishShrine, True)
def getScreenHelp(): import Debug Debug.main() aHelp = [] #游戏基本信息 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_00") == 1): aHelp.append( localText.getText("TXT_KEY_VICTORY_TIPS_IN_SCREEN_BASIC", ())) iHandicap = gc.getGame().getHandicapType() aHelp.append(' Handicap Level (1-5): ' + str(iHandicap + 1)) iScenario = utils.getScenario() txtScenario = ['BC3000', 'AD600', 'AD1700'] iGameSpeed = gc.getGame().getGameSpeedType() speedtext = u"正常速度" if iGameSpeed == 0: speedtext = "马拉松速度" elif iGameSpeed == 1: speedtext = "史诗速度" aHelp.append(' Scenario : ' + str(txtScenario[iScenario]) + " Speed: " + str(speedtext)) # 勒索国家金币的信息 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_SHOW_AITRADE_ON_MONEY") > 0): aHelp.append(' ') aHelp.append('可勒索金币数量排名') for iCiv in range(iNumPlayers): if (gc.getPlayer(iCiv).isAlive() and iCiv is not utils.getHumanID()): iPlayer = iCiv human = utils.getHumanID() cantrade = gc.getPlayer(iPlayer).canTradeNetworkWith(human) a = gc.AI_considerOfferThreshold(human, iPlayer) # 3是中国 b = gc.getPlayer(iPlayer).AI_maxGoldTrade(human) c = min(a, b) if cantrade and c > 0: civname = gc.getPlayer( iCiv).getCivilizationShortDescription(0) aHelp.append(civname + ':' + str(c)) pass # 科技交易信息 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_SHOW_AITRADE_ON_TECH") > 0): aHelp.append(' ') aHelp.append('AI可卖科技列表:') for iCiv in range(iNumPlayers): iPlayer = iCiv human = utils.getHumanID() if (gc.getPlayer(iCiv).isAlive() and iCiv is not human): for iTech in range(iNumTechs): cantrade = gc.getPlayer(iPlayer).canTradeNetworkWith(human) buyplayer = human sellplayer = iPlayer AIhastech = gc.getTeam( gc.getPlayer(iPlayer).getTeam()).isHasTech(iTech) Humanhastech = gc.getTeam( gc.getPlayer(human).getTeam()).isHasTech(iTech) if (AIhastech and not Humanhastech): techvalue = getTechValue(buyplayer, iTech, sellplayer) if techvalue > 0: civname = gc.getPlayer( iCiv).getCivilizationShortDescription(0) techname = utils.getTechNameCn(iTech) cantradetext = '' bcantradetech = canTradeTech( buyplayer, iTech, sellplayer) if (not cantrade or not bcantradetech): cantradetext = '[目前无法交易]' aHelp.append(civname + ': ' + techname + '(' + str(techvalue) + ')' + cantradetext) aHelp.append(' ') aHelp.append('人类可卖科技列表:') for iCiv in range(iNumPlayers): iPlayer = iCiv human = utils.getHumanID() if (gc.getPlayer(iCiv).isAlive() and iCiv is not human): for iTech in range(iNumTechs): cantrade = gc.getPlayer(iPlayer).canTradeNetworkWith(human) buyplayer = iPlayer sellplayer = human AIhastech = gc.getTeam( gc.getPlayer(iPlayer).getTeam()).isHasTech(iTech) Humanhastech = gc.getTeam( gc.getPlayer(human).getTeam()).isHasTech(iTech) if (not AIhastech and Humanhastech): techvalue = getTechValue(buyplayer, iTech, sellplayer) if techvalue > 0: civname = gc.getPlayer( iCiv).getCivilizationShortDescription(0) techname = utils.getTechNameCn(iTech) cantradetext = '' bcantradetech = canTradeTech( buyplayer, iTech, sellplayer) bTradeWorth = False iAImaxMoney = gc.getPlayer( buyplayer).AI_maxGoldTrade(utils.getHumanID()) PYTHON_TECHTRADE_VALUE_MIN_PERCENT = 80 iMinPercent = PYTHON_TECHTRADE_VALUE_MIN_PERCENT iThreshold = techvalue * iMinPercent / 100 if (iAImaxMoney >= iThreshold): bTradeWorth = True if (not cantrade or not bcantradetech or not bTradeWorth): cantradetext = '[目前无法交易]' # aHelp.append(civname + ': ' + techname + '(' + str(techvalue) + ')' + cantradetext) else: txt = '%s: %s : %d (%d' % ( civname, techname, techvalue, iAImaxMoney * 100 / techvalue) + '%)' aHelp.append(txt) # aHelp.append(civname + ': ' + techname+'('+str(techvalue)+')' + cantradetext) pass #部落村庄信息: if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_11") > 0): aHelp.append(' ') aHelp.append( localText.getText("TXT_KEY_VICTORY_TIPS_IN_SCREEN_CITY_RANK_GOODY", ())) goody_list = [] for x in range(gc.getMap().getGridWidth()): for y in range(gc.getMap().getGridHeight()): plot = gc.getMap().plot(x, y) isgoody = plot.isGoody() regionid = plot.getRegionID() if (isgoody): goody_list.append([regionid, x, y]) goody_list.sort(key=lambda x: x[0]) for i in range(len(goody_list)): regionid = goody_list[i][0] x = goody_list[i][1] y = goody_list[i][2] if regionid >= 0: regionname = utils.getRegionNameCn(regionid) aHelp.append('Goody [' + str(i) + '] in X:' + str(x) + ' Y: ' + str(y) + ' RegionName: ' + regionname) else: aHelp.append('Goody in X:' + str(x) + ' Y: ' + str(y)) # 稳定度信息: if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_12") > 0): aHelp.append(' ') for iCiv in range(iNumPlayers): if (gc.getPlayer(iCiv).isAlive()): #稳定度免疫信息 Stability_Immune = 0 War_Immune = 0 if Stability.isImmune(iCiv): Stability_Immune = 1 if Stability.isImmune_War(iCiv): War_Immune = 1 if (Stability_Immune or War_Immune): iPlayer = iCiv civname = gc.getPlayer( iCiv).getCivilizationShortDescription(0) Stability_Immune_Turn1 = Stability.calculate_stability_immune_after_Scenario_Start( ) + utils.getScenarioStartTurn() - gc.getGame( ).getGameTurn() Stability_Immune_Turn2 = Stability.calculate_stability_immune_after_birth( ) + getTurnForYear( tBirth[iPlayer]) - gc.getGame().getGameTurn() Stability_Immune_Turn3 = Stability.calculate_stability_immune_after_resurrection( ) + gc.getPlayer(iPlayer).getLatestRebellionTurn( ) - gc.getGame().getGameTurn() Stability_Immune_Turn = max(Stability_Immune_Turn1, Stability_Immune_Turn2, Stability_Immune_Turn3, 0) War_Immune_Turn1 = Stability.calculate_war_immune( ) + utils.getScenarioStartTurn() - gc.getGame( ).getGameTurn() War_Immune_Turn2 = Stability.calculate_war_immune( ) + getTurnForYear( tBirth[iPlayer]) - gc.getGame().getGameTurn() War_Immune_Turn3 = Stability.calculate_war_immune( ) + gc.getPlayer(iPlayer).getLatestRebellionTurn( ) - gc.getGame().getGameTurn() War_Immune_Turn = max(War_Immune_Turn1, War_Immune_Turn2, War_Immune_Turn3, 0) tiptext = civname + ": Stability Immune Turn Left: " + str( Stability_Immune_Turn ) + " War Immune Turn Left: " + str(War_Immune_Turn) aHelp.append(tiptext) # 1.国际会议回合 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_01") == 1): aHelp.append(' ') aHelp.append( localText.getText("TXT_KEY_VICTORY_TIPS_IN_SCREEN_CONGRESS", ()) + str(data.iCongressTurns)) iGameTurn = gc.getGame().getGameTurn() ti = 0 for i in range(len(tBirth)): if (getTurnForYear(tBirth[i]) >= iGameTurn): ti = i break aHelp.append("Next Country " + gc.getPlayer(ti).getCivilizationShortDescription(0) + " Birth in " + str(tBirth[ti]) + " with turns left: " + str(getTurnForYear(tBirth[i]) - iGameTurn)) # 2.殖民地进度 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_02") == 1): aHelp.append(' ') aHelp.append( localText.getText("TXT_KEY_VICTORY_TIPS_IN_SCREEN_COLONIST", ())) for iCiv in [ iSpain, iEngland, iFrance, iPortugal, iNetherlands, iVikings, iGermany ]: showtext1 = str( gc.getPlayer(iCiv).getCivilizationShortDescription(0) + ': ') showtext2 = str( data.players[iCiv].iColonistsAlreadyGiven) + ' / ' + str( dMaxColonists[iCiv]) showtext3 = '' if (data.players[iCiv].iColonistsAlreadyGiven < dMaxColonists[iCiv]): iGameTurn = (data.players[iCiv].iExplorationTurn + 1 + data.players[iCiv].iColonistsAlreadyGiven * 8) - gc.getGame().getGameTurn() if (iGameTurn < 0): iGameTurn = 0 showtext3 = str(' next exploration turn: ' + str(iGameTurn)) aHelp.append(showtext1 + showtext2 + showtext3) #3.瘟疫进度 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_03") == 1): aHelp.append(' ') aHelp.append( localText.getText("TXT_KEY_VICTORY_TIPS_IN_SCREEN_PLAGUE", ())) for i in range(4): plague_turn = data.lGenericPlagueDates[i] iGameTurn = max(plague_turn - gc.getGame().getGameTurn(), 0) aHelp.append('Plague ' + str(i + 1) + ' start in: ' + str(plague_turn) + ' turn, Game turn left: ' + str(iGameTurn)) #4.科技进度 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_04") > 0): aHelp.append(' ') techlist = [] valuelist = [] for iCiv in range(iNumPlayers): if (gc.getPlayer(iCiv).isAlive()): iTechValue = gc.getPlayer(iCiv).getTechHistory( gc.getGame().getGameTurn() - 1) valuelist.append(iTechValue) techlist.append([iCiv, iTechValue]) pass AveragePoint = 1 if (len(valuelist) > 0 and sum(valuelist) > 0): AveragePoint = sum(valuelist) / len(valuelist) aHelp.append( localText.getText("TXT_KEY_VICTORY_TIPS_IN_SCREEN_TECHRANK", ())) techlist.sort(key=lambda x: -x[1]) for i in range(len(techlist)): if (i < gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_04")): iCiv = techlist[i][0] iTechValue = techlist[i][1] civname = gc.getPlayer(iCiv).getCivilizationShortDescription(0) if (isDecline(iCiv)): civname = civname + '[F]' rank_percent = iTechValue * 100 / AveragePoint aHelp.append(' RANK (' + str(i + 1) + ') : ' + civname + ' with ' + str(iTechValue) + ' (' + str(rank_percent) + '%)') # 5.军事实力 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_05") > 0): aHelp.append(' ') techlist = [] valuelist = [] for iCiv in range(iNumPlayers): if (gc.getPlayer(iCiv).isAlive()): iTechValue = gc.getPlayer(iCiv).getPowerHistory( gc.getGame().getGameTurn() - 1) valuelist.append(iTechValue) techlist.append([iCiv, iTechValue]) pass AveragePoint = 1 if (len(valuelist) > 0 and sum(valuelist) > 0): AveragePoint = sum(valuelist) / len(valuelist) aHelp.append( localText.getText("TXT_KEY_VICTORY_TIPS_IN_SCREEN_ARMYRANK", ())) techlist.sort(key=lambda x: -x[1]) for i in range(len(techlist)): if (i < gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_05")): iCiv = techlist[i][0] iTechValue = techlist[i][1] civname = gc.getPlayer(iCiv).getCivilizationShortDescription(0) if (isDecline(iCiv)): civname = civname + '[F]' rank_percent = iTechValue * 100 / AveragePoint aHelp.append(' RANK (' + str(i + 1) + ') : ' + civname + ' with ' + str(iTechValue) + ' (' + str(rank_percent) + '%)') # 5.文化实力 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_05") > 0): aHelp.append(' ') techlist = [] valuelist = [] for iCiv in range(iNumPlayers): if (gc.getPlayer(iCiv).isAlive()): iTechValue = gc.getPlayer(iCiv).getCultureHistory( gc.getGame().getGameTurn() - 1) valuelist.append(iTechValue) techlist.append([iCiv, iTechValue]) pass AveragePoint = 1 if (len(valuelist) > 0 and sum(valuelist) > 0): AveragePoint = sum(valuelist) / len(valuelist) aHelp.append( localText.getText("TXT_KEY_VICTORY_TIPS_IN_SCREEN_CULTURERANK", ())) techlist.sort(key=lambda x: -x[1]) for i in range(len(techlist)): if (i < gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_05")): iCiv = techlist[i][0] iTechValue = techlist[i][1] civname = gc.getPlayer(iCiv).getCivilizationShortDescription(0) if (isDecline(iCiv)): civname = civname + '[F]' rank_percent = iTechValue * 100 / AveragePoint aHelp.append(' RANK (' + str(i + 1) + ') : ' + civname + ' with ' + str(iTechValue) + ' (' + str(rank_percent) + '%)') # 5.AI性格 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_05") > 0 and 1 == 2): aHelp.append(' ') techlist = [] valuelist = [] for iCiv in range(iNumPlayers): if (gc.getPlayer(iCiv).isAlive()): #iTechValue = gc.getPlayer(iCiv).getCultureHistory(gc.getGame().getGameTurn()-1) iStrategyNum = gc.showAIstrategy(iCiv) #iStrategyNum=1 iTechValue = iStrategyNum valuelist.append(iTechValue) techlist.append([iCiv, iTechValue]) pass for i in range(len(techlist)): iCiv = techlist[i][0] iTechValue = techlist[i][1] civname = gc.getPlayer(iCiv).getCivilizationShortDescription(0) if (isDecline(iCiv)): civname = civname + '[F]' txt1 = civname + ' 的策略是 ' + str(iTechValue) aHelp.append(txt1) #6.世界最大城市排名 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_06") > 0): aHelp.append(' ') aHelp.append( localText.getText("TXT_KEY_VICTORY_TIPS_IN_SCREEN_CITY_RANK_POP", ())) lCities = calculateTopCities_population() i_num_city = 0 for iCity in lCities: if (i_num_city < gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_06")): i_num_city += 1 civname = iCity[0].getName() + ' [' + str( gc.getPlayer(iCity[0].getOwner()). getCivilizationShortDescription(0)) + ']' iValue = iCity[1] rank_percent = 100 aHelp.append(' RANK (' + str(i_num_city) + ') : ' + civname + ' with ' + str(iValue) + ' ') pass #7.世界文化最高城市排名 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_07") > 0): aHelp.append(' ') aHelp.append( localText.getText("TXT_KEY_VICTORY_TIPS_IN_SCREEN_CITY_RANK_CUL", ())) lCities = calculateTopCities_culture() i_num_city = 0 for iCity in lCities: if (i_num_city < gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_07")): i_num_city += 1 civname = iCity[0].getName() + ' [' + str( gc.getPlayer(iCity[0].getOwner()). getCivilizationShortDescription(0)) + ']' iValue = iCity[1] rank_percent = 100 aHelp.append(' RANK (' + str(i_num_city) + ') : ' + civname + ' with ' + str(iValue) + ' ') pass #8.世界工业产量最高城市排名 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_08") > 0): aHelp.append(' ') aHelp.append( localText.getText("TXT_KEY_VICTORY_TIPS_IN_SCREEN_CITY_RANK_PRO", ())) lCities = calculateTopCities_production() i_num_city = 0 for iCity in lCities: if (i_num_city < gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_08")): i_num_city += 1 civname = iCity[0].getName() + ' [' + str( gc.getPlayer(iCity[0].getOwner()). getCivilizationShortDescription(0)) + ']' iValue = iCity[1] rank_percent = 100 aHelp.append(' RANK (' + str(i_num_city) + ') : ' + civname + ' with ' + str(iValue) + ' ') pass #9.世界商业产出最高城市排名 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_09") > 0): aHelp.append(' ') aHelp.append( localText.getText("TXT_KEY_VICTORY_TIPS_IN_SCREEN_CITY_RANK_COM", ())) lCities = calculateTopCities_COMMERCE() i_num_city = 0 for iCity in lCities: if (i_num_city < gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_09")): i_num_city += 1 civname = iCity[0].getName() + ' [' + str( gc.getPlayer(iCity[0].getOwner()). getCivilizationShortDescription(0)) + ']' iValue = iCity[1] rank_percent = 100 aHelp.append(' RANK (' + str(i_num_city) + ') : ' + civname + ' with ' + str(iValue) + ' ') pass #10.世界食物产出最高城市排名 if (gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_10") > 0): aHelp.append(' ') aHelp.append( localText.getText("TXT_KEY_VICTORY_TIPS_IN_SCREEN_CITY_RANK_FOOD", ())) lCities = calculateTopCities_FOOD() i_num_city = 0 for iCity in lCities: if (i_num_city < gc.getDefineINT("PYTHON_SCREEN_VICTORY_TIPS_10")): i_num_city += 1 civname = iCity[0].getName() + ' [' + str( gc.getPlayer(iCity[0].getOwner()). getCivilizationShortDescription(0)) + ']' iValue = iCity[1] rank_percent = 100 aHelp.append(' RANK (' + str(i_num_city) + ') : ' + civname + ' with ' + str(iValue) + ' ') pass ''' iDebug=1 #下面代码仅为DEBUG使用 if (iDebug): for ePlayer in range(iNumActivePlayers): researchCost = str(gc.getTeam(gc.getPlayer(ePlayer).getTeam()).getResearchCost(100)*100/3000) civname=gc.getPlayer(ePlayer).getCivilizationShortDescription(0) utils.debug_manual(civname+','+researchCost,'ResearchCost') ''' return aHelp pass
def checkTurn(self, iGameTurn): #handicap level modifier iHandicap = gc.getHandicapInfo( gc.getGame().getHandicapType()).getBarbarianSpawnModifier() # Leoreth: buff certain cities if independent / barbarian (imported from SoI) if iGameTurn % 20 == 10: for tMinorState in tMinorStates: iStartYear, iEndYear, tPlot, lUnitList = tMinorState if utils.isYearIn(iStartYear, iEndYear): x, y = tPlot plot = gc.getMap().plot(x, y) iOwner = plot.getOwner() if plot.isCity( ) and plot.getNumUnits() < 4 and iOwner >= iNumPlayers: iUnit = utils.getRandomEntry(lUnitList) utils.makeUnit(iUnit, iOwner, tPlot, 1) if utils.isYearIn(-3000, -850): if iHandicap >= 0: self.checkSpawn(iBarbarian, iWarrior, 1, (76, 46), (99, 53), self.spawnMinors, iGameTurn, 5, 0) self.checkSpawn(iBarbarian, iWolf, 1, (75, 54), (104, 64), self.spawnNatives, iGameTurn, 5, 2) self.checkSpawn(iBarbarian, iBear, 1, (75, 54), (104, 64), self.spawnNatives, iGameTurn, 5, 4) self.checkLimitedSpawn(iBarbarian, iLion, 1, 5, (55, 10), (72, 29), self.spawnNatives, iGameTurn, 5, 1) self.checkLimitedSpawn(iBarbarian, iPanther, 1, 5, (55, 10), (72, 29), self.spawnNatives, iGameTurn, 5, 3) #celts if utils.isYearIn(-650, -110): self.checkSpawn(iCeltia, iGallicWarrior, 1, (49, 46), (65, 52), self.spawnMinors, iGameTurn, 6, 0) if iHandicap >= 0: self.checkSpawn(iCeltia, iAxeman, 1, (49, 46), (65, 52), self.spawnMinors, iGameTurn, 8, 5, ["TXT_KEY_ADJECTIVE_GAUL"]) #norse if utils.isYearIn(-650, 550): self.checkSpawn(iBarbarian, iGalley, 1, (50, 49), (61, 55), self.spawnPirates, iGameTurn, 20, 0, ["TXT_KEY_ADJECTIVE_NORSE"]) #mongolia if utils.isYearIn(-210, 300): self.checkSpawn(iBarbarian, iHorseman, 3 + iHandicap, (94, 48), (107, 54), self.spawnNomads, iGameTurn, 8 - iHandicap, 0, ["TXT_KEY_ADJECTIVE_XIONGNU"]) elif utils.isYearIn(300, 900): iNumUnits = 2 + iHandicap self.checkSpawn( iBarbarian, iHorseArcher, iNumUnits, (91, 50), (107, 54), self.spawnNomads, iGameTurn, 7 - iHandicap, 0, ["TXT_KEY_ADJECTIVE_GOKTURK", "TXT_KEY_ADJECTIVE_UIGHUR"]) elif utils.isYearIn(900, 1100): iNumUnits = 1 + iHandicap self.checkSpawn( iBarbarian, iKeshik, iNumUnits, (94, 48), (107, 54), self.spawnInvaders, iGameTurn, 6, 0, ["TXT_KEY_ADJECTIVE_JURCHEN", "TXT_KEY_ADJECTIVE_KHITAN"]) #tibet if utils.isYearIn(-350, 200): self.checkSpawn(iBarbarian, iLightSwordsman, 1 + iHandicap, (92, 41), (99, 45), self.spawnMinors, iGameTurn, 10 - iHandicap, 3, ["TXT_KEY_ADJECTIVE_TIBETAN"]) elif utils.isYearIn(200, 1100): self.checkSpawn(iBarbarian, iSwordsman, 1 + iHandicap, (92, 41), (99, 45), self.spawnMinors, iGameTurn, 10 - iHandicap, 3, ["TXT_KEY_ADJECTIVE_TIBETAN"]) # Deccan barbarians if utils.isYearIn(-1000, 1200): iUnit = iArcher iStrength = iHandicap if iGameTurn >= getTurnForYear(-500): iUnit = iAxeman if iGameTurn >= getTurnForYear(0): iStrength += 1 if iGameTurn >= getTurnForYear(200): iUnit = iSwordsman self.checkSpawn(iBarbarian, iUnit, iStrength, (87, 23), (96, 37), self.spawnInvaders, iGameTurn, 8 - iHandicap, 0, ["Hindi"]) # elephants in india pre-khmer if utils.isYearIn(-210, 700): self.checkSpawn(iBarbarian, iWarElephant, 1, (86, 31), (100, 41), self.spawnInvaders, iGameTurn, 8 - iHandicap, 4) #Indo-Scythians if utils.isYearIn(-200, 400): self.checkSpawn(iBarbarian, iHorseman, 2, (84, 40), (89, 43), self.spawnNomads, iGameTurn, 8 - iHandicap, 4, ["TXT_KEY_ADJECTIVE_INDO_SCYTHIAN"]) #Kushana if utils.isYearIn(30, 220): self.checkSpawn(iBarbarian, iAsvaka, 3 + iHandicap, (84, 40), (89, 43), self.spawnInvaders, iGameTurn, 8, 3, ["TXT_KEY_ADJECTIVE_KUSHANA"]) #Hephtalites if utils.isYearIn(400, 550): self.checkSpawn(iBarbarian, iHorseArcher, 2 + iHandicap, (84, 40), (89, 43), self.spawnInvaders, iGameTurn, 5 - iHandicap, 2, ["TXT_KEY_ADJECTIVE_HEPHTHALITE"]) # Holkans in classical Mesoamerica if utils.isYearIn(100, 600): self.checkSpawn(iBarbarian, iHolkan, 1, (17, 31), (25, 37), self.spawnUprising, iGameTurn, 6, 4) elif utils.isYearIn(600, 1000): self.checkSpawn(iBarbarian, iHolkan, 1, (17, 31), (25, 37), self.spawnUprising, iGameTurn, 4, 2) #pirates in Mediterranean if utils.isYearIn(-210, 50): self.checkSpawn(iBarbarian, iWarGalley, 1, (49, 37), (72, 44), self.spawnPirates, iGameTurn, 8, 0) #pirates in Barbary coast if not gc.getPlayer(iMoors).isAlive(): if utils.isYearIn(-50, 700): self.checkSpawn(iBarbarian, iWarGalley, 1, (46, 30), (62, 39), self.spawnPirates, iGameTurn, 18, 0) elif utils.isYearIn(700, 1400): self.checkSpawn(iBarbarian, iWarGalley, 1, (46, 30), (62, 39), self.spawnPirates, iGameTurn, 8, 0) #pirates in Indian ocean if utils.isYearIn(-650, 700): self.checkSpawn(iBarbarian, iWarGalley, 1, (72, 20), (91, 36), self.spawnPirates, iGameTurn, 18, 0) elif utils.isYearIn(700, 1700): self.checkSpawn(iBarbarian, iHeavyGalley, 1, (72, 20), (91, 36), self.spawnPirates, iGameTurn, 10, 0) # Leoreth: Barbarians in Anatolia (Hittites), replace Hattusas spawn if utils.isYearIn(-2000, -800): self.checkSpawn(iBarbarian, iHuluganni, 1 + iHandicap, (68, 42), (74, 45), self.spawnInvaders, iGameTurn, 16, 0, ["TXT_KEY_ADJECTIVE_HITTITE"]) #barbarians in europe if utils.isYearIn(-210, 470): self.checkSpawn(iBarbarian, iAxeman, 3 + iHandicap, (50, 45), (63, 52), self.spawnInvaders, iGameTurn, 10, 0, ["TXT_KEY_ADJECTIVE_GERMANIC"]) self.checkSpawn(iBarbarian, iAxeman, 2 + iHandicap, (64, 49), (69, 55), self.spawnInvaders, iGameTurn, 12, 2, ["TXT_KEY_ADJECTIVE_GERMANIC"]) # Leoreth: begins 100 AD instead of 50 AD if utils.isYearIn(100, 470): self.checkSpawn(iBarbarian, iSwordsman, 3, (58, 45), (70, 55), self.spawnInvaders, iGameTurn, 8, 5, ["TXT_KEY_ADJECTIVE_GERMANIC"]) if utils.isYearIn(300, 550): self.checkSpawn(iBarbarian, iAxeman, 4 + iHandicap, (49, 41), (56, 52), self.spawnInvaders, iGameTurn, 5, 4, ["TXT_KEY_ADJECTIVE_VISIGOTHIC"]) self.checkSpawn(iBarbarian, iSwordsman, 4 + iHandicap, (49, 41), (57, 52), self.spawnInvaders, iGameTurn, 5, 2, ["TXT_KEY_ADJECTIVE_VISIGOTHIC"]) self.checkSpawn(iBarbarian, iHorseArcher, 3, (55, 49), (65, 53), self.spawnInvaders, iGameTurn, 5, 0, ["TXT_KEY_ADJECTIVE_HUNNIC"]) if utils.isYearIn(300, 700): self.checkSpawn(iBarbarian, iHorseArcher, 3 + iHandicap, (58, 50), (88, 53), self.spawnInvaders, iGameTurn, 3, 2, ["TXT_KEY_ADJECTIVE_HUNNIC"]) #Leoreth: barbarians in Balkans / Black Sea until the High Middle Ages (Bulgarians, Cumans, Pechenegs) if utils.isYearIn(680, 1000): self.checkSpawn( iBarbarian, iHorseArcher, 3 + iHandicap, (64, 45), (69, 49), self.spawnInvaders, iGameTurn, 6, 2, ["TXT_KEY_ADJECTIVE_AVAR", "TXT_KEY_ADJECTIVE_BULGAR"]) if utils.isYearIn(900, 1200): self.checkSpawn(iBarbarian, iHorseArcher, 3 + iHandicap, (68, 48), (78, 50), self.spawnInvaders, iGameTurn, 8, 5, ["TXT_KEY_ADJECTIVE_CUMAN"]) #barbarians in central asia if utils.isYearIn(-1600, -850): self.checkLimitedSpawn(iBarbarian, iVulture, 1, 3, (74, 34), (78, 44), self.spawnNomads, iGameTurn, 8 - iHandicap, 2, ["TXT_KEY_ADJECTIVE_ASSYRIAN"]) elif utils.isYearIn(-850, 300): self.checkLimitedSpawn(iBarbarian, iVulture, 1, 4, (73, 38), (78, 44), self.spawnNomads, iGameTurn, 10 - iHandicap, 2, ["TXT_KEY_ADJECTIVE_ASSYRIAN"]) self.checkSpawn(iBarbarian, iHorseman, 2 + iHandicap, (79, 41), (84, 49), self.spawnInvaders, iGameTurn, 7 - iHandicap, 2, ["TXT_KEY_ADJECTIVE_PARTHIAN"]) elif utils.isYearIn(300, 700): #if utils.getScenario() == i3000BC: #late start condition self.checkSpawn(iBarbarian, iHorseArcher, 2 + iHandicap, (78, 42), (88, 50), self.spawnNomads, iGameTurn, 8 - iHandicap, 2, ["TXT_KEY_ADJECTIVE_TURKIC"]) elif utils.isYearIn(700, 1040): #if utils.getScenario() == i3000BC: #late start condition self.checkSpawn(iBarbarian, iHorseArcher, 2 + iHandicap, (78, 42), (90, 52), self.spawnNomads, iGameTurn, 6 - iHandicap, 2, ["TXT_KEY_ADJECTIVE_TURKIC"]) # late Central Asian barbarians iSteppeUnit = iKeshik iExtra = iHandicap if utils.isYearIn(1200, 1600): if not utils.getAreaCitiesCiv( iMongolia, utils.getPlotList((70, 48), (80, 59))): self.checkSpawn( iBarbarian, iSteppeUnit, 1 + iExtra, (74, 47), (81, 47), self.spawnNomads, iGameTurn, 10 - iHandicap, 5, ["TXT_KEY_ADJECTIVE_TATAR", "TXT_KEY_ADJECTIVE_NOGAI"]) if utils.isYearIn(1400, 1700): if utils.getAreaCities(utils.getPlotList((80, 47), (88, 53))): self.checkSpawn( iBarbarian, iSteppeUnit, 1 + iExtra, (80, 47), (88, 53), self.spawnNomads, iGameTurn, 10 - 2 * iHandicap, 2, ["TXT_KEY_ADJECTIVE_UZBEK", "TXT_KEY_ADJECTIVE_KAZAKH"]) #barbarians in Elam if utils.isYearIn(-1600, -1000): self.checkSpawn(iBarbarian, iChariot, 1, (81, 37), (87, 45), self.spawnMinors, iGameTurn, 9 - iHandicap, 0, ["TXT_KEY_ADJECTIVE_ELAMITE"]) #barbarians in north africa if utils.isYearIn(-210, 50): self.checkSpawn(iBarbarian, iNumidianCavalry, 1, (54, 31), (67, 35), self.spawnNomads, iGameTurn, 9 - iHandicap, 3, ["TXT_KEY_ADJECTIVE_BERBER"]) elif utils.isYearIn(50, 900): if utils.getScenario() == i3000BC: #late start condition self.checkSpawn(iBarbarian, iNumidianCavalry, 1 + iHandicap, (54, 31), (67, 35), self.spawnNomads, iGameTurn, 10 - iHandicap, 5, ["TXT_KEY_ADJECTIVE_BERBER"]) elif utils.isYearIn(900, 1800): self.checkSpawn(iBarbarian, iCamelArcher, 1, (54, 27), (67, 35), self.spawnNomads, iGameTurn, 10 - iHandicap, 4, ["TXT_KEY_ADJECTIVE_BERBER"]) #camels in arabia if utils.isYearIn(190, 550): self.checkSpawn(iBarbarian, iCamelArcher, 1, (73, 30), (82, 36), self.spawnNomads, iGameTurn, 9 - iHandicap, 7, ["TXT_KEY_ADJECTIVE_BEDOUIN"]) if utils.isYearIn(-800, 1300): iNumUnits = iHandicap if utils.getScenario() == i3000BC: iNumUnits += 1 self.checkSpawn(iBarbarian, iMedjay, iNumUnits, (66, 28), (71, 34), self.spawnUprising, iGameTurn, 12, 4, ["TXT_KEY_ADJECTIVE_NUBIAN"]) if utils.isYearIn(450, 1600): if utils.getScenario() == i3000BC: self.checkSpawn(iNative, iImpi, 2 + iHandicap, (60, 10), (72, 27), self.spawnNatives, iGameTurn, 10, 4) else: self.checkSpawn(iNative, iImpi, 2 + iHandicap, (60, 10), (72, 27), self.spawnNatives, iGameTurn, 15, 4) elif utils.isYearIn(1600, 1800): self.checkSpawn(iNative, iPombos, 2 + iHandicap, (60, 10), (72, 27), self.spawnNatives, iGameTurn, 10, 4) #west africa if utils.isYearIn(450, 1700): if iGameTurn < getTurnForYear(1300): sAdj = ["TXT_KEY_ADJECTIVE_GHANAIAN"] else: sAdj = ["TXT_KEY_ADJECTIVE_SONGHAI"] self.checkSpawn(iNative, iImpi, 2, (48, 22), (63, 29), self.spawnMinors, iGameTurn, 16, 10, sAdj) if utils.isYearIn(1200, 1700): self.checkSpawn(iBarbarian, iFarari, 1, (48, 26), (65, 37), self.spawnMinors, iGameTurn, 16, 4, sAdj) #American natives if utils.isYearIn(600, 1100): self.checkSpawn(iNative, iDogSoldier, 1 + iHandicap, (15, 38), (24, 47), self.spawnNatives, iGameTurn, 20, 0) if utils.getScenario() == i3000BC: #late start condition self.checkSpawn(iNative, iJaguar, 3, (15, 38), (24, 47), self.spawnNatives, iGameTurn, 16 - 2 * iHandicap, 10) else: #late start condition self.checkSpawn(iNative, iJaguar, 2, (15, 38), (24, 47), self.spawnNatives, iGameTurn, 16 - 2 * iHandicap, 10) if utils.isYearIn(1300, 1600): self.checkSpawn(iNative, iDogSoldier, 2 + iHandicap, (15, 38), (24, 47), self.spawnNatives, iGameTurn, 8, 0) if utils.isYearIn(1400, 1800): self.checkSpawn(iNative, iDogSoldier, 1 + iHandicap, (11, 44), (33, 51), self.spawnUprising, iGameTurn, 12, 0) self.checkSpawn(iNative, iDogSoldier, 1 + iHandicap, (11, 44), (33, 51), self.spawnUprising, iGameTurn, 12, 6) if utils.isYearIn(1300, 1600): if iGameTurn % 18 == 0: if not gc.getMap().plot(27, 29).isUnit(): utils.makeUnitAI(iDogSoldier, iNative, (27, 29), UnitAITypes.UNITAI_ATTACK, 2 + iHandicap) elif iGameTurn % 18 == 9: if not gc.getMap().plot(30, 13).isUnit(): utils.makeUnitAI(iDogSoldier, iNative, (30, 13), UnitAITypes.UNITAI_ATTACK, 2 + iHandicap) if utils.isYearIn(1700, 1900): self.checkSpawn(iNative, iMountedBrave, 1 + iHandicap, (15, 44), (24, 52), self.spawnUprising, iGameTurn, 12 - iHandicap, 2) if utils.isYearIn(1500, 1850): self.checkSpawn(iNative, iMohawk, 1, (24, 46), (30, 51), self.spawnUprising, iGameTurn, 8, 4) #pirates in the Caribbean if utils.isYearIn(1600, 1800): self.checkSpawn(iNative, iPrivateer, 1, (24, 32), (35, 46), self.spawnPirates, iGameTurn, 5, 0) #pirates in Asia if utils.isYearIn(1500, 1900): self.checkSpawn(iNative, iPrivateer, 1, (72, 24), (110, 36), self.spawnPirates, iGameTurn, 8, 0) if iGameTurn < getTurnForYear( tMinorCities[len(tMinorCities) - 1][0]) + 10: self.foundMinorCities(iGameTurn) if iGameTurn == getTurnForYear(tBirth[iInca]): if utils.getHumanID() == iInca: utils.makeUnit(iAucac, iNative, (24, 26), 1) utils.makeUnit(iAucac, iNative, (25, 23), 1)
def interfaceScreen(self): 'Use a popup to display the opening text' if ( CyGame().isPitbossHost() ): return self.player = gc.getPlayer(gc.getGame().getActivePlayer()) self.EXIT_TEXT = localText.getText("TXT_KEY_SCREEN_CONTINUE", ()) # Create screen screen = CyGInterfaceScreen( "CvDawnOfMan", self.iScreenID ) screen.showScreen(PopupStates.POPUPSTATE_QUEUED, False) screen.showWindowBackground( False ) screen.setDimensions(screen.centerX(self.X_SCREEN), screen.centerY(self.Y_SCREEN), self.W_SCREEN, self.H_SCREEN) screen.enableWorldSounds( false ) # Create panels # Main szMainPanel = "DawnOfManMainPanel" screen.addPanel( szMainPanel, "", "", true, true, self.X_MAIN_PANEL, self.Y_MAIN_PANEL, self.W_MAIN_PANEL, self.H_MAIN_PANEL, PanelStyles.PANEL_STYLE_MAIN ) ##Rhye - begin ## # Top ## szHeaderPanel = "DawnOfManHeaderPanel" ## screen.addPanel( szHeaderPanel, "", "", true, false, ## self.X_HEADER_PANEL, self.Y_HEADER_PANEL, self.W_HEADER_PANEL, self.H_HEADER_PANEL, PanelStyles.PANEL_STYLE_DAWNTOP ) ##Rhye - end # Bottom szTextPanel = "DawnOfManTextPanel" screen.addPanel( szTextPanel, "", "", true, true, self.X_TEXT_PANEL, self.Y_TEXT_PANEL, self.W_TEXT_PANEL, self.H_TEXT_PANEL, PanelStyles.PANEL_STYLE_DAWNBOTTOM ) # Add contents ##Rhye - begin ## # Leaderhead graphic ## szLeaderPanel = "DawnOfManLeaderPanel" ## screen.addPanel( szLeaderPanel, "", "", true, false, ## self.X_LEADER_ICON - 3, self.Y_LEADER_ICON - 5, self.W_LEADER_ICON + 6, self.H_LEADER_ICON + 8, PanelStyles.PANEL_STYLE_DAWNTOP ) ## screen.addLeaderheadGFC("LeaderHead", self.player.getLeaderType(), AttitudeTypes.ATTITUDE_PLEASED, ## self.X_LEADER_ICON + 5, self.Y_LEADER_ICON + 5, self.W_LEADER_ICON - 10, self.H_LEADER_ICON - 10, WidgetTypes.WIDGET_GENERAL, -1, -1) ## # Info/"Stats" text ## ## szNameText = "<color=255,255,0,255>" + u"<font=3b>" + gc.getLeaderHeadInfo(self.player.getLeaderType()).getDescription().upper() + u"</font>" + "\n- " + self.player.getCivilizationDescription(0) + " -" ## screen.addMultilineText( "NameText", szNameText, self.X_LEADER_TITLE_TEXT, self.Y_LEADER_TITLE_TEXT, self.W_LEADER_TITLE_TEXT, self.H_LEADER_TITLE_TEXT, WidgetTypes.WIDGET_GENERAL, -1, -1, CvUtil.FONT_CENTER_JUSTIFY) ## ## self.Text_BoxText = CyGameTextMgr().parseLeaderTraits(self.player.getLeaderType(), self.player.getCivilizationType(), True, False) ## self.Text_BoxText += "\n" + CyGameTextMgr().parseCivInfos(self.player.getCivilizationType(), True) ## ## screen.addMultilineText( "HeaderText", self.Text_BoxText, self.X_STATS_TEXT, self.Y_STATS_TEXT, self.W_STATS_TEXT, self.H_STATS_TEXT, WidgetTypes.WIDGET_GENERAL, -1, -1, CvUtil.FONT_LEFT_JUSTIFY) ## # Fancy icon things ## screen.addDDSGFC( "IconLeft", gc.getMissionInfo(MissionTypes.MISSION_FORTIFY).getButton(), self.X_FANCY_ICON1 , self.Y_FANCY_ICON , self.WH_FANCY_ICON, self.WH_FANCY_ICON, WidgetTypes.WIDGET_GENERAL, -1, -1 ) ## screen.addDDSGFC( "IconRight", gc.getMissionInfo(MissionTypes.MISSION_FORTIFY).getButton(), self.X_FANCY_ICON2 , self.Y_FANCY_ICON , self.WH_FANCY_ICON, self.WH_FANCY_ICON, WidgetTypes.WIDGET_GENERAL, -1, -1 ) ##Rhye - end # Main Body text szDawnTitle = u"<font=3>" + localText.getText("TXT_KEY_DAWN_OF_MAN_SCREEN_TITLE", ()).upper() + u"</font>" screen.setLabel("DawnTitle", "Background", szDawnTitle, CvUtil.FONT_CENTER_JUSTIFY, self.X_TEXT_PANEL + (self.W_TEXT_PANEL / 2), self.Y_TEXT_PANEL + 15, -2.0, FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1 ) ##Rhye - begin pActivePlayer = gc.getPlayer(CyGame().getActivePlayer()) iActivePlayer = CyGame().getActivePlayer() if getTurnForYear(tBirth[iActivePlayer]) <= utils.getScenarioStartTurn(): iYear = utils.getScenarioStartYear() else: iYear = tBirth[iActivePlayer] year = str(abs(iYear)) + ' ' if iYear >= 0: year += CyTranslator().getText("TXT_KEY_AD", ()) else: year += CyTranslator().getText("TXT_KEY_BC", ()) #Leoreth: imported individual texts from Sword of Islam (edead) pActivePlayer = gc.getPlayer(CyGame().getActivePlayer()) textKey = dawnOfMan3000BC[iActivePlayer] dawnOfMan = lDawnOfMan[utils.getScenario()] if iActivePlayer in dawnOfMan: textKey = dawnOfMan[iActivePlayer] bodyString = localText.getText(textKey, (self.player.getCivilizationAdjectiveKey(), self.player.getNameKey())) # edead screen.addStackedBarGFC("ProgressBar", 300, 400, 435, 40, InfoBarTypes.NUM_INFOBAR_TYPES, WidgetTypes.WIDGET_GENERAL, -1, -1) screen.setStackedBarColors("ProgressBar", InfoBarTypes.INFOBAR_STORED, gc.getInfoTypeForString("COLOR_PLAYER_GREEN")) screen.setStackedBarColors("ProgressBar", InfoBarTypes.INFOBAR_RATE, gc.getInfoTypeForString("COLOR_RESEARCH_RATE")) screen.setStackedBarColors("ProgressBar", InfoBarTypes.INFOBAR_RATE_EXTRA, gc.getInfoTypeForString("COLOR_EMPTY")) screen.setStackedBarColors("ProgressBar", InfoBarTypes.INFOBAR_EMPTY, gc.getInfoTypeForString("COLOR_EMPTY")) self.iTurnsRemaining = -1 ##Rhye - end screen.addMultilineText( "BodyText", bodyString, self.X_TEXT_PANEL + self.iMarginSpace, self.Y_TEXT_PANEL + self.iMarginSpace + self.iTEXT_PANEL_MARGIN, self.W_TEXT_PANEL - (self.iMarginSpace * 2), self.H_TEXT_PANEL - (self.iMarginSpace * 2) - 75, WidgetTypes.WIDGET_GENERAL, -1, -1, CvUtil.FONT_LEFT_JUSTIFY) screen.setButtonGFC("Exit", self.EXIT_TEXT, "", self.X_EXIT, self.Y_EXIT, self.W_EXIT, self.H_EXIT, WidgetTypes.WIDGET_CLOSE_SCREEN, -1, -1, ButtonStyles.BUTTON_STYLE_STANDARD ) screen.hide( "Exit" ) #Rhye pActivePlayer = gc.getPlayer(CyGame().getActivePlayer()) pLeaderHeadInfo = gc.getLeaderHeadInfo(pActivePlayer.getLeaderType()) screen.setSoundId(CyAudioGame().Play2DSoundWithId(pLeaderHeadInfo.getDiploPeaceMusicScriptIds(0)))