def handleInput(self, inputClass):
		screen = CyGInterfaceScreen("WBCorporationScreen", CvScreenEnums.WB_CORPORATION)
		global iSelectedPlayer
		global bHeadquarter
		global iOwnerType

		if inputClass.getButtonType() == WidgetTypes.WIDGET_PYTHON:
			if inputClass.getData1() > 7199 and inputClass.getData1() < 7300:
				iCityID = inputClass.getData2()
				iPlayerX = inputClass.getData1() - 7200
				WBCityEditScreen.WBCityEditScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).interfaceScreen(gc.getPlayer(iPlayerX).getCity(iCityID))

			elif inputClass.getData1() == 7876 or inputClass.getData1() == 7872:
				iPlayerX = inputClass.getData2() /10000
				WBPlayerScreen.WBPlayerScreen().interfaceScreen(iPlayerX)

		if inputClass.getFunctionName() == "CurrentPage":
			iIndex = screen.getPullDownData("CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
			if iIndex == 0:
				WBPlayerScreen.WBPlayerScreen().interfaceScreen(iSelectedPlayer)
			elif iIndex == 1:
				WBTeamScreen.WBTeamScreen().interfaceScreen(gc.getPlayer(iSelectedPlayer).getTeam())
			elif iIndex == 8:
				WBReligionScreen.WBReligionScreen().interfaceScreen(iSelectedPlayer)
			elif iIndex == 10:
				WBGameDataScreen.WBGameDataScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).interfaceScreen()
			elif iIndex == 11:
				WBInfoScreen.WBInfoScreen().interfaceScreen(iSelectedPlayer)

		elif inputClass.getFunctionName() == "OwnerType":
			iOwnerType = screen.getPullDownData("OwnerType", screen.getSelectedPullDownID("OwnerType"))
			self.sortCities()

		elif inputClass.getFunctionName() == "CurrentPlayer":
			iSelectedPlayer = screen.getPullDownData("CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer"))
			self.interfaceScreen(iSelectedPlayer)

		elif inputClass.getFunctionName() == "WBCityCorporations":
			if inputClass.getData1() == 8201:
				pCity = lCities[inputClass.getData()][0]
				if bHeadquarter:
					self.editHeadquarter(inputClass.getData2(), pCity)
				else:
					self.editCorporation(inputClass.getData2(), pCity, 2)
				self.placeCityTable()

		elif inputClass.getFunctionName() == "WBAllCorporations":
			if inputClass.getButtonType() == WidgetTypes.WIDGET_PYTHON:
				for (loopCity, iPlayerX) in lCities:
					self.editCorporation(inputClass.getData2(), loopCity, inputClass.getData1() == 8201)
				self.placeCityTable()

		elif inputClass.getFunctionName() == "SetHeadquarter":
			bHeadquarter = not bHeadquarter
			sText = "<font=3b>" + CyTranslator().getText("TXT_KEY_CORPORATION_HEADQUARTERS", ()) + "</font>"
			sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ())
			if bHeadquarter:
				sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ())
			screen.modifyString("SetHeadquarter", sColor + sText + "</color>", 0)
		return 1
	def handleInput(self, inputClass):
		screen = CyGInterfaceScreen( "WBTechScreen", CvScreenEnums.WB_TECH)
		global iChangeType
		global bApplyAll
		global bNoBarb
		global iSelectedEra

		if inputClass.getFunctionName() == "TechEra":
			iSelectedEra = inputClass.getData() - 1
			self.createTechList()
			self.placeTechs()

		elif inputClass.getFunctionName() == "CurrentTeam":
			iIndex = screen.getPullDownData("CurrentTeam", screen.getSelectedPullDownID("CurrentTeam"))
			self.interfaceScreen(iIndex)

		elif inputClass.getFunctionName() == "ChangeType":
			iChangeType = screen.getPullDownData("ChangeType", screen.getSelectedPullDownID("ChangeType"))

		elif inputClass.getFunctionName() == "CurrentPage":
			iIndex = screen.getPullDownData("CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
			if iIndex == 0:
				WBPlayerScreen.WBPlayerScreen().interfaceScreen(pTeam.getLeaderID())
			elif iIndex == 1:
				WBTeamScreen.WBTeamScreen().interfaceScreen(iTeam)
			elif iIndex == 2:
				WBProjectScreen.WBProjectScreen().interfaceScreen(iTeam)
			elif iIndex == 4:
				WBPlayerUnits.WBPlayerUnits().interfaceScreen(pTeam.getLeaderID())
			elif iIndex == 11:
				WBInfoScreen.WBInfoScreen().interfaceScreen(pTeam.getLeaderID())

		elif inputClass.getFunctionName() == "TechAll":
			for item in lTech:
				ItemInfo = gc.getTechInfo(item[1])
				if ItemInfo.isRepeat(): continue
				self.editTech(item[1])
			self.placeTechs()

		elif inputClass.getFunctionName() == "WBTech":
			self.editTech(inputClass.getData2())
			self.placeTechs()

		elif inputClass.getFunctionName() == "ApplyAll":
			bApplyAll = not bApplyAll
			sText = u"<font=3b>" + CyTranslator().getText("TXT_KEY_WB_COPY_ALL", (CyTranslator().getText("TXT_KEY_MAIN_MENU_PLAYERS", ()),)) + "</font>"
			sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ())
			if bApplyAll:
				sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ())
			screen.modifyString("ApplyAll", sColor + sText + "</color>", 0)

		elif inputClass.getFunctionName() == "NoBarbarians":
			bNoBarb = not bNoBarb
			sText = u"<font=3b>" + CyTranslator().getText("TXT_KEY_GAME_OPTION_NO_BARBARIANS", ()) + "</font>"
			sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ())
			if bNoBarb:
				sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ())
			screen.modifyString("NoBarbarians", sColor + sText + "</color>", 0)
		return 1
    def handleInput(self, inputClass):
        screen = CyGInterfaceScreen("WBPlayerUnits", CvScreenEnums.WB_UNITLIST)
        global iCityID
        global iUnitID
        if inputClass.getFunctionName() == "CurrentPage":
            iIndex = screen.getPullDownData(
                "CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
            if iIndex == 0:
                WBPlayerScreen.WBPlayerScreen().interfaceScreen(iPlayer)
            elif iIndex == 1:
                WBTeamScreen.WBTeamScreen().interfaceScreen(iTeam)
            elif iIndex == 2:
                WBProjectScreen.WBProjectScreen().interfaceScreen(iTeam)
            elif iIndex == 3:
                WBTechScreen.WBTechScreen().interfaceScreen(iTeam)
            elif iIndex == 11:
                WBInfoScreen.WBInfoScreen().interfaceScreen(iPlayer)

        elif inputClass.getFunctionName() == "CurrentPlayer":
            iIndex = screen.getPullDownData(
                "CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer"))
            iCityID = 0
            iUnitID = 0
            self.interfaceScreen(iIndex)

        elif inputClass.getFunctionName() == "WBCityList":
            iCityID = inputClass.getData2()
            if inputClass.getData1() == 1030:
                WBCityEditScreen.WBCityEditScreen().interfaceScreen(
                    pPlayer.getCity(iCityID))
            elif inputClass.getData1() == 1031:
                pPlayer.getCity(iCityID).kill()
                self.setCityTable()
            else:
                self.placeCityMap()

        elif inputClass.getFunctionName() == "DeleteAllCities":
            pPlayer.killCities()
            self.setCityTable()

        elif inputClass.getFunctionName() == "WBUnitList":
            iUnitID = inputClass.getData2()
            if inputClass.getData1() == 1030:
                WBUnitScreen.WBUnitScreen(
                    CvPlatyBuilderScreen.CvWorldBuilderScreen(
                    )).interfaceScreen(pPlayer.getUnit(iUnitID))
            elif inputClass.getData1() == 1031:
                pPlayer.getUnit(iUnitID).kill(false, PlayerTypes.NO_PLAYER)
                self.setUnitTable()
            else:
                self.placeUnitMap()

        elif inputClass.getFunctionName() == "DeleteAllUnits":
            pPlayer.killUnits()
            self.setUnitTable()
        return
    def handleInput(self, inputClass):
        screen = CyGInterfaceScreen("WBBuildingScreen",
                                    CvScreenEnums.WB_BUILDING)
        global bApplyAll
        global iSelectedClass
        global iChangeType
        global iOwnerType
        global iPlotType

        if inputClass.getFunctionName() == "CurrentPage":
            iIndex = screen.getPullDownData(
                "CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
            if iIndex == 0:
                WBCityEditScreen.WBCityEditScreen(
                    self.WB).interfaceScreen(pCity)
            elif iIndex == 1:
                WBCityDataScreen.WBCityDataScreen(
                    self.WB).interfaceScreen(pCity)
            elif iIndex == 3:
                WBPlayerScreen.WBPlayerScreen(self.WB).interfaceScreen(iPlayer)
            elif iIndex == 4:
                WBTeamScreen.WBTeamScreen(self.WB).interfaceScreen(
                    pCity.getTeam())
            elif iIndex == 5:
                WBPlayerUnits.WBPlayerUnits(self.WB).interfaceScreen(iPlayer)
            elif iIndex == 6:
                WBPlotScreen.WBPlotScreen(self.WB).interfaceScreen(
                    pCity.plot())
            elif iIndex == 7:
                WBEventScreen.WBEventScreen(self.WB).interfaceScreen(
                    pCity.plot())
            elif iIndex == 8:
                WBReligionScreen.WBReligionScreen(
                    self.WB).interfaceScreen(iPlayer)
            elif iIndex == 9:
                WBCorporationScreen.WBCorporationScreen(
                    self.WB).interfaceScreen(iPlayer)
            elif iIndex == 11:
                WBInfoScreen.WBInfoScreen(self.WB).interfaceScreen(iPlayer)

        elif inputClass.getFunctionName() == "OwnerType":
            iOwnerType = screen.getPullDownData(
                "OwnerType", screen.getSelectedPullDownID("OwnerType"))
            self.sortCities()

        elif inputClass.getFunctionName() == "PlotType":
            iPlotType = screen.getPullDownData(
                "PlotType", screen.getSelectedPullDownID("PlotType"))
            self.sortCities()

        elif inputClass.getFunctionName() == "ChangeType":
            iChangeType = screen.getPullDownData(
                "ChangeType", screen.getSelectedPullDownID("ChangeType"))

        elif inputClass.getFunctionName() == "CurrentCity":
            iPlayerX = inputClass.getData1() - 7200
            pPlayerX = GC.getPlayer(iPlayerX)
            if pPlayerX:
                self.interfaceScreen(pPlayerX.getCity(inputClass.getData2()))

        elif inputClass.getFunctionName() == "WBBuilding":
            bUpdate = self.editBuilding(inputClass.getData1(),
                                        GC.getPlayer(iPlayer), False, False)
            self.placeBuildings()
            if bUpdate:
                self.placeWonders()

        elif inputClass.getFunctionName() == "BuildingAvailable":
            bUpdate = False
            for item in lBuilding:
                bTemp = self.editBuilding(item[1], GC.getPlayer(iPlayer), True,
                                          False)
                bUpdate = bUpdate or bTemp
            self.placeBuildings()
            if bUpdate:
                self.placeWonders()

        elif inputClass.getFunctionName() == "BuildingAll":
            bUpdate = False
            for item in lBuilding:
                bTemp = self.editBuilding(item[1], GC.getPlayer(iPlayer),
                                          False, False)
                bUpdate = bUpdate or bTemp
            self.placeBuildings()
            if bUpdate:
                self.placeWonders()

        elif inputClass.getFunctionName() == "WonderClass":
            iSelectedClass = inputClass.getData()
            self.placeWonders()

        elif inputClass.getFunctionName() == "WBWonders":
            bUpdate = self.editBuilding(inputClass.getData1(),
                                        GC.getPlayer(iPlayer), False, True)
            self.placeWonders()
            if bUpdate:
                self.placeBuildings()

        elif inputClass.getFunctionName() == "WonderAvailable":
            bUpdate = False
            lList = lWorld
            if iSelectedClass == 0:
                lList = lNational + lTeam + lWorld
            elif iSelectedClass == 1:
                lList = lNational
            elif iSelectedClass == 2:
                lList = lTeam
            for item in lList:
                bTemp = self.editBuilding(item[1], GC.getPlayer(iPlayer), True,
                                          True)
                bUpdate = bUpdate or bTemp
            self.placeWonders()
            if bUpdate:
                self.placeBuildings()

        elif inputClass.getFunctionName() == "WonderAll":
            bUpdate = False
            lList = lWorld
            if iSelectedClass == 0:
                lList = lNational + lTeam + lWorld
            elif iSelectedClass == 1:
                lList = lNational
            elif iSelectedClass == 2:
                lList = lTeam
            for item in lList:
                bTemp = self.editBuilding(item[1], GC.getPlayer(iPlayer),
                                          False, True)
                bUpdate = bUpdate or bTemp
            self.placeWonders()
            if bUpdate:
                self.placeBuildings()

        elif inputClass.getFunctionName() == "ApplyAll":
            bApplyAll = not bApplyAll
            sText = u"<font=3b>" + CyTranslator().getText(
                "TXT_KEY_WB_COPY_ALL",
                (CyTranslator().getText("TXT_KEY_CONCEPT_CITIES",
                                        ()), )) + "</font>"
            sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ())
            if bApplyAll:
                sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ())
            screen.modifyString("ApplyAll", sColor + sText + "</color>", 0)
        return 1
    def handleInput(self, inputClass):
        screen = CyGInterfaceScreen("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
Example #6
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
Example #7
0
	def __eventWBPlayerScriptPopupApply(self, playerID, userData, popupReturn):
		sScript = popupReturn.getEditBoxString(0)
		gc.getPlayer(userData[0]).setScriptData(CvUtil.convertToStr(sScript))
		WBPlayerScreen.WBPlayerScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).placeScript()
		return
