def __eventEditUnitNameApply(self, playerID, userData, popupReturn): unit = gc.getPlayer(userData[1]).getUnit(userData[0]) newName = popupReturn.getEditBoxString(0) unit.setName(newName) if CyGame().GetWorldBuilderMode(): WBUnitScreen.WBUnitScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).placeStats() WBUnitScreen.WBUnitScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).placeCurrentUnit()
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("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 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 __eventWBUnitScriptPopupApply(self, playerID, userData, popupReturn): sScript = popupReturn.getEditBoxString(0) pUnit = gc.getPlayer(userData[0]).getUnit(userData[1]) pUnit.setScriptData(CvUtil.convertToStr(sScript)) WBUnitScreen.WBUnitScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).placeScript() 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("WBInfoScreen", CvScreenEnums.WB_INFO) global iSelectedPlayer global iItem global iMode global lSelectedItem if inputClass.getFunctionName() == "PlotData": if iMode == 0: pUnit = gc.getPlayer(lSelectedItem[0]).getUnit( lSelectedItem[1]) if pUnit: WBUnitScreen.WBUnitScreen( CvPlatyBuilderScreen.CvWorldBuilderScreen( )).interfaceScreen(pUnit) elif iMode == 1: pUnit = gc.getPlayer(lSelectedItem[0]).getUnit( lSelectedItem[1]) if pUnit: WBPromotionScreen.WBPromotionScreen().interfaceScreen( pUnit) elif iMode < 6: pCity = gc.getPlayer(lSelectedItem[0]).getCity( lSelectedItem[1]) if pCity: WBCityEditScreen.WBCityEditScreen( CvPlatyBuilderScreen.CvWorldBuilderScreen( )).interfaceScreen(pCity) elif iMode < 11: pPlot = CyMap().plot(lSelectedItem[0], lSelectedItem[1]) if not pPlot.isNone(): WBPlotScreen.WBPlotScreen().interfaceScreen(pPlot) elif iMode == 11: WBPlayerScreen.WBPlayerScreen().interfaceScreen( lSelectedItem[0]) elif iMode == 12: WBTechScreen.WBTechScreen().interfaceScreen(lSelectedItem[0]) elif iMode == 13: WBProjectScreen.WBProjectScreen().interfaceScreen( lSelectedItem[0]) elif inputClass.getFunctionName() == "ItemType": iMode = screen.getPullDownData( "ItemType", screen.getSelectedPullDownID("ItemType")) iItem = -1 self.interfaceScreen(iSelectedPlayer) elif inputClass.getFunctionName() == "CurrentPlayer": iSelectedPlayer = screen.getPullDownData( "CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer")) self.interfaceScreen(iSelectedPlayer) elif inputClass.getFunctionName() == "InfoTable": iItem = inputClass.getData2() self.refreshMap() elif inputClass.getFunctionName() == "PlotTable": iColorA = gc.getInfoTypeForString(self.iColorA) iColorB = gc.getInfoTypeForString(self.iColorB) if iMode < 2: pUnit = gc.getPlayer(lSelectedItem[0]).getUnit( lSelectedItem[1]) if pUnit: screen.minimapFlashPlot(pUnit.getX(), pUnit.getY(), iColorB, -1) iPlayer = inputClass.getData1() - 8300 iUnit = inputClass.getData2() pNewUnit = gc.getPlayer(iPlayer).getUnit(iUnit) if pNewUnit: lSelectedItem = [iPlayer, iUnit] screen.minimapFlashPlot(pNewUnit.getX(), pNewUnit.getY(), iColorA, -1) elif iMode < 6: pCity = gc.getPlayer(lSelectedItem[0]).getCity( lSelectedItem[1]) if pCity: screen.minimapFlashPlot(pCity.getX(), pCity.getY(), iColorB, -1) iPlayer = inputClass.getData1() - 7200 iCity = inputClass.getData2() pNewCity = gc.getPlayer(iPlayer).getCity(iCity) if pNewCity: lSelectedItem = [iPlayer, iCity] screen.minimapFlashPlot(pNewCity.getX(), pNewCity.getY(), iColorA, -1) elif iMode < 11: iX = lSelectedItem[0] iY = lSelectedItem[1] if iX > -1 and iY > -1: screen.minimapFlashPlot(iX, iY, iColorB, -1) iX = inputClass.getData2() / 10000 iY = inputClass.getData2() % 10000 lSelectedItem = [iX, iY] screen.minimapFlashPlot(iX, iY, iColorA, -1) elif iMode == 11: iPlayerX = inputClass.getData2() / 10000 lSelectedItem = [iPlayerX, -1] elif iMode > 11: iPlayerX = inputClass.getData2() / 10000 lSelectedItem = [gc.getPlayer(iPlayerX).getTeam(), -1] self.placePlotData() 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() / 3 + 20, self.iTable_Y - 22, -0.1, FontTypes.TITLE_FONT, WidgetTypes.WIDGET_GENERAL, -1, -1) self.placeItems()
def handleInput(self, inputClass): screen = CyGInterfaceScreen("WBInfoScreen", CvScreenEnums.WB_INFO) global iSelectedPlayer global iItem global iMode global lSelectedItem if inputClass.getFunctionName() == "PlotData": if iMode == 0: pUnit = GC.getPlayer(lSelectedItem[0]).getUnit( lSelectedItem[1]) if pUnit: WBUnitScreen.WBUnitScreen(self.WB).interfaceScreen(pUnit) elif iMode == 1: pUnit = GC.getPlayer(lSelectedItem[0]).getUnit( lSelectedItem[1]) if pUnit: WBPromotionScreen.WBPromotionScreen( self.WB).interfaceScreen(pUnit) elif iMode < 6: pCity = GC.getPlayer(lSelectedItem[0]).getCity( lSelectedItem[1]) if pCity: WBCityEditScreen.WBCityEditScreen( self.WB).interfaceScreen(pCity) elif iMode < 11: pPlot = CyMap().plot(lSelectedItem[0], lSelectedItem[1]) if not pPlot.isNone(): WBPlotScreen.WBPlotScreen(self.WB).interfaceScreen(pPlot) elif iMode == 11: WBPlayerScreen.WBPlayerScreen(self.WB).interfaceScreen( lSelectedItem[0]) elif iMode == 12: self.WB.goToSubScreen("TechScreen") elif iMode == 13: WBProjectScreen.WBProjectScreen(self.WB).interfaceScreen( lSelectedItem[0]) if inputClass.getFunctionName() == "ItemType": iMode = screen.getPullDownData( "ItemType", screen.getSelectedPullDownID("ItemType")) iItem = -1 self.interfaceScreen(iSelectedPlayer) elif inputClass.getFunctionName() == "CurrentPlayer": iSelectedPlayer = screen.getPullDownData( "CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer")) self.interfaceScreen(iSelectedPlayer) elif inputClass.getFunctionName() == "InfoTable": iItem = inputClass.getData2() self.refreshMap() elif inputClass.getFunctionName() == "PlotTable": iColorA = GC.getInfoTypeForString(self.iColorA) iColorB = GC.getInfoTypeForString(self.iColorB) if iMode < 2: pUnit = GC.getPlayer(lSelectedItem[0]).getUnit( lSelectedItem[1]) if pUnit: screen.minimapFlashPlot(pUnit.getX(), pUnit.getY(), iColorB, -1) iPlayer = inputClass.getData1() - 8300 iUnit = inputClass.getData2() pNewUnit = GC.getPlayer(iPlayer).getUnit(iUnit) if pNewUnit: lSelectedItem = [iPlayer, iUnit] screen.minimapFlashPlot(pNewUnit.getX(), pNewUnit.getY(), iColorA, -1) elif iMode < 6: pCity = GC.getPlayer(lSelectedItem[0]).getCity( lSelectedItem[1]) if pCity: screen.minimapFlashPlot(pCity.getX(), pCity.getY(), iColorB, -1) iPlayer = inputClass.getData1() - 7200 iCity = inputClass.getData2() pNewCity = GC.getPlayer(iPlayer).getCity(iCity) if pNewCity: lSelectedItem = [iPlayer, iCity] screen.minimapFlashPlot(pNewCity.getX(), pNewCity.getY(), iColorA, -1) elif iMode < 11: iX = lSelectedItem[0] iY = lSelectedItem[1] if iX > -1 and iY > -1: screen.minimapFlashPlot(iX, iY, iColorB, -1) iX = inputClass.getData2() / 10000 iY = inputClass.getData2() % 10000 lSelectedItem = [iX, iY] screen.minimapFlashPlot(iX, iY, iColorA, -1) elif iMode == 11: iPlayerX = inputClass.getData2() / 10000 lSelectedItem = [iPlayerX, -1] elif iMode > 11: iPlayerX = inputClass.getData2() / 10000 lSelectedItem = [GC.getPlayer(iPlayerX).getTeam(), -1] self.placePlotData()
# 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 ####################################################################################### HandleNavigationMap = { MAIN_INTERFACE: mainInterface,
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: WBCorporationScreen.WBCorporationScreen(), WB_INFO: WBInfoScreen.WBInfoScreen(), WB_TRADE:
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("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