Beispiel #1
0
 def printArrow(self, ePlayer, panel, iParameter, x, y, z):
     if (gc.getPlayer(ePlayer).isHuman()):
         self.getScreen().setLabel(
             panel, "Background",
             unichr(CyGame().getSymbolID(FontSymbols.POWER_CHAR) + 8 +
                    utils.getArrow(iParameter)), CvUtil.FONT_CENTER_JUSTIFY,
             x, y, z, FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1,
             -1)
Beispiel #2
0
    def drawContents(self):

        self.deleteAllWidgets()

        # Create a new screen, called FinanceAdvisor, using the file FinanceAdvisor.py for input
        screen = self.getScreen()

        player = gc.getPlayer(self.iActiveLeader)

        ePlayer = self.iActiveLeader  #Rhye
        #Rhye - start
        iStability = utils.getStability(ePlayer)
        if (iStability < -40):
            szTempBuffer = localText.getText("TXT_KEY_STABILITY_COLLAPSING",
                                             ())
        elif (iStability >= -40 and iStability < -20):
            szTempBuffer = localText.getText("TXT_KEY_STABILITY_UNSTABLE", ())
        elif (iStability >= -20 and iStability < 0):
            szTempBuffer = localText.getText("TXT_KEY_STABILITY_SHAKY", ())
        elif (iStability >= 0 and iStability < 20):
            szTempBuffer = localText.getText("TXT_KEY_STABILITY_STABLE", ())
        elif (iStability >= 20 and iStability < 40):
            szTempBuffer = localText.getText("TXT_KEY_STABILITY_SOLID", ())
        elif (iStability >= 40):
            szTempBuffer = localText.getText("TXT_KEY_STABILITY_VERYSOLID", ())

        if (gc.getPlayer(ePlayer).isHuman()):
            number = str(iStability)
            if (iStability > 0):
                number = '+' + number
            szTempBuffer = szTempBuffer + " (" + number + ") " + unichr(
                CyGame().getSymbolID(FontSymbols.POWER_CHAR) + 8 +
                utils.getArrow(0))
        #Rhye - end

        numCities = player.getNumCities()

        totalUnitCost = player.calculateUnitCost()
        totalUnitSupply = player.calculateUnitSupply()
        totalMaintenance = player.getTotalMaintenance()
        totalCivicUpkeep = player.getCivicUpkeep([], False)
        totalPreInflatedCosts = player.calculatePreInflatedCosts()
        totalInflatedCosts = player.calculateInflatedCosts()
        goldCommerce = player.getCommerceRate(CommerceTypes.COMMERCE_GOLD)
        if (not player.isCommerceFlexible(CommerceTypes.COMMERCE_RESEARCH)):
            goldCommerce += player.calculateBaseNetResearch()
        gold = player.getGold()
        goldFromCivs = player.getGoldPerTurn()

        # < Mercenaries Start >
        totalMercenaryMaintenanceCost = objMercenaryUtils.getPlayerMercenaryMaintenanceCost(
            self.iActiveLeader)
        # totalMercenaryContractIncome = objMercenaryUtils.getPlayerMercenaryContractIncome(self.iActiveLeader)
        # < Mercenaries End   >

        szTreasuryPanel = self.getNextWidgetName()
        screen.addPanel(szTreasuryPanel, u"", "", True, True, self.X_SLIDERS,
                        self.Y_TREASURY,
                        self.X_EXPENSES + self.PANE_WIDTH - self.X_SLIDERS,
                        self.H_TREASURY, PanelStyles.PANEL_STYLE_MAIN)
        screen.setLabel(
            self.getNextWidgetName(), szTreasuryPanel, u"<font=4>" +
            localText.getText("TXT_KEY_FINANCIAL_ADVISOR_TREASURY",
                              (gold, )).upper() + u"</font>",
            CvUtil.FONT_CENTER_JUSTIFY,
            (self.X_SLIDERS + self.PANE_WIDTH + self.X_EXPENSES) / 2,
            self.Y_TREASURY + self.H_TREASURY / 2 - self.Y_SPACING / 2,
            self.Z_CONTROLS, FontTypes.TITLE_FONT,
            WidgetTypes.WIDGET_HELP_FINANCE_GOLD_RESERVE, -1, -1)

        szCommercePanel = self.getNextWidgetName()
        screen.addPanel(szCommercePanel, u"", "", True, True, self.X_SLIDERS,
                        self.Y_LOCATION, self.PANE_WIDTH, self.PANE_HEIGHT,
                        PanelStyles.PANEL_STYLE_MAIN)
        screen.setLabel(
            self.getNextWidgetName(), "Background",
            u"<font=3>" + localText.getText("TXT_KEY_CONCEPT_COMMERCE",
                                            ()).upper() + u"</font>",
            CvUtil.FONT_CENTER_JUSTIFY, self.X_SLIDERS + self.PANE_WIDTH / 2,
            self.Y_LOCATION + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
            FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1)

        szIncomePanel = self.getNextWidgetName()
        screen.addPanel(szIncomePanel, u"", "", True, True, self.X_INCOME,
                        self.Y_LOCATION, self.PANE_WIDTH, self.PANE_HEIGHT,
                        PanelStyles.PANEL_STYLE_MAIN)
        screen.setLabel(
            self.getNextWidgetName(), "Background", u"<font=3>" +
            localText.getText("TXT_KEY_FINANCIAL_ADVISOR_INCOME_HEADER",
                              ()).upper() + u"</font>",
            CvUtil.FONT_CENTER_JUSTIFY, self.X_INCOME + self.PANE_WIDTH / 2,
            self.Y_LOCATION + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
            FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1)

        szExpensePanel = self.getNextWidgetName()
        screen.addPanel(szExpensePanel, u"", "", True, True, self.X_EXPENSES,
                        self.Y_LOCATION, self.PANE_WIDTH, self.PANE_HEIGHT,
                        PanelStyles.PANEL_STYLE_MAIN)
        screen.setLabel(
            self.getNextWidgetName(), "Background", u"<font=3>" +
            localText.getText("TXT_KEY_FINANCIAL_ADVISOR_EXPENSES_HEADER",
                              ()).upper() + u"</font>",
            CvUtil.FONT_CENTER_JUSTIFY, self.X_EXPENSES + self.PANE_WIDTH / 2,
            self.Y_LOCATION + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
            FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1)

        #Rhye - start
        szStabilityPanel = self.getNextWidgetName()
        screen.addPanel(szStabilityPanel, u"", "", True, True, self.X_SLIDERS,
                        self.Y_STABILITY,
                        self.X_EXPENSES + self.PANE_WIDTH - self.X_SLIDERS,
                        self.H_TREASURY, PanelStyles.PANEL_STYLE_MAIN)
        screen.setLabel(
            self.getNextWidgetName(), szStabilityPanel, u"<font=4>" +
            localText.getText("TXT_KEY_STABILITY_ADVISOR_TITLE",
                              ()).upper() + " " + szTempBuffer + u"</font>",
            CvUtil.FONT_CENTER_JUSTIFY,
            (self.X_SLIDERS + self.PANE_WIDTH + self.X_EXPENSES) / 2,
            self.Y_STABILITY + self.H_TREASURY / 2 - self.Y_SPACING / 2,
            self.Z_CONTROLS, FontTypes.TITLE_FONT, WidgetTypes.WIDGET_GENERAL,
            -1, -1)

        szParametersPanel1 = self.getNextWidgetName()
        screen.addPanel(szParametersPanel1, u"", "", True, True,
                        self.X_PARAMETERS1, self.Y_PARAMETERS,
                        self.PARAMETERS_WIDTH, self.H_PARAMETERS,
                        PanelStyles.PANEL_STYLE_MAIN)
        screen.setLabel(
            self.getNextWidgetName(), "Background", u"<font=3>" +
            localText.getText("TXT_KEY_STABILITY_PARAMETER_CITIES",
                              ()).upper() + u"</font>",
            CvUtil.FONT_CENTER_JUSTIFY,
            self.X_PARAMETERS1 + self.PARAMETERS_WIDTH / 2,
            self.Y_PARAMETERS + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
            FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1)
        iParameter1 = utils.getParCities()
        if (iParameter1 <= -25):
            self.printStars(ePlayer, self.getNextWidgetName(), 1,
                            self.X_PARAMETERS1 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter1 <= -10):
            self.printStars(ePlayer, self.getNextWidgetName(), 2,
                            self.X_PARAMETERS1 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter1 < 10):
            self.printStars(ePlayer, self.getNextWidgetName(), 3,
                            self.X_PARAMETERS1 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter1 < 25):
            self.printStars(ePlayer, self.getNextWidgetName(), 4,
                            self.X_PARAMETERS1 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        else:
            self.printStars(ePlayer, self.getNextWidgetName(), 5,
                            self.X_PARAMETERS1 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        self.printNumber(ePlayer, self.getNextWidgetName(), 1,
                         self.X_PARAMETERS1 + self.PARAMETERS_WIDTH / 2,
                         self.Y_PARAMETERS + self.TEXT_MARGIN + 60,
                         self.Z_CONTROLS + self.DZ)
        self.printArrow(ePlayer, self.getNextWidgetName(), 1,
                        self.X_PARAMETERS1 + self.PARAMETERS_WIDTH / 2,
                        self.Y_PARAMETERS + self.TEXT_MARGIN + 90,
                        self.Z_CONTROLS + self.DZ)

        szParametersPanel2 = self.getNextWidgetName()
        screen.addPanel(szParametersPanel2, u"", "", True, True,
                        self.X_PARAMETERS2, self.Y_PARAMETERS,
                        self.PARAMETERS_WIDTH, self.H_PARAMETERS,
                        PanelStyles.PANEL_STYLE_MAIN)
        screen.setLabel(
            self.getNextWidgetName(), "Background", u"<font=3>" +
            localText.getText("TXT_KEY_STABILITY_PARAMETER_CIVICS",
                              ()).upper() + u"</font>",
            CvUtil.FONT_CENTER_JUSTIFY,
            self.X_PARAMETERS2 + self.PARAMETERS_WIDTH / 2,
            self.Y_PARAMETERS + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
            FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1)
        iParameter2 = utils.getParCivics()
        if (iParameter2 <= -30):
            self.printStars(ePlayer, self.getNextWidgetName(), 1,
                            self.X_PARAMETERS2 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter2 <= -15):
            self.printStars(ePlayer, self.getNextWidgetName(), 2,
                            self.X_PARAMETERS2 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter2 <= 4):
            self.printStars(ePlayer, self.getNextWidgetName(), 3,
                            self.X_PARAMETERS2 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter2 <= 10):
            self.printStars(ePlayer, self.getNextWidgetName(), 4,
                            self.X_PARAMETERS2 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        else:
            self.printStars(ePlayer, self.getNextWidgetName(), 5,
                            self.X_PARAMETERS2 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        self.printNumber(ePlayer, self.getNextWidgetName(), 2,
                         self.X_PARAMETERS2 + self.PARAMETERS_WIDTH / 2,
                         self.Y_PARAMETERS + self.TEXT_MARGIN + 60,
                         self.Z_CONTROLS + self.DZ)
        self.printArrow(ePlayer, self.getNextWidgetName(), 2,
                        self.X_PARAMETERS2 + self.PARAMETERS_WIDTH / 2,
                        self.Y_PARAMETERS + self.TEXT_MARGIN + 90,
                        self.Z_CONTROLS + self.DZ)

        szParametersPanel3 = self.getNextWidgetName()
        screen.addPanel(szParametersPanel3, u"", "", True, True,
                        self.X_PARAMETERS3, self.Y_PARAMETERS,
                        self.PARAMETERS_WIDTH, self.H_PARAMETERS,
                        PanelStyles.PANEL_STYLE_MAIN)
        screen.setLabel(
            self.getNextWidgetName(), "Background", u"<font=3>" +
            localText.getText("TXT_KEY_STABILITY_PARAMETER_ECONOMY",
                              ()).upper() + u"</font>",
            CvUtil.FONT_CENTER_JUSTIFY,
            self.X_PARAMETERS3 + self.PARAMETERS_WIDTH / 2,
            self.Y_PARAMETERS + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
            FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1)
        iParameter3 = utils.getParEconomy()
        if (iParameter3 <= -40):
            self.printStars(ePlayer, self.getNextWidgetName(), 1,
                            self.X_PARAMETERS3 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter3 <= -15):
            self.printStars(ePlayer, self.getNextWidgetName(), 2,
                            self.X_PARAMETERS3 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter3 < 30):
            self.printStars(ePlayer, self.getNextWidgetName(), 3,
                            self.X_PARAMETERS3 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter3 < 60):
            self.printStars(ePlayer, self.getNextWidgetName(), 4,
                            self.X_PARAMETERS3 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        else:
            self.printStars(ePlayer, self.getNextWidgetName(), 5,
                            self.X_PARAMETERS3 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        self.printNumber(ePlayer, self.getNextWidgetName(), 3,
                         self.X_PARAMETERS3 + self.PARAMETERS_WIDTH / 2,
                         self.Y_PARAMETERS + self.TEXT_MARGIN + 60,
                         self.Z_CONTROLS + self.DZ)
        self.printArrow(ePlayer, self.getNextWidgetName(), 3,
                        self.X_PARAMETERS3 + self.PARAMETERS_WIDTH / 2,
                        self.Y_PARAMETERS + self.TEXT_MARGIN + 90,
                        self.Z_CONTROLS + self.DZ)

        szParametersPanel4 = self.getNextWidgetName()
        screen.addPanel(szParametersPanel4, u"", "", True, True,
                        self.X_PARAMETERS4, self.Y_PARAMETERS,
                        self.PARAMETERS_WIDTH, self.H_PARAMETERS,
                        PanelStyles.PANEL_STYLE_MAIN)
        screen.setLabel(
            self.getNextWidgetName(), "Background", u"<font=3>" +
            localText.getText("TXT_KEY_STABILITY_PARAMETER_EXPANSION",
                              ()).upper() + u"</font>",
            CvUtil.FONT_CENTER_JUSTIFY,
            self.X_PARAMETERS4 + self.PARAMETERS_WIDTH / 2,
            self.Y_PARAMETERS + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
            FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1)
        iParameter4 = utils.getParExpansion()
        if (iParameter4 <= -40):
            self.printStars(ePlayer, self.getNextWidgetName(), 1,
                            self.X_PARAMETERS4 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter4 <= -15):
            self.printStars(ePlayer, self.getNextWidgetName(), 2,
                            self.X_PARAMETERS4 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter4 < 15):
            self.printStars(ePlayer, self.getNextWidgetName(), 3,
                            self.X_PARAMETERS4 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter4 < 40):
            self.printStars(ePlayer, self.getNextWidgetName(), 4,
                            self.X_PARAMETERS4 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        else:
            self.printStars(ePlayer, self.getNextWidgetName(), 5,
                            self.X_PARAMETERS4 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        self.printNumber(ePlayer, self.getNextWidgetName(), 4,
                         self.X_PARAMETERS4 + self.PARAMETERS_WIDTH / 2,
                         self.Y_PARAMETERS + self.TEXT_MARGIN + 60,
                         self.Z_CONTROLS + self.DZ)
        self.printArrow(ePlayer, self.getNextWidgetName(), 4,
                        self.X_PARAMETERS4 + self.PARAMETERS_WIDTH / 2,
                        self.Y_PARAMETERS + self.TEXT_MARGIN + 90,
                        self.Z_CONTROLS + self.DZ)

        szParametersPanel5 = self.getNextWidgetName()
        screen.addPanel(szParametersPanel5, u"", "", True, True,
                        self.X_PARAMETERS5, self.Y_PARAMETERS,
                        self.PARAMETERS_WIDTH, self.H_PARAMETERS,
                        PanelStyles.PANEL_STYLE_MAIN)
        screen.setLabel(
            self.getNextWidgetName(), "Background", u"<font=3>" +
            localText.getText("TXT_KEY_STABILITY_PARAMETER_FOREIGN",
                              ()).upper() + u"</font>",
            CvUtil.FONT_CENTER_JUSTIFY,
            self.X_PARAMETERS5 + self.PARAMETERS_WIDTH / 2,
            self.Y_PARAMETERS + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
            FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1)
        iParameter5 = utils.getParDiplomacy()
        if (iParameter5 <= -20):
            self.printStars(ePlayer, self.getNextWidgetName(), 1,
                            self.X_PARAMETERS5 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter5 <= -10):
            self.printStars(ePlayer, self.getNextWidgetName(), 2,
                            self.X_PARAMETERS5 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter5 < 8):
            self.printStars(ePlayer, self.getNextWidgetName(), 3,
                            self.X_PARAMETERS5 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        elif (iParameter5 < 16):
            self.printStars(ePlayer, self.getNextWidgetName(), 4,
                            self.X_PARAMETERS5 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        else:
            self.printStars(ePlayer, self.getNextWidgetName(), 5,
                            self.X_PARAMETERS5 + self.PARAMETERS_WIDTH / 2,
                            self.Y_PARAMETERS + self.TEXT_MARGIN + 40,
                            self.Z_CONTROLS + self.DZ)
        self.printNumber(ePlayer, self.getNextWidgetName(), 5,
                         self.X_PARAMETERS5 + self.PARAMETERS_WIDTH / 2,
                         self.Y_PARAMETERS + self.TEXT_MARGIN + 60,
                         self.Z_CONTROLS + self.DZ)
        self.printArrow(ePlayer, self.getNextWidgetName(), 5,
                        self.X_PARAMETERS5 + self.PARAMETERS_WIDTH / 2,
                        self.Y_PARAMETERS + self.TEXT_MARGIN + 90,
                        self.Z_CONTROLS + self.DZ)

        #Rhye - end

        # Slider percentages
        yLocation = self.Y_LOCATION

        yLocation += 0.5 * self.Y_SPACING
        for iI in range(CommerceTypes.NUM_COMMERCE_TYPES):
            eCommerce = (iI + 1) % CommerceTypes.NUM_COMMERCE_TYPES

            if (player.isCommerceFlexible(eCommerce)):
                yLocation += self.Y_SPACING
                screen.setButtonGFC(
                    self.getNextWidgetName(), u"", "",
                    self.X_SLIDERS + self.TEXT_MARGIN,
                    int(yLocation) + self.TEXT_MARGIN, 20, 20,
                    WidgetTypes.WIDGET_CHANGE_PERCENT, eCommerce,
                    gc.getDefineINT("COMMERCE_PERCENT_CHANGE_INCREMENTS"),
                    ButtonStyles.BUTTON_STYLE_CITY_PLUS)
                screen.setButtonGFC(
                    self.getNextWidgetName(), u"", "",
                    self.X_SLIDERS + self.TEXT_MARGIN + 24,
                    int(yLocation) + self.TEXT_MARGIN, 20, 20,
                    WidgetTypes.WIDGET_CHANGE_PERCENT, eCommerce,
                    -gc.getDefineINT("COMMERCE_PERCENT_CHANGE_INCREMENTS"),
                    ButtonStyles.BUTTON_STYLE_CITY_MINUS)

                szText = u"<font=3>" + gc.getCommerceInfo(
                    eCommerce).getDescription() + u" (" + unicode(
                        player.getCommercePercent(eCommerce)) + u"%)</font>"
                screen.setLabel(self.getNextWidgetName(), "Background", szText,
                                CvUtil.FONT_LEFT_JUSTIFY,
                                self.X_SLIDERS + self.TEXT_MARGIN + 50,
                                yLocation + self.TEXT_MARGIN,
                                self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
                                WidgetTypes.WIDGET_GENERAL, -1, -1)
                szRate = u"<font=3>" + unicode(
                    player.getCommerceRate(
                        CommerceTypes(eCommerce))) + u"</font>"
                screen.setLabel(
                    self.getNextWidgetName(), "Background", szRate,
                    CvUtil.FONT_RIGHT_JUSTIFY,
                    self.X_SLIDERS + self.PANE_WIDTH - self.TEXT_MARGIN,
                    yLocation + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
                    FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1)

        yLocation += self.Y_SPACING
        szText = u"<font=3>" + gc.getCommerceInfo(
            CommerceTypes.COMMERCE_GOLD).getDescription() + u" (" + unicode(
                player.getCommercePercent(
                    CommerceTypes.COMMERCE_GOLD)) + u"%)</font>"
        screen.setLabel(self.getNextWidgetName(), "Background", szText,
                        CvUtil.FONT_LEFT_JUSTIFY,
                        self.X_SLIDERS + self.TEXT_MARGIN + 50,
                        yLocation + self.TEXT_MARGIN,
                        self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
                        WidgetTypes.WIDGET_GENERAL, -1, -1)
        szCommerce = u"<font=3>" + unicode(goldCommerce) + u"</font>"
        screen.setLabel(self.getNextWidgetName(), "Background", szCommerce,
                        CvUtil.FONT_RIGHT_JUSTIFY,
                        self.X_SLIDERS + self.PANE_WIDTH - self.TEXT_MARGIN,
                        yLocation + self.TEXT_MARGIN,
                        self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
                        WidgetTypes.WIDGET_GENERAL, -1, -1)

        # Income
        yLocation = self.Y_LOCATION
        iIncome = 0

        yLocation += 1.5 * self.Y_SPACING
        screen.setLabel(
            self.getNextWidgetName(), "Background",
            u"<font=3>" + localText.getText("TXT_KEY_FINANCIAL_ADVISOR_TAXES",
                                            ()) + "</font>",
            CvUtil.FONT_LEFT_JUSTIFY, self.X_INCOME + self.TEXT_MARGIN,
            yLocation + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
            FontTypes.GAME_FONT, WidgetTypes.WIDGET_HELP_FINANCE_GROSS_INCOME,
            -1, -1)
        screen.setLabel(self.getNextWidgetName(), "Background",
                        u"<font=3>" + unicode(goldCommerce) + "</font>",
                        CvUtil.FONT_RIGHT_JUSTIFY,
                        self.X_INCOME + self.PANE_WIDTH - self.TEXT_MARGIN,
                        yLocation + self.TEXT_MARGIN,
                        self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
                        WidgetTypes.WIDGET_HELP_FINANCE_GROSS_INCOME, -1, -1)
        iIncome += goldCommerce

        # < Mercenaries Start >
        # yLocation += 1.5 * self.Y_SPACING
        # screen.setLabel(self.getNextWidgetName(), "Background", u"<font=3>" + localText.getText("TXT_KEY_FINANCIAL_ADVISOR_MERCENARY_CONTRACT_INCOME", ()) + "</font>", CvUtil.FONT_LEFT_JUSTIFY, self.X_INCOME + self.TEXT_MARGIN, yLocation + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1 )
        # screen.setLabel(self.getNextWidgetName(), "Background", u"<font=3>" + unicode(totalMercenaryContractIncome) + "</font>", CvUtil.FONT_RIGHT_JUSTIFY, self.X_INCOME + self.PANE_WIDTH - self.TEXT_MARGIN, yLocation + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1 )
        # iIncome += totalMercenaryContractIncome
        # < Mercenaries End   >

        if (goldFromCivs > 0):
            yLocation += self.Y_SPACING
            szText = unicode(goldFromCivs) + " : " + localText.getText(
                "TXT_KEY_FINANCIAL_ADVISOR_PER_TURN", ())
            screen.setLabel(
                self.getNextWidgetName(), "Background", u"<font=3>" +
                localText.getText("TXT_KEY_FINANCIAL_ADVISOR_PER_TURN",
                                  ()) + "</font>", CvUtil.FONT_LEFT_JUSTIFY,
                self.X_INCOME + self.TEXT_MARGIN, yLocation + self.TEXT_MARGIN,
                self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
                WidgetTypes.WIDGET_HELP_FINANCE_FOREIGN_INCOME,
                self.iActiveLeader, 1)
            screen.setLabel(self.getNextWidgetName(), "Background",
                            u"<font=3>" + unicode(goldFromCivs) + "</font>",
                            CvUtil.FONT_RIGHT_JUSTIFY,
                            self.X_INCOME + self.PANE_WIDTH - self.TEXT_MARGIN,
                            yLocation + self.TEXT_MARGIN,
                            self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
                            WidgetTypes.WIDGET_HELP_FINANCE_FOREIGN_INCOME,
                            self.iActiveLeader, 1)
            iIncome += goldFromCivs

        yLocation += 1.5 * self.Y_SPACING
        screen.setLabel(
            self.getNextWidgetName(), "Background",
            u"<font=3>" + localText.getText("TXT_KEY_FINANCIAL_ADVISOR_INCOME",
                                            ()) + "</font>",
            CvUtil.FONT_LEFT_JUSTIFY, self.X_INCOME + self.TEXT_MARGIN,
            yLocation + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
            FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1)
        screen.setLabel(self.getNextWidgetName(), "Background",
                        u"<font=3>" + unicode(iIncome) + "</font>",
                        CvUtil.FONT_RIGHT_JUSTIFY,
                        self.X_INCOME + self.PANE_WIDTH - self.TEXT_MARGIN,
                        yLocation + self.TEXT_MARGIN,
                        self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
                        WidgetTypes.WIDGET_GENERAL, -1, -1)
        iIncome += goldFromCivs

        # Expenses
        yLocation = self.Y_LOCATION
        iExpenses = 0

        yLocation += 1.5 * self.Y_SPACING
        screen.setLabel(
            self.getNextWidgetName(), "Background", u"<font=3>" +
            localText.getText("TXT_KEY_FINANCIAL_ADVISOR_UNITCOST",
                              ()) + u"</font>", CvUtil.FONT_LEFT_JUSTIFY,
            self.X_EXPENSES + self.TEXT_MARGIN, yLocation + self.TEXT_MARGIN,
            self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
            WidgetTypes.WIDGET_HELP_FINANCE_UNIT_COST, self.iActiveLeader, 1)
        screen.setLabel(self.getNextWidgetName(), "Background",
                        u"<font=3>" + unicode(totalUnitCost) + u"</font>",
                        CvUtil.FONT_RIGHT_JUSTIFY,
                        self.X_EXPENSES + self.PANE_WIDTH - self.TEXT_MARGIN,
                        yLocation + self.TEXT_MARGIN,
                        self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
                        WidgetTypes.WIDGET_HELP_FINANCE_UNIT_COST,
                        self.iActiveLeader, 1)
        iExpenses += totalUnitCost

        yLocation += self.Y_SPACING
        screen.setLabel(
            self.getNextWidgetName(), "Background", u"<font=3>" +
            localText.getText("TXT_KEY_FINANCIAL_ADVISOR_UNITSUPPLY",
                              ()) + "</font>", CvUtil.FONT_LEFT_JUSTIFY,
            self.X_EXPENSES + self.TEXT_MARGIN, yLocation + self.TEXT_MARGIN,
            self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
            WidgetTypes.WIDGET_HELP_FINANCE_AWAY_SUPPLY, self.iActiveLeader, 1)
        screen.setLabel(self.getNextWidgetName(), "Background",
                        u"<font=3>" + unicode(totalUnitSupply) + "</font>",
                        CvUtil.FONT_RIGHT_JUSTIFY,
                        self.X_EXPENSES + self.PANE_WIDTH - self.TEXT_MARGIN,
                        yLocation + self.TEXT_MARGIN,
                        self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
                        WidgetTypes.WIDGET_HELP_FINANCE_AWAY_SUPPLY,
                        self.iActiveLeader, 1)
        iExpenses += totalUnitSupply

        # < Mercenaries Start >
        yLocation += self.Y_SPACING
        screen.setLabel(
            self.getNextWidgetName(), "Background",
            u"<font=3>" + localText.getText(
                "TXT_KEY_FINANCIAL_ADVISOR_MERCENARY_MAINTENANCE_COST",
                ()) + "</font>", CvUtil.FONT_LEFT_JUSTIFY,
            self.X_EXPENSES + self.TEXT_MARGIN, yLocation + self.TEXT_MARGIN,
            self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
            WidgetTypes.WIDGET_GENERAL, self.iActiveLeader, 1)
        screen.setLabel(
            self.getNextWidgetName(), "Background",
            u"<font=3>" + unicode(totalMercenaryMaintenanceCost) + "</font>",
            CvUtil.FONT_RIGHT_JUSTIFY,
            self.X_EXPENSES + self.PANE_WIDTH - self.TEXT_MARGIN,
            yLocation + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
            FontTypes.GAME_FONT, WidgetTypes.WIDGET_GENERAL,
            self.iActiveLeader, 1)
        iExpenses += totalMercenaryMaintenanceCost
        # < Mercenaries End   >

        yLocation += self.Y_SPACING
        screen.setLabel(
            self.getNextWidgetName(), "Background", u"<font=3>" +
            localText.getText("TXT_KEY_FINANCIAL_ADVISOR_MAINTENANCE",
                              ()) + "</font>", CvUtil.FONT_LEFT_JUSTIFY,
            self.X_EXPENSES + self.TEXT_MARGIN, yLocation + self.TEXT_MARGIN,
            self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
            WidgetTypes.WIDGET_HELP_FINANCE_CITY_MAINT, self.iActiveLeader, 1)
        screen.setLabel(self.getNextWidgetName(), "Background",
                        u"<font=3>" + unicode(totalMaintenance) + "</font>",
                        CvUtil.FONT_RIGHT_JUSTIFY,
                        self.X_EXPENSES + self.PANE_WIDTH - self.TEXT_MARGIN,
                        yLocation + self.TEXT_MARGIN,
                        self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
                        WidgetTypes.WIDGET_HELP_FINANCE_CITY_MAINT,
                        self.iActiveLeader, 1)
        iExpenses += totalMaintenance

        yLocation += self.Y_SPACING
        screen.setLabel(
            self.getNextWidgetName(), "Background",
            u"<font=3>" + localText.getText("TXT_KEY_FINANCIAL_ADVISOR_CIVICS",
                                            ()) + "</font>",
            CvUtil.FONT_LEFT_JUSTIFY, self.X_EXPENSES + self.TEXT_MARGIN,
            yLocation + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
            FontTypes.GAME_FONT, WidgetTypes.WIDGET_HELP_FINANCE_CIVIC_UPKEEP,
            self.iActiveLeader, 1)
        screen.setLabel(self.getNextWidgetName(), "Background",
                        u"<font=3>" + unicode(totalCivicUpkeep) + "</font>",
                        CvUtil.FONT_RIGHT_JUSTIFY,
                        self.X_EXPENSES + self.PANE_WIDTH - self.TEXT_MARGIN,
                        yLocation + self.TEXT_MARGIN,
                        self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
                        WidgetTypes.WIDGET_HELP_FINANCE_CIVIC_UPKEEP,
                        self.iActiveLeader, 1)
        iExpenses += totalCivicUpkeep

        if (goldFromCivs < 0):
            yLocation += self.Y_SPACING
            screen.setLabel(
                self.getNextWidgetName(), "Background", u"<font=3>" +
                localText.getText("TXT_KEY_FINANCIAL_ADVISOR_COST_PER_TURN",
                                  ()) + "</font>", CvUtil.FONT_LEFT_JUSTIFY,
                self.X_EXPENSES + self.TEXT_MARGIN,
                yLocation + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
                FontTypes.GAME_FONT,
                WidgetTypes.WIDGET_HELP_FINANCE_FOREIGN_INCOME,
                self.iActiveLeader, 1)
            screen.setLabel(
                self.getNextWidgetName(), "Background",
                u"<font=3>" + unicode(-goldFromCivs) + "</font>",
                CvUtil.FONT_RIGHT_JUSTIFY,
                self.X_EXPENSES + self.PANE_WIDTH - self.TEXT_MARGIN,
                yLocation + self.TEXT_MARGIN, self.Z_CONTROLS + self.DZ,
                FontTypes.GAME_FONT,
                WidgetTypes.WIDGET_HELP_FINANCE_FOREIGN_INCOME,
                self.iActiveLeader, 1)
            iExpenses -= goldFromCivs

        yLocation += self.Y_SPACING
        iInflation = totalInflatedCosts - totalPreInflatedCosts
        screen.setLabel(
            self.getNextWidgetName(), "Background", u"<font=3>" +
            localText.getText("TXT_KEY_FINANCIAL_ADVISOR_INFLATION",
                              ()) + "</font>", CvUtil.FONT_LEFT_JUSTIFY,
            self.X_EXPENSES + self.TEXT_MARGIN, yLocation + self.TEXT_MARGIN,
            self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
            WidgetTypes.WIDGET_HELP_FINANCE_INFLATED_COSTS, self.iActiveLeader,
            1)
        screen.setLabel(self.getNextWidgetName(), "Background",
                        u"<font=3>" + unicode(iInflation) + "</font>",
                        CvUtil.FONT_RIGHT_JUSTIFY,
                        self.X_EXPENSES + self.PANE_WIDTH - self.TEXT_MARGIN,
                        yLocation + self.TEXT_MARGIN,
                        self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
                        WidgetTypes.WIDGET_HELP_FINANCE_INFLATED_COSTS,
                        self.iActiveLeader, 1)
        iExpenses += iInflation

        yLocation += 1.5 * self.Y_SPACING
        screen.setLabel(
            self.getNextWidgetName(), "Background", u"<font=3>" +
            localText.getText("TXT_KEY_FINANCIAL_ADVISOR_EXPENSES",
                              ()) + "</font>", CvUtil.FONT_LEFT_JUSTIFY,
            self.X_EXPENSES + self.TEXT_MARGIN, yLocation + self.TEXT_MARGIN,
            self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
            WidgetTypes.WIDGET_GENERAL, -1, -1)
        screen.setLabel(self.getNextWidgetName(), "Background",
                        u"<font=3>" + unicode(iExpenses) + "</font>",
                        CvUtil.FONT_RIGHT_JUSTIFY,
                        self.X_EXPENSES + self.PANE_WIDTH - self.TEXT_MARGIN,
                        yLocation + self.TEXT_MARGIN,
                        self.Z_CONTROLS + self.DZ, FontTypes.GAME_FONT,
                        WidgetTypes.WIDGET_GENERAL, -1, -1)

        return 0