Beispiel #1
0
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)
Beispiel #2
0
	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
Beispiel #3
0
    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
Beispiel #4
0
	def __eventWBPlotScriptPopupApply(self, playerID, userData, popupReturn):
		sScript = popupReturn.getEditBoxString(0)
		pPlot = CyMap().plot(userData[0], userData[1])
		pPlot.setScriptData(CvUtil.convertToStr(sScript))
		WBPlotScreen.WBPlotScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).placeScript()
		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(
                    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
Beispiel #6
0
    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()
Beispiel #7
0
    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
Beispiel #8
0
    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
Beispiel #9
0
    PEDIA_CIVIC: pediaMainScreen,
    PEDIA_CIVILIZATION: pediaMainScreen,
    PEDIA_LEADER: pediaMainScreen,
    PEDIA_RELIGION: pediaMainScreen,
    #					PEDIA_CORPORATION : pediaMainScreen,
    PEDIA_HISTORY: pediaMainScreen,
    WORLDBUILDER_SCREEN: worldBuilderScreen,
    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(),
Beispiel #10
0
    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()
Beispiel #11
0
 topCivs,
 HALL_OF_FAME:
 hallOfFameScreen,
 VICTORY_MOVIE_SCREEN:
 victoryMovie,
 ESPIONAGE_ADVISOR:
 espionageAdvisor,
 DAN_QUAYLE_SCREEN:
 danQuayleScreen,
 WORLDBUILDER_SCREEN:
 worldBuilderScreen,
 DEBUG_INFO_SCREEN:
 debugInfoScreen,
 ## World Builder ##
 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:
Beispiel #12
0
	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)

#Magister Start
			elif iIndex == 5:
				WBUnitScreen.WBUnitScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).interfaceScreen(pPlayer.getUnit(iUnitID))
			elif iIndex == 6:
				WBPromotionScreen.WBPromotionScreen().interfaceScreen(pPlayer.getUnit(iUnitID))
			elif iIndex == 7:
				WBPlotScreen.WBPlotScreen().interfaceScreen(pPlayer.getUnit(iUnitID).plot())
			elif iIndex == 8:
				WBEventScreen.WBEventScreen().interfaceScreen(pPlayer.getUnit(iUnitID).plot())
			elif iIndex == 9:
				WBCityEditScreen.WBCityEditScreen().interfaceScreen(pPlayer.getCity(iCityID))
			elif iIndex == 10:
				WBCityDataScreen.WBCityDataScreen().interfaceScreen(pPlayer.getCity(iCityID))
			elif iIndex == 14:
				WBBuildingScreen.WBBuildingScreen().interfaceScreen(pPlayer.getCity(iCityID))
			elif iIndex == 12:
				WBPlotScreen.WBPlotScreen().interfaceScreen(pPlayer.getCity(iCityID).plot())
			elif iIndex == 13:
				WBEventScreen.WBEventScreen().interfaceScreen(pPlayer.getCity(iCityID).plot())
#Magister Stop

		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()
				self.interfaceScreen(iPlayer)#Magister
			else:
				self.placeCityMap()
				self.interfaceScreen(iPlayer)#Magister

		elif inputClass.getFunctionName() == "DeleteAllCities":
			pPlayer.killCities()
			self.setCityTable()
			self.interfaceScreen(iPlayer)#Magister

		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()
				self.interfaceScreen(iPlayer)#Magister
			else:
				self.placeUnitMap()
				self.interfaceScreen(iPlayer)#Magister

		elif inputClass.getFunctionName() == "DeleteAllUnits":
			pPlayer.killUnits()
			self.setUnitTable()
			self.interfaceScreen(iPlayer)#Magister
		return
Beispiel #13
0
    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("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("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
Beispiel #16
0
    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
Beispiel #17
0
    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