def setupQuestPosters(): questManager = avatar.questManager numQuests = len(questManager.quests.values()) yPos = 0.47 displayData = { 1: [[Point3(0.0, 0.0, yPos)], 0.88], 2: [[Point3(-0.42, 0.0, yPos), Point3(0.45, 0.0, yPos)], 0.88], 3: [[ Point3(-0.57, 0.0, yPos), Point3(0.0, 0.0, yPos), Point3(0.57, 0.0, yPos) ], 0.70], 4: [[ Point3(-0.32, 0.0, 0.62), Point3(-0.32, 0.0, 0.30), Point3(0.32, 0.0, 0.62), Point3(0.32, 0.0, 0.30) ], 0.52] } # A full frame is a frame showing two quests at once. howManyFullFrames = math.ceil(numQuests / 2.0) howManyRemainderFrames = (numQuests - howManyFullFrames) for i, quest in enumerate(questManager.quests.values()): poster = QuestGlobals.generatePoster(quest, parent=self.questFrame) poster.setScale(displayData.get(numQuests)[1]) poster.setPos(displayData.get(numQuests)[0][i]) poster.show() self.questPosters.append(poster)
def enter(self): BookPage.enter(self) positions = [(-0.45, 0.75, 0.3), (0.45, 0.75, 0.3), (-0.45, 0.75, -0.3), (0.45, 0.75, -0.3)] quests = base.localAvatar.questManager.quests.values() for i in range(4): quest = None if i < len(quests): quest = quests[i] poster = QuestGlobals.generatePoster(quest, parent=self.book) poster.setPos(positions[i]) poster.setScale(0.95) poster.show() self.posters.append(poster)
def makePickableQuests(self, questList): self.doCameraNPCInteraction(True) quests = [] for questId in questList: quest = Quest(questId, base.localAvatar.questManager) quest.setupCurrentObjectiveFromData(-1, 0, None) quests.append(quest) positions = [(0, 0, 0.65), (0, 0, 0.1), (0, 0, -0.45)] self.questFrame = DirectFrame(relief=None, pos=(-0.8, 0, 0), geom=DGG.getDefaultDialogGeom(), geom_color=Vec4(0.8, 0.6, 0.4, 1), geom_scale=(1.85, 1, 0.9), geom_hpr=(0, 0, -90)) self.cancelBtn = DirectButton(text="Cancel", geom=CIGlobals.getDefaultBtnGeom(), geom_scale=(0.6, 0.75, 0.75), relief=None, parent=self.questFrame, pos=(0.2, 0, -0.8), text_scale=0.045, text_pos=(0, -0.015), scale=1.1, command=self.__cancelQuestPicker, extraArgs=[False]) self.timer = Timer() self.timer.load() self.timer.setScale(0.3) self.timer.reparentTo(self.questFrame) self.timer.setPos(-0.1, 0, -0.8) self.timer.setInitialTime(20) self.timer.setZeroCommand(self.__cancelQuestPicker) self.timer.startTiming() self.questPosters = [] self.questBtns = [] for i in xrange(len(quests)): poster = None quest = quests[i] poster = QuestGlobals.generatePoster(quest, parent=aspect2d) poster.setScale(0.85) poster.setPos(0, 0, 0) poster.progressBar.hide() self.questPosters.append(poster) # Let's setup the choose button. btn = DirectButton(geom=CIGlobals.getDefaultBtnGeom(), parent=poster, pos=(0.35, 0, 0.215), text='Choose', text_scale=0.08, text_pos=(0, -0.025), relief=None, command=self.d_pickedQuest, extraArgs=[quests[i]]) btn.setScale(0.4) btn.setBin('gui-popup', 60) btn.initialiseoptions(DirectButton) poster.reparentTo(self.questFrame.stateNodePath[0], 20) poster.setPos(positions[i]) poster.show() self.questBtns.append(btn)