def _handleOnPreSaveEvent(self, eventType, argsList):
		"""Tells BugData to save all script data after other handlers have been called.
		This won't work as a normal handler because it must be done after other handlers. 
		"""
		self._handleDefaultEvent(eventType, argsList)
		BugData.save()
    def handleInput(self, inputClass):
        screen = CyGInterfaceScreen("WBStoredDataScreen",
                                    CvScreenEnums.WB_STOREDDATA)
        global iChange
        global iSelectedCiv
        global bRemove
        global iSelectedMode

        global scriptDict
        global lBools
        global lInts
        global lLists
        global iSelectedList
        global iWarList

        if inputClass.getFunctionName() == "CurrentPage":
            iIndex = screen.getPullDownData(
                "CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
            if iIndex == 8:
                WBReligionScreen.WBReligionScreen().interfaceScreen(
                    self.top.m_iCurrentPlayer)
            elif iIndex == 9:
                WBCorporationScreen.WBCorporationScreen().interfaceScreen(
                    self.top.m_iCurrentPlayer)
            elif iIndex == 10:
                WBGameDataScreen.WBGameDataScreen(self.top).interfaceScreen()
            elif iIndex == 11:
                WBInfoScreen.WBInfoScreen().interfaceScreen(
                    self.top.m_iCurrentPlayer)

        elif inputClass.getFunctionName() == "ChangeBy":
            if bRemove:
                iChange = -screen.getPullDownData(
                    "ChangeBy", screen.getSelectedPullDownID("ChangeBy"))
            else:
                iChange = screen.getPullDownData(
                    "ChangeBy", screen.getSelectedPullDownID("ChangeBy"))

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

        elif inputClass.getFunctionName() == "SelectMode":
            iSelectedMode = screen.getPullDownData(
                "SelectMode", screen.getSelectedPullDownID("SelectMode"))
            iSelectedList = 0
            self.loadData()

        elif inputClass.getFunctionName() == "SelectCiv":
            iSelectedCiv = screen.getPullDownData(
                "SelectCiv", screen.getSelectedPullDownID("SelectCiv"))
            self.placeCivButton()
            if iSelectedMode == 1:
                self.loadData()

        elif inputClass.getFunctionName() == "WBDataTable":
            if inputClass.getData1() == 22007:
                item = lBools[inputClass.getData2()]
                if iSelectedMode == 0:
                    data.__dict__[item] = not data.__dict__[item]
                else:
                    data.players[iSelectedCiv].__dict__[
                        item] = not data.players[iSelectedCiv].__dict__[item]
            elif inputClass.getData1() == 22008:
                item = lInts[inputClass.getData2()]
                if iSelectedMode == 0:
                    iValue = data.__dict__[item]
                else:
                    iValue = data.players[iSelectedCiv].__dict__[item]

                iValue += iChange

                if item == "iStabilityLevel":
                    iValue = max(iStabilityCollapsing,
                                 min(iValue, iStabilitySolid))
                elif item == "iFirstNewWorldColony":
                    iValue = iSelectedCiv

                if iSelectedMode == 0:
                    data.__dict__[item] = iValue
                else:
                    data.players[iSelectedCiv].__dict__[item] = iValue
            if iSelectedMode == 0:
                for iPlayer in range(iNumPlayers):
                    if not gc.getPlayer(iPlayer).isAlive(): continue
                    dc.checkName(iPlayer)
            else:
                dc.checkName(iSelectedCiv)
            self.placeDataTable()

        elif inputClass.getFunctionName() == "WBListTable":
            iSelectedList = inputClass.getData2()
            self.placeListTables()

        elif inputClass.getFunctionName() == "WBListTableTwo":
            iItem = inputClass.getData2()
            sList = lLists[iSelectedList]

            if sList == "lWarTrend":
                iWarList = iItem
            elif isinstance(scriptDict[sList][iItem], bool):
                if iSelectedMode == 0:
                    data.__dict__[sList][
                        iItem] = not data.__dict__[sList][iItem]
                else:
                    data.players[iSelectedCiv].__dict__[sList][
                        iItem] = not data.players[iSelectedCiv].__dict__[
                            sList][iItem]
            elif isinstance(scriptDict[sList][iItem], int):
                bCiv = sList in [
                    "lFirstDiscovered", "lWonderBuilder", "lReligionFounder",
                    "lFirstEntered", "lFirstGreatPeople"
                ]
                if bCiv:
                    data.__dict__[sList][iItem] = iSelectedCiv
                else:
                    if sList in ["lGoals", "lEconomyTrend"]:
                        iValue = data.players[iSelectedCiv].__dict__[sList][
                            iItem] + abs(iChange) / iChange
                        iValue = max(-1, min(iValue, 1))
                        data.players[iSelectedCiv].__dict__[sList][
                            iItem] = iValue
                    elif sList == "lHappinessTrend":
                        if bRemove:
                            iValue = -1
                        else:
                            iValue = 1
                        data.players[iSelectedCiv].__dict__[sList][
                            iItem] = iValue
                    else:
                        popup = Popup.PyPopup(
                            7777, EventContextTypes.EVENTCONTEXT_ALL)
                        if iSelectedMode == 0:
                            sText = str(data.__dict__[sList][iItem])
                        else:
                            sText = str(
                                data.players[iSelectedCiv].__dict__[sList]
                                [iItem])
                        popup.setUserData((iItem, -1))
                        popup.createEditBox(sText)
                        popup.launch()
                        return 1
            if iSelectedMode == 0:
                for iPlayer in range(iNumPlayers):
                    if not gc.getPlayer(iPlayer).isAlive(): continue
                    dc.checkName(iPlayer)
            else:
                dc.checkName(iSelectedCiv)
            self.placeListTables()

        elif inputClass.getFunctionName() == "WBListTableThree":
            iItem = inputClass.getData2()
            data.players[iSelectedCiv].__dict__["lWarTrend"][iWarList][
                iItem] += iChange
            self.placeListTables()

        elif inputClass.getFunctionName() == "RestoreBackup":
            BugData.onGameLoad(-1)
            self.loadData()
        elif inputClass.getFunctionName() == "CreateBackup":
            BugData.save()

        return 1
示例#3
0
    def _handleOnPreSaveEvent(self, eventType, argsList):
        """Tells BugData to save all script data after other handlers have been called.
		This won't work as a normal handler because it must be done after other handlers. 
		"""
        self._handleDefaultEvent(eventType, argsList)
        BugData.save()
	def handleInput(self, inputClass):
		screen = CyGInterfaceScreen("WBStoredDataScreen", CvScreenEnums.WB_STOREDDATA)
		global iChange
		global iSelectedCiv
		global bRemove
		global iSelectedMode

		global scriptDict
		global lBools
		global lInts
		global lLists
		global iSelectedList
		global iWarList

		if inputClass.getFunctionName() == "CurrentPage":
			iIndex = screen.getPullDownData("CurrentPage", screen.getSelectedPullDownID("CurrentPage"))
			if iIndex == 8:
				WBReligionScreen.WBReligionScreen().interfaceScreen(self.top.m_iCurrentPlayer)
			elif iIndex == 9:
				WBCorporationScreen.WBCorporationScreen().interfaceScreen(self.top.m_iCurrentPlayer)
			elif iIndex == 10:
				WBGameDataScreen.WBGameDataScreen(self.top).interfaceScreen()
			elif iIndex == 11:
				WBInfoScreen.WBInfoScreen().interfaceScreen(self.top.m_iCurrentPlayer)

		elif inputClass.getFunctionName() == "ChangeBy":
			if bRemove:
				iChange = -screen.getPullDownData("ChangeBy", screen.getSelectedPullDownID("ChangeBy"))
			else:
				iChange = screen.getPullDownData("ChangeBy", screen.getSelectedPullDownID("ChangeBy"))

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

		elif inputClass.getFunctionName() == "SelectMode":
			iSelectedMode = screen.getPullDownData("SelectMode", screen.getSelectedPullDownID("SelectMode"))
			iSelectedList = 0
			self.loadData()

		elif inputClass.getFunctionName() == "SelectCiv":
			iSelectedCiv = screen.getPullDownData("SelectCiv", screen.getSelectedPullDownID("SelectCiv"))
			self.placeCivButton()
			if iSelectedMode == 1:
				self.loadData()

		elif inputClass.getFunctionName() == "WBDataTable":
			if inputClass.getData1() == 22007:
				item = lBools[inputClass.getData2()]
				if iSelectedMode == 0:
					data.__dict__[item] = not data.__dict__[item]
				else:
					data.players[iSelectedCiv].__dict__[item] = not data.players[iSelectedCiv].__dict__[item]
			elif inputClass.getData1() == 22008:
				item = lInts[inputClass.getData2()]
				if iSelectedMode == 0:
					iValue = data.__dict__[item]
				else:
					iValue = data.players[iSelectedCiv].__dict__[item]

				iValue += iChange

				if item == "iStabilityLevel":
					iValue = max(iStabilityCollapsing, min(iValue, iStabilitySolid))

				if iSelectedMode == 0:
					data.__dict__[item] = iValue
				else:
					data.players[iSelectedCiv].__dict__[item] = iValue
			self.placeDataTable()

		elif inputClass.getFunctionName() == "WBListTable":
			iSelectedList = inputClass.getData2()
			self.placeListTables()

		elif inputClass.getFunctionName() == "WBListTableTwo":
			iItem = inputClass.getData2()
			sList = lLists[iSelectedList]

			if sList == "lWarTrend":
				iWarList = iItem
			elif isinstance(scriptDict[sList][iItem], bool):
				if iSelectedMode == 0:
					data.__dict__[sList][iItem] = not data.__dict__[sList][iItem]
				else:
					data.players[iSelectedCiv].__dict__[sList][iItem] = not data.players[iSelectedCiv].__dict__[sList][iItem]
			elif isinstance(scriptDict[sList][iItem], int):
				bCiv = sList in ["lFirstDiscovered", "lWonderBuilder", "lReligionFounder", "lFirstEntered"]
				if bCiv:
					data.__dict__[sList][iItem] = iSelectedCiv
				else:
					if sList in ["lGoals", "lEconomyTrend"]:
						iValue = data.players[iSelectedCiv].__dict__[sList][iItem] + abs(iChange) / iChange
						iValue = max(-1, min(iValue, 1))
						data.players[iSelectedCiv].__dict__[sList][iItem] = iValue
					elif sList == "lHappinessTrend":
						if bRemove:
							iValue = -1
						else:
							iValue = 1
						data.players[iSelectedCiv].__dict__[sList][iItem] = iValue
					else:
						popup = Popup.PyPopup(7777, EventContextTypes.EVENTCONTEXT_ALL)
						if iSelectedMode == 0:
							sText = str(data.__dict__[sList][iItem])
						else:
							sText = str(data.players[iSelectedCiv].__dict__[sList][iItem])
						popup.setUserData((iItem, -1))
						popup.createEditBox(sText)
						popup.launch()
						return 1
			self.placeListTables()


		elif inputClass.getFunctionName() == "WBListTableThree":
			iItem = inputClass.getData2()
			data.players[iSelectedCiv].__dict__["lWarTrend"][iWarList][iItem] += iChange
			self.placeListTables()

		elif inputClass.getFunctionName() == "RestoreBackup":
			BugData.onGameLoad(-1)
			self.loadData()
		elif inputClass.getFunctionName() == "CreateBackup":
			BugData.save()

		return 1