Example #8
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
Example #9
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()
Example #10
0
 WB_EVENT:
 WBEventScreen.WBEventScreen(),
 WB_BUILDING:
 WBBuildingScreen.WBBuildingScreen(),
 WB_CITYDATA:
 WBCityDataScreen.WBCityDataScreen(),
 WB_CITYEDIT:
 WBCityEditScreen.WBCityEditScreen(worldBuilderScreen),
 WB_TECH:
 WBTechScreen.WBTechScreen(),
 WB_PROJECT:
 WBProjectScreen.WBProjectScreen(),
 WB_TEAM:
 WBTeamScreen.WBTeamScreen(),
 WB_PLAYER:
 WBPlayerScreen.WBPlayerScreen(),
 WB_UNIT:
 WBUnitScreen.WBUnitScreen(worldBuilderScreen),
 WB_PROMOTION:
 WBPromotionScreen.WBPromotionScreen(),
 WB_DIPLOMACY:
 WBDiplomacyScreen.WBDiplomacyScreen(),
 WB_GAMEDATA:
 WBGameDataScreen.WBGameDataScreen(worldBuilderScreen),
 WB_UNITLIST:
 WBPlayerUnits.WBPlayerUnits(),
 WB_RELIGION:
 WBReligionScreen.WBReligionScreen(),
 WB_CORPORATION:
 WBCorporationScreen.WBCorporationScreen(),
 WB_INFO:
