home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 January / Gamestar_80_2006-01_dvd.iso / Dema / Civilization4 / data1.cab / Civ4DemoComponent / Assets / Python / Screens / CvDanQuayle.py < prev    next >
Encoding:
Python Source  |  2005-11-09  |  7.0 KB  |  191 lines

  1. ## Sid Meier's Civilization 4
  2. ## Copyright Firaxis Games 2005
  3. from CvPythonExtensions import *
  4. import PyHelpers
  5. import ScreenInput
  6. import CvScreenEnums
  7. import CvUtil
  8. import CvGameUtils
  9. import CvScreensInterface
  10.  
  11. # globals
  12. gc = CyGlobalContext()
  13. ArtFileMgr = CyArtFileMgr()
  14. localText = CyTranslator()
  15.  
  16. class CvDanQuayle:
  17.  
  18.     def __init__(self):
  19.         self.SCREEN_NAME = "CvDanQuayle"
  20.         self.WIDGET_ID = "CvDanQuayleWidget"
  21.         self.EXIT_ID = "CvDanQuayleExitWidget"
  22.         self.BACKGROUND_ID = "CvDanQuayleBackground"
  23.         self.LEADERHEAD_ID = "CvDanQuayleLeaderhead"
  24.         self.LIST_ID = "CvDanQuayleList"
  25.         self.TEXT_ID = "CvDanQuayleText"
  26.         self.SCORE_ID = "CvDanQuayleScore"
  27.         self.SCORE_ID = "CvDanQuayleScore"
  28.         self.WIDGET_HEADER = "CvDanQuayleHeader"
  29.  
  30.         self.X_SCREEN = 500
  31.         self.Y_SCREEN = 396
  32.         self.W_SCREEN = 1024
  33.         self.H_SCREEN = 768
  34.         self.Y_TITLE = 12
  35.         self.X_EXIT = 920
  36.         self.Y_EXIT = 726
  37.         
  38.         self.X_LEADERHEAD = 120
  39.         self.Y_LEADERHEAD = 90
  40.         self.W_LEADERHEAD = 390
  41.         self.H_LEADERHEAD = 470
  42.  
  43.         self.X_LIST = 570
  44.         self.Y_LIST = 170
  45.         self.W_LIST = 300
  46.         self.H_LIST = 520
  47.  
  48.         self.X_SCORE = 570
  49.         self.Y_SCORE = 90
  50.         self.W_SCORE = 300
  51.         self.H_SCORE = 50
  52.  
  53.         self.X_TEXT = 120
  54.         self.Y_TEXT = 590
  55.         self.W_TEXT = 390
  56.         self.H_TEXT = 100
  57.         
  58.         self.leaders = ["TXT_KEY_DQ_LEADER_NAME_1", 
  59.                         "TXT_KEY_DQ_LEADER_NAME_2",
  60.                         "TXT_KEY_DQ_LEADER_NAME_3",
  61.                         "TXT_KEY_DQ_LEADER_NAME_4",
  62.                         "TXT_KEY_DQ_LEADER_NAME_5",
  63.                         "TXT_KEY_DQ_LEADER_NAME_6",
  64.                         "TXT_KEY_DQ_LEADER_NAME_7",
  65.                         "TXT_KEY_DQ_LEADER_NAME_8",
  66.                         "TXT_KEY_DQ_LEADER_NAME_9",
  67.                         "TXT_KEY_DQ_LEADER_NAME_10",
  68.                         "TXT_KEY_DQ_LEADER_NAME_11",
  69.                         "TXT_KEY_DQ_LEADER_NAME_12",
  70.                         "TXT_KEY_DQ_LEADER_NAME_13",
  71.                         "TXT_KEY_DQ_LEADER_NAME_14",
  72.                         "TXT_KEY_DQ_LEADER_NAME_15",
  73.                         "TXT_KEY_DQ_LEADER_NAME_16",
  74.                         "TXT_KEY_DQ_LEADER_NAME_17",
  75.                         "TXT_KEY_DQ_LEADER_NAME_18",
  76.                         "TXT_KEY_DQ_LEADER_NAME_19",
  77.                         "TXT_KEY_DQ_LEADER_NAME_20"]
  78.  
  79.         self.nWidgetCount = 0
  80.  
  81.     def getScreen(self):
  82.         return CyGInterfaceScreen(self.SCREEN_NAME, CvScreenEnums.DAN_QUAYLE_SCREEN)
  83.  
  84.     def interfaceScreen (self):
  85.         return
  86.         replayInfo = CyGame().getReplayInfo()
  87.         if replayInfo.isNone():
  88.             replayInfo = CyReplayInfo()
  89.             replayInfo.createInfo()
  90.         
  91.         screen = self.getScreen()
  92.         if screen.isActive():
  93.             return
  94.         screen.setRenderInterfaceOnly(True);
  95.         screen.showScreen( PopupStates.POPUPSTATE_IMMEDIATE, False)
  96.     
  97.         # Set the background and exit button, and show the screen
  98.         screen.setDimensions(screen.centerX(0), screen.centerY(0), self.W_SCREEN, self.H_SCREEN)
  99.  
  100.         screen.addDDSGFC(self.BACKGROUND_ID, ArtFileMgr.getInterfaceArtInfo("SCREEN_BG_OPAQUE").getPath(), 0, 0, self.W_SCREEN, self.H_SCREEN, WidgetTypes.WIDGET_GENERAL, -1, -1 )
  101.         screen.addPanel( "TechTopPanel", u"", u"", True, False, 0, 0, self.W_SCREEN, 55, PanelStyles.PANEL_STYLE_TOPBAR )
  102.         screen.addPanel( "TechBottomPanel", u"", u"", True, False, 0, 713, self.W_SCREEN, 55, PanelStyles.PANEL_STYLE_BOTTOMBAR )
  103.  
  104.         screen.showWindowBackground(False)
  105.         screen.setText(self.EXIT_ID, "Background", u"<font=4>" + localText.getText("TXT_KEY_PEDIA_SCREEN_EXIT", ()).upper() + u"</font>", CvUtil.FONT_LEFT_JUSTIFY, self.X_EXIT, self.Y_EXIT, 0, FontTypes.TITLE_FONT, WidgetTypes.WIDGET_CLOSE_SCREEN, -1, -1 )
  106.  
  107.         # Header...
  108.         screen.setLabel(self.WIDGET_HEADER, "Background", u"<font=4b>" + localText.getText("TXT_KEY_GAME_END_SCREEN_TITLE", ()).upper() + u"</font>", CvUtil.FONT_CENTER_JUSTIFY, self.X_SCREEN, self.Y_TITLE, 0, FontTypes.TITLE_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1)
  109.                 
  110.         # Leaderhead
  111.         screen.addLeaderheadGFC(self.LEADERHEAD_ID, replayInfo.getLeader(replayInfo.getActivePlayer()), AttitudeTypes.ATTITUDE_PLEASED, self.X_LEADERHEAD, self.Y_LEADERHEAD, self.W_LEADERHEAD, self.H_LEADERHEAD, WidgetTypes.WIDGET_GENERAL, -1, -1)
  112.     
  113.         iScore = replayInfo.getNormalizedScore()
  114.         iMaxScore = ((100 + gc.getDefineINT("SCORE_VICTORY_PERCENT")) * (gc.getDefineINT("SCORE_POPULATION_FACTOR") + gc.getDefineINT("SCORE_LAND_FACTOR") + gc.getDefineINT("SCORE_WONDER_FACTOR") + gc.getDefineINT("SCORE_TECH_FACTOR"))) / 100
  115.         if iMaxScore > 0:
  116.             iNormalScore = iScore/float(iMaxScore)
  117.         else:
  118.             iNormalScore = 0
  119.             
  120.         if iNormalScore > 1.5:
  121.             szLeaderText = self.leaders[0]
  122.         elif iNormalScore > 1.4:
  123.             szLeaderText = self.leaders[1]
  124.         elif iNormalScore > 1.3:
  125.             szLeaderText = self.leaders[2]
  126.         elif iNormalScore > 1.2:
  127.             szLeaderText = self.leaders[3]
  128.         elif iNormalScore > 1.1:
  129.             szLeaderText = self.leaders[4]
  130.         elif iNormalScore > 1.05:
  131.             szLeaderText = self.leaders[5]
  132.         elif iNormalScore > 1.0:
  133.             szLeaderText = self.leaders[6]
  134.         elif iNormalScore > 0.95:
  135.             szLeaderText = self.leaders[7]
  136.         elif iNormalScore > 0.9:
  137.             szLeaderText = self.leaders[8]
  138.         elif iNormalScore > 0.85:
  139.             szLeaderText = self.leaders[9]
  140.         elif iNormalScore > 0.8:
  141.             szLeaderText = self.leaders[10]
  142.         elif iNormalScore > 0.75:
  143.             szLeaderText = self.leaders[11]
  144.         elif iNormalScore > 0.7:
  145.             szLeaderText = self.leaders[12]
  146.         elif iNormalScore > 0.65:
  147.             szLeaderText = self.leaders[13]
  148.         elif iNormalScore > 0.6:
  149.             szLeaderText = self.leaders[14]
  150.         elif iNormalScore > 0.55:
  151.             szLeaderText = self.leaders[15]
  152.         elif iNormalScore > 0.5:
  153.             szLeaderText = self.leaders[16]
  154.         elif iNormalScore > 0.4:
  155.             szLeaderText = self.leaders[17]
  156.         elif iNormalScore > 0.3:
  157.             szLeaderText = self.leaders[18]
  158.         else:
  159.             szLeaderText = self.leaders[19]
  160.  
  161.         screen.addPanel("", u"", u"", True, False, self.X_TEXT, self.Y_TEXT, self.W_TEXT, self.H_TEXT, PanelStyles.PANEL_STYLE_IN)
  162.         screen.addMultilineText(self.TEXT_ID, localText.getText("TXT_KEY_DQ_TEXT_STRING", (replayInfo.getLeaderName(), szLeaderText, )), self.X_TEXT+5, self.Y_TEXT+5, self.W_TEXT-10, self.H_TEXT-10, WidgetTypes.WIDGET_GENERAL, -1, -1, CvUtil.FONT_LEFT_JUSTIFY)    
  163.         
  164.         screen.addPanel(self.SCORE_ID, u"", u"", True, False, self.X_SCORE, self.Y_SCORE, self.W_SCORE, self.H_SCORE, PanelStyles.PANEL_STYLE_IN)
  165.         screen.setLabelAt("", self.SCORE_ID, u"<font=4>" + localText.getText("TXT_KEY_VICTORY_SCORE", ( )) + u" : " + unicode(iScore) + u"</font>", CvUtil.FONT_CENTER_JUSTIFY, self.W_SCORE/2-10, 5, 0, FontTypes.SMALL_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1)
  166.         
  167.         screen.addListBoxGFC(self.LIST_ID, "", self.X_LIST, self.Y_LIST, self.W_LIST, self.H_LIST, TableStyles.TABLE_STYLE_STANDARD)
  168.         for i in range(len(self.leaders)):
  169.             szText = self.leaders[i]
  170.             if (szLeaderText == szText):
  171.                 szText = localText.getColorText(szText, (), gc.getInfoTypeForString("COLOR_YELLOW"))
  172.             else:
  173.                 szText = localText.getText(szText, ())
  174.  
  175.             screen.appendListBoxString(self.LIST_ID, szText, WidgetTypes.WIDGET_GENERAL, 0, 0, CvUtil.FONT_LEFT_JUSTIFY)
  176.             
  177.  
  178.     # returns a unique ID for a widget in this screen
  179.     def getNextWidgetName(self):
  180.         szName = self.WIDGET_ID + str(self.nWidgetCount)
  181.         self.nWidgetCount += 1
  182.         return szName
  183.  
  184.             
  185.     # Will handle the input for this screen...
  186.     def handleInput (self, inputClass):
  187.         return 0
  188.  
  189.     def update(self, fDelta):
  190.         return
  191.