Пример #1
0
	def __eventEditUnitNameApply(self, playerID, userData, popupReturn):
		unit = gc.getPlayer(userData[1]).getUnit(userData[0])
		newName = popupReturn.getEditBoxString(0)		
		unit.setName(newName)
		if CyGame().GetWorldBuilderMode():
			WBUnitScreen.WBUnitScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).placeStats()
			WBUnitScreen.WBUnitScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).placeCurrentUnit()	
Пример #2
0
    def handleInput(self, inputClass):
        screen = CyGInterfaceScreen("WBPlayerUnits", CvScreenEnums.WB_UNITLIST)
        global iCityID
        global iUnitID
        if inputClass.getFunctionName() == "CurrentPage":
            iIndex = screen.getPullDownData(
                "CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
            if iIndex == 0:
                WBPlayerScreen.WBPlayerScreen().interfaceScreen(iPlayer)
            elif iIndex == 1:
                WBTeamScreen.WBTeamScreen().interfaceScreen(iTeam)
            elif iIndex == 2:
                WBProjectScreen.WBProjectScreen().interfaceScreen(iTeam)
            elif iIndex == 3:
                WBTechScreen.WBTechScreen().interfaceScreen(iTeam)
            elif iIndex == 11:
                WBInfoScreen.WBInfoScreen().interfaceScreen(iPlayer)

        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
Пример #3
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(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
Пример #4
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
Пример #5
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)
Пример #6
0
	def __eventWBUnitScriptPopupApply(self, playerID, userData, popupReturn):
		sScript = popupReturn.getEditBoxString(0)
		pUnit = gc.getPlayer(userData[0]).getUnit(userData[1])
		pUnit.setScriptData(CvUtil.convertToStr(sScript))
		WBUnitScreen.WBUnitScreen(CvPlatyBuilderScreen.CvWorldBuilderScreen()).placeScript()
		return
Пример #7
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
Пример #8
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()
Пример #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(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()
Пример #10
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 = {
    MAIN_INTERFACE: mainInterface,
Пример #11
0
 WB_BUILDING:
 WBBuildingScreen.WBBuildingScreen(),
 WB_CITYDATA:
 WBCityDataScreen.WBCityDataScreen(),
 WB_CITYEDIT:
 WBCityEditScreen.WBCityEditScreen(worldBuilderScreen),
 WB_TECH:
 WBTechScreen.WBTechScreen(),
 WB_PROJECT:
 WBProjectScreen.WBProjectScreen(),
 WB_TEAM:
 WBTeamScreen.WBTeamScreen(),
 WB_PLAYER:
 WBPlayerScreen.WBPlayerScreen(),
 WB_UNIT:
 WBUnitScreen.WBUnitScreen(worldBuilderScreen),
 WB_PROMOTION:
 WBPromotionScreen.WBPromotionScreen(),
 WB_DIPLOMACY:
 WBDiplomacyScreen.WBDiplomacyScreen(),
 WB_GAMEDATA:
 WBGameDataScreen.WBGameDataScreen(worldBuilderScreen),
 WB_UNITLIST:
 WBPlayerUnits.WBPlayerUnits(),
 WB_RELIGION:
 WBReligionScreen.WBReligionScreen(),
 WB_CORPORATION:
 WBCorporationScreen.WBCorporationScreen(),
 WB_INFO:
 WBInfoScreen.WBInfoScreen(),
 WB_TRADE:
Пример #12
0
    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
Пример #13
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
Пример #14
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