Example #11
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
Example #12
0
    def handleInput(self, inputClass):
        screen = CyGInterfaceScreen("WBCorporationScreen",
                                    CvScreenEnums.WB_CORPORATION)
        global iSelectedPlayer
        global bHeadquarter

        if inputClass.getButtonType() == WidgetTypes.WIDGET_PYTHON:
            if inputClass.getData1() > 7199 and inputClass.getData1() < 7300:
                iCityID = inputClass.getData2()
                iPlayerX = inputClass.getData1() - 7200
                WBCityEditScreen.WBCityEditScreen().interfaceScreen(
                    gc.getPlayer(iPlayerX).getCity(iCityID))

            elif inputClass.getData1() == 7876 or inputClass.getData1(
            ) == 7872:
                iPlayerX = inputClass.getData2() / 10000
                WBPlayerScreen.WBPlayerScreen().interfaceScreen(iPlayerX)

        if inputClass.getFunctionName() == "CurrentPage":
            iIndex = screen.getPullDownData(
                "CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
            if iIndex == 0:
                WBPlayerScreen.WBPlayerScreen().interfaceScreen(
                    iSelectedPlayer)
            elif iIndex == 1:
                WBTeamScreen.WBTeamScreen().interfaceScreen(
                    gc.getPlayer(iSelectedPlayer).getTeam())
            elif iIndex == 8:
                WBReligionScreen.WBReligionScreen().interfaceScreen(
                    iSelectedPlayer)
            elif iIndex == 10:
                WBGameDataScreen.WBGameDataScreen(
                    CvPlatyBuilderScreen.CvWorldBuilderScreen(
                    )).interfaceScreen()
            elif iIndex == 11:
                WBInfoScreen.WBInfoScreen().interfaceScreen(iSelectedPlayer)

        elif inputClass.getFunctionName() == "CurrentPlayer":
            iSelectedPlayer = screen.getPullDownData(
                "CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer"))
            self.interfaceScreen(iSelectedPlayer)

        elif inputClass.getFunctionName() == "WBCityCorporations":
            if inputClass.getData1() == 8201:
                pPlayer = gc.getPlayer(iSelectedPlayer)
                (loopCity, pIter) = pPlayer.firstCity(False)
                while loopCity:
                    if not loopCity.isNone() and loopCity.getOwner(
                    ) == pPlayer.getID():  #only valid cities
                        if pIter - 1 == inputClass.getData():
                            if bHeadquarter:
                                self.editHeadquarter(inputClass.getData2(),
                                                     loopCity)
                            else:
                                self.editCorporation(inputClass.getData2(),
                                                     loopCity, 2)
                            break
                    (loopCity, pIter) = pPlayer.nextCity(pIter, False)
                self.placePlayerCities()

        elif inputClass.getFunctionName() == "WBAllCorporations":
            if inputClass.getButtonType() == WidgetTypes.WIDGET_PYTHON:
                pPlayer = gc.getPlayer(iSelectedPlayer)
                (loopCity, pIter) = pPlayer.firstCity(False)
                while loopCity:
                    if not loopCity.isNone() and loopCity.getOwner(
                    ) == pPlayer.getID():  #only valid cities
                        self.editCorporation(inputClass.getData2(), loopCity,
                                             inputClass.getData1() == 6782)
                    (loopCity, pIter) = pPlayer.nextCity(pIter, False)
                self.placePlayerCities()

        elif inputClass.getFunctionName() == "SetHeadquarter":
            bHeadquarter = not bHeadquarter
            sText = "<font=3b>" + CyTranslator().getText(
                "TXT_KEY_CORPORATION_HEADQUARTERS", ()) + "</font>"
            sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ())
            if bHeadquarter:
                sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ())
            screen.modifyString("SetHeadquarter", sColor + sText + "</color>",
                                0)
        return 1
    def handleInput(self, inputClass):
        screen = CyGInterfaceScreen("WBPlotScreen", CvScreenEnums.WB_PLOT)
        global bAdd
        global bSensibility
        global iEditType
        global iChange
        global iCulturePlayer
        global iSelectedClass

        if inputClass.getFunctionName() == "ChangeBy":
            iChange = screen.getPullDownData("ChangeBy", screen.getSelectedPullDownID("ChangeBy"))

        elif inputClass.getFunctionName() == "CurrentPlayer":
            iIndex = screen.getPullDownData("CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer"))
            pPlot.setOwner(iIndex)

        elif inputClass.getFunctionName() == "ChangeType":
            bAdd = screen.getPullDownData("ChangeType", screen.getSelectedPullDownID("ChangeType"))

        elif inputClass.getFunctionName() == "EditType":
            iEditType = screen.getPullDownData("EditType", screen.getSelectedPullDownID("EditType"))

        elif inputClass.getFunctionName() == "CurrentPage":
            iIndex = screen.getPullDownData("CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
            if iIndex == 1:
                WBEventScreen.WBEventScreen().interfaceScreen(pPlot)
            elif iIndex == 2:
                if pPlot.getOwner() != -1:
                    WBPlayerScreen.WBPlayerScreen().interfaceScreen(pPlot.getOwner())
            elif iIndex == 3:
                WBTeamScreen.WBTeamScreen().interfaceScreen(pPlot.getTeam())
            elif iIndex == 4:
                if pPlot.isCity():
                    WBCityEditScreen.WBCityEditScreen().interfaceScreen(pPlot.getPlotCity())
            elif iIndex == 5:
                pUnit = pPlot.getUnit(0)
                if pUnit:
                    WBUnitScreen.WBUnitScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).interfaceScreen(pUnit)
            elif iIndex == 11:
                iPlayer = pPlot.getOwner()
                if iPlayer == -1:
                    iPlayer = CyGame().getActivePlayer()
                WBInfoScreen.WBInfoScreen().interfaceScreen(iPlayer)
            if iIndex == 12:
                WBRiverScreen.WBRiverScreen().interfaceScreen(pPlot)

        elif inputClass.getFunctionName() == "NextPlotUpButton":
            pNewPlot = CyMap().plot(pPlot.getX(), pPlot.getY() + 1)
            if not pNewPlot.isNone():
                self.interfaceScreen(pNewPlot)
        elif inputClass.getFunctionName() == "NextPlotDownButton":
            pNewPlot = CyMap().plot(pPlot.getX(), pPlot.getY() - 1)
            if not pNewPlot.isNone():
                self.interfaceScreen(pNewPlot)
        elif inputClass.getFunctionName() == "NextPlotLeftButton":
            pNewPlot = CyMap().plot(pPlot.getX() - 1, pPlot.getY())
            if not pNewPlot.isNone():
                self.interfaceScreen(pNewPlot)
        elif inputClass.getFunctionName() == "NextPlotRightButton":
            pNewPlot = CyMap().plot(pPlot.getX() + 1, pPlot.getY())
            if not pNewPlot.isNone():
                self.interfaceScreen(pNewPlot)

        elif inputClass.getFunctionName().find("BaseYield") > -1:
            i = YieldTypes(inputClass.getData2())
            if inputClass.getData1() == 1030:
                CyGame().setPlotExtraYield(pPlot.getX(), pPlot.getY(), i, iChange)
            elif inputClass.getData1() == 1031:
                iYield = pPlot.getYield(i)
                iImprovement = pPlot.getImprovementType()
                if iImprovement > -1:
                    iYield -= pPlot.calculateImprovementYieldChange(iImprovement, i, pPlot.getOwner(), False)
                CyGame().setPlotExtraYield(pPlot.getX(), pPlot.getY(), i, - min(iChange, iYield))
            self.placeStats()

        elif inputClass.getFunctionName() == "RiverWestAButton":
            pWestPlot = CyMap().plot(pPlot.getX() - 1, pPlot.getY())
            pWestPlot.setWOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_NORTH)
            self.placeStats()
        elif inputClass.getFunctionName() == "RiverWestBButton":
            pWestPlot = CyMap().plot(pPlot.getX() - 1, pPlot.getY())
            pWestPlot.setWOfRiver(False, CardinalDirectionTypes.NO_CARDINALDIRECTION)
            self.placeStats()
        elif inputClass.getFunctionName() == "RiverWestCButton":
            pWestPlot = CyMap().plot(pPlot.getX() - 1, pPlot.getY())
            pWestPlot.setWOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_SOUTH)
            self.placeStats()

        elif inputClass.getFunctionName() == "RiverEastAButton":
            pPlot.setWOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_NORTH)
            self.placeStats()
        elif inputClass.getFunctionName() == "RiverEastBButton":
            pPlot.setWOfRiver(False, CardinalDirectionTypes.NO_CARDINALDIRECTION)
            self.placeStats()
        elif inputClass.getFunctionName() == "RiverEastCButton":
            pPlot.setWOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_SOUTH)
            self.placeStats()

        elif inputClass.getFunctionName() == "RiverNorthAButton":
            pNorthPlot = CyMap().plot(pPlot.getX(), pPlot.getY() + 1)
            pNorthPlot.setNOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_WEST)
            self.placeStats()
        elif inputClass.getFunctionName() == "RiverNorthBButton":
            pNorthPlot = CyMap().plot(pPlot.getX(), pPlot.getY() + 1)
            pNorthPlot.setNOfRiver(False, CardinalDirectionTypes.NO_CARDINALDIRECTION)
            self.placeStats()
        elif inputClass.getFunctionName() == "RiverNorthCButton":
            pNorthPlot = CyMap().plot(pPlot.getX(), pPlot.getY() + 1)
            pNorthPlot.setNOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_EAST)
            self.placeStats()

        elif inputClass.getFunctionName() == "RiverSouthAButton":
            pPlot.setNOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_WEST)
            self.placeStats()
        elif inputClass.getFunctionName() == "RiverSouthBButton":
            pPlot.setNOfRiver(False, CardinalDirectionTypes.NO_CARDINALDIRECTION)
            self.placeStats()
        elif inputClass.getFunctionName() == "RiverSouthCButton":
            pPlot.setNOfRiver(True, CardinalDirectionTypes.CARDINALDIRECTION_EAST)
            self.placeStats()

        elif inputClass.getFunctionName() == "WBSigns":
            if inputClass.getData1() == 7876 or inputClass.getData1() == 7872:
                iCulturePlayer = inputClass.getData2() /10000
                self.placeSigns()

        elif inputClass.getFunctionName().find("EditCulture") > -1:
            if inputClass.getData1() == 1030:
                pPlot.changeCulture(iCulturePlayer, iChange, True)
            elif inputClass.getData1() == 1031:
                pPlot.changeCulture(iCulturePlayer, -min(iChange, pPlot.getCulture(iCulturePlayer)), True)
            self.interfaceScreen(pPlot)

        elif inputClass.getFunctionName() == "WBPlotType":
            if iEditType == 0:
                pPlot.setPlotType(PlotTypes(inputClass.getData()), True, True)
            elif iEditType == 1:
                for i in xrange(CyMap().numPlots()):
                    pLoopPlot = CyMap().plotByIndex(i)
                    if pLoopPlot.isNone(): continue
                    if pLoopPlot.getArea() == pPlot.getArea():
                        pLoopPlot.setPlotType(PlotTypes(inputClass.getData()), True, True)
            else:
                CyMap().setAllPlotTypes(PlotTypes(inputClass.getData()))
            self.interfaceScreen(pPlot)

        elif inputClass.getFunctionName() == "WBPlotTerrain":
            iTerrain = inputClass.getData2()
            if iEditType == 0:
                pPlot.setTerrainType(iTerrain, True, True)
            else:
                for i in xrange(CyMap().numPlots()):
                    pLoopPlot = CyMap().plotByIndex(i)
                    if pLoopPlot.isNone(): continue
                    if iEditType == 1:
                        if pLoopPlot.getArea() == pPlot.getArea():
                            pLoopPlot.setTerrainType(iTerrain, True, True)
                    elif iEditType == 2:
                        if bSensibility and pLoopPlot.isWater() != pPlot.isWater(): continue
                        pLoopPlot.setTerrainType(iTerrain, True, True)
            self.interfaceScreen(pPlot)

        elif inputClass.getFunctionName() == "BonusClass":
            iSelectedClass = screen.getPullDownData("BonusClass", screen.getSelectedPullDownID("BonusClass"))
            self.createBonusList()

        elif inputClass.getFunctionName() == "WBPlotBonus":
            iBonus = inputClass.getData2()
            if iEditType == 0:
                if bAdd:
                    pPlot.setBonusType(iBonus)
                else:
                    pPlot.setBonusType(-1)
            else:
                for i in xrange(CyMap().numPlots()):
                    pLoopPlot = CyMap().plotByIndex(i)
                    if pLoopPlot.isNone(): continue
                    if iEditType == 1 and pLoopPlot.getArea() != pPlot.getArea(): continue
                    iOld = pLoopPlot.getBonusType(-1)
                    if bAdd:
                        pLoopPlot.setBonusType(-1)
                        if iBonus > -1 and bSensibility and not pLoopPlot.canHaveBonus(iBonus, False):
                            pLoopPlot.setBonusType(iOld)
                            continue
                        pLoopPlot.setBonusType(iBonus)
                    else:
                        pLoopPlot.setBonusType(-1)
            self.placeBonus()

        elif inputClass.getFunctionName() == "WBPlotImprovement":
            iImprovement = inputClass.getData2()
            if iEditType == 0:
                if bAdd:
                    pPlot.setImprovementType(iImprovement)
                else:
                    pPlot.setImprovementType(-1)
            else:
                for i in xrange(CyMap().numPlots()):
                    pLoopPlot = CyMap().plotByIndex(i)
                    if pLoopPlot.isNone(): continue
                    if iEditType == 1 and pLoopPlot.getArea() != pPlot.getArea(): continue
                    if bAdd:
                        if iImprovement > -1 and bSensibility and not pLoopPlot.canHaveImprovement(iImprovement, -1, True): continue
                        pLoopPlot.setImprovementType(iImprovement)
                    else:
                        pLoopPlot.setImprovementType(-1)
            self.placeImprovements()

        elif inputClass.getFunctionName().find("UpgradeTime") > -1:
            if inputClass.getData1() == 1030:
                pPlot.changeUpgradeProgress(- iChange)
            elif inputClass.getData1() == 1031:
                pPlot.changeUpgradeProgress(min(iChange, pPlot.getUpgradeTimeLeft(pPlot.getImprovementType(), pPlot.getOwner()) - 1))
            self.placeImprovements()

        elif inputClass.getFunctionName() == "WBPlotFeature":
            iFeature = inputClass.getData2() % 10000
            iVariety = inputClass.getData2() / 10000
            if iVariety < 0 or iFeature < 0:
                iFeature = -1
                iVariety = 0
            if iEditType == 0:
                if bAdd:
                    pPlot.setFeatureType(-1, 0)
                    if CvRiverUtil.isRiverFeature(iFeature):
                        CvRiverUtil.addRiverFeatureSimple(pPlot, iFeature, iVariety)
                    else:
                        pPlot.setFeatureType(iFeature, iVariety)
                        CvUtil.removeScriptData(pPlot, "r")
                else:
                    pPlot.setFeatureType(-1, 0)
                    CvUtil.removeScriptData(pPlot, "r")
            else:
                for i in xrange(CyMap().numPlots()):
                    pLoopPlot = CyMap().plotByIndex(i)
                    if pLoopPlot.isNone(): continue
                    if iEditType == 1 and pLoopPlot.getArea() != pPlot.getArea(): continue
                    iOldFeature = pLoopPlot.getFeatureType()
                    iOldVariety = pLoopPlot.getFeatureVariety()
                    if bAdd:
                        pLoopPlot.setFeatureType(-1, 0)
                        if iFeature > -1 and bSensibility and not pLoopPlot.canHaveFeature(iFeature):
                            pLoopPlot.setFeatureType(iOldFeature, iOldVariety)
                            continue
                        if CvRiverUtil.isRiverFeature(iFeature):
                            CvRiverUtil.addRiverFeatureSimple(pLoopPlot, iFeature, iVariety)
                        else:
                            pLoopPlot.setFeatureType(iFeature, iVariety)
                            if CvRiverUtil.isRiverFeature(iOldFeature):
                                CvUtil.removeScriptData(pLoopPlot, "r")
                    else:
                        pLoopPlot.setFeatureType(-1, 0)
                        CvUtil.removeScriptData(pLoopPlot, "r")
            self.placeFeature()
            self.placeScript()

        elif inputClass.getFunctionName() == "WBPlotRoutes":
            iRoute = inputClass.getData2()
            if iEditType == 0:
                if bAdd:
                    pPlot.setRouteType(iRoute)
                else:
                    pPlot.setRouteType(-1)
            else:
                for i in xrange(CyMap().numPlots()):
                    pLoopPlot = CyMap().plotByIndex(i)
                    if pLoopPlot.isNone(): continue
                    if bSensibility:
                        if pLoopPlot.isImpassable(): continue
                        if pLoopPlot.isWater(): continue
                    if iEditType == 1 and pLoopPlot.getArea() != pPlot.getArea(): continue
                    if bAdd:
                        pLoopPlot.setRouteType(iRoute)
                    else:
                        if pLoopPlot.getRouteType() == iRoute:
                            pLoopPlot.setRouteType(-1)
            self.placeRoutes()

        elif inputClass.getFunctionName() == "PlotEditScriptData":
            popup = Popup.PyPopup(5555, EventContextTypes.EVENTCONTEXT_ALL)
            popup.setHeaderString(CyTranslator().getText("TXT_KEY_WB_SCRIPT", ()))
            popup.setUserData((pPlot.getX(), pPlot.getY()))
            popup.createEditBox(pPlot.getScriptData())
            popup.launch()

        elif inputClass.getFunctionName() == "EditLandMark":
            iIndex = -1
            sText = ""
            for i in xrange(CyEngine().getNumSigns()):
                pSign = CyEngine().getSignByIndex(i)
                if pSign.getPlot().getX() != pPlot.getX(): continue
                if pSign.getPlot().getY() != pPlot.getY(): continue
                if pSign.getPlayerType() == iCulturePlayer:
                    iIndex = i
                    sText = pSign.getCaption()
                    break

            popup = Popup.PyPopup(CvUtil.EventWBLandmarkPopup, EventContextTypes.EVENTCONTEXT_ALL)
            popup.setHeaderString(CyTranslator().getText("TXT_KEY_WB_LANDMARKS", ()))
            popup.setUserData((pPlot.getX(), pPlot.getY(), iCulturePlayer, iIndex))
            popup.createEditBox(sText)
            popup.launch()

        elif inputClass.getFunctionName() == "SensibilityCheck":
            bSensibility = not bSensibility
            screen.setState("SensibilityCheck", bSensibility)
            
        return 1
