def getHoverText(eWidgetType, iData1, iData2, bOption): city, iTurns = getDisplayCity() if (not city): # no rate or progress in any city and no city selected return BugUtil.getText( "TXT_KEY_MISC_GREAT_PERSON", (0, PlayerUtil.getActivePlayer().greatPeopleThreshold(False))) iThreshold = gc.getPlayer(city.getOwner()).greatPeopleThreshold(False) iProgress = city.getGreatPeopleProgress() iRate = city.getGreatPeopleRate() szText = BugUtil.colorText(city.getName(), "COLOR_HIGHLIGHT_TEXT") szText += u"\n" szText += BugUtil.getText("TXT_KEY_MISC_GREAT_PERSON", (iProgress, iThreshold)) if (iRate > 0): szText += u"\n%d%s%s " % (iRate, g_gpIcon, BugUtil.getPlainText("TXT_KEY_PER_TURN")) szText += BugUtil.getText("INTERFACE_CITY_TURNS", (iTurns, )) percents = calcPercentages(city) if (len(percents) > 0): percents.sort() percents.reverse() szText += u"\n" for iPercent, iUnit in percents: # iUnit = getUnitType(gpType) szText += u"\n%s%s - %d%%" % (getUnitIcon( iUnit), gc.getUnitInfo(iUnit).getDescription(), iPercent) return szText
def init(): """ Initializes the strings used to display the scoreboard. """ global columns # Used keys: # ABCDEFGHIKLMNOPQRSTUVWZ*? # GJXY columns.append(Column('', ALIVE)) columns.append(Column('S', SCORE, DYNAMIC)) columns.append(Column('Z', SCORE_DELTA, DYNAMIC)) columns.append(Column('K', RANK, DYNAMIC)) columns.append(Column('I', ID, DYNAMIC)) columns.append(Column('V', MASTER, DYNAMIC)) columns.append(Column('C', NAME, DYNAMIC)) columns.append(Column('?', NOT_MET, FIXED, smallText("?"))) columns.append(Column('W', WAR, DYNAMIC)) columns.append( Column('G', GWAR, FIXED, "(" + BugUtil.colorText("WAR", "COLOR_RED") + ")")) columns.append(Column('P', POWER, DYNAMIC)) columns.append(Column('T', RESEARCH, SPECIAL)) columns.append(Column('U', RESEARCH_TURNS, DYNAMIC)) columns.append( Column('E', ESPIONAGE, FIXED, smallSymbol(FontSymbols.COMMERCE_ESPIONAGE_CHAR))) columns.append( Column('N', TRADE, FIXED, smallSymbol(FontSymbols.TRADE_CHAR))) columns.append( Column('B', BORDERS, FIXED, smallSymbol(FontSymbols.OPEN_BORDERS_CHAR))) columns.append( Column('D', PACT, FIXED, smallSymbol(FontSymbols.DEFENSIVE_PACT_CHAR))) columns.append(Column('R', RELIGION, DYNAMIC)) columns.append(Column('A', ATTITUDE, DYNAMIC)) columns.append(Column('F', WONT_TALK, FIXED, smallText("!"))) columns.append( Column('H', WORST_ENEMY, FIXED, smallSymbol(FontSymbols.ANGRY_POP_CHAR))) columns.append( Column('M', WHEOOH, FIXED, smallSymbol(FontSymbols.OCCUPATION_CHAR))) columns.append(Column('Q', CITIES, DYNAMIC)) columns.append(Column('*', WAITING, FIXED, smallText("*"))) columns.append(Column('L', NET_STATS, DYNAMIC)) columns.append(Column('O', OOS, DYNAMIC)) global WAR_ICON, PEACE_ICON WAR_ICON = smallSymbol(FontSymbols.WAR_CHAR) PEACE_ICON = smallSymbol(FontSymbols.PEACE_CHAR) global MASTER_ICON, ACTIVE_MASTER_ICON MASTER_ICON = smallSymbol(FontSymbols.SILVER_STAR_CHAR) ACTIVE_MASTER_ICON = smallSymbol(FontSymbols.STAR_CHAR) global VASSAL_PREFIX, VASSAL_POSTFIX VASSAL_PREFIX = smallSymbol(FontSymbols.BULLET_CHAR) VASSAL_POSTFIX = smallText(u" %s" % FontUtil.getChar(FontSymbols.BULLET_CHAR))
def getAttitudeText(nPlayer, nTarget, bNumber, bSmily, bWorstEnemy, bWarPeace, bWarTrades): # advc.152: bWarTrades added """Returns a string describing the attitude nPlayer has toward nTarget.""" nAttitude = getAttitudeCount(nPlayer, nTarget) if nAttitude == None: return None szText = [] if bSmily: szText.append(getAttitudeIcon(nPlayer, nTarget)) if bNumber: szText.append( BugUtil.colorText(u"%+d" % nAttitude, getAttitudeColor(nPlayer, nTarget))) szIcons = u"" pPlayer = gc.getPlayer(nPlayer) pTarget = gc.getPlayer(nTarget) if bWorstEnemy and isWorstEnemy(pPlayer, pTarget): szIcons += FontUtil.getChar("angrypop") # <advc.152> bPeace = False # Moved from the bWarPeace branch: nTeam = pPlayer.getTeam() pTeam = gc.getTeam(nTeam) nTargetTeam = pTarget.getTeam() pTargetTeam = gc.getTeam(nTargetTeam) # </advc.152> if bWarPeace: if pTeam.isAtWar(nTargetTeam): szIcons += FontUtil.getChar("war") elif gc.getGame().getActiveTeam() in (nTeam, nTargetTeam): bPeace = False if pTeam.isForcePeace(nTargetTeam): bPeace = True elif pTargetTeam.isAVassal(): for nOwnerTeam in range(gc.getMAX_TEAMS()): if pTargetTeam.isVassal(nOwnerTeam) and pTeam.isForcePeace( nOwnerTeam): bPeace = True break if bPeace: szIcons += FontUtil.getChar("peace") # <advc.152> if bWarTrades and not bPeace and nTargetTeam != gc.getGame().getActiveTeam( ) and nTeam != gc.getGame().getActiveTeam( ) and nTeam != nTargetTeam and not pTeam.isAtWar( nTargetTeam) and not pTeam.isHuman() and pTeam.AI_declareWarTrade( nTargetTeam, gc.getGame().getActiveTeam()) == -1: szIcons += FontUtil.getChar("occupation") # </advc.152> if szIcons: szText.append(szIcons) return u" ".join(szText)
def assignRanks(self): """Assigns a rank from 1 to N based on score. As the player scores are currently reversed, this is done in reverse order.""" rank = 0 for playerScore in reversed(self._playerScores): if not playerScore.has(NOT_MET) or not playerScore.value(NOT_MET): rank += 1 playerScore.set(RANK, smallText(BugUtil.colorText(u"%d" % rank, ScoreOpt.getRankColor()))) if rank > 0: self._anyHas[RANK] = True
def getText(self, bNumber, bSmily, bWorstEnemy, bWarPeace): """ Returns a string describing the attitude this player has toward target. """ if self.bHasActiveMetBoth: nAttitude = self.getCount() if bNumber: szText = str(nAttitude) if nAttitude > 0: szText = "+" + szText if bSmily: szText = "[" + szText + "] " else: szText = "<font=3> " + szText + "</font> " else: szText = "" iColor = self.getColor() szText = BugUtil.colorText(szText, iColor) if bSmily: szText = self.getIcon() + " " + szText pThisPlayer = gc.getPlayer(self.iThisPlayer) pTargetPlayer = gc.getPlayer(self.iTargetPlayer) if bWorstEnemy and isWorstEnemy(pThisPlayer, pTargetPlayer): szText += u"%c" % (CyGame().getSymbolID( FontSymbols.ANGRY_POP_CHAR)) if bWarPeace: iThisTeam = pThisPlayer.getTeam() pThisTeam = gc.getTeam(iThisTeam) iTargetTeam = pTargetPlayer.getTeam() pTargetTeam = gc.getTeam(iTargetTeam) if pThisTeam.isAtWar(iTargetTeam): szText += u"%c" % (gc.getCommerceInfo( CommerceTypes.COMMERCE_GOLD).getChar() + 25) elif gc.getGame().getActiveTeam() in (iThisTeam, iTargetTeam): bPeace = False if pThisTeam.isForcePeace(iTargetTeam): bPeace = True elif pTargetTeam.isAVassal(): for iOwnerTeam in range(gc.getMAX_TEAMS()): if pTargetTeam.isVassal( iOwnerTeam) and pThisTeam.isForcePeace( iOwnerTeam): bPeace = True break if bPeace: szText += u"%c" % (gc.getCommerceInfo( CommerceTypes.COMMERCE_GOLD).getChar() + 26) return szText return ""
def getAttitudeText (nPlayer, nTarget, bNumber, bSmily, bWorstEnemy, bWarPeace): """Returns a string describing the attitude nPlayer has toward nTarget.""" nAttitude = getAttitudeCount (nPlayer, nTarget) if nAttitude == None: return None if bNumber: szText = str (nAttitude) if nAttitude > 0: szText = "+" + szText if bSmily: szText = "[" + szText + "] " else: szText = "<font=3> " + szText + "</font> " else: szText = "" iColor = getAttitudeColor (nPlayer, nTarget) szText = BugUtil.colorText(szText, iColor) if bSmily: szText = getAttitudeIcon(nPlayer, nTarget) + " " + szText pPlayer = gc.getPlayer(nPlayer) pTarget = gc.getPlayer(nTarget) if bWorstEnemy: szWorstEnemy = pPlayer.getWorstEnemyName() if szWorstEnemy and pTarget.getName() == szWorstEnemy: szText += u"%c" %(CyGame().getSymbolID(FontSymbols.ANGRY_POP_CHAR)) if bWarPeace: nTeam = pPlayer.getTeam() pTeam = gc.getTeam(nTeam) nTargetTeam = pTarget.getTeam() pTargetTeam = gc.getTeam(nTargetTeam) if pTeam.isAtWar(nTargetTeam): szText += u"%c" % (gc.getCommerceInfo(CommerceTypes.COMMERCE_GOLD).getChar() + 25) elif gc.getGame().getActiveTeam() in (nTeam, nTargetTeam): bPeace = False if pTeam.isForcePeace(nTargetTeam): bPeace = True elif pTargetTeam.isAVassal(): for nOwnerTeam in range(gc.getMAX_TEAMS()): if pTargetTeam.isVassal(nOwnerTeam) and pTeam.isForcePeace(nOwnerTeam): bPeace = True break if bPeace: szText += u"%c" % (gc.getCommerceInfo(CommerceTypes.COMMERCE_GOLD).getChar() + 26) return szText
def assignRanks(self): """ Assigns a rank from 1 to N based on score. As the player scores are currently reversed, this is done in reverse order. """ rank = 0 scores = list(self._playerScores) scores.reverse() for playerScore in scores: if not playerScore.has(NOT_MET) or not playerScore.value(NOT_MET): rank += 1 playerScore.set(RANK, smallText(BugUtil.colorText(u"%d" % rank, ScoreOpt.getRankColor()))) if rank > 0: self._anyHas[RANK] = True
def getText (self, bNumber, bSmily, bWorstEnemy, bWarPeace): """ Returns a string describing the attitude this player has toward target. """ if self.bHasActiveMetBoth: nAttitude = self.getCount() if bNumber: szText = str (nAttitude) if nAttitude > 0: szText = "+" + szText if bSmily: szText = "[" + szText + "] " else: szText = "<font=3> " + szText + "</font> " else: szText = "" iColor = self.getColor() szText = BugUtil.colorText(szText, iColor) if bSmily: szText = self.getIcon() + " " + szText pThisPlayer = gc.getPlayer(self.iThisPlayer) pTargetPlayer = gc.getPlayer(self.iTargetPlayer) if bWorstEnemy: szWorstEnemy = pThisPlayer.getWorstEnemyName() if szWorstEnemy and pTargetPlayer.getName() == szWorstEnemy: szText += u"%c" %(CyGame().getSymbolID(FontSymbols.ANGRY_POP_CHAR)) if bWarPeace: iThisTeam = pThisPlayer.getTeam() pThisTeam = gc.getTeam(iThisTeam) iTargetTeam = pTargetPlayer.getTeam() pTargetTeam = gc.getTeam(iTargetTeam) if pThisTeam.isAtWar(iTargetTeam): szText += u"%c" % (gc.getCommerceInfo(CommerceTypes.COMMERCE_GOLD).getChar() + 25) elif gc.getGame().getActiveTeam() in (iThisTeam, iTargetTeam): bPeace = False if pThisTeam.isForcePeace(iTargetTeam): bPeace = True elif pTargetTeam.isAVassal(): for iOwnerTeam in range(gc.getMAX_TEAMS()): if pTargetTeam.isVassal(iOwnerTeam) and pThisTeam.isForcePeace(iOwnerTeam): bPeace = True break if bPeace: szText += u"%c" % (gc.getCommerceInfo(CommerceTypes.COMMERCE_GOLD).getChar() + 26) return szText return ""
def getAttitudeText(nPlayer, nTarget, bNumber, bSmily, bWorstEnemy, bWarPeace): """Returns a string describing the attitude nPlayer has toward nTarget.""" nAttitude = getAttitudeCount(nPlayer, nTarget) if nAttitude == None: return None szText = [] if bSmily: szText.append(getAttitudeIcon(nPlayer, nTarget)) if bNumber: szText.append( BugUtil.colorText(u"%+d" % nAttitude, getAttitudeColor(nPlayer, nTarget))) szIcons = u"" pPlayer = gc.getPlayer(nPlayer) pTarget = gc.getPlayer(nTarget) if bWorstEnemy and isWorstEnemy(pPlayer, pTarget): szIcons += FontUtil.getChar("angrypop") if bWarPeace: nTeam = pPlayer.getTeam() pTeam = gc.getTeam(nTeam) nTargetTeam = pTarget.getTeam() pTargetTeam = gc.getTeam(nTargetTeam) if pTeam.isAtWar(nTargetTeam): szIcons += FontUtil.getChar("war") elif gc.getGame().getActiveTeam() in (nTeam, nTargetTeam): bPeace = False if pTeam.isForcePeace(nTargetTeam): bPeace = True elif pTargetTeam.isAVassal(): for nOwnerTeam in range(gc.getMAX_TEAMS()): if pTargetTeam.isVassal(nOwnerTeam) and pTeam.isForcePeace( nOwnerTeam): bPeace = True break if bPeace: szIcons += FontUtil.getChar("peace") if szIcons: szText.append(szIcons) return u" ".join(szText)
def getAttitudeText (nPlayer, nTarget, bNumber, bSmily, bWorstEnemy, bWarPeace): """Returns a string describing the attitude nPlayer has toward nTarget.""" nAttitude = getAttitudeCount (nPlayer, nTarget) if nAttitude == None: return None szText = [] if bSmily: szText.append(getAttitudeIcon(nPlayer, nTarget)) if bNumber: szText.append(BugUtil.colorText(u"%+d" % nAttitude, getAttitudeColor(nPlayer, nTarget))) szIcons = u"" pPlayer = gc.getPlayer(nPlayer) pTarget = gc.getPlayer(nTarget) if bWorstEnemy and isWorstEnemy(pPlayer, pTarget): szIcons += FontUtil.getChar("angrypop") if bWarPeace: nTeam = pPlayer.getTeam() pTeam = gc.getTeam(nTeam) nTargetTeam = pTarget.getTeam() pTargetTeam = gc.getTeam(nTargetTeam) if pTeam.isAtWar(nTargetTeam): szIcons += FontUtil.getChar("war") elif gc.getGame().getActiveTeam() in (nTeam, nTargetTeam): bPeace = False if pTeam.isForcePeace(nTargetTeam): bPeace = True elif pTargetTeam.isAVassal(): for nOwnerTeam in range(gc.getMAX_TEAMS()): if pTargetTeam.isVassal(nOwnerTeam) and pTeam.isForcePeace(nOwnerTeam): bPeace = True break if bPeace: szIcons += FontUtil.getChar("peace") if szIcons: szText.append(szIcons) return u" ".join(szText)
def getHoverText(eWidgetType, iData1, iData2, bOption): city, iTurns = getDisplayCity() if (not city): # no rate or progress in any city and no city selected return BugUtil.getText("TXT_KEY_MISC_GREAT_PERSON", (0, PlayerUtil.getActivePlayer().greatPeopleThreshold(False))) iThreshold = gc.getPlayer(city.getOwner()).greatPeopleThreshold(False) iProgress = city.getGreatPeopleProgress() iRate = city.getGreatPeopleRate() szText = BugUtil.colorText(city.getName(), "COLOR_HIGHLIGHT_TEXT") szText += u"\n" szText += BugUtil.getText("TXT_KEY_MISC_GREAT_PERSON", (iProgress, iThreshold)) if (iRate > 0): szText += u"\n%d%s%s " % (iRate, g_gpIcon, BugUtil.getPlainText("TXT_KEY_PER_TURN")) szText += BugUtil.getText("INTERFACE_CITY_TURNS", (iTurns,)) percents = calcPercentages(city) if (len(percents) > 0): percents.sort() percents.reverse() szText += u"\n" for iPercent, iUnit in percents: # iUnit = getUnitType(gpType) szText += u"\n%s%s - %d%%" % (getUnitIcon(iUnit), gc.getUnitInfo(iUnit).getDescription(), iPercent) return szText