def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBCorporationScreen", CvScreenEnums.WB_CORPORATION) global iSelectedPlayer global bHeadquarter global iOwnerType if inputClass.getButtonType() == WidgetTypes.WIDGET_PYTHON: if inputClass.getData1() > 7199 and inputClass.getData1() < 7300: iCityID = inputClass.getData2() iPlayerX = inputClass.getData1() - 7200 WBCityEditScreen.WBCityEditScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).interfaceScreen(gc.getPlayer(iPlayerX).getCity(iCityID)) elif inputClass.getData1() == 7876 or inputClass.getData1() == 7872: iPlayerX = inputClass.getData2() /10000 WBPlayerScreen.WBPlayerScreen().interfaceScreen(iPlayerX) if inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData("CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: WBPlayerScreen.WBPlayerScreen().interfaceScreen(iSelectedPlayer) elif iIndex == 1: WBTeamScreen.WBTeamScreen().interfaceScreen(gc.getPlayer(iSelectedPlayer).getTeam()) elif iIndex == 8: WBReligionScreen.WBReligionScreen().interfaceScreen(iSelectedPlayer) elif iIndex == 10: WBGameDataScreen.WBGameDataScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).interfaceScreen() elif iIndex == 11: WBInfoScreen.WBInfoScreen().interfaceScreen(iSelectedPlayer) elif inputClass.getFunctionName() == "OwnerType": iOwnerType = screen.getPullDownData("OwnerType", screen.getSelectedPullDownID("OwnerType")) self.sortCities() elif inputClass.getFunctionName() == "CurrentPlayer": iSelectedPlayer = screen.getPullDownData("CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer")) self.interfaceScreen(iSelectedPlayer) elif inputClass.getFunctionName() == "WBCityCorporations": if inputClass.getData1() == 8201: pCity = lCities[inputClass.getData()][0] if bHeadquarter: self.editHeadquarter(inputClass.getData2(), pCity) else: self.editCorporation(inputClass.getData2(), pCity, 2) self.placeCityTable() elif inputClass.getFunctionName() == "WBAllCorporations": if inputClass.getButtonType() == WidgetTypes.WIDGET_PYTHON: for (loopCity, iPlayerX) in lCities: self.editCorporation(inputClass.getData2(), loopCity, inputClass.getData1() == 8201) self.placeCityTable() elif inputClass.getFunctionName() == "SetHeadquarter": bHeadquarter = not bHeadquarter sText = "<font=3b>" + CyTranslator().getText("TXT_KEY_CORPORATION_HEADQUARTERS", ()) + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if bHeadquarter: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.modifyString("SetHeadquarter", sColor + sText + "</color>", 0) return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen( "WBTechScreen", CvScreenEnums.WB_TECH) global iChangeType global bApplyAll global bNoBarb global iSelectedEra if inputClass.getFunctionName() == "TechEra": iSelectedEra = inputClass.getData() - 1 self.createTechList() self.placeTechs() elif inputClass.getFunctionName() == "CurrentTeam": iIndex = screen.getPullDownData("CurrentTeam", screen.getSelectedPullDownID("CurrentTeam")) self.interfaceScreen(iIndex) elif inputClass.getFunctionName() == "ChangeType": iChangeType = screen.getPullDownData("ChangeType", screen.getSelectedPullDownID("ChangeType")) elif inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData("CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: WBPlayerScreen.WBPlayerScreen().interfaceScreen(pTeam.getLeaderID()) elif iIndex == 1: WBTeamScreen.WBTeamScreen().interfaceScreen(iTeam) elif iIndex == 2: WBProjectScreen.WBProjectScreen().interfaceScreen(iTeam) elif iIndex == 4: WBPlayerUnits.WBPlayerUnits().interfaceScreen(pTeam.getLeaderID()) elif iIndex == 11: WBInfoScreen.WBInfoScreen().interfaceScreen(pTeam.getLeaderID()) elif inputClass.getFunctionName() == "TechAll": for item in lTech: ItemInfo = gc.getTechInfo(item[1]) if ItemInfo.isRepeat(): continue self.editTech(item[1]) self.placeTechs() elif inputClass.getFunctionName() == "WBTech": self.editTech(inputClass.getData2()) self.placeTechs() elif inputClass.getFunctionName() == "ApplyAll": bApplyAll = not bApplyAll sText = u"<font=3b>" + CyTranslator().getText("TXT_KEY_WB_COPY_ALL", (CyTranslator().getText("TXT_KEY_MAIN_MENU_PLAYERS", ()),)) + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if bApplyAll: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.modifyString("ApplyAll", sColor + sText + "</color>", 0) elif inputClass.getFunctionName() == "NoBarbarians": bNoBarb = not bNoBarb sText = u"<font=3b>" + CyTranslator().getText("TXT_KEY_GAME_OPTION_NO_BARBARIANS", ()) + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if bNoBarb: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.modifyString("NoBarbarians", sColor + sText + "</color>", 0) return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBPlayerUnits", CvScreenEnums.WB_UNITLIST) global iCityID global iUnitID if inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: WBPlayerScreen.WBPlayerScreen().interfaceScreen(iPlayer) elif iIndex == 1: WBTeamScreen.WBTeamScreen().interfaceScreen(iTeam) elif iIndex == 2: WBProjectScreen.WBProjectScreen().interfaceScreen(iTeam) elif iIndex == 3: WBTechScreen.WBTechScreen().interfaceScreen(iTeam) elif iIndex == 11: WBInfoScreen.WBInfoScreen().interfaceScreen(iPlayer) elif inputClass.getFunctionName() == "CurrentPlayer": iIndex = screen.getPullDownData( "CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer")) iCityID = 0 iUnitID = 0 self.interfaceScreen(iIndex) elif inputClass.getFunctionName() == "WBCityList": iCityID = inputClass.getData2() if inputClass.getData1() == 1030: WBCityEditScreen.WBCityEditScreen().interfaceScreen( pPlayer.getCity(iCityID)) elif inputClass.getData1() == 1031: pPlayer.getCity(iCityID).kill() self.setCityTable() else: self.placeCityMap() elif inputClass.getFunctionName() == "DeleteAllCities": pPlayer.killCities() self.setCityTable() elif inputClass.getFunctionName() == "WBUnitList": iUnitID = inputClass.getData2() if inputClass.getData1() == 1030: WBUnitScreen.WBUnitScreen( CvPlatyBuilderScreen.CvWorldBuilderScreen( )).interfaceScreen(pPlayer.getUnit(iUnitID)) elif inputClass.getData1() == 1031: pPlayer.getUnit(iUnitID).kill(false, PlayerTypes.NO_PLAYER) self.setUnitTable() else: self.placeUnitMap() elif inputClass.getFunctionName() == "DeleteAllUnits": pPlayer.killUnits() self.setUnitTable() return
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBBuildingScreen", CvScreenEnums.WB_BUILDING) global bApplyAll global iSelectedClass global iChangeType global iOwnerType global iPlotType if inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: WBCityEditScreen.WBCityEditScreen( self.WB).interfaceScreen(pCity) elif iIndex == 1: WBCityDataScreen.WBCityDataScreen( self.WB).interfaceScreen(pCity) elif iIndex == 3: WBPlayerScreen.WBPlayerScreen(self.WB).interfaceScreen(iPlayer) elif iIndex == 4: WBTeamScreen.WBTeamScreen(self.WB).interfaceScreen( pCity.getTeam()) elif iIndex == 5: WBPlayerUnits.WBPlayerUnits(self.WB).interfaceScreen(iPlayer) elif iIndex == 6: WBPlotScreen.WBPlotScreen(self.WB).interfaceScreen( pCity.plot()) elif iIndex == 7: WBEventScreen.WBEventScreen(self.WB).interfaceScreen( pCity.plot()) elif iIndex == 8: WBReligionScreen.WBReligionScreen( self.WB).interfaceScreen(iPlayer) elif iIndex == 9: WBCorporationScreen.WBCorporationScreen( self.WB).interfaceScreen(iPlayer) elif iIndex == 11: WBInfoScreen.WBInfoScreen(self.WB).interfaceScreen(iPlayer) elif inputClass.getFunctionName() == "OwnerType": iOwnerType = screen.getPullDownData( "OwnerType", screen.getSelectedPullDownID("OwnerType")) self.sortCities() elif inputClass.getFunctionName() == "PlotType": iPlotType = screen.getPullDownData( "PlotType", screen.getSelectedPullDownID("PlotType")) self.sortCities() elif inputClass.getFunctionName() == "ChangeType": iChangeType = screen.getPullDownData( "ChangeType", screen.getSelectedPullDownID("ChangeType")) elif inputClass.getFunctionName() == "CurrentCity": iPlayerX = inputClass.getData1() - 7200 pPlayerX = GC.getPlayer(iPlayerX) if pPlayerX: self.interfaceScreen(pPlayerX.getCity(inputClass.getData2())) elif inputClass.getFunctionName() == "WBBuilding": bUpdate = self.editBuilding(inputClass.getData1(), GC.getPlayer(iPlayer), False, False) self.placeBuildings() if bUpdate: self.placeWonders() elif inputClass.getFunctionName() == "BuildingAvailable": bUpdate = False for item in lBuilding: bTemp = self.editBuilding(item[1], GC.getPlayer(iPlayer), True, False) bUpdate = bUpdate or bTemp self.placeBuildings() if bUpdate: self.placeWonders() elif inputClass.getFunctionName() == "BuildingAll": bUpdate = False for item in lBuilding: bTemp = self.editBuilding(item[1], GC.getPlayer(iPlayer), False, False) bUpdate = bUpdate or bTemp self.placeBuildings() if bUpdate: self.placeWonders() elif inputClass.getFunctionName() == "WonderClass": iSelectedClass = inputClass.getData() self.placeWonders() elif inputClass.getFunctionName() == "WBWonders": bUpdate = self.editBuilding(inputClass.getData1(), GC.getPlayer(iPlayer), False, True) self.placeWonders() if bUpdate: self.placeBuildings() elif inputClass.getFunctionName() == "WonderAvailable": bUpdate = False lList = lWorld if iSelectedClass == 0: lList = lNational + lTeam + lWorld elif iSelectedClass == 1: lList = lNational elif iSelectedClass == 2: lList = lTeam for item in lList: bTemp = self.editBuilding(item[1], GC.getPlayer(iPlayer), True, True) bUpdate = bUpdate or bTemp self.placeWonders() if bUpdate: self.placeBuildings() elif inputClass.getFunctionName() == "WonderAll": bUpdate = False lList = lWorld if iSelectedClass == 0: lList = lNational + lTeam + lWorld elif iSelectedClass == 1: lList = lNational elif iSelectedClass == 2: lList = lTeam for item in lList: bTemp = self.editBuilding(item[1], GC.getPlayer(iPlayer), False, True) bUpdate = bUpdate or bTemp self.placeWonders() if bUpdate: self.placeBuildings() elif inputClass.getFunctionName() == "ApplyAll": bApplyAll = not bApplyAll sText = u"<font=3b>" + CyTranslator().getText( "TXT_KEY_WB_COPY_ALL", (CyTranslator().getText("TXT_KEY_CONCEPT_CITIES", ()), )) + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if bApplyAll: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.modifyString("ApplyAll", sColor + sText + "</color>", 0) return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBReligionScreen", CvScreenEnums.WB_RELIGION) global bHoly global iSelectedPlayer global iOwnerType global iPlotType if inputClass.getButtonType() == WidgetTypes.WIDGET_PYTHON: if inputClass.getData1() > 7199 and inputClass.getData1() < 7300: iCityID = inputClass.getData2() iPlayerX = inputClass.getData1() - 7200 WBCityEditScreen.WBCityEditScreen(self.WB).interfaceScreen( GC.getPlayer(iPlayerX).getCity(iCityID)) elif inputClass.getData1() == 7876 or inputClass.getData1( ) == 7872: iPlayerX = inputClass.getData2() / 10000 WBPlayerScreen.WBPlayerScreen( self.WB).interfaceScreen(iPlayerX) if inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: WBPlayerScreen.WBPlayerScreen( self.WB).interfaceScreen(iSelectedPlayer) elif iIndex == 1: WBTeamScreen.WBTeamScreen(self.WB).interfaceScreen( GC.getPlayer(iSelectedPlayer).getTeam()) elif iIndex == 9: WBCorporationScreen.WBCorporationScreen( self.WB).interfaceScreen(iSelectedPlayer) elif iIndex == 10: self.WB.goToSubScreen("GameScreen") elif iIndex == 11: WBInfoScreen.WBInfoScreen( self.WB).interfaceScreen(iSelectedPlayer) elif inputClass.getFunctionName() == "OwnerType": iOwnerType = screen.getPullDownData( "OwnerType", screen.getSelectedPullDownID("OwnerType")) self.sortCities() elif inputClass.getFunctionName() == "CurrentPlayer": iSelectedPlayer = screen.getPullDownData( "CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer")) self.interfaceScreen(iSelectedPlayer) elif inputClass.getFunctionName() == "WBCityReligions": if inputClass.getButtonType() == WidgetTypes.WIDGET_HELP_RELIGION: iCityID = inputClass.getData2() / 100 iPlayerX = inputClass.getData2() % 100 pPlayerX = GC.getPlayer(iPlayerX) if pPlayerX: pCity = pPlayerX.getCity(iCityID) if pCity: if bHoly: self.editHolyCity(inputClass.getData1(), pCity) else: self.editReligion(inputClass.getData1(), pCity, 2) self.placeCityTable() elif inputClass.getFunctionName() == "WBAllReligions": if inputClass.getButtonType() == WidgetTypes.WIDGET_HELP_RELIGION: for (loopCity, iPlayerX) in lCities: self.editReligion(inputClass.getData1(), loopCity, inputClass.getData2() == 1) self.placeCityTable() elif inputClass.getFunctionName() == "SetHoly": bHoly = not bHoly sText = "<font=3b>" + CyTranslator().getText( "TXT_KEY_RELIGION_SCREEN_HOLY_CITY", ())[:-1] + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if bHoly: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.modifyString("SetHoly", sColor + sText + "</color>", 0) return 1
def handleInput(self, inputClass, screen): HandleInputUtil.debugInput(inputClass) iCode = inputClass.eNotifyCode iData = inputClass.iData ID = inputClass.iItemID NAME = inputClass.szFunctionName szFlag = HandleInputUtil.MOUSE_FLAGS.get(inputClass.uiFlags, "UNKNOWN") if iCode == 6: # Character if iData == 1: self.exit(screen) return 1 return 0 elif iCode in (16, 17): return 0 szSplit = NAME.split("|") BASE = szSplit[0] if szSplit[1:]: TYPE = szSplit[1] else: TYPE = "" if szSplit[2:]: CASE = szSplit[2:] else: CASE = [""] if iCode == 4: # Mouse Enter if BASE == "TECH": self.WB.tooltip.handle( screen, CyGameTextMgr().getTechHelp(ID, False, True, False, True, -1)) elif not iCode: # click if BASE == "BTN": if TYPE == "AllTechs": bValue = CASE[0] == "Plus" for info, iTech in self.listedTechs: self.editTech(screen, iTech, bValue) elif TYPE == "AllPlayers": self.bAllPlayers = not self.bAllPlayers if self.bAllPlayers: txt = self.positive else: txt = self.negative txt += "<font=3b>" + self.sAllPlayers STR = "BTN|AllPlayers0" screen.hide(STR) screen.modifyString(STR, txt, 0) screen.show(STR) elif TYPE == "NoNPC": self.bNoNPC = not self.bNoNPC if self.bNoNPC: txt = self.positive else: txt = self.negative txt += "<font=3b>" + self.sNotNPC STR = "BTN|NoNPC0" screen.hide(STR) screen.modifyString(STR, txt, 0) screen.show(STR) elif inputClass.iData1 == 999: if szFlag == "MOUSE_RBUTTONUP": bValue = False else: bValue = True self.editTech(screen, inputClass.iData2, bValue) elif NAME == "TECH|IMG": pediaJumpToTech([ID]) elif NAME == "ExitSubScreen": self.exit(screen) elif iCode == 11: # List Select if NAME == "TechEra": self.iSelectedEra = screen.getPullDownData(NAME, iData) self.placeTechs(screen) elif NAME == "CurrentTeam": self.iTeam = screen.getPullDownData(NAME, iData) self.pTeam = GC.getTeam(self.iTeam) self.placeTechs(screen) elif NAME == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: self.exit(screen) import WBPlayerScreen WBPlayerScreen.WBPlayerScreen(self.WB).interfaceScreen( self.pTeam.getLeaderID()) elif iIndex == 1: self.exit(screen) import WBTeamScreen WBTeamScreen.WBTeamScreen(self.WB).interfaceScreen( self.WB.m_iCurrentTeam) elif iIndex == 2: self.exit(screen) import WBProjectScreen WBProjectScreen.WBProjectScreen(self.WB).interfaceScreen( self.WB.m_iCurrentTeam) elif iIndex == 4: self.exit(screen) import WBPlayerUnits WBPlayerUnits.WBPlayerUnits(self.WB).interfaceScreen( self.pTeam.getLeaderID()) elif iIndex == 11: self.exit(screen) import WBInfoScreen WBInfoScreen.WBInfoScreen(self.WB).interfaceScreen( self.pTeam.getLeaderID()) return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBPromotionScreen", CvScreenEnums.WB_PROMOTION) global bApplyAll global iChangeType global iPlotType global iCopyType global iOwnerType global iSelectedClass if inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: WBUnitScreen.WBUnitScreen(self.WB).interfaceScreen(pUnit) elif iIndex == 2: WBPlayerScreen.WBPlayerScreen(self.WB).interfaceScreen( pUnit.getOwner()) elif iIndex == 3: WBTeamScreen.WBTeamScreen(self.WB).interfaceScreen( pUnit.getTeam()) elif iIndex == 4: WBPlotScreen.WBPlotScreen(self.WB).interfaceScreen(pPlot) elif iIndex == 5: WBEventScreen.WBEventScreen(self.WB).interfaceScreen(pPlot) elif iIndex == 6: WBPlayerUnits.WBPlayerUnits(self.WB).interfaceScreen( pUnit.getOwner()) elif iIndex == 11: WBInfoScreen.WBInfoScreen(self.WB).interfaceScreen( pUnit.getOwner()) elif inputClass.getFunctionName() == "ChangeType": iChangeType = screen.getPullDownData( "ChangeType", screen.getSelectedPullDownID("ChangeType")) elif inputClass.getFunctionName() == "OwnerType": iOwnerType = screen.getPullDownData( "OwnerType", screen.getSelectedPullDownID("OwnerType")) self.sortUnits() elif inputClass.getFunctionName() == "PlotType": iPlotType = screen.getPullDownData( "PlotType", screen.getSelectedPullDownID("PlotType")) self.sortUnits() elif inputClass.getFunctionName() == "CopyType": iCopyType = screen.getPullDownData( "CopyType", screen.getSelectedPullDownID("CopyType")) self.sortUnits() elif inputClass.getFunctionName() == "WBCurrentUnit": iPlayer = inputClass.getData1() - 8300 self.interfaceScreen( GC.getPlayer(iPlayer).getUnit(inputClass.getData2())) elif inputClass.getFunctionName() == "CombatClass": iSelectedClass = screen.getPullDownData( "CombatClass", screen.getSelectedPullDownID("CombatClass")) self.sortPromotions() elif inputClass.getFunctionName() == "WBPromotion": self.editPromotion(inputClass.getData2()) self.placePromotions() elif inputClass.getFunctionName() == "PromotionAll": for item in lList: self.editPromotion(item[1]) self.placePromotions() elif inputClass.getFunctionName() == "ApplyAll": bApplyAll = not bApplyAll sText = u"<font=3b>" + CyTranslator().getText( "TXT_KEY_WB_COPY_ALL", (CyTranslator().getText("TXT_KEY_PEDIA_CATEGORY_UNIT", ()), )) + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if bApplyAll: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.modifyString("ApplyAll", sColor + sText + "</color>", 0) return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBPlayerUnits", CvScreenEnums.WB_UNITLIST) global iCityID global iUnitID global iCopyType global iOwnerType global iPlotType global iActivityType global iPlayer global iCityOwner global iUnitOwner pPlayer = GC.getPlayer(iPlayer) pUnitOwner = GC.getPlayer(iUnitOwner) pCityOwner = GC.getPlayer(iCityOwner) sName = inputClass.getFunctionName() if sName == "CurrentPage": iIndex = screen.getPullDownData("CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: WBPlayerScreen.WBPlayerScreen(self.WB).interfaceScreen(iPlayer) elif iIndex == 1: WBTeamScreen.WBTeamScreen(self.WB).interfaceScreen(pPlayer.getTeam()) elif iIndex == 2: WBProjectScreen.WBProjectScreen(self.WB).interfaceScreen(pPlayer.getTeam()) elif iIndex == 3: self.WB.goToSubScreen("TechScreen") elif iIndex == 11: WBInfoScreen.WBInfoScreen(self.WB).interfaceScreen(iPlayer) elif iIndex == 5: WBUnitScreen.WBUnitScreen(self.WB).interfaceScreen(pUnitOwner.getUnit(iUnitID)) elif iIndex == 6: WBPromotionScreen.WBPromotionScreen(self.WB).interfaceScreen(pUnitOwner.getUnit(iUnitID)) elif iIndex == 7: WBPlotScreen.WBPlotScreen(self.WB).interfaceScreen(pUnitOwner.getUnit(iUnitID).plot()) elif iIndex == 8: WBEventScreen.WBEventScreen(self.WB).interfaceScreen(pUnitOwner.getUnit(iUnitID).plot()) elif iIndex == 9: WBCityEditScreen.WBCityEditScreen(self.WB).interfaceScreen(pCityOwner.getCity(iCityID)) elif iIndex == 10: WBCityDataScreen.WBCityDataScreen(self.WB).interfaceScreen(pCityOwner.getCity(iCityID)) elif iIndex == 14: WBBuildingScreen.WBBuildingScreen(self.WB).interfaceScreen(pCityOwner.getCity(iCityID)) elif iIndex == 12: WBPlotScreen.WBPlotScreen(self.WB).interfaceScreen(pCityOwner.getCity(iCityID).plot()) elif iIndex == 13: WBEventScreen.WBEventScreen(self.WB).interfaceScreen(pCityOwner.getCity(iCityID).plot()) elif sName == "CurrentPlayer": iIndex = screen.getPullDownData("CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer")) iCityID = -1 iUnitID = -1 self.interfaceScreen(iIndex) elif sName == "OwnerType": iOwnerType = screen.getPullDownData("OwnerType", screen.getSelectedPullDownID("OwnerType")) if iCityOwner != iPlayer: iCityID = -1 if iUnitOwner != iPlayer: iUnitID = -1 self.sortCities() self.sortUnits() elif sName == "PlotType": iPlotType = screen.getPullDownData("PlotType", screen.getSelectedPullDownID("PlotType")) if iCityOwner != iPlayer: iCityID = -1 if iUnitOwner != iPlayer: iUnitID = -1 self.sortCities() self.sortUnits() elif sName == "CopyType": iCopyType = screen.getPullDownData("CopyType", screen.getSelectedPullDownID("CopyType")) self.sortUnits() screen.hide("ActivityType") if iCopyType == 5: screen.show("ActivityType") elif sName == "ActivityType": iActivityType = screen.getPullDownData("ActivityType", screen.getSelectedPullDownID("ActivityType")) self.sortUnits() elif sName == "GoToCity": WBCityEditScreen.WBCityEditScreen(self.WB).interfaceScreen(pCityOwner.getCity(iCityID)) elif sName == "GoToUnit": WBUnitScreen.WBUnitScreen(self.WB).interfaceScreen(pUnitOwner.getUnit(iUnitID)) elif sName == "WBCityList": if inputClass.getData1() == 7872: iCityOwner = inputClass.getData2() /10000 WBPlayerScreen.WBPlayerScreen(self.WB).interfaceScreen(iCityOwner) else: iCityID = inputClass.getData2() iCityOwner = inputClass.getData1() - 7200 self.placeCurrentCity() self.placeCityMap() elif sName == "DeleteCurrentCity": if pCityOwner: pCity = pCityOwner.getCity(iCityID) if not pCity: pCity.kill() iCityID = -1 self.sortCities() self.addPageSwitch() elif sName == "DeleteAllCities": for item in lCities: pPlayerX = GC.getPlayer(item[0]) pPlayerX.getCity(item[1]).kill() iCityID = -1 self.sortCities() self.addPageSwitch() elif sName == "WBUnitList": if inputClass.getData1() == 1043: return elif inputClass.getData1() == 7872: iUnitOwner = inputClass.getData2() /10000 WBPlayerScreen.WBPlayerScreen(self.WB).interfaceScreen(iUnitOwner) else: iUnitID = inputClass.getData2() iUnitOwner = inputClass.getData1() - 8300 self.placeCurrentUnit() self.placeUnitMap() elif sName == "DeleteCurrentUnit": if pUnitOwner: pUnit = pUnitOwner.getUnit(iUnitID) if not pUnit.isNone(): pUnit.kill(False, PlayerTypes.NO_PLAYER) iUnitID = -1 self.sortUnits() self.addPageSwitch() elif sName == "DeleteAllUnits": for item in lUnits: pPlayerX = GC.getPlayer(item[0]) pPlayerX.getUnit(item[1]).kill(False, PlayerTypes.NO_PLAYER) iUnitID = -1 self.sortUnits() self.addPageSwitch() elif sName == "EndCurrentUnit": if pUnitOwner: pUnit = pUnitOwner.getUnit(iUnitID) if not pUnit.isNone(): pUnit.finishMoves() self.placeCurrentUnit() elif sName == "EndAllUnits": for item in lUnits: pPlayerX = GC.getPlayer(item[0]) pPlayerX.getUnit(item[1]).finishMoves() self.placeCurrentUnit() return
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBEventScreen", CvScreenEnums.WB_EVENT) global iSelectedEvent global iEventPlayer global iOtherPlayer global iOtherCity global iSelectedReligion global iSelectedCorporation global iSelectedUnit global iSelectedBuilding if inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: WBPlotScreen.WBPlotScreen(self.WB).interfaceScreen(pPlot) elif iIndex == 2: WBPlayerScreen.WBPlayerScreen(self.WB).interfaceScreen( pPlot.getOwner()) elif iIndex == 3: WBTeamScreen.WBTeamScreen(self.WB).interfaceScreen( pPlot.getTeam()) elif iIndex == 4: if pPlot.isCity(): WBCityEditScreen.WBCityEditScreen(self.WB).interfaceScreen( pPlot.getPlotCity()) elif iIndex == 5: if iSelectedUnit > -1 and iEventPlayer > -1: pUnit = GC.getPlayer(iEventPlayer).getUnit(iSelectedUnit) else: pUnit = pPlot.getUnit(0) if pUnit: WBUnitScreen.WBUnitScreen(self.WB).interfaceScreen(pUnit) elif iIndex == 11: iPlayer = pPlot.getOwner() if iPlayer == -1: iPlayer = CyGame().getActivePlayer() WBInfoScreen.WBInfoScreen(self.WB).interfaceScreen(iPlayer) elif inputClass.getFunctionName() == "WBEvent": iSelectedEvent = inputClass.getData2() self.placeEvents() elif inputClass.getFunctionName() == "WBEventPlayer": if inputClass.getData1() == 7876 or inputClass.getData1() == 7872: iEventPlayer = inputClass.getData2() / 10000 iSelectedUnit = -1 if iEventPlayer == iOtherPlayer: iOtherPlayer = -1 iOtherCity = -1 self.placeEventPlayers() self.placeOtherPlayers() self.placeOtherCities() self.placeUnits() elif inputClass.getFunctionName() == "WBOtherPlayer": if inputClass.getData1() == 7876 or inputClass.getData1() == 7872: iTemp = inputClass.getData2() / 10000 if iOtherPlayer == iTemp: iOtherPlayer = -1 else: iOtherPlayer = iTemp iOtherCity = -1 self.placeOtherPlayers() self.placeOtherCities() elif inputClass.getFunctionName() == "WBOtherCity": iTemp = inputClass.getData2() if iOtherCity == iTemp: iOtherCity = -1 else: iOtherCity = iTemp self.placeOtherCities() elif inputClass.getFunctionName() == "WBEventReligion": iTemp = inputClass.getData1() if iSelectedReligion == iTemp: iSelectedReligion = -1 else: iSelectedReligion = iTemp self.placeReligions() elif inputClass.getFunctionName() == "WBEventCorporation": iTemp = inputClass.getData2() if iSelectedCorporation == iTemp: iSelectedCorporation = -1 else: iSelectedCorporation = iTemp self.placeCorporations() elif inputClass.getFunctionName() == "WBEventBuilding": iTemp = inputClass.getData1() if iSelectedBuilding == iTemp: iSelectedBuilding = -1 else: iSelectedBuilding = iTemp self.placeBuildings() elif inputClass.getFunctionName() == "WBEventUnit": if inputClass.getData1() > 8299 and inputClass.getData1() < 8400: iUnit = inputClass.getData2() if iSelectedUnit == iUnit: iSelectedUnit = -1 else: iSelectedUnit = iUnit iEventPlayer = inputClass.getData1() - 8300 if iEventPlayer == iOtherPlayer: iOtherPlayer = -1 iOtherCity = -1 self.placeEventPlayers() self.placeOtherPlayers() self.placeOtherCities() self.placeUnits() elif inputClass.getFunctionName() == "TriggerEvent": if iEventPlayer == -1: return pPlayer = GC.getPlayer(iEventPlayer) iCity = -1 if pPlot.isCity(): iCity = pPlot.getPlotCity().getID() triggerData = pPlayer.initTriggeredData( iSelectedEvent, True, iCity, pPlot.getX(), pPlot.getY(), iOtherPlayer, iOtherCity, iSelectedReligion, iSelectedCorporation, iSelectedUnit, iSelectedBuilding) screen.hideScreen() return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBPlayerScreen", CvScreenEnums.WB_PLAYER) global iChange if inputClass.getFunctionName() == "ChangeBy": iChange = screen.getPullDownData( "ChangeBy", screen.getSelectedPullDownID("ChangeBy")) elif inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 1: WBTeamScreen.WBTeamScreen().interfaceScreen(iTeam) elif iIndex == 2: WBProjectScreen.WBProjectScreen().interfaceScreen(iTeam) elif iIndex == 3: WBTechScreen.WBTechScreen().interfaceScreen(iTeam) elif iIndex == 4: WBPlayerUnits.WBPlayerUnits().interfaceScreen(iPlayer) elif iIndex == 8: WBReligionScreen.WBReligionScreen().interfaceScreen(iPlayer) elif iIndex == 9: WBCorporationScreen.WBCorporationScreen().interfaceScreen( iPlayer) elif iIndex == 11: WBInfoScreen.WBInfoScreen().interfaceScreen(iPlayer) elif inputClass.getFunctionName() == "CurrentPlayer": iIndex = screen.getPullDownData( "CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer")) self.interfaceScreen(iIndex) elif inputClass.getFunctionName() == "CurrentEra": pPlayer.setCurrentEra( screen.getPullDownData( "CurrentEra", screen.getSelectedPullDownID("CurrentEra"))) elif inputClass.getFunctionName().find("PlayerGold") > -1: if inputClass.getData1() == 1030: pPlayer.changeGold(iChange) elif inputClass.getData1() == 1031: pPlayer.changeGold(-min(iChange, pPlayer.getGold())) self.placeStats() elif inputClass.getFunctionName().find("CombatXP") > -1: if inputClass.getData1() == 1030: pPlayer.changeCombatExperience( min( iChange, pPlayer.greatPeopleThreshold(True) - pPlayer.getCombatExperience())) elif inputClass.getData1() == 1031: pPlayer.changeCombatExperience( -min(iChange, pPlayer.getCombatExperience())) self.placeStats() elif inputClass.getFunctionName().find("GoldenAge") > -1: if inputClass.getData1() == 1030: pPlayer.changeGoldenAgeTurns(iChange) elif inputClass.getData1() == 1031: pPlayer.changeGoldenAgeTurns( -min(iChange, pPlayer.getGoldenAgeTurns())) self.placeStats() elif inputClass.getFunctionName().find("GPRequired") > -1: if inputClass.getData1() == 1030: pPlayer.changeNumUnitGoldenAges(iChange) elif inputClass.getData1() == 1031: pPlayer.changeNumUnitGoldenAges( -min(iChange, pPlayer.unitsRequiredForGoldenAge() - 1)) self.placeStats() elif inputClass.getFunctionName().find("Anarchy") > -1: if inputClass.getData1() == 1030: pPlayer.changeAnarchyTurns(iChange) elif inputClass.getData1() == 1031: pPlayer.changeAnarchyTurns( -min(iChange, pPlayer.getAnarchyTurns())) self.placeStats() elif inputClass.getFunctionName().find("CoastalTrade") > -1: if inputClass.getData1() == 1030: pPlayer.changeCoastalTradeRoutes( min( iChange, gc.getDefineINT("MAX_TRADE_ROUTES") - pPlayer.getCoastalTradeRoutes())) elif inputClass.getData1() == 1031: pPlayer.changeCoastalTradeRoutes( -min(iChange, pPlayer.getCoastalTradeRoutes())) self.placeStats() elif inputClass.getFunctionName().find("CommerceFlexible") > -1: iCommerce = CommerceTypes(inputClass.getData2()) if inputClass.getData1() == 1030: if pPlayer.isCommerceFlexible(iCommerce): pPlayer.changeCommercePercent(iCommerce, iChange) elif inputClass.getData1() == 1031: if pPlayer.isCommerceFlexible(iCommerce): pPlayer.changeCommercePercent( iCommerce, -min(iChange, pPlayer.getCommercePercent(iCommerce))) elif inputClass.getData1() == 7881: if pPlayer.isCommerceFlexible(iCommerce): pTeam.changeCommerceFlexibleCount( iCommerce, -pTeam.getCommerceFlexibleCount(iCommerce)) else: pTeam.changeCommerceFlexibleCount(iCommerce, 1) self.placeStats() elif inputClass.getFunctionName() == "WBPlayerResearch": iTech = inputClass.getData2() if iTech == -1: pPlayer.clearResearchQueue() else: pPlayer.pushResearch(iTech, True) self.interfaceScreen(iPlayer) elif inputClass.getFunctionName().find("CurrentResearch") > -1: iTech = pPlayer.getCurrentResearch() if iTech > -1: if inputClass.getData1() == 1030: pTeam.changeResearchProgress( pPlayer.getCurrentResearch(), min( iChange, pTeam.getResearchCost(iTech) - pTeam.getResearchProgress(iTech)), iPlayer) elif inputClass.getData1() == 1031: pTeam.changeResearchProgress( pPlayer.getCurrentResearch(), -min(iChange, pTeam.getResearchProgress(iTech)), iPlayer) self.placeResearch() elif inputClass.getFunctionName() == "WBPlayerReligions": iReligion = inputClass.getData1() pPlayer.setLastStateReligion(inputClass.getData1()) self.placeReligions() elif inputClass.getFunctionName().find("StateReligionUnit") > -1: if inputClass.getData1() == 1030: pPlayer.changeStateReligionUnitProductionModifier(iChange) elif inputClass.getData1() == 1031: pPlayer.changeStateReligionUnitProductionModifier(-min( iChange, pPlayer.getStateReligionUnitProductionModifier())) self.placeReligions() elif inputClass.getFunctionName().find("StateReligionBuilding") > -1: if inputClass.getData1() == 1030: pPlayer.changeStateReligionBuildingProductionModifier(iChange) elif inputClass.getData1() == 1031: pPlayer.changeStateReligionBuildingProductionModifier( -min(iChange, pPlayer.getStateReligionBuildingProductionModifier())) self.placeReligions() elif inputClass.getFunctionName() == "WBPlayerCivics": iCivic = inputClass.getData2() if pPlayer.canDoCivics(iCivic): pPlayer.setCivics( gc.getCivicInfo(iCivic).getCivicOptionType(), iCivic) self.interfaceScreen(iPlayer) elif inputClass.getFunctionName() == "PlayerEditScriptData": popup = Popup.PyPopup(1111, EventContextTypes.EVENTCONTEXT_ALL) popup.setHeaderString(CyTranslator().getText( "TXT_KEY_WB_SCRIPT", ())) popup.setUserData((pPlayer.getID(), )) popup.createEditBox(pPlayer.getScriptData()) popup.launch() return return 1
WB_PLOT: WBPlotScreen.WBPlotScreen(), WB_EVENT: WBEventScreen.WBEventScreen(), WB_BUILDING: WBBuildingScreen.WBBuildingScreen(), WB_CITYDATA: WBCityDataScreen.WBCityDataScreen(), WB_CITYEDIT: WBCityEditScreen.WBCityEditScreen(worldBuilderScreen), WB_TECH: WBTechScreen.WBTechScreen(), WB_PROJECT: WBProjectScreen.WBProjectScreen(), WB_TEAM: WBTeamScreen.WBTeamScreen(), WB_PLAYER: WBPlayerScreen.WBPlayerScreen(), WB_UNIT: WBUnitScreen.WBUnitScreen(worldBuilderScreen), WB_PROMOTION: WBPromotionScreen.WBPromotionScreen(), WB_DIPLOMACY: WBDiplomacyScreen.WBDiplomacyScreen(), WB_GAMEDATA: WBGameDataScreen.WBGameDataScreen(worldBuilderScreen), WB_UNITLIST: WBPlayerUnits.WBPlayerUnits(), WB_RELIGION: WBReligionScreen.WBReligionScreen(), WB_CORPORATION:
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBCityDataScreen", CvScreenEnums.WB_CITYDATA) global iChange global iOwnerType global iPlotType global bRemove global iSelectedClass global bWonder global iModifyBuilding global iSelectedYield if inputClass.getFunctionName() == "ChangeBy": iChange = screen.getPullDownData( "ChangeBy", screen.getSelectedPullDownID("ChangeBy")) elif inputClass.getFunctionName() == "ChangeType": bRemove = not bRemove elif inputClass.getFunctionName() == "CurrentCity": iPlayerX = inputClass.getData1() - 7200 pPlayerX = GC.getPlayer(iPlayerX) if pPlayerX: self.interfaceScreen(pPlayerX.getCity(inputClass.getData2())) elif inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: WBCityEditScreen.WBCityEditScreen( self.WB).interfaceScreen(pCity) elif iIndex == 2: WBBuildingScreen.WBBuildingScreen( self.WB).interfaceScreen(pCity) elif iIndex == 3: WBPlayerScreen.WBPlayerScreen(self.WB).interfaceScreen(iPlayer) elif iIndex == 4: WBTeamScreen.WBTeamScreen(self.WB).interfaceScreen( pCity.getTeam()) elif iIndex == 5: WBPlayerUnits.WBPlayerUnits(self.WB).interfaceScreen(iPlayer) elif iIndex == 6: WBPlotScreen.WBPlotScreen(self.WB).interfaceScreen( pCity.plot()) elif iIndex == 7: WBEventScreen.WBEventScreen(self.WB).interfaceScreen( pCity.plot()) elif iIndex == 8: WBReligionScreen.WBReligionScreen( self.WB).interfaceScreen(iPlayer) elif iIndex == 9: WBCorporationScreen.WBCorporationScreen( self.WB).interfaceScreen(iPlayer) elif iIndex == 11: WBInfoScreen.WBInfoScreen(self.WB).interfaceScreen(iPlayer) elif inputClass.getFunctionName() == "OwnerType": iOwnerType = screen.getPullDownData( "OwnerType", screen.getSelectedPullDownID("OwnerType")) self.sortCities() elif inputClass.getFunctionName() == "PlotType": iPlotType = screen.getPullDownData( "PlotType", screen.getSelectedPullDownID("PlotType")) self.sortCities() elif inputClass.getFunctionName() == "SpecialistAll": for item in xrange(GC.getNumSpecialistInfos()): self.editFreeSpecialist(item) self.placeSpecialist() elif inputClass.getFunctionName() == "WBSpecialist": self.editFreeSpecialist(inputClass.getData2()) self.placeSpecialist() elif inputClass.getFunctionName() == "GreatPeopleProgressAll": for item in lGreatPeople: self.editGreatPeopleProgress(item[1]) self.placeGreatPeople() elif inputClass.getFunctionName().find("GreatPeopleFlat") > -1: if inputClass.getData1() == 1030: self.editGreatPeopleFlat(iChange) elif inputClass.getData1() == 1031: self.editGreatPeopleFlat(-iChange) self.placeGreatPeople() elif inputClass.getFunctionName().find("GreatPeopleRate") > -1: if inputClass.getData1() == 1030: self.editGreatPeopleRate(iChange) elif inputClass.getData1() == 1031: self.editGreatPeopleRate(-iChange) self.placeSpecialist() elif inputClass.getFunctionName() == "WBGreatPeople": self.editGreatPeopleProgress(inputClass.getData2()) self.placeGreatPeople() elif inputClass.getFunctionName() == "BonusClass": iSelectedClass = inputClass.getData() - 1 self.createBonusList() self.placeBonus() elif inputClass.getFunctionName() == "BonusAll": for item in lBonus: self.editFreeBonus(item[1]) self.placeBonus() elif inputClass.getFunctionName() == "WBBonus": if inputClass.getData1() == 7878: self.editFreeBonus(inputClass.getData2()) else: self.setNoBonusCB(inputClass.getData2()) self.placeBonus() elif inputClass.getFunctionName() == "BuildingType": bWonder = not bWonder self.sortBuildings() elif inputClass.getFunctionName() == "YieldType": iSelectedYield = screen.getPullDownData( "YieldType", screen.getSelectedPullDownID("YieldType")) elif inputClass.getFunctionName() == "WBModifyBuilding": self.modifyBuilding(inputClass.getData1()) self.placeModify() return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBCorporationScreen", CvScreenEnums.WB_CORPORATION) global iSelectedPlayer global bHeadquarter if inputClass.getButtonType() == WidgetTypes.WIDGET_PYTHON: if inputClass.getData1() > 7199 and inputClass.getData1() < 7300: iCityID = inputClass.getData2() iPlayerX = inputClass.getData1() - 7200 WBCityEditScreen.WBCityEditScreen().interfaceScreen( gc.getPlayer(iPlayerX).getCity(iCityID)) elif inputClass.getData1() == 7876 or inputClass.getData1( ) == 7872: iPlayerX = inputClass.getData2() / 10000 WBPlayerScreen.WBPlayerScreen().interfaceScreen(iPlayerX) if inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: WBPlayerScreen.WBPlayerScreen().interfaceScreen( iSelectedPlayer) elif iIndex == 1: WBTeamScreen.WBTeamScreen().interfaceScreen( gc.getPlayer(iSelectedPlayer).getTeam()) elif iIndex == 8: WBReligionScreen.WBReligionScreen().interfaceScreen( iSelectedPlayer) elif iIndex == 10: WBGameDataScreen.WBGameDataScreen( CvPlatyBuilderScreen.CvWorldBuilderScreen( )).interfaceScreen() elif iIndex == 11: WBInfoScreen.WBInfoScreen().interfaceScreen(iSelectedPlayer) elif inputClass.getFunctionName() == "CurrentPlayer": iSelectedPlayer = screen.getPullDownData( "CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer")) self.interfaceScreen(iSelectedPlayer) elif inputClass.getFunctionName() == "WBCityCorporations": if inputClass.getData1() == 8201: pPlayer = gc.getPlayer(iSelectedPlayer) (loopCity, pIter) = pPlayer.firstCity(False) while loopCity: if not loopCity.isNone() and loopCity.getOwner( ) == pPlayer.getID(): #only valid cities if pIter - 1 == inputClass.getData(): if bHeadquarter: self.editHeadquarter(inputClass.getData2(), loopCity) else: self.editCorporation(inputClass.getData2(), loopCity, 2) break (loopCity, pIter) = pPlayer.nextCity(pIter, False) self.placePlayerCities() elif inputClass.getFunctionName() == "WBAllCorporations": if inputClass.getButtonType() == WidgetTypes.WIDGET_PYTHON: pPlayer = gc.getPlayer(iSelectedPlayer) (loopCity, pIter) = pPlayer.firstCity(False) while loopCity: if not loopCity.isNone() and loopCity.getOwner( ) == pPlayer.getID(): #only valid cities self.editCorporation(inputClass.getData2(), loopCity, inputClass.getData1() == 6782) (loopCity, pIter) = pPlayer.nextCity(pIter, False) self.placePlayerCities() elif inputClass.getFunctionName() == "SetHeadquarter": bHeadquarter = not bHeadquarter sText = "<font=3b>" + CyTranslator().getText( "TXT_KEY_CORPORATION_HEADQUARTERS", ()) + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if bHeadquarter: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.modifyString("SetHeadquarter", sColor + sText + "</color>", 0) return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBPlotScreen", CvScreenEnums.WB_PLOT) global bAdd global bSensibility global iEditType global iChange global iCulturePlayer global iSelectedClass if inputClass.getFunctionName() == "ChangeBy": iChange = screen.getPullDownData("ChangeBy", screen.getSelectedPullDownID("ChangeBy")) elif inputClass.getFunctionName() == "CurrentPlayer": iIndex = screen.getPullDownData("CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer")) pPlot.setOwner(iIndex) elif inputClass.getFunctionName() == "ChangeType": bAdd = screen.getPullDownData("ChangeType", screen.getSelectedPullDownID("ChangeType")) elif inputClass.getFunctionName() == "EditType": iEditType = screen.getPullDownData("EditType", screen.getSelectedPullDownID("EditType")) elif inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData("CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 1: WBEventScreen.WBEventScreen().interfaceScreen(pPlot) elif iIndex == 2: if pPlot.getOwner() != -1: WBPlayerScreen.WBPlayerScreen().interfaceScreen(pPlot.getOwner()) elif iIndex == 3: WBTeamScreen.WBTeamScreen().interfaceScreen(pPlot.getTeam()) elif iIndex == 4: if pPlot.isCity(): WBCityEditScreen.WBCityEditScreen().interfaceScreen(pPlot.getPlotCity()) elif iIndex == 5: pUnit = pPlot.getUnit(0) if pUnit: WBUnitScreen.WBUnitScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).interfaceScreen(pUnit) elif iIndex == 11: iPlayer = pPlot.getOwner() if iPlayer == -1: iPlayer = CyGame().getActivePlayer() WBInfoScreen.WBInfoScreen().interfaceScreen(iPlayer) if iIndex == 12: WBRiverScreen.WBRiverScreen().interfaceScreen(pPlot) elif inputClass.getFunctionName() == "NextPlotUpButton": pNewPlot = CyMap().plot(pPlot.getX(), pPlot.getY() + 1) if not pNewPlot.isNone(): self.interfaceScreen(pNewPlot) elif inputClass.getFunctionName() == "NextPlotDownButton": pNewPlot = CyMap().plot(pPlot.getX(), pPlot.getY() - 1) if not pNewPlot.isNone(): self.interfaceScreen(pNewPlot) elif inputClass.getFunctionName() == "NextPlotLeftButton": pNewPlot = CyMap().plot(pPlot.getX() - 1, pPlot.getY()) if not pNewPlot.isNone(): self.interfaceScreen(pNewPlot) elif inputClass.getFunctionName() == "NextPlotRightButton": pNewPlot = CyMap().plot(pPlot.getX() + 1, pPlot.getY()) if not pNewPlot.isNone(): self.interfaceScreen(pNewPlot) elif inputClass.getFunctionName().find("BaseYield") > -1: i = YieldTypes(inputClass.getData2()) if inputClass.getData1() == 1030: CyGame().setPlotExtraYield(pPlot.getX(), pPlot.getY(), i, iChange) elif inputClass.getData1() == 1031: iYield = pPlot.getYield(i) iImprovement = pPlot.getImprovementType() if iImprovement > -1: iYield -= pPlot.calculateImprovementYieldChange(iImprovement, i, pPlot.getOwner(), False) CyGame().setPlotExtraYield(pPlot.getX(), pPlot.getY(), i, - min(iChange, iYield)) self.placeStats() elif inputClass.getFunctionName() == "RiverWestAButton": pWestPlot = CyMap().plot(pPlot.getX() - 1, pPlot.getY()) pWestPlot.setWOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_NORTH) self.placeStats() elif inputClass.getFunctionName() == "RiverWestBButton": pWestPlot = CyMap().plot(pPlot.getX() - 1, pPlot.getY()) pWestPlot.setWOfRiver(False, CardinalDirectionTypes.NO_CARDINALDIRECTION) self.placeStats() elif inputClass.getFunctionName() == "RiverWestCButton": pWestPlot = CyMap().plot(pPlot.getX() - 1, pPlot.getY()) pWestPlot.setWOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_SOUTH) self.placeStats() elif inputClass.getFunctionName() == "RiverEastAButton": pPlot.setWOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_NORTH) self.placeStats() elif inputClass.getFunctionName() == "RiverEastBButton": pPlot.setWOfRiver(False, CardinalDirectionTypes.NO_CARDINALDIRECTION) self.placeStats() elif inputClass.getFunctionName() == "RiverEastCButton": pPlot.setWOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_SOUTH) self.placeStats() elif inputClass.getFunctionName() == "RiverNorthAButton": pNorthPlot = CyMap().plot(pPlot.getX(), pPlot.getY() + 1) pNorthPlot.setNOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_WEST) self.placeStats() elif inputClass.getFunctionName() == "RiverNorthBButton": pNorthPlot = CyMap().plot(pPlot.getX(), pPlot.getY() + 1) pNorthPlot.setNOfRiver(False, CardinalDirectionTypes.NO_CARDINALDIRECTION) self.placeStats() elif inputClass.getFunctionName() == "RiverNorthCButton": pNorthPlot = CyMap().plot(pPlot.getX(), pPlot.getY() + 1) pNorthPlot.setNOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_EAST) self.placeStats() elif inputClass.getFunctionName() == "RiverSouthAButton": pPlot.setNOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_WEST) self.placeStats() elif inputClass.getFunctionName() == "RiverSouthBButton": pPlot.setNOfRiver(False, CardinalDirectionTypes.NO_CARDINALDIRECTION) self.placeStats() elif inputClass.getFunctionName() == "RiverSouthCButton": pPlot.setNOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_EAST) self.placeStats() elif inputClass.getFunctionName() == "WBSigns": if inputClass.getData1() == 7876 or inputClass.getData1() == 7872: iCulturePlayer = inputClass.getData2() /10000 self.placeSigns() elif inputClass.getFunctionName().find("EditCulture") > -1: if inputClass.getData1() == 1030: pPlot.changeCulture(iCulturePlayer, iChange, True) elif inputClass.getData1() == 1031: pPlot.changeCulture(iCulturePlayer, -min(iChange, pPlot.getCulture(iCulturePlayer)), True) self.interfaceScreen(pPlot) elif inputClass.getFunctionName() == "WBPlotType": if iEditType == 0: pPlot.setPlotType(PlotTypes(inputClass.getData()), True, True) elif iEditType == 1: for i in xrange(CyMap().numPlots()): pLoopPlot = CyMap().plotByIndex(i) if pLoopPlot.isNone(): continue if pLoopPlot.getArea() == pPlot.getArea(): pLoopPlot.setPlotType(PlotTypes(inputClass.getData()), True, True) else: CyMap().setAllPlotTypes(PlotTypes(inputClass.getData())) self.interfaceScreen(pPlot) elif inputClass.getFunctionName() == "WBPlotTerrain": iTerrain = inputClass.getData2() if iEditType == 0: pPlot.setTerrainType(iTerrain, True, True) else: for i in xrange(CyMap().numPlots()): pLoopPlot = CyMap().plotByIndex(i) if pLoopPlot.isNone(): continue if iEditType == 1: if pLoopPlot.getArea() == pPlot.getArea(): pLoopPlot.setTerrainType(iTerrain, True, True) elif iEditType == 2: if bSensibility and pLoopPlot.isWater() != pPlot.isWater(): continue pLoopPlot.setTerrainType(iTerrain, True, True) self.interfaceScreen(pPlot) elif inputClass.getFunctionName() == "BonusClass": iSelectedClass = screen.getPullDownData("BonusClass", screen.getSelectedPullDownID("BonusClass")) self.createBonusList() elif inputClass.getFunctionName() == "WBPlotBonus": iBonus = inputClass.getData2() if iEditType == 0: if bAdd: pPlot.setBonusType(iBonus) else: pPlot.setBonusType(-1) else: for i in xrange(CyMap().numPlots()): pLoopPlot = CyMap().plotByIndex(i) if pLoopPlot.isNone(): continue if iEditType == 1 and pLoopPlot.getArea() != pPlot.getArea(): continue iOld = pLoopPlot.getBonusType(-1) if bAdd: pLoopPlot.setBonusType(-1) if iBonus > -1 and bSensibility and not pLoopPlot.canHaveBonus(iBonus, False): pLoopPlot.setBonusType(iOld) continue pLoopPlot.setBonusType(iBonus) else: pLoopPlot.setBonusType(-1) self.placeBonus() elif inputClass.getFunctionName() == "WBPlotImprovement": iImprovement = inputClass.getData2() if iEditType == 0: if bAdd: pPlot.setImprovementType(iImprovement) else: pPlot.setImprovementType(-1) else: for i in xrange(CyMap().numPlots()): pLoopPlot = CyMap().plotByIndex(i) if pLoopPlot.isNone(): continue if iEditType == 1 and pLoopPlot.getArea() != pPlot.getArea(): continue if bAdd: if iImprovement > -1 and bSensibility and not pLoopPlot.canHaveImprovement(iImprovement, -1, True): continue pLoopPlot.setImprovementType(iImprovement) else: pLoopPlot.setImprovementType(-1) self.placeImprovements() elif inputClass.getFunctionName().find("UpgradeTime") > -1: if inputClass.getData1() == 1030: pPlot.changeUpgradeProgress(- iChange) elif inputClass.getData1() == 1031: pPlot.changeUpgradeProgress(min(iChange, pPlot.getUpgradeTimeLeft(pPlot.getImprovementType(), pPlot.getOwner()) - 1)) self.placeImprovements() elif inputClass.getFunctionName() == "WBPlotFeature": iFeature = inputClass.getData2() % 10000 iVariety = inputClass.getData2() / 10000 if iVariety < 0 or iFeature < 0: iFeature = -1 iVariety = 0 if iEditType == 0: if bAdd: pPlot.setFeatureType(-1, 0) if CvRiverUtil.isRiverFeature(iFeature): CvRiverUtil.addRiverFeatureSimple(pPlot, iFeature, iVariety) else: pPlot.setFeatureType(iFeature, iVariety) CvUtil.removeScriptData(pPlot, "r") else: pPlot.setFeatureType(-1, 0) CvUtil.removeScriptData(pPlot, "r") else: for i in xrange(CyMap().numPlots()): pLoopPlot = CyMap().plotByIndex(i) if pLoopPlot.isNone(): continue if iEditType == 1 and pLoopPlot.getArea() != pPlot.getArea(): continue iOldFeature = pLoopPlot.getFeatureType() iOldVariety = pLoopPlot.getFeatureVariety() if bAdd: pLoopPlot.setFeatureType(-1, 0) if iFeature > -1 and bSensibility and not pLoopPlot.canHaveFeature(iFeature): pLoopPlot.setFeatureType(iOldFeature, iOldVariety) continue if CvRiverUtil.isRiverFeature(iFeature): CvRiverUtil.addRiverFeatureSimple(pLoopPlot, iFeature, iVariety) else: pLoopPlot.setFeatureType(iFeature, iVariety) if CvRiverUtil.isRiverFeature(iOldFeature): CvUtil.removeScriptData(pLoopPlot, "r") else: pLoopPlot.setFeatureType(-1, 0) CvUtil.removeScriptData(pLoopPlot, "r") self.placeFeature() self.placeScript() elif inputClass.getFunctionName() == "WBPlotRoutes": iRoute = inputClass.getData2() if iEditType == 0: if bAdd: pPlot.setRouteType(iRoute) else: pPlot.setRouteType(-1) else: for i in xrange(CyMap().numPlots()): pLoopPlot = CyMap().plotByIndex(i) if pLoopPlot.isNone(): continue if bSensibility: if pLoopPlot.isImpassable(): continue if pLoopPlot.isWater(): continue if iEditType == 1 and pLoopPlot.getArea() != pPlot.getArea(): continue if bAdd: pLoopPlot.setRouteType(iRoute) else: if pLoopPlot.getRouteType() == iRoute: pLoopPlot.setRouteType(-1) self.placeRoutes() elif inputClass.getFunctionName() == "PlotEditScriptData": popup = Popup.PyPopup(5555, EventContextTypes.EVENTCONTEXT_ALL) popup.setHeaderString(CyTranslator().getText("TXT_KEY_WB_SCRIPT", ())) popup.setUserData((pPlot.getX(), pPlot.getY())) popup.createEditBox(pPlot.getScriptData()) popup.launch() elif inputClass.getFunctionName() == "EditLandMark": iIndex = -1 sText = "" for i in xrange(CyEngine().getNumSigns()): pSign = CyEngine().getSignByIndex(i) if pSign.getPlot().getX() != pPlot.getX(): continue if pSign.getPlot().getY() != pPlot.getY(): continue if pSign.getPlayerType() == iCulturePlayer: iIndex = i sText = pSign.getCaption() break popup = Popup.PyPopup(CvUtil.EventWBLandmarkPopup, EventContextTypes.EVENTCONTEXT_ALL) popup.setHeaderString(CyTranslator().getText("TXT_KEY_WB_LANDMARKS", ())) popup.setUserData((pPlot.getX(), pPlot.getY(), iCulturePlayer, iIndex)) popup.createEditBox(sText) popup.launch() elif inputClass.getFunctionName() == "SensibilityCheck": bSensibility = not bSensibility screen.setState("SensibilityCheck", bSensibility) return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBRiverScreen", CvScreenEnums.WB_PLOT_RIVER) global bAdd global bSensibility global bFord global iSelectedSide global iEditType global bRiverAutomatic global bRiverBranch global bRiverComplete if False: pass elif inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 1: WBEventScreen.WBEventScreen().interfaceScreen(pPlot) elif iIndex == 2: if pPlot.getOwner() != -1: WBPlayerScreen.WBPlayerScreen().interfaceScreen( pPlot.getOwner()) elif iIndex == 3: WBTeamScreen.WBTeamScreen().interfaceScreen(pPlot.getTeam()) elif iIndex == 4: if pPlot.isCity(): WBCityEditScreen.WBCityEditScreen().interfaceScreen( pPlot.getPlotCity()) elif iIndex == 5: pUnit = pPlot.getUnit(0) if pUnit: WBUnitScreen.WBUnitScreen( CvPlatyBuilderScreen.CvWorldBuilderScreen( )).interfaceScreen(pUnit) elif iIndex == 11: iPlayer = pPlot.getOwner() if iPlayer == -1: iPlayer = CyGame().getActivePlayer() WBInfoScreen.WBInfoScreen().interfaceScreen(iPlayer) elif iIndex == 12: WBPlotScreen.WBPlotScreen().interfaceScreen(pPlot) elif inputClass.getFunctionName() == "NextPlotUpButton": pNewPlot = CyMap().plot(pPlot.getX(), pPlot.getY() + 1) if not pNewPlot.isNone(): self.interfaceScreen(pNewPlot) elif inputClass.getFunctionName() == "NextPlotDownButton": pNewPlot = CyMap().plot(pPlot.getX(), pPlot.getY() - 1) if not pNewPlot.isNone(): self.interfaceScreen(pNewPlot) elif inputClass.getFunctionName() == "NextPlotLeftButton": pNewPlot = CyMap().plot(pPlot.getX() - 1, pPlot.getY()) if not pNewPlot.isNone(): self.interfaceScreen(pNewPlot) elif inputClass.getFunctionName() == "NextPlotRightButton": pNewPlot = CyMap().plot(pPlot.getX() + 1, pPlot.getY()) if not pNewPlot.isNone(): self.interfaceScreen(pNewPlot) elif inputClass.getFunctionName() == "WBRiverFeature": iFeature = pPlot.getFeatureType() iVariety = pPlot.getFeatureVariety() bSkip = False if inputClass.getData2() < 0 or not bAdd: pPlot.setFeatureType(-1, 0) CvUtil.removeScriptData(pPlot, "r") bSkip = True if bSensibility and pPlot.getPlotType( ) is not PlotTypes.PLOT_OCEAN: bSkip = True if not bSkip: if inputClass.getData2() >= 1000: if iFeature in riverIds["features"]: CvUtil.removeScriptData(pPlot, "r") pPlot.setTerrainType( riverIds["terrains"][inputClass.getData2() - 1000], True, True) pPlot.setFeatureType(-1, 0) pPlot.setFeatureType( riverIds["features"][inputClass.getData2() - 1000], 0) else: ra = self.lRiveralign[inputClass.getData2()] riverDesc = CvRiverUtil.getRiverScriptData(pPlot) riverDesc.rtype = ra[0] riverDesc.align = ra[1] if riverDesc.variant not in CvRiverUtil.RiverTypes[ riverDesc.rtype][riverDesc.align]: riverDesc.variant = 1 if not len(riverDesc.getVariantSides()) > iSelectedSide: iSelectedSide = 0 if iFeature not in riverIds["features"] or iVariety == 0: CvRiverUtil.addRiverFeature(pPlot) CvRiverUtil.updateRiverFeature(pPlot, riverDesc, True) self.placeScript() self.placeRiverFeature() elif inputClass.getFunctionName() == "WBRiverVariant": riverDesc = CvRiverUtil.getRiverScriptData(pPlot) iOld = riverDesc.variant iNew = inputClass.getData2() if iNew is not iOld: riverDesc.variant = iNew if iSelectedSide >= len(riverDesc.getVariantSides()): iSelectedSide = 0 CvRiverUtil.updateRiverFeature(pPlot, riverDesc, True) self.placeRiverFeature(0) elif inputClass.getFunctionName() == "WBRiverSubtile": iNew = inputClass.getData2() if iNew is not iSelectedSide: iSelectedSide = iNew self.placeRiverFeature(1) elif inputClass.getFunctionName() == "WBRiverTexture": riverDesc = CvRiverUtil.getRiverScriptData(pPlot) iOld = riverDesc.textures[iSelectedSide] iNew = inputClass.getData2() if iNew is not iOld: riverDesc.textures[iSelectedSide] = iNew CvRiverUtil.updateRiverFeature(pPlot, riverDesc, True) self.placeRiverFeature(2) if bRiverComplete or bRiverBranch: nearbyPlots = CvRiverUtil.getAdjacentTiles( pPlot, not bRiverComplete) # Remove this plot (=first entry) nearbyPlots.pop(0) CvRiverUtil.setTexture(nearbyPlots, iSelectedSide, iNew) elif inputClass.getFunctionName() == "WBRiverDecoration": riverDesc = CvRiverUtil.getRiverScriptData(pPlot) bActive = not (inputClass.getData2() in riverDesc.decorations) if bActive: riverDesc.decorations.append(inputClass.getData2()) else: riverDesc.decorations.remove(inputClass.getData2()) CvRiverUtil.updateRiverFeature(pPlot, riverDesc, True) self.placeRiverDecoration() elif inputClass.getFunctionName() == "WBRiverRapids": riverDesc = CvRiverUtil.getRiverScriptData(pPlot) riverDesc.rapids = inputClass.getData2() CvRiverUtil.updateRiverFeature(pPlot, riverDesc, True) if bRiverComplete or bRiverBranch: nearbyPlots = CvRiverUtil.getAdjacentTiles( pPlot, not bRiverComplete) """ dmsg = "" for n in nearbyPlots: dmsg += "(%i,%i)\n" % (n[0].getX(), n[0].getY()) CyInterface().addMessage(gc.getGame().getActivePlayer(), True, 5, dmsg, None, 2, None, ColorTypes(14), 0, 0, False, False) """ CvRiverUtil.setRapidDirection(nearbyPlots) self.placeRiverFeature(4) self.placeScript() elif inputClass.getFunctionName() == "WBRiverWaterColors": riverDesc = CvRiverUtil.getRiverScriptData(pPlot) # order is [ full texture color 1, halve texture color 1, ... ] riverDesc.waterColor = max(0, inputClass.getData2() - 2) # Use halve texture if rotation is set CvRiverUtil.updateRiverFeature(pPlot, riverDesc, True) if bRiverComplete or bRiverBranch: nearbyPlots = CvRiverUtil.getAdjacentTiles( pPlot, not bRiverComplete) CvRiverUtil.setWaterColor(nearbyPlots) self.placeRiverFeature(5) self.placeScript() elif inputClass.getFunctionName() == "WBRiverWaterRotations": riverDesc = CvRiverUtil.getRiverScriptData(pPlot) riverDesc.waterRotation = inputClass.getData2() if riverDesc.waterColor > 0: iPlus = 0 if riverDesc.waterRotation > 0: iPlus = 1 riverDesc.waterColor = 2 * \ ((riverDesc.waterColor+1)/2) - 1 + iPlus CvRiverUtil.updateRiverFeature(pPlot, riverDesc, True) self.placeRiverFeature(5) self.placeScript() elif inputClass.getFunctionName() == "PlotEditScriptData": popup = Popup.PyPopup(5555, EventContextTypes.EVENTCONTEXT_ALL) popup.setHeaderString(CyTranslator().getText( "TXT_KEY_WB_SCRIPT", ())) popup.setUserData((pPlot.getX(), pPlot.getY())) popup.createEditBox(pPlot.getScriptData()) popup.launch() elif inputClass.getFunctionName() == "SensibilityCheck": bSensibility = not bSensibility screen.setState("SensibilityCheck", bSensibility) elif inputClass.getFunctionName() == "FordCheck": bFord = not bFord iTerrain = pPlot.getTerrainType() iFeature = pPlot.getFeatureType() iVariety = pPlot.getFeatureVariety() if (iTerrain in riverIds["terrains"] and iTerrain is not riverIds["terrains"][int(bFord)]): pPlot.setTerrainType(riverIds["terrains"][int(bFord)], True, True) if (iFeature in riverIds["features"] and iVariety in riverIds["varieties"] and iFeature is not riverIds["features"][int(bFord)]): pPlot.setFeatureType(-1, 0) pPlot.setFeatureType(riverIds["features"][int(bFord)], iVariety) riverDesc = CvRiverUtil.getRiverScriptData(pPlot) if not iVariety == 0: CvRiverUtil.updateRiverFeature(pPlot, riverDesc, False) screen.setState("FordCheck", bFord) self.placeRiverFeature() elif inputClass.getFunctionName() == "RiverAutomaticCheck": bRiverAutomatic = not bRiverAutomatic screen.setState("RiverAutomaticCheck", bRiverAutomatic) elif inputClass.getFunctionName() == "RiverBranchCheck": bRiverBranch = not bRiverBranch screen.setState("RiverBranchCheck", bRiverBranch) elif inputClass.getFunctionName() == "RiverCompleteCheck": bRiverComplete = not bRiverComplete screen.setState("RiverCompleteCheck", bRiverComplete) return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBBuildingScreen", CvScreenEnums.WB_BUILDING) global bApplyAll global iSelectedClass global iChangeType global iOwnerType global iPlotType if inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: WBCityEditScreen.WBCityEditScreen( CvPlatyBuilderScreen.CvWorldBuilderScreen( )).interfaceScreen(pCity) elif iIndex == 1: WBCityDataScreen.WBCityDataScreen().interfaceScreen(pCity) elif iIndex == 3: WBPlayerScreen.WBPlayerScreen().interfaceScreen(iPlayer) elif iIndex == 4: WBTeamScreen.WBTeamScreen().interfaceScreen(pCity.getTeam()) elif iIndex == 5: WBPlayerUnits.WBPlayerUnits().interfaceScreen(iPlayer) elif iIndex == 6: WBPlotScreen.WBPlotScreen().interfaceScreen(pCity.plot()) elif iIndex == 7: WBEventScreen.WBEventScreen().interfaceScreen(pCity.plot()) elif iIndex == 8: WBReligionScreen.WBReligionScreen().interfaceScreen(iPlayer) elif iIndex == 9: WBCorporationScreen.WBCorporationScreen().interfaceScreen( iPlayer) elif iIndex == 11: WBInfoScreen.WBInfoScreen().interfaceScreen(iPlayer) elif inputClass.getFunctionName() == "OwnerType": iOwnerType = screen.getPullDownData( "OwnerType", screen.getSelectedPullDownID("OwnerType")) self.sortCities() elif inputClass.getFunctionName() == "PlotType": iPlotType = screen.getPullDownData( "PlotType", screen.getSelectedPullDownID("PlotType")) self.sortCities() elif inputClass.getFunctionName() == "ChangeType": iChangeType = screen.getPullDownData( "ChangeType", screen.getSelectedPullDownID("ChangeType")) elif inputClass.getFunctionName() == "CurrentCity": iPlayerX = inputClass.getData1() - 7200 pPlayerX = gc.getPlayer(iPlayerX) if pPlayerX: self.interfaceScreen(pPlayerX.getCity(inputClass.getData2())) elif inputClass.getFunctionName() == "WBBuilding": bUpdate = self.editBuilding(inputClass.getData1(), gc.getPlayer(iPlayer), False, False) self.placeBuildings() if bUpdate: self.placeWonders() elif inputClass.getFunctionName() == "BuildingAvailable": bUpdate = False for item in lBuilding: bTemp = self.editBuilding(item[1], gc.getPlayer(iPlayer), True, False) bUpdate = bUpdate or bTemp self.placeBuildings() if bUpdate: self.placeWonders() elif inputClass.getFunctionName() == "BuildingAll": bUpdate = False for item in lBuilding: bTemp = self.editBuilding(item[1], gc.getPlayer(iPlayer), False, False) bUpdate = bUpdate or bTemp self.placeBuildings() if bUpdate: self.placeWonders() elif inputClass.getFunctionName() == "WonderClass": iSelectedClass = inputClass.getData() self.placeWonders() elif inputClass.getFunctionName() == "WBWonders": bUpdate = self.editBuilding(inputClass.getData1(), gc.getPlayer(iPlayer), False, True) self.placeWonders() if inputClass.getData1() == iPalace: dc.checkName(iPlayer) if bUpdate: self.placeBuildings() elif inputClass.getFunctionName() == "WonderAvailable": bUpdate = False lList = lWorld if iSelectedClass == 0: lList = lNational + lTeam + lWorld elif iSelectedClass == 1: lList = lNational elif iSelectedClass == 2: lList = lTeam for item in lList: bTemp = self.editBuilding(item[1], gc.getPlayer(iPlayer), True, True) bUpdate = bUpdate or bTemp self.placeWonders() if bUpdate: self.placeBuildings() elif inputClass.getFunctionName() == "WonderAll": bUpdate = False lList = lWorld if iSelectedClass == 0: lList = lNational + lTeam + lWorld elif iSelectedClass == 1: lList = lNational elif iSelectedClass == 2: lList = lTeam for item in lList: bTemp = self.editBuilding(item[1], gc.getPlayer(iPlayer), False, True) bUpdate = bUpdate or bTemp self.placeWonders() if bUpdate: self.placeBuildings() elif inputClass.getFunctionName() == "ApplyAll": bApplyAll = not bApplyAll sText = u"<font=3b>" + CyTranslator().getText( "TXT_KEY_WB_COPY_ALL", (CyTranslator().getText("TXT_KEY_CONCEPT_CITIES", ()), )) + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if bApplyAll: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.modifyString("ApplyAll", sColor + sText + "</color>", 0) elif inputClass.getFunctionName() == "HideInactive": CvPlatyBuilderScreen.bHideInactive = not CvPlatyBuilderScreen.bHideInactive CvPlatyBuilderScreen.CvWorldBuilderScreen().refreshSideMenu() sText = u"<font=3b>" + CyTranslator().getText( "TXT_KEY_PEDIA_HIDE_INACTIVE", ()) + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if CvPlatyBuilderScreen.bHideInactive: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.setText("HideInactive", "Background", sColor + sText + "</color>", CvUtil.FONT_LEFT_JUSTIFY, screen.getXResolution() / 4 + 150 + 20, 50, -0.1, FontTypes.TITLE_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1) self.sortBuildings() return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBReligionScreen", CvScreenEnums.WB_RELIGION) global iSelectedPlayer global bHoly if inputClass.getButtonType() == WidgetTypes.WIDGET_PYTHON: if inputClass.getData1() > 7199 and inputClass.getData1() < 7300: iCityID = inputClass.getData2() iPlayerX = inputClass.getData1() - 7200 WBCityEditScreen.WBCityEditScreen().interfaceScreen( gc.getPlayer(iPlayerX).getCity(iCityID)) elif inputClass.getData1() == 7876 or inputClass.getData1( ) == 7872: iPlayerX = inputClass.getData2() / 10000 WBPlayerScreen.WBPlayerScreen().interfaceScreen(iPlayerX) if inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: WBPlayerScreen.WBPlayerScreen().interfaceScreen( iSelectedPlayer) elif iIndex == 1: WBTeamScreen.WBTeamScreen().interfaceScreen( gc.getPlayer(iSelectedPlayer).getTeam()) elif iIndex == 9: WBCorporationScreen.WBCorporationScreen().interfaceScreen( iSelectedPlayer) elif iIndex == 10: WBGameDataScreen.WBGameDataScreen( CvPlatyBuilderScreen.CvWorldBuilderScreen( )).interfaceScreen() elif iIndex == 11: WBInfoScreen.WBInfoScreen().interfaceScreen(iSelectedPlayer) elif inputClass.getFunctionName() == "CurrentPlayer": iSelectedPlayer = screen.getPullDownData( "CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer")) self.interfaceScreen(iSelectedPlayer) elif inputClass.getFunctionName() == "WBCityReligions": if inputClass.getButtonType() == WidgetTypes.WIDGET_HELP_RELIGION: pPlayer = gc.getPlayer(iSelectedPlayer) if bHoly: self.editHolyCity(inputClass.getData1(), pPlayer.getCity(inputClass.getData2())) else: self.editReligion(inputClass.getData1(), pPlayer.getCity(inputClass.getData2()), 2) self.placePlayerCities() elif inputClass.getFunctionName() == "WBAllReligions": if inputClass.getButtonType() == WidgetTypes.WIDGET_HELP_RELIGION: pPlayer = gc.getPlayer(iSelectedPlayer) (loopCity, iter) = pPlayer.firstCity(False) while (loopCity): self.editReligion(inputClass.getData1(), loopCity, inputClass.getData2() == 1) (loopCity, iter) = pPlayer.nextCity(iter, False) self.placePlayerCities() elif inputClass.getFunctionName() == "SetHoly": bHoly = not bHoly sText = "<font=3b>" + CyTranslator().getText( "TXT_KEY_RELIGION_SCREEN_HOLY_CITY", ())[:-1] + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if bHoly: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.modifyString("SetHoly", sColor + sText + "</color>", 0) return 1
DEBUG_INFO_SCREEN: debugInfoScreen, # add new screens here PEDIA_SPELL: pediaMainScreen, #RevolutionDCM REVOLUTION_WATCH_ADVISOR: revolutionWatchAdvisor, ## World Builder ## WB_PLOT: WBPlotScreen.WBPlotScreen(), WB_EVENT: WBEventScreen.WBEventScreen(), WB_BUILDING: WBBuildingScreen.WBBuildingScreen(), WB_CITYDATA: WBCityDataScreen.WBCityDataScreen(), WB_CITYEDIT: WBCityEditScreen.WBCityEditScreen(), WB_TECH: WBTechScreen.WBTechScreen(), WB_PROJECT: WBProjectScreen.WBProjectScreen(), WB_TEAM: WBTeamScreen.WBTeamScreen(), WB_PLAYER: WBPlayerScreen.WBPlayerScreen(), WB_UNIT: WBUnitScreen.WBUnitScreen(worldBuilderScreen), WB_PROMOTION: WBPromotionScreen.WBPromotionScreen(), WB_DIPLOMACY: WBDiplomacyScreen.WBDiplomacyScreen(), WB_GAMEDATA: WBGameDataScreen.WBGameDataScreen(worldBuilderScreen), WB_UNITLIST: WBPlayerUnits.WBPlayerUnits(), WB_RELIGION: WBReligionScreen.WBReligionScreen(), WB_CORPORATION: WBCorporationScreen.WBCorporationScreen(), WB_INFO: WBInfoScreen.WBInfoScreen(), WB_TRADE: WBTradeScreen.WBTradeScreen(), } ####################################################################################### ## Handle Navigation Map #######################################################################################
def lateInit(): import CvCorporationScreen import CvEspionageAdvisor import CvMilitaryAdvisor import CvDomesticAdvisor import CvForeignAdvisor import CvFinanceAdvisor import CvReligionScreen import CvEraMovieScreen import CvVictoryScreen import CvCivicsScreen import CvInfoScreen import CvDawnOfMan import CvTopCivs import Forgetful import CvDebugInfoScreen import CvTechChooser import BuildListScreen screenMap[CORPORATION_SCREEN] = CvCorporationScreen.CvCorporationScreen() screenMap[ESPIONAGE_ADVISOR] = CvEspionageAdvisor.CvEspionageAdvisor() screenMap[MILITARY_ADVISOR] = CvMilitaryAdvisor.CvMilitaryAdvisor( MILITARY_ADVISOR) screenMap[DOMESTIC_ADVISOR] = CvDomesticAdvisor.CvDomesticAdvisor( DOMESTIC_ADVISOR) screenMap[FOREIGN_ADVISOR] = CvForeignAdvisor.CvForeignAdvisor( FOREIGN_ADVISOR) screenMap[FINANCE_ADVISOR] = CvFinanceAdvisor.CvFinanceAdvisor( FINANCE_ADVISOR) screenMap[RELIGION_SCREEN] = CvReligionScreen.CvReligionScreen() screenMap[ERA_MOVIE_SCREEN] = CvEraMovieScreen.CvEraMovieScreen() screenMap[VICTORY_SCREEN] = CvVictoryScreen.CvVictoryScreen(VICTORY_SCREEN) screenMap[CIVICS_SCREEN] = CvCivicsScreen.CvCivicsScreen(CIVICS_SCREEN) screenMap[INFO_SCREEN] = CvInfoScreen.CvInfoScreen(INFO_SCREEN) screenMap[DAWN_OF_MAN] = CvDawnOfMan.CvDawnOfMan() screenMap[TOP_CIVS] = CvTopCivs.CvTopCivs(TOP_CIVS) screenMap[FORGETFUL_SCREEN] = Forgetful.Forgetful() screenMap[DEBUG_INFO_SCREEN] = CvDebugInfoScreen.CvDebugInfoScreen() screenMap[TECH_CHOOSER] = CvTechChooser.CvTechChooser() screenMap[BUILD_LIST_SCREEN] = BuildListScreen.BuildListScreen() import WorldBuilder, CvAdvancedStartScreen global worldBuilderScreen, advancedStartScreen advancedStartScreen = CvAdvancedStartScreen.CvAdvancedStartScreen() worldBuilderScreen = WorldBuilder.WorldBuilder(WORLDBUILDER_SCREEN) screenMap[WORLDBUILDER_SCREEN] = worldBuilderScreen import WBPlotScreen import WBEventScreen import WBBuildingScreen import WBCityDataScreen import WBCityEditScreen import WBProjectScreen import WBTeamScreen import WBPlayerScreen import WBUnitScreen import WBPromotionScreen import WBDiplomacyScreen import WBPlayerUnits import WBReligionScreen import WBCorporationScreen import WBInfoScreen import WBTradeScreen screenMap[WB_PLOT] = WBPlotScreen.WBPlotScreen(worldBuilderScreen) screenMap[WB_EVENT] = WBEventScreen.WBEventScreen(worldBuilderScreen) screenMap[WB_BUILDING] = WBBuildingScreen.WBBuildingScreen( worldBuilderScreen) screenMap[WB_CITYDATA] = WBCityDataScreen.WBCityDataScreen( worldBuilderScreen) screenMap[WB_CITYEDIT] = WBCityEditScreen.WBCityEditScreen( worldBuilderScreen) screenMap[WB_PROJECT] = WBProjectScreen.WBProjectScreen(worldBuilderScreen) screenMap[WB_TEAM] = WBTeamScreen.WBTeamScreen(worldBuilderScreen) screenMap[WB_PLAYER] = WBPlayerScreen.WBPlayerScreen(worldBuilderScreen) screenMap[WB_UNIT] = WBUnitScreen.WBUnitScreen(worldBuilderScreen) screenMap[WB_PROMOTION] = WBPromotionScreen.WBPromotionScreen( worldBuilderScreen) screenMap[WB_DIPLOMACY] = WBDiplomacyScreen.WBDiplomacyScreen( worldBuilderScreen) screenMap[WB_UNITLIST] = WBPlayerUnits.WBPlayerUnits(worldBuilderScreen) screenMap[WB_RELIGION] = WBReligionScreen.WBReligionScreen( worldBuilderScreen) screenMap[WB_CORPORATION] = WBCorporationScreen.WBCorporationScreen( worldBuilderScreen) screenMap[WB_INFO] = WBInfoScreen.WBInfoScreen(worldBuilderScreen) screenMap[WB_TRADE] = WBTradeScreen.WBTradeScreen(worldBuilderScreen)
def handleInput (self, inputClass): screen = CyGInterfaceScreen( "WBPlayerScreen", CvScreenEnums.WB_PLAYER) global iChange global bRemove if inputClass.getFunctionName() == "ChangeBy": iChange = screen.getPullDownData("ChangeBy", screen.getSelectedPullDownID("ChangeBy")) if bRemove: iChange = -screen.getPullDownData("ChangeBy", screen.getSelectedPullDownID("ChangeBy")) else: iChange = screen.getPullDownData("ChangeBy", screen.getSelectedPullDownID("ChangeBy")) elif inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData("CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 1: WBTeamScreen.WBTeamScreen().interfaceScreen(iTeam) elif iIndex == 2: WBProjectScreen.WBProjectScreen().interfaceScreen(iTeam) elif iIndex == 3: WBTechScreen.WBTechScreen().interfaceScreen(iTeam) elif iIndex == 4: WBPlayerUnits.WBPlayerUnits().interfaceScreen(iPlayer) elif iIndex == 8: WBReligionScreen.WBReligionScreen().interfaceScreen(iPlayer) elif iIndex == 9: WBCorporationScreen.WBCorporationScreen().interfaceScreen(iPlayer) elif iIndex == 11: WBInfoScreen.WBInfoScreen().interfaceScreen(iPlayer) elif inputClass.getFunctionName() == "CurrentPlayer": iIndex = screen.getPullDownData("CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer")) self.interfaceScreen(iIndex) elif inputClass.getFunctionName() == "CurrentEra": pPlayer.setCurrentEra(screen.getPullDownData("CurrentEra", screen.getSelectedPullDownID("CurrentEra"))) dc.checkName(iPlayer) elif inputClass.getFunctionName().find("PlayerGold") > -1: if inputClass.getData1() == 1030: pPlayer.changeGold(iChange) elif inputClass.getData1() == 1031: pPlayer.changeGold(- min(iChange, pPlayer.getGold())) self.placeStats() elif inputClass.getFunctionName().find("CombatXP") > -1: if inputClass.getData1() == 1030: pPlayer.changeCombatExperience(min(iChange, pPlayer.greatPeopleThreshold(True) - pPlayer.getCombatExperience())) elif inputClass.getData1() == 1031: pPlayer.changeCombatExperience(- min(iChange, pPlayer.getCombatExperience())) self.placeStats() elif inputClass.getFunctionName().find("GoldenAge") > -1: if inputClass.getData1() == 1030: pPlayer.changeGoldenAgeTurns(iChange) elif inputClass.getData1() == 1031: pPlayer.changeGoldenAgeTurns(- min(iChange, pPlayer.getGoldenAgeTurns())) self.placeStats() elif inputClass.getFunctionName().find("GPRequired") > -1: if inputClass.getData1() == 1030: pPlayer.changeNumUnitGoldenAges(iChange) elif inputClass.getData1() == 1031: pPlayer.changeNumUnitGoldenAges(- min(iChange, pPlayer.unitsRequiredForGoldenAge() - 1)) self.placeStats() elif inputClass.getFunctionName().find("Anarchy") > -1: if inputClass.getData1() == 1030: pPlayer.changeAnarchyTurns(iChange) elif inputClass.getData1() == 1031: pPlayer.changeAnarchyTurns(- min(iChange, pPlayer.getAnarchyTurns())) self.placeStats() elif inputClass.getFunctionName().find("CoastalTrade") > -1: if inputClass.getData1() == 1030: pPlayer.changeCoastalTradeRoutes(min(iChange, gc.getDefineINT("MAX_TRADE_ROUTES") - pPlayer.getCoastalTradeRoutes())) elif inputClass.getData1() == 1031: pPlayer.changeCoastalTradeRoutes(- min(iChange, pPlayer.getCoastalTradeRoutes())) self.placeStats() elif inputClass.getFunctionName().find("CommerceFlexible") > -1: iCommerce = CommerceTypes(inputClass.getData2()) if inputClass.getData1() == 1030: if pPlayer.isCommerceFlexible(iCommerce): pPlayer.changeCommercePercent(iCommerce, iChange) elif inputClass.getData1() == 1031: if pPlayer.isCommerceFlexible(iCommerce): pPlayer.changeCommercePercent(iCommerce, - min(iChange, pPlayer.getCommercePercent(iCommerce))) elif inputClass.getData1() == 7881: if pPlayer.isCommerceFlexible(iCommerce): pTeam.changeCommerceFlexibleCount(iCommerce, - pTeam.getCommerceFlexibleCount(iCommerce)) else: pTeam.changeCommerceFlexibleCount(iCommerce, 1) self.placeStats() elif inputClass.getFunctionName() == "WBPlayerResearch": iTech = inputClass.getData2() if iTech == -1: pPlayer.clearResearchQueue() else: pPlayer.pushResearch(iTech, True) self.interfaceScreen(iPlayer) elif inputClass.getFunctionName().find("CurrentResearch") > -1: iTech = pPlayer.getCurrentResearch() if iTech > -1: if inputClass.getData1() == 1030: pTeam.changeResearchProgress(pPlayer.getCurrentResearch(), min(iChange, pTeam.getResearchCost(iTech) - pTeam.getResearchProgress(iTech)), iPlayer) elif inputClass.getData1() == 1031: pTeam.changeResearchProgress(pPlayer.getCurrentResearch(), - min(iChange, pTeam.getResearchProgress(iTech)), iPlayer) self.placeResearch() elif inputClass.getFunctionName() == "WBPlayerReligions": iReligion = inputClass.getData1() pPlayer.setLastStateReligion(inputClass.getData1()) # dc.checkName(iPlayer) self.placeReligions() elif inputClass.getFunctionName().find("StateReligionUnit") > -1: if inputClass.getData1() == 1030: pPlayer.changeStateReligionUnitProductionModifier(iChange) elif inputClass.getData1() == 1031: pPlayer.changeStateReligionUnitProductionModifier(- min(iChange, pPlayer.getStateReligionUnitProductionModifier())) self.placeReligions() elif inputClass.getFunctionName().find("StateReligionBuilding") > -1: if inputClass.getData1() == 1030: pPlayer.changeStateReligionBuildingProductionModifier(iChange) elif inputClass.getData1() == 1031: pPlayer.changeStateReligionBuildingProductionModifier(- min(iChange, pPlayer.getStateReligionBuildingProductionModifier())) self.placeReligions() elif inputClass.getFunctionName() == "WBPlayerCivics": iCivic = inputClass.getData2() if pPlayer.canDoCivics(iCivic) or not CvPlatyBuilderScreen.bHideInactive: pPlayer.setCivics(gc.getCivicInfo(iCivic).getCivicOptionType(), iCivic) dc.checkName(iPlayer) self.interfaceScreen(iPlayer) elif inputClass.getFunctionName() == "CivEnabledButton": data.setPlayerEnabled(iPlayer, not data.isPlayerEnabled(iPlayer)) self.interfaceScreen(iPlayer) elif inputClass.getFunctionName() == "PlayerEditScriptData": popup = Popup.PyPopup(1111, EventContextTypes.EVENTCONTEXT_ALL) popup.setHeaderString(CyTranslator().getText("TXT_KEY_WB_SCRIPT", ())) popup.setUserData((pPlayer.getID(),)) popup.createEditBox(pPlayer.getScriptData()) popup.launch() return elif inputClass.getFunctionName().find("ModifierButton") > -1: iModifier = inputClass.getData2() iModifierValue = pPlayer.getModifier(iModifier) if inputClass.getData1() == 1030: pPlayer.setModifier(iModifier, iModifierValue + abs(iChange)) elif inputClass.getData1() == 1031: pPlayer.setModifier(iModifier, iModifierValue - abs(iChange)) self.placeModifiers() elif inputClass.getFunctionName() == "ModifierResetButton": self.placeModifiers(inputClass.getData1() == 1) elif inputClass.getFunctionName().find("ModifierRevertButton") > -1: iModifier = inputClass.getData1() iModifierValue = Modifiers.getAdjustedModifier(iPlayer, iModifier) pPlayer.setModifier(iModifier, iModifierValue) self.placeModifiers(True) elif inputClass.getFunctionName() == "HideInactive": CvPlatyBuilderScreen.bHideInactive = not CvPlatyBuilderScreen.bHideInactive CvPlatyBuilderScreen.CvWorldBuilderScreen().refreshSideMenu() sText = u"<font=3b>" + CyTranslator().getText("TXT_KEY_PEDIA_HIDE_INACTIVE", ()) + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if CvPlatyBuilderScreen.bHideInactive: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.setText("HideInactive", "Background", sColor + sText + "</color>", CvUtil.FONT_LEFT_JUSTIFY, screen.getXResolution()/4 - 25, 20, -0.1, FontTypes.TITLE_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1) self.placeReligions() self.placeCivics() return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBProjectScreen", CvScreenEnums.WB_PROJECT) global iChange global iChangeType global bApplyAll global bNoBarb global iProjectType if inputClass.getFunctionName() == "ChangeBy": iChange = screen.getPullDownData( "ChangeBy", screen.getSelectedPullDownID("ChangeBy")) elif inputClass.getFunctionName() == "CurrentTeam": iIndex = screen.getPullDownData( "CurrentTeam", screen.getSelectedPullDownID("CurrentTeam")) self.interfaceScreen(iIndex) elif inputClass.getFunctionName() == "ProjectType": iProjectType = screen.getPullDownData( "ProjectType", screen.getSelectedPullDownID("ProjectType")) self.sortProjects() elif inputClass.getFunctionName() == "ChangeType": iChangeType = screen.getPullDownData( "ChangeType", screen.getSelectedPullDownID("ChangeType")) elif inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: WBPlayerScreen.WBPlayerScreen().interfaceScreen( pTeam.getLeaderID()) elif iIndex == 1: WBTeamScreen.WBTeamScreen().interfaceScreen(iTeam) elif iIndex == 3: WBTechScreen.WBTechScreen().interfaceScreen(iTeam) elif iIndex == 4: WBPlayerUnits.WBPlayerUnits().interfaceScreen( pTeam.getLeaderID()) elif iIndex == 11: WBInfoScreen.WBInfoScreen().interfaceScreen( pTeam.getLeaderID()) elif inputClass.getFunctionName() == "ProjectAll": for item in lProject: self.editProject(item[1]) self.placeProjects() elif inputClass.getFunctionName() == "WBProject": self.editProject(inputClass.getData2()) self.placeProjects() elif inputClass.getFunctionName() == "ApplyAll": bApplyAll = not bApplyAll sText = u"<font=3b>" + CyTranslator().getText( "TXT_KEY_WB_COPY_ALL", (CyTranslator().getText("TXT_KEY_MAIN_MENU_PLAYERS", ()), )) + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if bApplyAll: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.modifyString("ApplyAll", sColor + sText + "</color>", 0) elif inputClass.getFunctionName() == "NoBarbarians": bNoBarb = not bNoBarb sText = u"<font=3b>" + CyTranslator().getText( "TXT_KEY_GAME_OPTION_NO_BARBARIANS", ()) + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if bNoBarb: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.modifyString("NoBarbarians", sColor + sText + "</color>", 0) return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBCityEditScreen", CvScreenEnums.WB_CITYEDIT) global iChange global iOwnerType global iPlotType if inputClass.getFunctionName() == "ChangeBy": iChange = screen.getPullDownData( "ChangeBy", screen.getSelectedPullDownID("ChangeBy")) elif inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 1: WBCityDataScreen.WBCityDataScreen( self.WB).interfaceScreen(pCity) elif iIndex == 2: WBBuildingScreen.WBBuildingScreen( self.WB).interfaceScreen(pCity) elif iIndex == 3: WBPlayerScreen.WBPlayerScreen(self.WB).interfaceScreen(iPlayer) elif iIndex == 4: WBTeamScreen.WBTeamScreen(self.WB).interfaceScreen( pCity.getTeam()) elif iIndex == 5: WBPlayerUnits.WBPlayerUnits(self.WB).interfaceScreen(iPlayer) elif iIndex == 6: WBPlotScreen.WBPlotScreen(self.WB).interfaceScreen( pCity.plot()) elif iIndex == 7: WBEventScreen.WBEventScreen(self.WB).interfaceScreen( pCity.plot()) elif iIndex == 8: WBReligionScreen.WBReligionScreen( self.WB).interfaceScreen(iPlayer) elif iIndex == 9: WBCorporationScreen.WBCorporationScreen( self.WB).interfaceScreen(iPlayer) elif iIndex == 11: WBInfoScreen.WBInfoScreen(self.WB).interfaceScreen(iPlayer) elif inputClass.getFunctionName() == "OwnerType": iOwnerType = screen.getPullDownData( "OwnerType", screen.getSelectedPullDownID("OwnerType")) self.sortCities() elif inputClass.getFunctionName() == "PlotType": iPlotType = screen.getPullDownData( "PlotType", screen.getSelectedPullDownID("PlotType")) self.sortCities() elif inputClass.getFunctionName() == "CurrentCity": iPlayerX = inputClass.getData1() - 7200 pPlayerX = GC.getPlayer(iPlayerX) if pPlayerX: self.interfaceScreen(pPlayerX.getCity(inputClass.getData2())) elif inputClass.getFunctionName() == "CityName": import CvEventInterface CvEventInterface.getEventManager().beginEvent(5000, (pCity, True)) elif inputClass.getFunctionName() == "CityOwner": iIndex = screen.getSelectedPullDownID("CityOwner") GC.getPlayer(screen.getPullDownData("CityOwner", iIndex)).acquireCity( pCity, False, True) self.interfaceScreen(pPlot.getPlotCity()) elif inputClass.getFunctionName().find("BaseYield") > -1: iYield = YieldTypes(inputClass.getData2()) if inputClass.getData1() == 1030: pCity.changeBaseYieldRate(iYield, iChange) elif inputClass.getData1() == 1031: pCity.changeBaseYieldRate( iYield, -min(iChange, pCity.getBaseYieldRate(iYield))) self.placeStats() elif inputClass.getFunctionName().find("CityPopulation") > -1: if inputClass.getData1() == 1030: pCity.changePopulation(iChange) elif inputClass.getData1() == 1031: pCity.changePopulation(-min(iChange, pCity.getPopulation())) self.placeStats() elif inputClass.getFunctionName().find("CityFood") > -1: if inputClass.getData1() == 1030: pCity.changeFood( min(iChange, pCity.growthThreshold() - pCity.getFood())) elif inputClass.getData1() == 1031: pCity.changeFood(-min(iChange, pCity.getFood())) self.placeStats() elif inputClass.getFunctionName().find("CityDefense") > -1: if inputClass.getData1() == 1030: pCity.changeDefenseDamage( min( iChange, GC.getMAX_CITY_DEFENSE_DAMAGE() - pCity.getDefenseDamage())) elif inputClass.getData1() == 1031: pCity.changeDefenseDamage( -min(iChange, pCity.getDefenseDamage())) self.placeStats() elif inputClass.getFunctionName().find("CityTradeRoute") > -1: if inputClass.getData1() == 1030: pCity.changeExtraTradeRoutes( min( iChange, GC.getDefineINT("MAX_TRADE_ROUTES") - pCity.getTradeRoutes())) elif inputClass.getData1() == 1031: pCity.changeExtraTradeRoutes( -min(iChange, pCity.getTradeRoutes())) self.placeStats() elif inputClass.getFunctionName().find("CityChangeCulture") > -1: if inputClass.getData1() == 1030: pCity.changeCulture(iPlayer, iChange, True) elif inputClass.getData1() == 1031: pCity.changeCulture(iPlayer, -min(iChange, pCity.getCulture(iPlayer)), True) self.placeStats() elif inputClass.getFunctionName() == ("CityCultureLevel"): iIndex = screen.getSelectedPullDownID("CityCultureLevel") if iIndex == 0: pCity.setOccupationTimer(max(1, pCity.getOccupationTimer())) else: pCity.setOccupationTimer(0) pCity.setCulture( iPlayer, GC.getCultureLevelInfo(iIndex).getSpeedThreshold( CyGame().getGameSpeedType()), True) self.placeStats() elif inputClass.getFunctionName().find("CityChangeHappy") > -1: if inputClass.getData1() == 1030: pCity.changeExtraHappiness(iChange) elif inputClass.getData1() == 1031: pCity.changeExtraHappiness(-iChange) self.placeStats() elif inputClass.getFunctionName().find("CityChangeHealth") > -1: if inputClass.getData1() == 1030: pCity.changeExtraHealth(iChange) elif inputClass.getData1() == 1031: pCity.changeExtraHealth(-iChange) self.placeStats() elif inputClass.getFunctionName().find("CityOccupationTurn") > -1: if inputClass.getData1() == 1030: pCity.changeOccupationTimer(iChange) elif inputClass.getData1() == 1031: pCity.changeOccupationTimer( -min(iChange, pCity.getOccupationTimer())) self.placeStats() elif inputClass.getFunctionName().find("CityDraftAnger") > -1: if inputClass.getData1() == 1030: pCity.changeConscriptAngerTimer(iChange) elif inputClass.getData1() == 1031: pCity.changeConscriptAngerTimer( -min(iChange, pCity.getConscriptAngerTimer())) self.placeStats() elif inputClass.getFunctionName().find("CityHurryAnger") > -1: if inputClass.getData1() == 1030: pCity.changeHurryAngerTimer(iChange) elif inputClass.getData1() == 1031: pCity.changeHurryAngerTimer( -min(iChange, pCity.getHurryAngerTimer())) self.placeStats() elif inputClass.getFunctionName().find("CityDefyResolution") > -1: if inputClass.getData1() == 1030: pCity.changeDefyResolutionAngerTimer(iChange) elif inputClass.getData1() == 1031: pCity.changeDefyResolutionAngerTimer( -min(iChange, pCity.getDefyResolutionAngerTimer())) self.placeStats() elif inputClass.getFunctionName().find("CityEspionageHappy") > -1: if inputClass.getData1() == 1030: pCity.changeEspionageHappinessCounter(iChange) elif inputClass.getData1() == 1031: pCity.changeEspionageHappinessCounter( -min(iChange, pCity.getEspionageHappinessCounter())) self.placeStats() elif inputClass.getFunctionName().find("CityEspionageHealth") > -1: if inputClass.getData1() == 1030: pCity.changeEspionageHealthCounter(iChange) elif inputClass.getData1() == 1031: pCity.changeEspionageHealthCounter( -min(iChange, pCity.getEspionageHealthCounter())) self.placeStats() elif inputClass.getFunctionName().find("CityTemporaryHappy") > -1: if inputClass.getData1() == 1030: pCity.changeHappinessTimer(iChange) elif inputClass.getData1() == 1031: pCity.changeHappinessTimer( -min(iChange, pCity.getHappinessTimer())) self.placeStats() elif inputClass.getFunctionName() == "WBCityProduction": self.handlePlatyChooseProduction(inputClass) self.placeProduction() elif inputClass.getFunctionName().find("CurrentProduction") > -1: if inputClass.getData1() == 1030: pCity.changeProduction( min(iChange, pCity.getProductionNeeded() - pCity.getProduction())) elif inputClass.getData1() == 1031: pCity.changeProduction(-min(iChange, pCity.getProduction())) self.placeProduction() elif inputClass.getFunctionName().find("CityEditScriptData") > -1: popup = Popup.PyPopup(2222, EventContextTypes.EVENTCONTEXT_ALL) popup.setHeaderString(CyTranslator().getText( "TXT_KEY_WB_SCRIPT", ())) popup.setUserData((pCity.getOwner(), pCity.getID())) popup.createEditBox(pCity.getScriptData()) popup.launch() return elif inputClass.getFunctionName() == "Commands": iIndex = screen.getPullDownData( "Commands", screen.getSelectedPullDownID("Commands")) if iIndex == 5: pCity.kill() else: self.WB.iMoveCity = pCity.getID() self.WB.iCurrentPlayer = iPlayer if iIndex == 1: self.WB.iPlayerAddMode = "MoveCity" elif iIndex == 2: self.WB.iPlayerAddMode = "DuplicateCity" elif iIndex == 3: self.WB.iPlayerAddMode = "MoveCityPlus" self.WB.lMoveUnit = [] for pUnitX in pPlot.units(): if pUnitX.getOwner() == iPlayer: self.WB.lMoveUnit.append([iPlayer, pUnitX.getID()]) elif iIndex == 4: self.WB.iPlayerAddMode = "DuplicateCityPlus" self.WB.lMoveUnit = [] for pUnitX in pPlot.units(): if pUnitX.getOwner() == iPlayer: self.WB.lMoveUnit.append([iPlayer, pUnitX.getID()]) screen.hideScreen() return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBCityEditScreen", CvScreenEnums.WB_CITYEDIT) global iChange if inputClass.getFunctionName() == "ChangeBy": iChange = screen.getPullDownData( "ChangeBy", screen.getSelectedPullDownID("ChangeBy")) elif inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 1: WBCityDataScreen.WBCityDataScreen().interfaceScreen(pCity) elif iIndex == 2: WBBuildingScreen.WBBuildingScreen().interfaceScreen(pCity) elif iIndex == 3: WBPlayerScreen.WBPlayerScreen().interfaceScreen(iPlayer) elif iIndex == 4: WBTeamScreen.WBTeamScreen().interfaceScreen(pCity.getTeam()) elif iIndex == 5: WBPlayerUnits.WBPlayerUnits().interfaceScreen(iPlayer) elif iIndex == 6: WBPlotScreen.WBPlotScreen().interfaceScreen(pCity.plot()) elif iIndex == 7: WBEventScreen.WBEventScreen().interfaceScreen(pCity.plot()) elif iIndex == 8: WBReligionScreen.WBReligionScreen().interfaceScreen(iPlayer) elif iIndex == 9: WBCorporationScreen.WBCorporationScreen().interfaceScreen( iPlayer) elif iIndex == 11: WBInfoScreen.WBInfoScreen().interfaceScreen(iPlayer) elif inputClass.getFunctionName() == "CurrentCity": self.interfaceScreen( gc.getPlayer(iPlayer).getCity(inputClass.getData2())) elif inputClass.getFunctionName() == "CityName": popup = Popup.PyPopup(CvUtil.EventEditCityName, EventContextTypes.EVENTCONTEXT_ALL) popup.setUserData((pCity.getID(), True, iPlayer)) popup.setHeaderString(CyTranslator().getText( "TXT_KEY_NAME_CITY", ())) popup.setBodyString(CyTranslator().getText( "TXT_KEY_SETTLE_NEW_CITY_NAME", ())) popup.createEditBox(pCity.getName()) popup.setEditBoxMaxCharCount(26) popup.launch() elif inputClass.getFunctionName() == "CityOwner": iIndex = screen.getSelectedPullDownID("CityOwner") pPlot = pCity.plot() gc.getPlayer(screen.getPullDownData("CityOwner", iIndex)).acquireCity( pCity, False, True) self.interfaceScreen(pPlot.getPlotCity()) elif inputClass.getFunctionName().find("BaseYield") > -1: iYield = YieldTypes(inputClass.getData2()) if inputClass.getData1() == 1030: pCity.changeBaseYieldRate(iYield, iChange) elif inputClass.getData1() == 1031: pCity.changeBaseYieldRate( iYield, -min(iChange, pCity.getBaseYieldRate(iYield))) self.placeStats() elif inputClass.getFunctionName().find("CityPopulation") > -1: if inputClass.getData1() == 1030: pCity.changePopulation(iChange) elif inputClass.getData1() == 1031: pCity.changePopulation(-min(iChange, pCity.getPopulation())) self.placeStats() elif inputClass.getFunctionName().find("CityFood") > -1: if inputClass.getData1() == 1030: pCity.changeFood( min(iChange, pCity.growthThreshold() - pCity.getFood())) elif inputClass.getData1() == 1031: pCity.changeFood(-min(iChange, pCity.getFood())) self.placeStats() elif inputClass.getFunctionName().find("CityDefense") > -1: if inputClass.getData1() == 1030: pCity.changeDefenseDamage( min( iChange, gc.getMAX_CITY_DEFENSE_DAMAGE() - pCity.getDefenseDamage())) elif inputClass.getData1() == 1031: pCity.changeDefenseDamage( -min(iChange, pCity.getDefenseDamage())) self.placeStats() elif inputClass.getFunctionName().find("CityTradeRoute") > -1: if inputClass.getData1() == 1030: pCity.changeExtraTradeRoutes( min( iChange, gc.getDefineINT("MAX_TRADE_ROUTES") - pCity.getTradeRoutes())) elif inputClass.getData1() == 1031: pCity.changeExtraTradeRoutes( -min(iChange, pCity.getTradeRoutes())) self.placeStats() elif inputClass.getFunctionName().find("CityChangeCulture") > -1: if inputClass.getData1() == 1030: pCity.changeCulture(iPlayer, iChange, True) elif inputClass.getData1() == 1031: pCity.changeCulture(iPlayer, -min(iChange, pCity.getCulture(iPlayer)), True) self.placeStats() elif inputClass.getFunctionName() == ("CityCultureLevel"): iIndex = screen.getSelectedPullDownID("CityCultureLevel") if iIndex == 0: pCity.setOccupationTimer(max(1, pCity.getOccupationTimer())) else: pCity.setOccupationTimer(0) pCity.setCulture( iPlayer, gc.getCultureLevelInfo(iIndex).getSpeedThreshold( CyGame().getGameSpeedType()), True) self.placeStats() elif inputClass.getFunctionName().find("CityChangeHappy") > -1: if inputClass.getData1() == 1030: pCity.changeExtraHappiness(iChange) elif inputClass.getData1() == 1031: pCity.changeExtraHappiness(-iChange) self.placeStats() elif inputClass.getFunctionName().find("CityChangeHealth") > -1: if inputClass.getData1() == 1030: pCity.changeExtraHealth(iChange) elif inputClass.getData1() == 1031: pCity.changeExtraHealth(-iChange) self.placeStats() elif inputClass.getFunctionName().find("CityOccupationTurn") > -1: if inputClass.getData1() == 1030: pCity.changeOccupationTimer(iChange) elif inputClass.getData1() == 1031: pCity.changeOccupationTimer( -min(iChange, pCity.getOccupationTimer())) self.placeStats() elif inputClass.getFunctionName().find("CityDraftAnger") > -1: if inputClass.getData1() == 1030: pCity.changeConscriptAngerTimer(iChange) elif inputClass.getData1() == 1031: pCity.changeConscriptAngerTimer( -min(iChange, pCity.getConscriptAngerTimer())) self.placeStats() elif inputClass.getFunctionName().find("CityHurryAnger") > -1: if inputClass.getData1() == 1030: pCity.changeHurryAngerTimer(iChange) elif inputClass.getData1() == 1031: pCity.changeHurryAngerTimer( -min(iChange, pCity.getHurryAngerTimer())) self.placeStats() elif inputClass.getFunctionName().find("CityDefyResolution") > -1: if inputClass.getData1() == 1030: pCity.changeDefyResolutionAngerTimer(iChange) elif inputClass.getData1() == 1031: pCity.changeDefyResolutionAngerTimer( -min(iChange, pCity.getDefyResolutionAngerTimer())) self.placeStats() elif inputClass.getFunctionName().find("CityEspionageHappy") > -1: if inputClass.getData1() == 1030: pCity.changeEspionageHappinessCounter(iChange) elif inputClass.getData1() == 1031: pCity.changeEspionageHappinessCounter( -min(iChange, pCity.getEspionageHappinessCounter())) self.placeStats() elif inputClass.getFunctionName().find("CityEspionageHealth") > -1: if inputClass.getData1() == 1030: pCity.changeEspionageHealthCounter(iChange) elif inputClass.getData1() == 1031: pCity.changeEspionageHealthCounter( -min(iChange, pCity.getEspionageHealthCounter())) self.placeStats() elif inputClass.getFunctionName().find("CityTemporaryHappy") > -1: if inputClass.getData1() == 1030: pCity.changeHappinessTimer(iChange) elif inputClass.getData1() == 1031: pCity.changeHappinessTimer( -min(iChange, pCity.getHappinessTimer())) self.placeStats() elif inputClass.getFunctionName() == "WBCityProduction": self.handlePlatyChooseProduction(inputClass) self.placeProduction() elif inputClass.getFunctionName().find("CurrentProduction") > -1: if inputClass.getData1() == 1030: pCity.changeProduction( min(iChange, pCity.getProductionNeeded() - pCity.getProduction())) elif inputClass.getData1() == 1031: pCity.changeProduction(-min(iChange, pCity.getProduction())) self.placeProduction() elif inputClass.getFunctionName().find("CityEditScriptData") > -1: popup = Popup.PyPopup(2222, EventContextTypes.EVENTCONTEXT_ALL) popup.setHeaderString(CyTranslator().getText( "TXT_KEY_WB_SCRIPT", ())) popup.setUserData((pCity.getOwner(), pCity.getID())) popup.createEditBox(pCity.getScriptData()) popup.launch() return 0 return 1
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBPromotionScreen", CvScreenEnums.WB_PROMOTION) global bApplyAll global iChangeType global iPlotType global iCopyType global iOwnerType global iSelectedClass if inputClass.getFunctionName() == "CurrentPage": iIndex = screen.getPullDownData( "CurrentPage", screen.getSelectedPullDownID("CurrentPage")) if iIndex == 0: WBUnitScreen.WBUnitScreen( CvPlatyBuilderScreen.CvWorldBuilderScreen( )).interfaceScreen(pUnit) elif iIndex == 2: WBPlayerScreen.WBPlayerScreen().interfaceScreen( pUnit.getOwner()) elif iIndex == 3: WBTeamScreen.WBTeamScreen().interfaceScreen(pUnit.getTeam()) elif iIndex == 4: WBPlotScreen.WBPlotScreen().interfaceScreen(pPlot) elif iIndex == 5: WBEventScreen.WBEventScreen().interfaceScreen(pPlot) elif iIndex == 6: WBPlayerUnits.WBPlayerUnits().interfaceScreen(pUnit.getOwner()) elif iIndex == 11: WBInfoScreen.WBInfoScreen().interfaceScreen(pUnit.getOwner()) elif inputClass.getFunctionName() == "ChangeType": iChangeType = screen.getPullDownData( "ChangeType", screen.getSelectedPullDownID("ChangeType")) elif inputClass.getFunctionName() == "OwnerType": iOwnerType = screen.getPullDownData( "OwnerType", screen.getSelectedPullDownID("OwnerType")) self.sortUnits() elif inputClass.getFunctionName() == "PlotType": iPlotType = screen.getPullDownData( "PlotType", screen.getSelectedPullDownID("PlotType")) self.sortUnits() elif inputClass.getFunctionName() == "CopyType": iCopyType = screen.getPullDownData( "CopyType", screen.getSelectedPullDownID("CopyType")) self.sortUnits() elif inputClass.getFunctionName() == "WBCurrentUnit": iPlayer = inputClass.getData1() - 8300 self.interfaceScreen( gc.getPlayer(iPlayer).getUnit(inputClass.getData2())) elif inputClass.getFunctionName() == "CombatClass": iSelectedClass = screen.getPullDownData( "CombatClass", screen.getSelectedPullDownID("CombatClass")) self.sortPromotions() elif inputClass.getFunctionName() == "WBPromotion": self.editPromotion(inputClass.getData2()) self.placePromotions() elif inputClass.getFunctionName() == "PromotionAll": for item in lList: self.editPromotion(item[1]) self.placePromotions() elif inputClass.getFunctionName() == "ApplyAll": bApplyAll = not bApplyAll sText = u"<font=3b>" + CyTranslator().getText( "TXT_KEY_WB_COPY_ALL", (CyTranslator().getText("TXT_KEY_PEDIA_CATEGORY_UNIT", ()), )) + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if bApplyAll: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.modifyString("ApplyAll", sColor + sText + "</color>", 0) elif inputClass.getFunctionName() == "HideInactive": CvPlatyBuilderScreen.bHideInactive = not CvPlatyBuilderScreen.bHideInactive CvPlatyBuilderScreen.CvWorldBuilderScreen().refreshSideMenu() sText = u"<font=3b>" + CyTranslator().getText( "TXT_KEY_PEDIA_HIDE_INACTIVE", ()) + "</font>" sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ()) if CvPlatyBuilderScreen.bHideInactive: sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ()) screen.setText("HideInactive", "Background", sColor + sText + "</color>", CvUtil.FONT_RIGHT_JUSTIFY, screen.getXResolution() - 20, self.iTable_Y - 80, -0.1, FontTypes.TITLE_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1) self.sortPromotions() return 1