Example #14
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
    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
Example #16
0
    def handleInput(self, inputClass):
        screen = CyGInterfaceScreen("WBReligionScreen",
                                    CvScreenEnums.WB_RELIGION)
        global iSelectedPlayer
        global bHoly

        if inputClass.getButtonType() == WidgetTypes.WIDGET_PYTHON:
            if inputClass.getData1() > 7199 and inputClass.getData1() < 7300:
                iCityID = inputClass.getData2()
                iPlayerX = inputClass.getData1() - 7200
                WBCityEditScreen.WBCityEditScreen().interfaceScreen(
                    gc.getPlayer(iPlayerX).getCity(iCityID))

            elif inputClass.getData1() == 7876 or inputClass.getData1(
            ) == 7872:
                iPlayerX = inputClass.getData2() / 10000
                WBPlayerScreen.WBPlayerScreen().interfaceScreen(iPlayerX)

        if inputClass.getFunctionName() == "CurrentPage":
            iIndex = screen.getPullDownData(
                "CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
            if iIndex == 0:
                WBPlayerScreen.WBPlayerScreen().interfaceScreen(
                    iSelectedPlayer)
            elif iIndex == 1:
                WBTeamScreen.WBTeamScreen().interfaceScreen(
                    gc.getPlayer(iSelectedPlayer).getTeam())
            elif iIndex == 9:
                WBCorporationScreen.WBCorporationScreen().interfaceScreen(
                    iSelectedPlayer)
            elif iIndex == 10:
                WBGameDataScreen.WBGameDataScreen(
                    CvPlatyBuilderScreen.CvWorldBuilderScreen(
                    )).interfaceScreen()
            elif iIndex == 11:
                WBInfoScreen.WBInfoScreen().interfaceScreen(iSelectedPlayer)

        elif inputClass.getFunctionName() == "CurrentPlayer":
            iSelectedPlayer = screen.getPullDownData(
                "CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer"))
            self.interfaceScreen(iSelectedPlayer)

        elif inputClass.getFunctionName() == "WBCityReligions":
            if inputClass.getButtonType() == WidgetTypes.WIDGET_HELP_RELIGION:
                pPlayer = gc.getPlayer(iSelectedPlayer)
                if bHoly:
                    self.editHolyCity(inputClass.getData1(),
                                      pPlayer.getCity(inputClass.getData2()))
                else:
                    self.editReligion(inputClass.getData1(),
                                      pPlayer.getCity(inputClass.getData2()),
                                      2)
                self.placePlayerCities()

        elif inputClass.getFunctionName() == "WBAllReligions":
            if inputClass.getButtonType() == WidgetTypes.WIDGET_HELP_RELIGION:
                pPlayer = gc.getPlayer(iSelectedPlayer)
                (loopCity, iter) = pPlayer.firstCity(False)
                while (loopCity):
                    self.editReligion(inputClass.getData1(), loopCity,
                                      inputClass.getData2() == 1)
                    (loopCity, iter) = pPlayer.nextCity(iter, False)
                self.placePlayerCities()

        elif inputClass.getFunctionName() == "SetHoly":
            bHoly = not bHoly
            sText = "<font=3b>" + CyTranslator().getText(
                "TXT_KEY_RELIGION_SCREEN_HOLY_CITY", ())[:-1] + "</font>"
            sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ())
            if bHoly:
                sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ())
            screen.modifyString("SetHoly", sColor + sText + "</color>", 0)
        return 1
