self.COLUMNS_LIST = [
# Name Width Type CyCityFunction0 CyCityFunction1 Arg selfFunction Arg Title
("NAME", 95, "text", CyCity.getName, None, 0, None, None, "localText.getText(\"TXT_KEY_DOMESTIC_ADVISOR_NAME\", ()).upper()"),
("ADVISE_CULTURE", 150, "text", None, None, 0, self.advise, "Culture", "localText.getText(\"TXT_KEY_CONCEPT_CULTURE\", ()).upper()"),
("ADVISE_MILITARY", 150, "text", None, None, 0, self.advise, "Military", "localText.getText(\"TXT_KEY_ADVISOR_MILITARY\", ()).upper()"),
("ADVISE_NUTTY", 150, "text", None, None, 0, self.advise, "Nutty", "u\"NUTTY\""),
("ADVISE_RELIGION", 150, "text", None, None, 0, self.advise, "Religion", "localText.getText(\"TXT_KEY_CONCEPT_RELIGION\", ()).upper()"),
("ADVISE_RESEARCH", 150, "text", None, None, 0, self.advise, "Research", "localText.getText(\"TXT_KEY_COMMERCE_RESEARCH\", ()).upper()"),
("ADVISE_SPACESHIP", 150, "text", None, None, 0, self.advise, "Spaceship", "localText.getText(\"TXT_KEY_CONCEPT_SPACESHIP\", ()).upper()"),
("AUTOMATION", 80, "text", None, None, 0, self.calculateAutomation, None, "u\"AUTO\""),
("BASE_COMMERCE", 38, "int", None, CyCity.getBaseYieldRate, YieldTypes.YIELD_COMMERCE, None, None, "u\"B\" + self.commerceIcon"),
("BASE_FOOD", 38, "int", None, CyCity.getBaseYieldRate, YieldTypes.YIELD_FOOD, None, None, "u\"B\" + self.foodIcon"),
("BASE_PRODUCTION", 38, "int", None, CyCity.getBaseYieldRate, YieldTypes.YIELD_PRODUCTION, None, None, "u\"B\" + self.hammerIcon"),
("CONSCRIPT_UNIT", 90, "text", None, None, 0, self.calculateConscriptUnit, None, "localText.getText(\"TXT_KEY_CONCEPT_DRAFT\", ()).upper()"),
("COULD_CONSCRIPT_UNIT", 90, "text", None, None, 0, self.calculatePotentialConscriptUnit, None, "localText.getText(\"TXT_KEY_CONCEPT_DRAFT\", ()).upper() + u\"#\""),
("CORPORATIONS", 90, "text", None, None, 0, self.calculateCorporations, None, "localText.getText(\"TXT_KEY_CONCEPT_CORPORATIONS\", ()).upper()"),
("CULTURE", 53, "int", None, None, 0, self.calculateTotalCulture, None, "self.cultureIcon"),
("CULTURE_RATE", 38, "int", None, CyCity.getCommerceRate, CommerceTypes.COMMERCE_CULTURE, None, None, "self.cultureIcon + u\"R\""),
("CULTURE_TURNS", 38, "int", None, None, None, self.calculateCultureTurns, None, "self.cultureIcon + u\"T\""),
("DEFENSE", 60, "int", None, None, 0, self.calculateDefense, None, "self.defenseIcon"),
("ESPIONAGE", 38, "int", None, CyCity.getCommerceRate, CommerceTypes.COMMERCE_ESPIONAGE, None, None, "self.espionageIcon"),
("ESPIONAGE_DEF", 60, "int", CyCity.getEspionageDefenseModifier, None, 0, self.calculateEspionageDefense, None, "self.espionageIcon + u\"%\""),
("FEATURES", 106, "text", None, None, 0, self.calculateFeatures, None, "localText.getText(\"TXT_KEY_MISC_FEATURES\", ())"),
("FOOD", 35, "int", None, None, 0, self.calculateFood, None, "self.foodIcon"),
("FOUNDED", 80, "date", None, None, 0, self.calculateFounded, None, "localText.getText(\"TXT_KEY_DOMESTIC_ADVISOR_FOUNDED\", ()).upper()"),
("GARRISON", 30, "int", CyCity.getMilitaryHappinessUnits, None, 0, None, None, "self.militaryIcon"),
("GOLD", 38, "int", None, CyCity.getCommerceRate, CommerceTypes.COMMERCE_GOLD, None, None, "self.goldIcon"),
("GRANK_BASE_COMMERCE", 42, "int", None, None, 0, self.findGlobalBaseYieldRateRank, YieldTypes.YIELD_COMMERCE, "u\"B\" + self.commerceIcon + u\"g\""),
("GRANK_BASE_FOOD", 42, "int", None, None, 0, self.findGlobalBaseYieldRateRank, YieldTypes.YIELD_FOOD, "u\"B\" + self.foodIcon + u\"g\""),
("GRANK_BASE_PRODUCTION", 42, "int", None, None, 0, self.findGlobalBaseYieldRateRank, YieldTypes.YIELD_PRODUCTION, "u\"B\" + self.hammerIcon + u\"g\""),
("GRANK_COMMERCE", 38, "int", None, None, 0, self.findGlobalYieldRateRank, YieldTypes.YIELD_COMMERCE, "self.commerceIcon + u\"g\""),
("GRANK_FOOD", 38, "int", None, None, 0, self.findGlobalYieldRateRank, YieldTypes.YIELD_FOOD, "self.foodIcon + u\"g\""),
("GRANK_PRODUCTION", 38, "int", None, None, 0, self.findGlobalYieldRateRank, YieldTypes.YIELD_PRODUCTION, "self.hammerIcon + u\"g\""),
("GRANK_CULTURE", 38, "int", None, None, 0, self.findGlobalCommerceRateRank, CommerceTypes.COMMERCE_CULTURE, "self.cultureIcon + u\"g\""),
("GRANK_GOLD", 38, "int", None, None, 0, self.findGlobalCommerceRateRank, CommerceTypes.COMMERCE_GOLD, "self.goldIcon + u\"g\""),
("GRANK_RESEARCH", 38, "int", None, None, 0, self.findGlobalCommerceRateRank, CommerceTypes.COMMERCE_RESEARCH, "self.researchIcon + u\"g\""),
("GREATPEOPLE", 45, "int", CyCity.getGreatPeopleProgress, None, 0, None, None, "self.figureheadIcon"),
("GREATPEOPLE_RATE", 38, "int", CyCity.getGreatPeopleRate, None, 0, None, None, "self.figureheadIcon + u\"R\""),
("GREATPEOPLE_TURNS", 38, "int", None, None, None, self.calculateGreatPeopleTurns, None, "self.figureheadIcon + u\"T\""),
("GROWTH", 35, "int", None, None, 0, self.calculateGrowth, None, "self.redfoodIcon"),
("HAPPY", 30, "int", None, None, 0, self.calculateNetHappiness, None, "self.happyIcon"),
("HEALTH", 30, "int", None, None, 0, self.calculateNetHealth, None, "self.healthIcon"),
("LOCATION_X", 50, "int", CyCity.getX, None, 0, None, None, "u\"X\""),
("LOCATION_Y", 50, "int", CyCity.getY, None, 0, None, None, "u\"Y\""),
("MAINTENANCE", 30, "int", CyCity.getMaintenance, None, 0, None, None, "u\"%c\" % CyGame().getSymbolID(FontSymbols.BAD_GOLD_CHAR)"),
("POPULATION", 35, "int", CyCity.getPopulation, None, 0, None, None, "localText.getText(\"TXT_KEY_POPULATION\", ()).upper()"),
("POPULATION_REAL", 65, "int", CyCity.getRealPopulation, None, 0, None, None, "localText.getText(\"TXT_KEY_POPULATION\", ()).upper() + u\"#\""),
("POWER", 50, "text", None, None, 0, self.calculatePower, None, "self.powerIcon"),
("PRODUCING", 90, "text", None, None, 0, self.calculateProducing, None, "localText.getText(\"TXT_KEY_DOMESTIC_ADVISOR_PRODUCING\", ())"),
("PRODUCING_TURNS", 33, "int", None, None, 0, self.calculateProducingTurns, None, "self.hammerIcon + u\"T\""),
("PRODUCTION", 38, "int", None, None, 0, self.calculateProduction, None, "self.hammerIcon"),
("NRANK_BASE_COMMERCE", 42, "int", None, CyCity.findBaseYieldRateRank, YieldTypes.YIELD_COMMERCE, None, None, "u\"B\" + self.commerceIcon + u\"n\""),
("NRANK_BASE_FOOD", 42, "int", None, CyCity.findBaseYieldRateRank, YieldTypes.YIELD_FOOD, None, None, "u\"B\" + self.foodIcon + u\"n\""),
("NRANK_BASE_PRODUCTION", 42, "int", None, CyCity.findBaseYieldRateRank, YieldTypes.YIELD_PRODUCTION, None, None, "u\"B\" + self.hammerIcon + u\"n\""),
("NRANK_COMMERCE", 38, "int", None, CyCity.findYieldRateRank, YieldTypes.YIELD_COMMERCE, None, None, "self.commerceIcon + u\"n\""),
("NRANK_FOOD", 38, "int", None, CyCity.findYieldRateRank, YieldTypes.YIELD_FOOD, None, None, "self.foodIcon + u\"n\""),
("NRANK_PRODUCTION", 38, "int", None, CyCity.findYieldRateRank, YieldTypes.YIELD_PRODUCTION, None, None, "self.hammerIcon + u\"n\""),
("NRANK_CULTURE", 38, "int", None, CyCity.findCommerceRateRank, CommerceTypes.COMMERCE_CULTURE, None, None, "self.cultureIcon + u\"n\""),
("NRANK_GOLD", 38, "int", None, CyCity.findCommerceRateRank, CommerceTypes.COMMERCE_GOLD, None, None, "self.goldIcon + u\"n\""),
("NRANK_RESEARCH", 38, "int", None, CyCity.findCommerceRateRank, CommerceTypes.COMMERCE_RESEARCH, None, None, "self.researchIcon + u\"n\""),
("RELIGIONS", 90, "text", None, None, 0, self.calculateReligions, None, "localText.getText(\"TXT_KEY_ADVISOR_RELIGION\", ()).upper()"),
("RESEARCH", 38, "int", None, CyCity.getCommerceRate, CommerceTypes.COMMERCE_RESEARCH, None, None, "self.researchIcon"),
("SPECIALISTS", 209, "text", None, None, 0, self.calculateSpecialists, None, "localText.getText(\"TXT_KEY_CONCEPT_SPECIALISTS\", ()).upper()"),
("THREATS", 60, "text", None, None, 0, self.calculateThreats, None, "u\"Threats\""),
("TRADE", 30, "int", None, None, 0, self.calculateTrade, None, "self.tradeIcon"),
]