def updateScoreStrings( self ):
screen = CyGInterfaceScreen( "MainInterface", CvScreenEnums.MAIN_INTERFACE )
xResolution = screen.getXResolution()
yResolution = screen.getYResolution()
screen.hide( "ScoreBackground" )
for i in range( gc.getMAX_PLAYERS() ):
szName = "ScoreText" + str(i)
screen.hide( szName )
iWidth = 0
iCount = 0
iBtnHeight = 22
if ((CyInterface().getShowInterface() != InterfaceVisibility.INTERFACE_HIDE_ALL and CyInterface().getShowInterface() != InterfaceVisibility.INTERFACE_MINIMAP_ONLY)):
if (CyInterface().isScoresVisible() and not CyInterface().isCityScreenUp() and CyEngine().isGlobeviewUp() == false):
# Cap Scoreboard at 24 players 4/8/08 JOHNY SMITH
if (gc.getMAX_CIV_TEAMS() - 1) > 18:
i = 23
else:
i = gc.getMAX_CIV_TEAMS() - 1
#END 4/8/08 JOHNY SMITH
while (i > -1):
eTeam = gc.getGame().getRankTeam(i)
if (gc.getTeam(gc.getGame().getActiveTeam()).isHasMet(eTeam) or gc.getTeam(eTeam).isHuman() or gc.getGame().isDebugMode()):
j = gc.getMAX_CIV_PLAYERS() - 1
while (j > -1):
ePlayer = gc.getGame().getRankPlayer(j)
if (not CyInterface().isScoresMinimized() or gc.getGame().getActivePlayer() == ePlayer):
if (gc.getPlayer(ePlayer).isAlive() and not gc.getPlayer(ePlayer).isMinorCiv()):
if (gc.getPlayer(ePlayer).getTeam() == eTeam):
szBuffer = u"<font=2>"
if (gc.getGame().isGameMultiPlayer()):
if (not (gc.getPlayer(ePlayer).isTurnActive())):
szBuffer = szBuffer + "*"
if (not CyInterface().isFlashingPlayer(ePlayer) or CyInterface().shouldFlash(ePlayer)):
if (ePlayer == gc.getGame().getActivePlayer()):
szTempBuffer = u"%d: [<color=%d,%d,%d,%d>%s</color>]" %(gc.getGame().getPlayerScore(ePlayer), gc.getPlayer(ePlayer).getPlayerTextColorR(), gc.getPlayer(ePlayer).getPlayerTextColorG(), gc.getPlayer(ePlayer).getPlayerTextColorB(), gc.getPlayer(ePlayer).getPlayerTextColorA(), gc.getPlayer(ePlayer).getName())
else:
szTempBuffer = u"%d: <color=%d,%d,%d,%d>%s</color>" %(gc.getGame().getPlayerScore(ePlayer), gc.getPlayer(ePlayer).getPlayerTextColorR(), gc.getPlayer(ePlayer).getPlayerTextColorG(), gc.getPlayer(ePlayer).getPlayerTextColorB(), gc.getPlayer(ePlayer).getPlayerTextColorA(), gc.getPlayer(ePlayer).getName())
else:
szTempBuffer = u"%d: %s" %(gc.getGame().getPlayerScore(ePlayer), gc.getPlayer(ePlayer).getName())
szBuffer = szBuffer + szTempBuffer
if (gc.getTeam(eTeam).isAlive()):
if ( not (gc.getTeam(gc.getGame().getActiveTeam()).isHasMet(eTeam)) ):
szBuffer = szBuffer + (" ?")
if (gc.getTeam(eTeam).isAtWar(gc.getGame().getActiveTeam())):
szBuffer = szBuffer + "(" + localText.getColorText("TXT_KEY_CONCEPT_WAR", (), gc.getInfoTypeForString("COLOR_RED")).upper() + ")"
if (gc.getPlayer(ePlayer).canTradeNetworkWith(gc.getGame().getActivePlayer()) and (ePlayer != gc.getGame().getActivePlayer())):
szTempBuffer = u"%c" %(CyGame().getSymbolID(FontSymbols.TRADE_CHAR))
szBuffer = szBuffer + szTempBuffer
if (gc.getTeam(eTeam).isOpenBorders(gc.getGame().getActiveTeam())):
szTempBuffer = u"%c" %(CyGame().getSymbolID(FontSymbols.OPEN_BORDERS_CHAR))
szBuffer = szBuffer + szTempBuffer
if (gc.getTeam(eTeam).isDefensivePact(gc.getGame().getActiveTeam())):
szTempBuffer = u"%c" %(CyGame().getSymbolID(FontSymbols.DEFENSIVE_PACT_CHAR))
szBuffer = szBuffer + szTempBuffer
if (gc.getPlayer(ePlayer).getStateReligion() != -1):
if (gc.getPlayer(ePlayer).hasHolyCity(gc.getPlayer(ePlayer).getStateReligion())):
szTempBuffer = u"%c" %(gc.getReligionInfo(gc.getPlayer(ePlayer).getStateReligion()).getHolyCityChar())
szBuffer = szBuffer + szTempBuffer
else:
szTempBuffer = u"%c" %(gc.getReligionInfo(gc.getPlayer(ePlayer).getStateReligion()).getChar())
szBuffer = szBuffer + szTempBuffer
if (gc.getTeam(eTeam).getEspionagePointsAgainstTeam(gc.getGame().getActiveTeam()) < gc.getTeam(gc.getGame().getActiveTeam()).getEspionagePointsAgainstTeam(eTeam)):
szTempBuffer = u"%c" %(gc.getCommerceInfo(CommerceTypes.COMMERCE_ESPIONAGE).getChar())
szBuffer = szBuffer + szTempBuffer
bEspionageCanSeeResearch = false
for iMissionLoop in range(gc.getNumEspionageMissionInfos()):
if (gc.getEspionageMissionInfo(iMissionLoop).isSeeResearch()):
bEspionageCanSeeResearch = gc.getPlayer(gc.getGame().getActivePlayer()).canDoEspionageMission(iMissionLoop, ePlayer, None, -1)
break
if (((gc.getPlayer(ePlayer).getTeam() == gc.getGame().getActiveTeam()) and (gc.getTeam(gc.getGame().getActiveTeam()).getNumMembers() > 1)) or (gc.getTeam(gc.getPlayer(ePlayer).getTeam()).isVassal(gc.getGame().getActiveTeam())) or gc.getGame().isDebugMode() or bEspionageCanSeeResearch):
if (gc.getPlayer(ePlayer).getCurrentResearch() != -1):
szTempBuffer = u"-%s (%d)" %(gc.getTechInfo(gc.getPlayer(ePlayer).getCurrentResearch()).getDescription(), gc.getPlayer(ePlayer).getResearchTurnsLeft(gc.getPlayer(ePlayer).getCurrentResearch(), True))
szBuffer = szBuffer + szTempBuffer
if (CyGame().isNetworkMultiPlayer()):
szBuffer = szBuffer + CyGameTextMgr().getNetStats(ePlayer)
if (gc.getPlayer(ePlayer).isHuman() and CyInterface().isOOSVisible()):
szTempBuffer = u" <color=255,0,0>* %s *</color>" %(CyGameTextMgr().getOOSSeeds(ePlayer))
szBuffer = szBuffer + szTempBuffer
szBuffer = szBuffer + "</font>"
if ( CyInterface().determineWidth( szBuffer ) > iWidth ):
iWidth = CyInterface().determineWidth( szBuffer )
szName = "ScoreText" + str(ePlayer)
if ( CyInterface().getShowInterface() == InterfaceVisibility.INTERFACE_SHOW or CyInterface().isInAdvancedStart()):
yCoord = yResolution - 206
else:
yCoord = yResolution - 88
screen.setText( szName, "Background", szBuffer, CvUtil.FONT_RIGHT_JUSTIFY, xResolution - 12, yCoord - (iCount * iBtnHeight), -0.3, FontTypes.SMALL_FONT, WidgetTypes.WIDGET_CONTACT_CIV, ePlayer, -1 )
screen.show( szName )
CyInterface().checkFlashReset(ePlayer)
iCount = iCount + 1
j = j - 1
i = i - 1
if ( CyInterface().getShowInterface() == InterfaceVisibility.INTERFACE_SHOW or CyInterface().isInAdvancedStart()):
yCoord = yResolution - 186
else:
yCoord = yResolution - 68
screen.setPanelSize( "ScoreBackground", xResolution - 21 - iWidth, yCoord - (iBtnHeight * iCount) - 4, iWidth + 12, (iBtnHeight * iCount) + 8 )
screen.show( "ScoreBackground" )