Example #17
0
    # 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 = {
    def handleInput(self, inputClass):
        screen = CyGInterfaceScreen("WBDiplomacyScreen",
                                    CvScreenEnums.WB_DIPLOMACY)
        global iSelectedPlayer
        global iSelectedTeam
        global iChange
        global iSelectedMemory
        global bTowardsPlayer
        global bHideDead
        global bRemove
        global bDiplomacyPage

        if inputClass.getButtonType() == WidgetTypes.WIDGET_PYTHON:
            if inputClass.getData1() == 7876 or inputClass.getData1() == 7872:
                iPlayerX = inputClass.getData2() / 10000
                WBPlayerScreen.WBPlayerScreen(
                    self.WB).interfaceScreen(iPlayerX)

        if inputClass.getFunctionName() == "ChangeBy":
            iChange = screen.getPullDownData(
                "ChangeBy", screen.getSelectedPullDownID("ChangeBy"))
        elif inputClass.getFunctionName() == "ChangeType":
            bRemove = not bRemove
        elif inputClass.getFunctionName() == "CurrentPlayer":
            iSelectedPlayer = screen.getPullDownData(
                "CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer"))
            self.interfaceScreen(iSelectedPlayer, bDiplomacyPage)
        elif inputClass.getFunctionName() == "CurrentPage":
            iIndex = screen.getPullDownData(
                "CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
            if iIndex == 2:
                WBTradeScreen.WBTradeScreen(self.WB).interfaceScreen()
            elif iIndex != bDiplomacyPage:
                bDiplomacyPage = not bDiplomacyPage
                self.interfaceScreen(iSelectedPlayer, bDiplomacyPage)
        elif inputClass.getFunctionName() == "TowardsPlayer":
            bTowardsPlayer = not bTowardsPlayer
            self.interfaceScreen(iSelectedPlayer, bDiplomacyPage)
        elif inputClass.getFunctionName() == "HideDead":
            bHideDead = not bHideDead
            self.interfaceScreen(iSelectedPlayer, bDiplomacyPage)

        if bDiplomacyPage:
            if inputClass.getFunctionName() == "CurrentMemory":
                iSelectedMemory = inputClass.getData()
            elif inputClass.getFunctionName() == "EspionageAll":
                for iPlayerX in lPlayers:
                    pPlayerX = GC.getPlayer(iPlayerX)
                    iTeamX = pPlayerX.getTeam()
                    if iPlayerX != GC.getTeam(iTeamX).getLeaderID(): continue
                    self.editEspionagePoint(iTeamX)
            elif inputClass.getFunctionName() == "WeightAll":
                for iPlayerX in lPlayers:
                    if not bTowardsPlayer:
                        pPlayerX = GC.getPlayer(iPlayerX)
                        iTeamX = pPlayerX.getTeam()
                        if iPlayerX != GC.getTeam(iTeamX).getLeaderID():
                            continue
                    self.editEspionageWeight(iPlayerX)
            elif inputClass.getFunctionName() == "CETurnsAll":
                for iPlayerX in lPlayers:
                    pPlayerX = GC.getPlayer(iPlayerX)
                    iTeamX = pPlayerX.getTeam()
                    if iPlayerX != GC.getTeam(iTeamX).getLeaderID(): continue
                    self.editCETurns(iTeamX)
            elif inputClass.getFunctionName() == "CEModifierAll":
                for iPlayerX in lPlayers:
                    pPlayerX = GC.getPlayer(iPlayerX)
                    iTeamX = pPlayerX.getTeam()
                    if iPlayerX != GC.getTeam(iTeamX).getLeaderID(): continue
                    self.editCEModifier(iTeamX)

            elif inputClass.getData1() == 1030:
                self.editEspionagePoint(inputClass.getData2())
            elif inputClass.getData1() == 1031:
                self.editEspionageWeight(inputClass.getData2())
            elif inputClass.getData1() == 1032:
                self.editCETurns(inputClass.getData2())
            elif inputClass.getData1() == 1033:
                self.editCEModifier(inputClass.getData2())
            elif inputClass.getData1() == 1034:
                self.editMemory(inputClass.getData2())
            self.setEspionagePage()

        else:
            if inputClass.getFunctionName() == "AttitudeAll":
                for iPlayerX in lPlayers:
                    self.editAttitude(iPlayerX)
            elif inputClass.getFunctionName() == "DiplomacyAll":
                for iPlayerX in lPlayers:
                    pPlayerX = GC.getPlayer(iPlayerX)
                    iTeamX = pPlayerX.getTeam()
                    if iPlayerX != GC.getTeam(iTeamX).getLeaderID(): continue
                    if inputClass.getData2() == 0:
                        self.editContact(iTeamX)
                    if inputClass.getData2() == 1:
                        self.editOpenBorders(iTeamX, bRemove)
                    if inputClass.getData2() == 2:
                        self.editDefensivePact(iTeamX, bRemove)
                    if inputClass.getData2() == 3:
                        self.editWarStatus(iTeamX, bRemove)
            elif inputClass.getFunctionName() == "WearinessAll":
                for iPlayerX in lPlayers:
                    pPlayerX = GC.getPlayer(iPlayerX)
                    iTeamX = pPlayerX.getTeam()
                    if iPlayerX != GC.getTeam(iTeamX).getLeaderID(): continue
                    self.editWarWeariness(iSelectedTeam, iTeamX)

            elif inputClass.getData1() == 1030:
                self.editAttitude(inputClass.getData2())
            elif inputClass.getData1() == 1031:
                self.editRelationship(inputClass.getData2())
            elif inputClass.getData1() == 1032:
                self.editContact(inputClass.getData2())
            elif inputClass.getData1() == 1033:
                self.editOpenBorders(
                    inputClass.getData2(),
                    pSelectedTeam.isOpenBorders(inputClass.getData2()))
            elif inputClass.getData1() == 1034:
                self.editDefensivePact(
                    inputClass.getData2(),
                    pSelectedTeam.isDefensivePact(inputClass.getData2()))
            elif inputClass.getData1() == 1035:
                self.editWarStatus(
                    inputClass.getData2(),
                    pSelectedTeam.isAtWar(inputClass.getData2()))
            elif inputClass.getData1() == 1036:
                self.editWarWeariness(iSelectedTeam, inputClass.getData2())
            self.setGeneralPage()
        return 1
Example #19
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()
	def handleInput (self, inputClass):
		screen = CyGInterfaceScreen("WBTeamScreen", CvScreenEnums.WB_TEAM)
		global iChange
		global bRemove
		global iSelectedYield

		if inputClass.getFunctionName() == "ChangeBy":
			iChange = screen.getPullDownData("ChangeBy", screen.getSelectedPullDownID("ChangeBy"))

		elif inputClass.getFunctionName() == "CurrentPage":
			iIndex = screen.getPullDownData("CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
			if iIndex == 0:
				WBPlayerScreen.WBPlayerScreen().interfaceScreen(pTeam.getLeaderID())
			elif iIndex == 2:
				WBProjectScreen.WBProjectScreen().interfaceScreen(iTeam)
			elif iIndex == 3:
				WBTechScreen.WBTechScreen().interfaceScreen(iTeam)
			elif iIndex == 4:
				WBPlayerUnits.WBPlayerUnits().interfaceScreen(pTeam.getLeaderID())
			elif iIndex == 11:
				WBInfoScreen.WBInfoScreen().interfaceScreen(pTeam.getLeaderID())

		elif inputClass.getFunctionName() == "CurrentTeam":
			iTeamX = screen.getPullDownData("CurrentTeam", screen.getSelectedPullDownID("CurrentTeam"))
			self.interfaceScreen(iTeamX)

		elif inputClass.getFunctionName() == "WBTeamMembers":
			if inputClass.getData1() == 7876 or inputClass.getData1() == 7872:
				iPlayer = inputClass.getData2() /10000
				WBPlayerScreen.WBPlayerScreen().interfaceScreen(iPlayer)

		elif inputClass.getFunctionName() == "MergeTeam":
			pTeam.addTeam(screen.getPullDownData("MergeTeam", screen.getSelectedPullDownID("MergeTeam")))
			self.interfaceScreen(pTeam.getID())

		elif inputClass.getFunctionName().find("NukeInterception") > -1:
			if inputClass.getData1() == 1030:
				pTeam.changeNukeInterception(min(iChange, 100 - pTeam.getNukeInterception()))
			elif inputClass.getData1() == 1031:
				iCount = min(iChange, pTeam.getNukeInterception())
				pTeam.changeNukeInterception(-iCount)
			self.placeStats()

		elif inputClass.getFunctionName().find("EnemyWW") > -1:
			if inputClass.getData1() == 1030:
				pTeam.changeEnemyWarWearinessModifier(iChange)
			elif inputClass.getData1() == 1031:
				iCount = min(iChange, pTeam.getEnemyWarWearinessModifier())
				pTeam.changeEnemyWarWearinessModifier(-iCount)
			self.placeStats()

		elif inputClass.getFunctionName().find("MasterPower") > -1:
			if inputClass.getData1() == 1030:
				pTeam.setMasterPower(pTeam.getMasterPower() + iChange)
			elif inputClass.getData1() == 1031:
				pTeam.setMasterPower(max(0, pTeam.getMasterPower() - iChange))
			self.placeStats()

		elif inputClass.getFunctionName().find("VassalPower") > -1:
			if inputClass.getData1() == 1030:
				pTeam.setVassalPower(pTeam.getVassalPower() + iChange)
			elif inputClass.getData1() == 1031:
				pTeam.setVassalPower(max(0, pTeam.getVassalPower() - iChange))
			self.placeStats()

		elif inputClass.getFunctionName().find("EspionageEver") > -1:
			if inputClass.getData1() == 1030:
				pTeam.changeEspionagePointsEver(iChange)
			elif inputClass.getData1() == 1031:
				iCount = min(iChange, pTeam.getEspionagePointsEver())
				pTeam.changeEspionagePointsEver(-iCount)
			self.placeStats()

		elif inputClass.getFunctionName() == "WBTeamRoutes":
			self.editRoute(inputClass.getData2())
			self.placeRoutes()

		elif inputClass.getFunctionName() == "WBTeamDomainMoves":
			self.editDomain(inputClass.getData2())
			self.placeDomains()

		elif inputClass.getFunctionName() == "ChangeType":
			bRemove = not bRemove

		elif inputClass.getFunctionName() == "YieldType":
			iSelectedYield = screen.getPullDownData("YieldType", screen.getSelectedPullDownID("YieldType"))

		elif inputClass.getFunctionName() == "WBTeamYield":
			self.modifyImprovement(inputClass.getData2())
			self.placeImprovements()

		elif inputClass.getFunctionName() == "WBTeamVotes":
			iVote = gc.getBuildingInfo(inputClass.getData1()).getVoteSourceType()
			if pTeam.isForceTeamVoteEligible(iVote):
				pTeam.changeForceTeamVoteEligibilityCount(iVote, - pTeam.getForceTeamVoteEligibilityCount(iVote))
			else:
				pTeam.changeForceTeamVoteEligibilityCount(iVote, 1)
			self.placeVotes()

		elif inputClass.getFunctionName() == "AbilitiesAll":
			for i in xrange(13):
				self.doTeamAbilities(i, not bRemove)
			self.placeAbilities()

		elif inputClass.getFunctionName() == "WBAbilities":
			iButton = inputClass.getButtonType()
			if iButton == WidgetTypes.WIDGET_HELP_MAP_CENTER:
				self.doTeamAbilities(0, -1)
			elif iButton == WidgetTypes.WIDGET_HELP_MAP_TRADE:
				self.doTeamAbilities(1, -1)
			elif iButton == WidgetTypes.WIDGET_HELP_TECH_TRADE:
				self.doTeamAbilities(2, -1)
			elif iButton == WidgetTypes.WIDGET_HELP_GOLD_TRADE:
				self.doTeamAbilities(3, -1)
			elif iButton == WidgetTypes.WIDGET_HELP_OPEN_BORDERS:
				self.doTeamAbilities(4, -1)
			elif iButton == WidgetTypes.WIDGET_HELP_DEFENSIVE_PACT:
				self.doTeamAbilities(5, -1)
			elif iButton == WidgetTypes.WIDGET_HELP_PERMANENT_ALLIANCE:
				self.doTeamAbilities(6, -1)
			elif iButton == WidgetTypes.WIDGET_HELP_VASSAL_STATE:
				self.doTeamAbilities(7, -1)
			elif iButton == WidgetTypes.WIDGET_HELP_BUILD_BRIDGE:
				self.doTeamAbilities(8, -1)
			elif iButton == WidgetTypes.WIDGET_HELP_IRRIGATION:
				self.doTeamAbilities(9, -1)
			elif iButton == WidgetTypes.WIDGET_HELP_IGNORE_IRRIGATION:
				self.doTeamAbilities(10, -1)
			elif iButton == WidgetTypes.WIDGET_HELP_WATER_WORK:
				self.doTeamAbilities(11, -1)
			elif iButton == WidgetTypes.WIDGET_HELP_LOS_BONUS:
				self.doTeamAbilities(12, -1)
			else:
				self.doTeamAbilities(inputClass.getData(), -1)
			self.placeAbilities()
		return 1
Example #21
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
Example #22
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)
Example #23
0
    def handleInput(self, inputClass, screen):

        HandleInputUtil.debugInput(inputClass)
        iCode = inputClass.eNotifyCode
        iData = inputClass.iData
        ID = inputClass.iItemID
        NAME = inputClass.szFunctionName
        szFlag = HandleInputUtil.MOUSE_FLAGS.get(inputClass.uiFlags, "UNKNOWN")

        if iCode == 6:  # Character
            if iData == 1:
                self.exit(screen)
                return 1
            return 0
        elif iCode in (16, 17):
            return 0

        szSplit = NAME.split("|")
        BASE = szSplit[0]
        if szSplit[1:]:
            TYPE = szSplit[1]
        else:
            TYPE = ""
        if szSplit[2:]:
            CASE = szSplit[2:]
        else:
            CASE = [""]

        if iCode == 4:  # Mouse Enter
            if BASE == "TECH":
                self.WB.tooltip.handle(
                    screen,
                    CyGameTextMgr().getTechHelp(ID, False, True, False, True,
                                                -1))

        elif not iCode:  # click

            if BASE == "BTN":
                if TYPE == "AllTechs":
                    bValue = CASE[0] == "Plus"
                    for info, iTech in self.listedTechs:
                        self.editTech(screen, iTech, bValue)

                elif TYPE == "AllPlayers":
                    self.bAllPlayers = not self.bAllPlayers
                    if self.bAllPlayers:
                        txt = self.positive
                    else:
                        txt = self.negative
                    txt += "<font=3b>" + self.sAllPlayers
                    STR = "BTN|AllPlayers0"
                    screen.hide(STR)
                    screen.modifyString(STR, txt, 0)
                    screen.show(STR)

                elif TYPE == "NoNPC":
                    self.bNoNPC = not self.bNoNPC
                    if self.bNoNPC:
                        txt = self.positive
                    else:
                        txt = self.negative
                    txt += "<font=3b>" + self.sNotNPC
                    STR = "BTN|NoNPC0"
                    screen.hide(STR)
                    screen.modifyString(STR, txt, 0)
                    screen.show(STR)

            elif inputClass.iData1 == 999:
                if szFlag == "MOUSE_RBUTTONUP":
                    bValue = False
                else:
                    bValue = True
                self.editTech(screen, inputClass.iData2, bValue)

            elif NAME == "TECH|IMG":
                pediaJumpToTech([ID])

            elif NAME == "ExitSubScreen":
                self.exit(screen)

        elif iCode == 11:  # List Select

            if NAME == "TechEra":
                self.iSelectedEra = screen.getPullDownData(NAME, iData)
                self.placeTechs(screen)

            elif NAME == "CurrentTeam":
                self.iTeam = screen.getPullDownData(NAME, iData)
                self.pTeam = GC.getTeam(self.iTeam)
                self.placeTechs(screen)

            elif NAME == "CurrentPage":
                iIndex = screen.getPullDownData(
                    "CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
                if iIndex == 0:
                    self.exit(screen)
                    import WBPlayerScreen
                    WBPlayerScreen.WBPlayerScreen(self.WB).interfaceScreen(
                        self.pTeam.getLeaderID())
                elif iIndex == 1:
                    self.exit(screen)
                    import WBTeamScreen
                    WBTeamScreen.WBTeamScreen(self.WB).interfaceScreen(
                        self.WB.m_iCurrentTeam)
                elif iIndex == 2:
                    self.exit(screen)
                    import WBProjectScreen
                    WBProjectScreen.WBProjectScreen(self.WB).interfaceScreen(
                        self.WB.m_iCurrentTeam)
                elif iIndex == 4:
                    self.exit(screen)
                    import WBPlayerUnits
                    WBPlayerUnits.WBPlayerUnits(self.WB).interfaceScreen(
                        self.pTeam.getLeaderID())
                elif iIndex == 11:
                    self.exit(screen)
                    import WBInfoScreen
                    WBInfoScreen.WBInfoScreen(self.WB).interfaceScreen(
                        self.pTeam.getLeaderID())
        return 1
Example #24
0
    def handleInput(self, inputClass):
        screen = CyGInterfaceScreen("WBProjectScreen",
                                    CvScreenEnums.WB_PROJECT)
        global iChange
        global iChangeType
        global bApplyAll
        global bNoBarb
        global iProjectType

        if inputClass.getFunctionName() == "ChangeBy":
            iChange = screen.getPullDownData(
                "ChangeBy", screen.getSelectedPullDownID("ChangeBy"))

        elif inputClass.getFunctionName() == "CurrentTeam":
            iIndex = screen.getPullDownData(
                "CurrentTeam", screen.getSelectedPullDownID("CurrentTeam"))
            self.interfaceScreen(iIndex)

        elif inputClass.getFunctionName() == "ProjectType":
            iProjectType = screen.getPullDownData(
                "ProjectType", screen.getSelectedPullDownID("ProjectType"))
            self.sortProjects()

        elif inputClass.getFunctionName() == "ChangeType":
            iChangeType = screen.getPullDownData(
                "ChangeType", screen.getSelectedPullDownID("ChangeType"))

        elif inputClass.getFunctionName() == "CurrentPage":
            iIndex = screen.getPullDownData(
                "CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
            if iIndex == 0:
                WBPlayerScreen.WBPlayerScreen().interfaceScreen(
                    pTeam.getLeaderID())
            elif iIndex == 1:
                WBTeamScreen.WBTeamScreen().interfaceScreen(iTeam)
            elif iIndex == 3:
                WBTechScreen.WBTechScreen().interfaceScreen(iTeam)
            elif iIndex == 4:
                WBPlayerUnits.WBPlayerUnits().interfaceScreen(
                    pTeam.getLeaderID())
            elif iIndex == 11:
                WBInfoScreen.WBInfoScreen().interfaceScreen(
                    pTeam.getLeaderID())

        elif inputClass.getFunctionName() == "ProjectAll":
            for item in lProject:
                self.editProject(item[1])
            self.placeProjects()

        elif inputClass.getFunctionName() == "WBProject":
            self.editProject(inputClass.getData2())
            self.placeProjects()

        elif inputClass.getFunctionName() == "ApplyAll":
            bApplyAll = not bApplyAll
            sText = u"<font=3b>" + CyTranslator().getText(
                "TXT_KEY_WB_COPY_ALL",
                (CyTranslator().getText("TXT_KEY_MAIN_MENU_PLAYERS",
                                        ()), )) + "</font>"
            sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ())
            if bApplyAll:
                sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ())
            screen.modifyString("ApplyAll", sColor + sText + "</color>", 0)

        elif inputClass.getFunctionName() == "NoBarbarians":
            bNoBarb = not bNoBarb
            sText = u"<font=3b>" + CyTranslator().getText(
                "TXT_KEY_GAME_OPTION_NO_BARBARIANS", ()) + "</font>"
            sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ())
            if bNoBarb:
                sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ())
            screen.modifyString("NoBarbarians", sColor + sText + "</color>", 0)
        return 1
Example #25
0
    def handleInput(self, inputClass):
        screen = CyGInterfaceScreen("WBReligionScreen",
                                    CvScreenEnums.WB_RELIGION)
        global bHoly
        global iSelectedPlayer
        global iOwnerType
        global iPlotType

        if inputClass.getButtonType() == WidgetTypes.WIDGET_PYTHON:
            if inputClass.getData1() > 7199 and inputClass.getData1() < 7300:
                iCityID = inputClass.getData2()
                iPlayerX = inputClass.getData1() - 7200
                WBCityEditScreen.WBCityEditScreen(self.WB).interfaceScreen(
                    GC.getPlayer(iPlayerX).getCity(iCityID))

            elif inputClass.getData1() == 7876 or inputClass.getData1(
            ) == 7872:
                iPlayerX = inputClass.getData2() / 10000
                WBPlayerScreen.WBPlayerScreen(
                    self.WB).interfaceScreen(iPlayerX)

        if inputClass.getFunctionName() == "CurrentPage":
            iIndex = screen.getPullDownData(
                "CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
            if iIndex == 0:
                WBPlayerScreen.WBPlayerScreen(
                    self.WB).interfaceScreen(iSelectedPlayer)
            elif iIndex == 1:
                WBTeamScreen.WBTeamScreen(self.WB).interfaceScreen(
                    GC.getPlayer(iSelectedPlayer).getTeam())
            elif iIndex == 9:
                WBCorporationScreen.WBCorporationScreen(
                    self.WB).interfaceScreen(iSelectedPlayer)
            elif iIndex == 10:
                self.WB.goToSubScreen("GameScreen")
            elif iIndex == 11:
                WBInfoScreen.WBInfoScreen(
                    self.WB).interfaceScreen(iSelectedPlayer)

        elif inputClass.getFunctionName() == "OwnerType":
            iOwnerType = screen.getPullDownData(
                "OwnerType", screen.getSelectedPullDownID("OwnerType"))
            self.sortCities()

        elif inputClass.getFunctionName() == "CurrentPlayer":
            iSelectedPlayer = screen.getPullDownData(
                "CurrentPlayer", screen.getSelectedPullDownID("CurrentPlayer"))
            self.interfaceScreen(iSelectedPlayer)

        elif inputClass.getFunctionName() == "WBCityReligions":
            if inputClass.getButtonType() == WidgetTypes.WIDGET_HELP_RELIGION:
                iCityID = inputClass.getData2() / 100
                iPlayerX = inputClass.getData2() % 100
                pPlayerX = GC.getPlayer(iPlayerX)
                if pPlayerX:
                    pCity = pPlayerX.getCity(iCityID)
                    if pCity:
                        if bHoly:
                            self.editHolyCity(inputClass.getData1(), pCity)
                        else:
                            self.editReligion(inputClass.getData1(), pCity, 2)
                self.placeCityTable()

        elif inputClass.getFunctionName() == "WBAllReligions":
            if inputClass.getButtonType() == WidgetTypes.WIDGET_HELP_RELIGION:
                for (loopCity, iPlayerX) in lCities:
                    self.editReligion(inputClass.getData1(), loopCity,
                                      inputClass.getData2() == 1)
                self.placeCityTable()

        elif inputClass.getFunctionName() == "SetHoly":
            bHoly = not bHoly
            sText = "<font=3b>" + CyTranslator().getText(
                "TXT_KEY_RELIGION_SCREEN_HOLY_CITY", ())[:-1] + "</font>"
            sColor = CyTranslator().getText("[COLOR_WARNING_TEXT]", ())
            if bHoly:
                sColor = CyTranslator().getText("[COLOR_POSITIVE_TEXT]", ())
            screen.modifyString("SetHoly", sColor + sText + "</color>", 0)
        return 1
Example #26
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
Example #27
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