def updateQuestInfo(self): for marker in self.buildingMarkers: marker.destroy() self.buildingMarkers = [] dnaData = base.cr.playGame.dnaData for questIndex in self.av.questPage.quests.keys(): questDesc = self.av.questPage.quests.get(questIndex) if questDesc is None: continue mapIndex = questIndex + 1 questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc quest = Quests.getQuest(questId) fComplete = quest.getCompletionStatus(self.av, questDesc) == Quests.COMPLETE if not fComplete: if quest.getType() == Quests.RecoverItemQuest: if quest.getHolder() == Quests.AnyFish: self.putBuildingMarker(self.fishingSpotInfo, mapIndex=mapIndex) continue elif quest.getType() != Quests.DeliverGagQuest and quest.getType() != Quests.DeliverItemQuest and quest.getType() != Quests.VisitQuest and quest.getType() != Quests.TrackChoiceQuest: continue if toNpcId == Quests.ToonHQ: self.putBuildingMarker(self.hqPosInfo, mapIndex=mapIndex) else: npcZone = NPCToons.getNPCZone(toNpcId) hoodId = ZoneUtil.getCanonicalHoodId(npcZone) branchId = ZoneUtil.getCanonicalBranchZone(npcZone) if self.hoodId == hoodId and self.zoneId == branchId: for blockId, block in dnaData.getBlocks(): zone = block.zone branchZone = zone - zone % 100 finalZone = branchZone + 500 + blockId if npcZone == finalZone: building = block.node self.putBuildingMarker(Point3(building.getPos()), building.getHpr(), mapIndex=mapIndex)
def showChoicePoster(self, questId, fromNpcId, toNpcId, rewardId, callback): self.update((questId, fromNpcId, toNpcId, rewardId, 0)) quest = Quests.getQuest(questId) self.rewardText.show() self.rewardText.setZ(-0.205) self.questProgress.hide() if not hasattr(self, 'chooseButton'): guiButton = loader.loadModel('phase_3/models/gui/quit_button') self.chooseButton = DirectButton(parent=self.questFrame, relief=None, image=(guiButton.find('**/QuitBtn_UP'), guiButton.find('**/QuitBtn_DN'), guiButton.find('**/QuitBtn_RLVR')), image_scale=(0.7, 1, 1), text=TTLocalizer.QuestPageChoose, text_scale=0.06, text_pos=(0, -0.02), pos=(0.285, 0, 0.245), scale=0.65) guiButton.removeNode() npcZone = NPCToons.getNPCZone(toNpcId) hoodId = ZoneUtil.getCanonicalHoodId(npcZone) if not base.cr.isPaid() and (questId == 401 or hasattr(quest, 'getLocation') and quest.getLocation() == 1000 or hoodId == 1000): def showTeaserPanel(): TeaserPanel(pageName='getGags') self.chooseButton['command'] = showTeaserPanel else: self.chooseButton['command'] = callback self.chooseButton['extraArgs'] = [questId] self.unbind(DGG.WITHIN) self.unbind(DGG.WITHOUT) if not quest.getType() == Quests.TrackChoiceQuest: self.questInfo.setZ(-0.0625) return
def teleportToShop(self, npcId): if base.cr.playGame.getPlace().getState() != 'walk': return npcZone = NPCToons.getNPCZone(npcId) npcHood = ZoneUtil.getCanonicalHoodId(npcZone) hqZone = {2000:2520, 1000:1507, 3000:3508, 4000:4504, 5000:5502, 7000:7503, 9000:9505} if npcZone in (-1, 0, None): zoneId = base.localAvatar.getZoneId() if ZoneUtil.isDynamicZone(zoneId) or ZoneUtil.isCogHQZone(zoneId): zoneId = 2000 npcHood = ZoneUtil.getCanonicalHoodId(zoneId) npcZone = hqZone.get(npcHood, 2520) cost = ToontownGlobals.getTeleportButtonCost(npcHood) self.destroyDialog() base.cr.playGame.getPlace().setState('stopped') if base.localAvatar.getTotalMoney() < cost: self.dialog = TTDialog.TTDialog(style=TTDialog.Acknowledge, text=TTLocalizer.TeleportButtonNoMoney % cost, command=self.destroyDialog) else: self.dialog = TTDialog.TTDialog(style=TTDialog.YesNo, text=TTLocalizer.TeleportButtonConfirm % cost, command=lambda value: self.teleportToShopConfirm(npcZone, npcHood, cost, value)) self.dialog.show()
def updateQuestInfo(self): for marker in self.buildingMarkers: marker.destroy() self.buildingMarkers = [] for (i, questDesc) in enumerate(self.av.quests): mapIndex = i + 1 quest = Quests.getQuest(questDesc[0]) toNpcId = questDesc[2] completed = quest.getCompletionStatus(self.av, questDesc) == Quests.COMPLETE if not completed: if quest.getType() == Quests.RecoverItemQuest: if quest.getHolder() == Quests.AnyFish: self.putBuildingMarker(self.fishingSpotInfo, mapIndex=mapIndex) continue elif quest.getType() not in (Quests.DeliverGagQuest, Quests.DeliverItemQuest, Quests.VisitQuest, Quests.TrackChoiceQuest): continue if toNpcId == Quests.ToonHQ: self.putBuildingMarker(self.hqPosInfo, mapIndex=mapIndex) continue npcZoneId = NPCToons.getNPCZone(toNpcId) hoodId = ZoneUtil.getCanonicalHoodId(npcZoneId) branchId = ZoneUtil.getCanonicalBranchZone(npcZoneId) if (self.hoodId != hoodId) or (self.zoneId != branchId): continue for blockIndex in xrange( base.cr.playGame.dnaStore.getNumBlockNumbers()): blockNumber = base.cr.playGame.dnaStore.getBlockNumberAt( blockIndex) zoneId = base.cr.playGame.dnaStore.getZoneFromBlockNumber( blockNumber) interiorZoneId = (zoneId - (zoneId % 100)) + 500 + blockNumber if npcZoneId == interiorZoneId: self.putBuildingMarker( base.cr.playGame.dnaStore.getDoorPosHprFromBlockNumber( blockNumber).getPos(render), base.cr.playGame.dnaStore.getDoorPosHprFromBlockNumber( blockNumber).getHpr(render), mapIndex=mapIndex, zoneId=zoneId)
def updateQuestInfo(self): for marker in self.buildingMarkers: marker.destroy() self.buildingMarkers = [] dnaStore = base.cr.playGame.dnaStore for questIndex in self.av.questPage.quests.keys(): questDesc = self.av.questPage.quests.get(questIndex) if questDesc is None: continue mapIndex = questIndex + 1 questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc quest = Quests.getQuest(questId) fComplete = quest.getCompletionStatus(self.av, questDesc) == Quests.COMPLETE if not fComplete: if quest.getType() == Quests.RecoverItemQuest: if quest.getHolder() == Quests.AnyFish: self.putBuildingMarker(self.fishingSpotInfo, mapIndex=mapIndex) continue elif quest.getType( ) != Quests.DeliverGagQuest and quest.getType( ) != Quests.DeliverItemQuest and quest.getType( ) != Quests.VisitQuest and quest.getType( ) != Quests.TrackChoiceQuest: continue if toNpcId == Quests.ToonHQ: self.putBuildingMarker(self.hqPosInfo, mapIndex=mapIndex) else: npcZone = NPCToons.getNPCZone(toNpcId) hoodId = ZoneUtil.getCanonicalHoodId(npcZone) branchId = ZoneUtil.getCanonicalBranchZone(npcZone) if self.hoodId == hoodId and self.zoneId == branchId: for blockIndex in xrange(dnaStore.getNumBlockTitles()): blockNumber = dnaStore.getTitleBlockAt(blockIndex) zone = dnaStore.getZoneFromBlockNumber(blockNumber) branchZone = zone - zone % 100 finalZone = branchZone + 500 + blockNumber buildingType = dnaStore.getBlockBuildingType( blockNumber) if npcZone == finalZone: self.putBuildingMarker( dnaStore.getDoorPosHprFromBlockNumber( blockNumber).getPos(), dnaStore.getDoorPosHprFromBlockNumber( blockNumber).getHpr(), mapIndex=mapIndex) return
def updateQuestInfo(self): for marker in self.buildingMarkers: marker.destroy() self.buildingMarkers = [] dnaStore = base.cr.playGame.dnaStore for questIndex in self.av.questPage.quests.keys(): questDesc = self.av.questPage.quests.get(questIndex) if questDesc is None: continue mapIndex = questIndex + 1 questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc quest = Quests.getQuest(questId) fComplete = quest.getCompletionStatus(self.av, questDesc) == Quests.COMPLETE if not fComplete: if quest.getType() == Quests.RecoverItemQuest: if quest.getHolder() == Quests.AnyFish: self.putBuildingMarker(self.fishingSpotInfo, mapIndex=mapIndex) continue elif ( quest.getType() != Quests.DeliverGagQuest and quest.getType() != Quests.DeliverItemQuest and quest.getType() != Quests.VisitQuest and quest.getType() != Quests.TrackChoiceQuest ): continue if toNpcId == Quests.ToonHQ: self.putBuildingMarker(self.hqPosInfo, mapIndex=mapIndex) else: npcZone = NPCToons.getNPCZone(toNpcId) hoodId = ZoneUtil.getCanonicalHoodId(npcZone) branchId = ZoneUtil.getCanonicalBranchZone(npcZone) if self.hoodId == hoodId and self.zoneId == branchId: for blockIndex in xrange(dnaStore.getNumBlockTitles()): blockNumber = dnaStore.getTitleBlockAt(blockIndex) zone = dnaStore.getZoneFromBlockNumber(blockNumber) branchZone = zone - zone % 100 finalZone = branchZone + 500 + blockNumber buildingType = dnaStore.getBlockBuildingType(blockNumber) if npcZone == finalZone: self.putBuildingMarker( dnaStore.getDoorPosHprFromBlockNumber(blockNumber).getPos(), dnaStore.getDoorPosHprFromBlockNumber(blockNumber).getHpr(), mapIndex=mapIndex, ) return
def updateQuestInfo(self): for marker in self.buildingMarkers: marker.destroy() self.buildingMarkers = [] dnaData = base.cr.playGame.dnaData for questIndex in self.av.questPage.quests.keys(): questDesc = self.av.questPage.quests.get(questIndex) if questDesc is None: continue mapIndex = questIndex + 1 questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc quest = Quests.getQuest(questId) fComplete = quest.getCompletionStatus(self.av, questDesc) == Quests.COMPLETE if not fComplete: if quest.getType() == Quests.RecoverItemQuest: if quest.getHolder() == Quests.AnyFish: self.putBuildingMarker(self.fishingSpotInfo, mapIndex=mapIndex) continue elif quest.getType( ) != Quests.DeliverGagQuest and quest.getType( ) != Quests.DeliverItemQuest and quest.getType( ) != Quests.VisitQuest and quest.getType( ) != Quests.TrackChoiceQuest: continue if toNpcId == Quests.ToonHQ: self.putBuildingMarker(self.hqPosInfo, mapIndex=mapIndex) else: npcZone = NPCToons.getNPCZone(toNpcId) hoodId = ZoneUtil.getCanonicalHoodId(npcZone) branchId = ZoneUtil.getCanonicalBranchZone(npcZone) if self.hoodId == hoodId and self.zoneId == branchId: for blockId, block in dnaData.getBlocks(): zone = block.zone branchZone = zone - zone % 100 finalZone = branchZone + 500 + blockId if npcZone == finalZone: building = block.node self.putBuildingMarker(Point3(building.getPos()), building.getHpr(), mapIndex=mapIndex)
def updateQuestInfo(self): for marker in self.buildingMarkers: marker.destroy() self.buildingMarkers = [] for (i, questDesc) in enumerate(self.av.quests): mapIndex = i + 1 quest = Quests.getQuest(questDesc[0]) toNpcId = questDesc[2] completed = quest.getCompletionStatus(self.av, questDesc) == Quests.COMPLETE if not completed: if quest.getType() == Quests.RecoverItemQuest: if quest.getHolder() == Quests.AnyFish: self.putBuildingMarker(self.fishingSpotInfo, mapIndex=mapIndex) continue elif quest.getType() not in ( Quests.DeliverGagQuest, Quests.DeliverItemQuest, Quests.VisitQuest, Quests.TrackChoiceQuest): continue if toNpcId == Quests.ToonHQ: self.putBuildingMarker(self.hqPosInfo, mapIndex=mapIndex) continue npcZoneId = NPCToons.getNPCZone(toNpcId) hoodId = ZoneUtil.getCanonicalHoodId(npcZoneId) branchId = ZoneUtil.getCanonicalBranchZone(npcZoneId) if (self.hoodId != hoodId) or (self.zoneId != branchId): continue for blockIndex in xrange(base.cr.playGame.dnaStore.getNumBlockNumbers()): blockNumber = base.cr.playGame.dnaStore.getBlockNumberAt(blockIndex) zoneId = base.cr.playGame.dnaStore.getZoneFromBlockNumber(blockNumber) interiorZoneId = (zoneId - (zoneId%100)) + 500 + blockNumber if npcZoneId == interiorZoneId: self.putBuildingMarker( base.cr.playGame.dnaStore.getDoorPosHprFromBlockNumber(blockNumber).getPos(render), base.cr.playGame.dnaStore.getDoorPosHprFromBlockNumber(blockNumber).getHpr(render), mapIndex=mapIndex)
def teleportToShop(self, npcId): npcZone = NPCToons.getNPCZone(npcId) npcHood = ZoneUtil.getCanonicalHoodId(npcZone) avZone = base.localAvatar.getZoneId() avHood = ZoneUtil.getCanonicalHoodId(avZone) avShard = base.localAvatar.defaultShard avPlace = base.cr.playGame.getPlace() hqZone = {2000:2520, 1000:1507, 3000:3508, 4000:4504, 5000:5502, 7000:7503, 9000:9505} def callback(flag): if flag: npcZone = None base.cr.buildingQueryMgr.d_isSuit(npcZone, callback) if avShard not in base.cr.activeDistrictMap: return if npcZone in [-1, 0, None]: return if not ZoneUtil.isInterior(npcZone): return if ZoneUtil.isHQ(npcZone): args = (avHood, hqZone[avHood], avShard, -1) else: args = (npcHood, npcZone, avShard, -1) avPlace.requestTeleport(*args)
def update(self, questDesc): questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc quest = Quests.getQuest(questId) if quest == None: self.notify.warning('Tried to display poster for unknown quest %s' % questId) return if rewardId == Quests.NA: finalReward = Quests.getFinalRewardId(questId, fAll=1) transformedReward = Quests.transformReward(finalReward, base.localAvatar) reward = Quests.getReward(transformedReward) else: reward = Quests.getReward(rewardId) if reward and questId not in Quests.NoRewardTierZeroQuests: rewardString = reward.getPosterString() else: rewardString = '' self.rewardText['text'] = rewardString self.fitLabel(self.rewardText) if Quests.isQuestJustForFun(questId, rewardId): self.funQuest.show() else: self.funQuest.hide() if self._deleteCallback: self.showDeleteButton(questDesc) else: self.hideDeleteButton() fComplete = quest.getCompletionStatus(base.localAvatar, questDesc) == Quests.COMPLETE if Quests.isQuestJustForFun(questId, rewardId): if fComplete: self.funQuest.hide() if toNpcId == Quests.ToonHQ: toNpcName = TTLocalizer.QuestPosterHQOfficer toNpcBuildingName = TTLocalizer.QuestPosterHQBuildingName toNpcStreetName = TTLocalizer.QuestPosterHQStreetName toNpcLocationName = TTLocalizer.QuestPosterHQLocationName elif toNpcId == Quests.ToonTailor: toNpcName = TTLocalizer.QuestPosterTailor toNpcBuildingName = TTLocalizer.QuestPosterTailorBuildingName toNpcStreetName = TTLocalizer.QuestPosterTailorStreetName toNpcLocationName = TTLocalizer.QuestPosterTailorLocationName else: toNpcName = NPCToons.getNPCName(toNpcId) toNpcZone = NPCToons.getNPCZone(toNpcId) toNpcHoodId = ZoneUtil.getCanonicalHoodId(toNpcZone) toNpcLocationName = base.cr.hoodMgr.getFullnameFromId(toNpcHoodId) toNpcBuildingName = NPCToons.getBuildingTitle(toNpcZone) toNpcBranchId = ZoneUtil.getBranchZone(toNpcZone) toNpcStreetName = ZoneUtil.getStreetName(toNpcBranchId) lPos = Vec3(0, 0, 0.13) lIconGeom = None lIconGeomScale = 1 rIconGeom = None rIconGeomScale = 1 infoText = '' infoZ = TTLocalizer.QPinfoZ auxText = None auxTextPos = Vec3(0, 0, 0.12) headlineString = quest.getHeadlineString() objectiveStrings = quest.getObjectiveStrings() captions = map(lambda x: str(x).title(), quest.getObjectiveStrings()) imageColor = Vec4(*self.colors['white']) if quest.getType() == Quests.DeliverGagQuest or quest.getType() == Quests.DeliverItemQuest: frameBgColor = 'red' if quest.getType() == Quests.DeliverGagQuest: invModel = loader.loadModel('phase_3.5/models/gui/inventory_icons') track, item = quest.getGagType() lIconGeom = invModel.find('**/' + AvPropsNew[track][item]) invModel.removeNode() else: bookModel = loader.loadModel('phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/package') lIconGeomScale = 0.12 bookModel.removeNode() if not fComplete: captions.append(toNpcName) auxText = TTLocalizer.QuestPosterAuxTo auxTextPos.setZ(0.12) lPos.setX(-0.18) infoText = TTLocalizer.QuestPageDestination % (toNpcBuildingName, toNpcStreetName, toNpcLocationName) rIconGeom = self.createNpcToonHead(toNpcId) rIconGeomScale = IMAGE_SCALE_SMALL elif quest.getType() == Quests.RecoverItemQuest: frameBgColor = 'green' bookModel = loader.loadModel('phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/package') lIconGeomScale = 0.12 bookModel.removeNode() if not fComplete: rIconGeomScale = IMAGE_SCALE_SMALL holder = quest.getHolder() holderType = quest.getHolderType() if holder == Quests.Any: cogIcons = loader.loadModel('phase_3/models/gui/cog_icons') rIconGeom = cogIcons.find('**/cog') cogIcons.removeNode() lPos.setX(-0.18) auxText = TTLocalizer.QuestPosterAuxFrom elif holder == Quests.AnyFish: headlineString = TTLocalizer.QuestPosterFishing auxText = TTLocalizer.QuestPosterAuxFor auxTextPos.setX(-0.18) captions = captions[:1] else: if holderType == 'track': cogIcons = loader.loadModel('phase_3/models/gui/cog_icons') if holder == 'c': icon = cogIcons.find('**/CorpIcon') elif holder == 's': icon = cogIcons.find('**/SalesIcon') elif holder == 'l': icon = cogIcons.find('**/LegalIcon') elif holder == 'm': icon = cogIcons.find('**/MoneyIcon') rIconGeom = icon.copyTo(hidden) rIconGeom.setColor(Suit.Suit.medallionColors[holder]) rIconGeomScale = 0.12 cogIcons.removeNode() elif holderType == 'level': cogIcons = loader.loadModel('phase_3/models/gui/cog_icons') rIconGeom = cogIcons.find('**/cog') rIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() else: rIconGeom = self.createSuitHead(holder) lPos.setX(-0.18) auxText = TTLocalizer.QuestPosterAuxFrom infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.VisitQuest: frameBgColor = 'brown' captions[0] = '%s' % toNpcName lIconGeom = self.createNpcToonHead(toNpcId) lIconGeomScale = IMAGE_SCALE_SMALL if not fComplete: infoText = TTLocalizer.QuestPageDestination % (toNpcBuildingName, toNpcStreetName, toNpcLocationName) elif quest.getType() == Quests.TrackChoiceQuest: frameBgColor = 'green' invModel = loader.loadModel('phase_3.5/models/gui/inventory_icons') track1, track2 = quest.getChoices() lIconGeom = invModel.find('**/' + AvPropsNew[track1][1]) if not fComplete: auxText = TTLocalizer.QuestPosterAuxOr lPos.setX(-0.18) rIconGeom = invModel.find('**/' + AvPropsNew[track2][1]) infoText = TTLocalizer.QuestPageNameAndDestination % (toNpcName, toNpcBuildingName, toNpcStreetName, toNpcLocationName) infoZ = -0.02 invModel.removeNode() elif quest.getType() == Quests.BuildingQuest: frameBgColor = 'blue' track = quest.getBuildingTrack() numFloors = quest.getNumFloors() if track == 'c': lIconGeom = loader.loadModel('phase_4/models/modules/suit_landmark_corp') elif track == 'l': lIconGeom = loader.loadModel('phase_4/models/modules/suit_landmark_legal') elif track == 'm': lIconGeom = loader.loadModel('phase_4/models/modules/suit_landmark_money') elif track == 's': lIconGeom = loader.loadModel('phase_4/models/modules/suit_landmark_sales') else: bookModel = loader.loadModel('phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/COG_building') bookModel.removeNode() if lIconGeom and track != Quests.Any: self.loadElevator(lIconGeom, numFloors) lIconGeom.setH(180) self.fitGeometry(lIconGeom, fFlip=0) lIconGeomScale = IMAGE_SCALE_SMALL else: lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere # cogdo quest elif quest.getType() == Quests.CogdoQuest: frameBgColor = 'lightGreen' track = quest.getBuildingTrack() if track == 'c': lIconGeom = loader.loadModel('phase_4/models/modules/suit_landmark_corp') elif track == 'l': lIconGeom = loader.loadModel('phase_4/models/modules/suit_landmark_legal') elif track == 'm': lIconGeom = loader.loadModel('phase_4/models/modules/suit_landmark_money') elif track == 's': lIconGeom = loader.loadModel('phase_4/models/modules/suit_landmark_sales') else: lIconGeom = loader.loadModel('phase_5/models/cogdominium/tt_m_ara_cbe_fieldOfficeMoverShaker') if lIconGeom and track != Quests.Any: lIconGeom.setH(180) else: lIconGeom.setH(180) self.fitGeometry(lIconGeom) lIconGeomScale = IMAGE_SCALE_SMALL if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.FactoryQuest: frameBgColor = 'blue' bookModel = loader.loadModel('phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/factoryIcon2') bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.MintQuest: frameBgColor = 'blue' bookModel = loader.loadModel('phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/CashBotMint') bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.ForemanQuest or quest.getType() == Quests.SupervisorQuest: frameBgColor = 'blue' bookModel = loader.loadModel('phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/skelecog5') bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.BossQuest: frameBgColor = 'blue' cogIcons = loader.loadModel('phase_3/models/gui/cog_icons') lIconGeom = cogIcons.find('**/cog') lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.VPQuest: frameBgColor = 'blue' lIconGeom = loader.loadModel('phase_9/models/char/sellbotBoss-head-zero') lIconGeomPos = [0, 0, -0.055] lIconGeomHpr = [-90, 0, -90] lIconGeomScale = 0.015 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.CFOQuest: frameBgColor = 'blue' lIconGeom = loader.loadModel('phase_10/models/char/cashbotBoss-head-zero') lIconGeomPos = [0, 0, -0.055] lIconGeomHpr = [90, 0, -90] lIconGeomScale = 0.015 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.CJQuest: frameBgColor = 'blue' lIconGeom = loader.loadModel('phase_11/models/char/lawbotBoss-head-zero') lIconGeomPos = [0, 0, -0.055] lIconGeomHpr = [90, 0, -90] lIconGeomScale = 0.025 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.CEOQuest: frameBgColor = 'blue' lIconGeom = loader.loadModel('phase_12/models/char/bossbotBoss-head-zero') lIconGeomPos = [0, 0, -0.065] lIconGeomHpr = [90, 0, -90] lIconGeomScale = 0.0125 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif 0:#quest.getType() == Quests.FriendQuest: frameBgColor = 'brown' gui = loader.loadModel('phase_3.5/models/gui/friendslist_gui') lIconGeom = gui.find('**/FriendsBox_Closed') lIconGeomScale = 0.45 gui.removeNode() infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.TrolleyQuest: frameBgColor = 'lightBlue' gui = loader.loadModel('phase_3.5/models/gui/stickerbook_gui') lIconGeom = gui.find('**/trolley') lIconGeomScale = 0.13 gui.removeNode() infoText = TTLocalizer.QuestPosterPlayground elif quest.getType() == Quests.MailboxQuest: frameBgColor = 'lightBlue' bookModel = loader.loadModel('phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/package') lIconGeomScale = 0.12 bookModel.removeNode() infoText = TTLocalizer.QuestPosterAtHome elif quest.getType() == Quests.PhoneQuest: frameBgColor = 'lightBlue' bookModel = loader.loadModel('phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/clarabelleCow') lIconGeomScale = 0.12 bookModel.removeNode() infoText = TTLocalizer.QuestPosterOnPhone else: frameBgColor = 'blue' if quest.getType() == Quests.CogTrackQuest: dept = quest.getCogTrack() cogIcons = loader.loadModel('phase_3/models/gui/cog_icons') lIconGeomScale = 0.13 if dept == 'c': icon = cogIcons.find('**/CorpIcon') elif dept == 's': icon = cogIcons.find('**/SalesIcon') elif dept == 'l': icon = cogIcons.find('**/LegalIcon') elif dept == 'm': icon = cogIcons.find('**/MoneyIcon') lIconGeom = icon.copyTo(hidden) lIconGeom.setColor(Suit.Suit.medallionColors[dept]) cogIcons.removeNode() elif quest.getType() == Quests.CogQuest: if quest.getCogType() != Quests.Any: lIconGeom = self.createSuitHead(quest.getCogType()) lIconGeomScale = IMAGE_SCALE_SMALL else: cogIcons = loader.loadModel('phase_3/models/gui/cog_icons') lIconGeom = cogIcons.find('**/cog') lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() elif quest.getType() == Quests.CogLevelQuest: cogIcons = loader.loadModel('phase_3/models/gui/cog_icons') lIconGeom = cogIcons.find('**/cog') lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() elif quest.getType() == Quests.SkelecogTrackQuest: dept = quest.getCogTrack() cogIcons = loader.loadModel('phase_3/models/gui/cog_icons') lIconGeomScale = 0.13 if dept == 'c': icon = cogIcons.find('**/CorpIcon') elif dept == 's': icon = cogIcons.find('**/SalesIcon') elif dept == 'l': icon = cogIcons.find('**/LegalIcon') elif dept == 'm': icon = cogIcons.find('**/MoneyIcon') lIconGeom = icon.copyTo(hidden) lIconGeom.setColor(Suit.Suit.medallionColors[dept]) cogIcons.removeNode() elif quest.getType() == Quests.SkelecogQuest: cogIcons = loader.loadModel('phase_3.5/models/gui/stickerbook_gui') lIconGeom = cogIcons.find('**/skelecog5') lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() elif quest.getType() == Quests.SkelecogLevelQuest: cogIcons = loader.loadModel('phase_3.5/models/gui/stickerbook_gui') lIconGeom = cogIcons.find('**/skelecog5') lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() elif quest.getType() == Quests.SkeleReviveQuest: cogIcons = loader.loadModel('phase_3.5/models/gui/stickerbook_gui') lIconGeom = cogIcons.find('**/skelecog5') lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere if fComplete: textColor = (0, 0.3, 0, 1) imageColor = Vec4(*self.colors['lightGreen']) lPos.setX(-0.18) rIconGeom = self.createNpcToonHead(toNpcId) rIconGeomScale = IMAGE_SCALE_SMALL captions = captions[:1] captions.append(toNpcName) auxText = TTLocalizer.QuestPosterAuxReturnTo headlineString = TTLocalizer.QuestPosterComplete infoText = TTLocalizer.QuestPageDestination % (toNpcBuildingName, toNpcStreetName, toNpcLocationName) if self.laffMeter != None: self.laffMeter.reparentTo(hidden) self.laffMeter.destroy() self.laffMeter = None else: textColor = self.normalTextColor self.show() self['image_color'] = imageColor self.headline['text_fg'] = textColor self.headline['text'] = headlineString self.lPictureFrame.show() self.lPictureFrame.setPos(lPos) self.lPictureFrame['text_scale'] = TEXT_SCALE if lPos[0] != 0: self.lPictureFrame['text_scale'] = 0.0325 self.lPictureFrame['text'] = captions[0] self.lPictureFrame['image_color'] = Vec4(*self.colors[frameBgColor]) if len(captions) > 1: self.rPictureFrame.show() self.rPictureFrame['text'] = captions[1] self.rPictureFrame['text_scale'] = 0.0325 self.rPictureFrame['image_color'] = Vec4(*self.colors[frameBgColor]) else: self.rPictureFrame.hide() self._deleteGeoms() self.lQuestIcon['geom'] = lIconGeom self.lQuestIcon['geom_pos'] = (0, 10, 0) if lIconGeom: try: self.lQuestIcon['geom_scale'] = lIconGeomScale except: pass try: self.lQuestIcon['geom_pos'] = Point3(lIconGeomPos[0], lIconGeomPos[1], lIconGeomPos[2]) except: pass try: self.lQuestIcon['geom_hpr'] = Point3(lIconGeomHpr[0], lIconGeomHpr[1], lIconGeomHpr[2]) except: pass if self.laffMeter != None: self.laffMeter.reparentTo(self.lQuestIcon) self.rQuestIcon['geom'] = rIconGeom self.rQuestIcon['geom_pos'] = (0, 10, 0) if rIconGeom: self.rQuestIcon['geom_scale'] = rIconGeomScale if auxText: self.auxText.show() self.auxText['text'] = auxText self.auxText.setPos(auxTextPos) else: self.auxText.hide() self.bind(DGG.WITHIN, self.mouseEnterPoster) self.bind(DGG.WITHOUT, self.mouseExitPoster) numQuestItems = quest.getNumQuestItems() if fComplete or numQuestItems <= 1: self.questProgress.hide() if not quest.getType() == Quests.TrackChoiceQuest: infoZ = -0.075 else: self.questProgress.show() self.questProgress['value'] = toonProgress & pow(2, 16) - 1 self.questProgress['range'] = numQuestItems self.questProgress['text'] = quest.getProgressString(base.localAvatar, questDesc) self.questInfo['text'] = infoText self.questInfo.setZ(infoZ) self.fitLabel(self.questInfo) return
def update(self, questDesc): questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc quest = Quests.getQuest(questId) if quest == None: self.notify.warning( 'Tried to display poster for unknown quest %s' % questId) return if rewardId == Quests.NA: finalReward = Quests.getFinalRewardId(questId, fAll=1) transformedReward = Quests.transformReward(finalReward, base.localAvatar) reward = Quests.getReward(transformedReward) else: reward = Quests.getReward(rewardId) if reward and questId not in Quests.NoRewardTierZeroQuests: rewardString = reward.getPosterString() else: rewardString = '' self.rewardText['text'] = rewardString self.fitLabel(self.rewardText) if Quests.isQuestJustForFun(questId, rewardId): self.funQuest.show() else: self.funQuest.hide() if self._deleteCallback: self.showDeleteButton(questDesc) else: self.hideDeleteButton() fComplete = quest.getCompletionStatus(base.localAvatar, questDesc) == Quests.COMPLETE if toNpcId == Quests.ToonHQ: toNpcName = TTLocalizer.QuestPosterHQOfficer toNpcBuildingName = TTLocalizer.QuestPosterHQBuildingName toNpcStreetName = TTLocalizer.QuestPosterHQStreetName toNpcLocationName = TTLocalizer.QuestPosterHQLocationName elif toNpcId == Quests.ToonTailor: toNpcName = TTLocalizer.QuestPosterTailor toNpcBuildingName = TTLocalizer.QuestPosterTailorBuildingName toNpcStreetName = TTLocalizer.QuestPosterTailorStreetName toNpcLocationName = TTLocalizer.QuestPosterTailorLocationName else: toNpcName = NPCToons.getNPCName(toNpcId) toNpcZone = NPCToons.getNPCZone(toNpcId) toNpcHoodId = ZoneUtil.getCanonicalHoodId(toNpcZone) toNpcLocationName = base.cr.hoodMgr.getFullnameFromId(toNpcHoodId) toNpcBuildingName = NPCToons.getBuildingTitle(toNpcZone) toNpcBranchId = ZoneUtil.getBranchZone(toNpcZone) toNpcStreetName = ZoneUtil.getStreetName(toNpcBranchId) lPos = Vec3(0, 0, 0.13) lIconGeom = None lIconGeomScale = 1 rIconGeom = None rIconGeomScale = 1 infoText = '' infoZ = TTLocalizer.QPinfoZ auxText = None auxTextPos = Vec3(0, 0, 0.12) headlineString = quest.getHeadlineString() objectiveStrings = quest.getObjectiveStrings() captions = list(map(string.capwords, quest.getObjectiveStrings())) imageColor = Vec4(*self.colors['white']) if quest.getType() == Quests.DeliverGagQuest or quest.getType( ) == Quests.DeliverItemQuest: frameBgColor = 'red' if quest.getType() == Quests.DeliverGagQuest: invModel = loader.loadModel( 'phase_3.5/models/gui/inventory_icons') track, item = quest.getGagType() lIconGeom = invModel.find('**/' + AvPropsNew[track][item]) invModel.removeNode() else: bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/package') lIconGeomScale = 0.12 bookModel.removeNode() if not fComplete: captions.append(toNpcName) auxText = TTLocalizer.QuestPosterAuxTo auxTextPos.setZ(0.12) lPos.setX(-0.18) infoText = TTLocalizer.QuestPageDestination % ( toNpcBuildingName, toNpcStreetName, toNpcLocationName) rIconGeom = self.createNpcToonHead(toNpcId) rIconGeomScale = IMAGE_SCALE_SMALL elif quest.getType() == Quests.RecoverItemQuest: frameBgColor = 'green' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/package') lIconGeomScale = 0.12 bookModel.removeNode() if not fComplete: rIconGeomScale = IMAGE_SCALE_SMALL holder = quest.getHolder() holderType = quest.getHolderType() if holder == Quests.Any: cogIcons = loader.loadModel('phase_3/models/gui/cog_icons') rIconGeom = cogIcons.find('**/cog') cogIcons.removeNode() lPos.setX(-0.18) auxText = TTLocalizer.QuestPosterAuxFrom elif holder == Quests.AnyFish: headlineString = TTLocalizer.QuestPosterFishing auxText = TTLocalizer.QuestPosterAuxFor auxTextPos.setX(-0.18) captions = captions[:1] else: if holderType == 'track': cogIcons = loader.loadModel( 'phase_3/models/gui/cog_icons') if holder == 'c': icon = cogIcons.find('**/CorpIcon') elif holder == 's': icon = cogIcons.find('**/SalesIcon') elif holder == 'l': icon = cogIcons.find('**/LegalIcon') elif holder == 'm': icon = cogIcons.find('**/MoneyIcon') rIconGeom = icon.copyTo(hidden) rIconGeom.setColor(Suit.Suit.medallionColors[holder]) rIconGeomScale = 0.12 cogIcons.removeNode() elif holderType == 'level': cogIcons = loader.loadModel( 'phase_3/models/gui/cog_icons') rIconGeom = cogIcons.find('**/cog') rIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() else: rIconGeom = self.createSuitHead(holder) lPos.setX(-0.18) auxText = TTLocalizer.QuestPosterAuxFrom infoText = string.capwords(quest.getLocationName()) if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.VisitQuest: frameBgColor = 'brown' captions[0] = '%s' % toNpcName lIconGeom = self.createNpcToonHead(toNpcId) lIconGeomScale = IMAGE_SCALE_SMALL if not fComplete: infoText = TTLocalizer.QuestPageDestination % ( toNpcBuildingName, toNpcStreetName, toNpcLocationName) elif quest.getType() == Quests.TrackChoiceQuest: frameBgColor = 'green' invModel = loader.loadModel('phase_3.5/models/gui/inventory_icons') track1, track2 = quest.getChoices() lIconGeom = invModel.find('**/' + AvPropsNew[track1][1]) if not fComplete: auxText = TTLocalizer.QuestPosterAuxOr lPos.setX(-0.18) rIconGeom = invModel.find('**/' + AvPropsNew[track2][1]) infoText = TTLocalizer.QuestPageNameAndDestination % ( toNpcName, toNpcBuildingName, toNpcStreetName, toNpcLocationName) infoZ = -0.02 invModel.removeNode() elif quest.getType() == Quests.BuildingQuest: frameBgColor = 'blue' track = quest.getBuildingTrack() numFloors = quest.getNumFloors() if track == 'c': lIconGeom = loader.loadModel( 'phase_4/models/modules/suit_landmark_corp') elif track == 'l': lIconGeom = loader.loadModel( 'phase_4/models/modules/suit_landmark_legal') elif track == 'm': lIconGeom = loader.loadModel( 'phase_4/models/modules/suit_landmark_money') elif track == 's': lIconGeom = loader.loadModel( 'phase_4/models/modules/suit_landmark_sales') else: bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/COG_building') bookModel.removeNode() if lIconGeom and track != Quests.Any: self.loadElevator(lIconGeom, numFloors) lIconGeom.setH(180) self.fitGeometry(lIconGeom, fFlip=0) lIconGeomScale = IMAGE_SCALE_SMALL else: lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.BuildingNewbieQuest: frameBgColor = 'blue' track = quest.getBuildingTrack() numFloors = quest.getNumFloors() if track == 'c': rIconGeom = loader.loadModel( 'phase_4/models/modules/suit_landmark_corp') elif track == 'l': rIconGeom = loader.loadModel( 'phase_4/models/modules/suit_landmark_legal') elif track == 'm': rIconGeom = loader.loadModel( 'phase_4/models/modules/suit_landmark_money') elif track == 's': rIconGeom = loader.loadModel( 'phase_4/models/modules/suit_landmark_sales') else: bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') rIconGeom = bookModel.find('**/COG_building') bookModel.removeNode() if rIconGeom and track != Quests.Any: self.loadElevator(rIconGeom, numFloors) rIconGeom.setH(180) self.fitGeometry(rIconGeom, fFlip=0) rIconGeomScale = IMAGE_SCALE_SMALL else: rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append( list(map(string.capwords, quest.getObjectiveStrings()))) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.FactoryQuest: frameBgColor = 'blue' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/factoryIcon2') bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.FactoryNewbieQuest: frameBgColor = 'blue' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') rIconGeom = bookModel.find('**/factoryIcon2') bookModel.removeNode() rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append( list(map(string.capwords, quest.getObjectiveStrings()))) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.MintQuest: frameBgColor = 'blue' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/CashBotMint') bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.MintNewbieQuest: frameBgColor = 'blue' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') rIconGeom = bookModel.find('**/CashBotMint') bookModel.removeNode() rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append( list(map(string.capwords, quest.getObjectiveStrings()))) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.CogPartQuest: frameBgColor = 'green' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/CogArmIcon2') bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.CogPartNewbieQuest: frameBgColor = 'green' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') rIconGeom = bookModel.find('**/CogArmIcon2') bookModel.removeNode() rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append( list(map(string.capwords, quest.getObjectiveStrings()))) auxText = TTLocalizer.QuestsCogPartQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.ForemanQuest or quest.getType( ) == Quests.SupervisorQuest: frameBgColor = 'blue' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/skelecog5') bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.ForemanNewbieQuest or quest.getType( ) == Quests.SupervisorNewbieQuest: frameBgColor = 'blue' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') rIconGeom = bookModel.find('**/skelecog5') bookModel.removeNode() rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append( list(map(string.capwords, quest.getObjectiveStrings()))) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.VPQuest: frameBgColor = 'blue' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/BossHead3Icon') bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.VPNewbieQuest: frameBgColor = 'blue' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') rIconGeom = bookModel.find('**/BossHead3Icon') bookModel.removeNode() rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append( list(map(string.capwords, quest.getObjectiveStrings()))) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.CFOQuest: frameBgColor = 'blue' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/CashBotBossHeadIcon') bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.CFONewbieQuest: frameBgColor = 'blue' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') rIconGeom = bookModel.find('**/CashBotBossHeadIcon') bookModel.removeNode() rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append( list(map(string.capwords, quest.getObjectiveStrings()))) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.RescueQuest: frameBgColor = 'blue' lIconGeom = self.createNpcToonHead(2001) lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.RescueNewbieQuest: frameBgColor = 'blue' rIconGeom = self.createNpcToonHead(2001) rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append( list(map(string.capwords, quest.getObjectiveStrings()))) auxText = TTLocalizer.QuestsRescueQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.FriendQuest: frameBgColor = 'brown' gui = loader.loadModel('phase_3.5/models/gui/friendslist_gui') lIconGeom = gui.find('**/FriendsBox_Closed') lIconGeomScale = 0.45 gui.removeNode() infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.FriendNewbieQuest: frameBgColor = 'brown' gui = loader.loadModel('phase_3.5/models/gui/friendslist_gui') lIconGeom = gui.find('**/FriendsBox_Closed') lIconGeomScale = 0.45 gui.removeNode() infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.TrolleyQuest: frameBgColor = 'lightBlue' gui = loader.loadModel('phase_3.5/models/gui/stickerbook_gui') lIconGeom = gui.find('**/trolley') lIconGeomScale = 0.13 gui.removeNode() infoText = TTLocalizer.QuestPosterPlayground elif quest.getType() == Quests.MailboxQuest: frameBgColor = 'lightBlue' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/package') lIconGeomScale = 0.12 bookModel.removeNode() infoText = TTLocalizer.QuestPosterAtHome elif quest.getType() == Quests.PhoneQuest: frameBgColor = 'lightBlue' bookModel = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') lIconGeom = bookModel.find('**/clarabelleCow') lIconGeomScale = 0.12 bookModel.removeNode() infoText = TTLocalizer.QuestPosterOnPhone elif quest.getType() == Quests.MinigameNewbieQuest: frameBgColor = 'lightBlue' gui = loader.loadModel('phase_3.5/models/gui/stickerbook_gui') rIconGeom = gui.find('**/trolley') rIconGeomScale = 0.13 gui.removeNode() infoText = TTLocalizer.QuestPosterPlayground if not fComplete: captions = [ TTLocalizer.QuestsMinigameNewbieQuestCaption % quest.getNewbieLevel() ] captions.append( list(map(string.capwords, quest.getObjectiveStrings()))) auxText = TTLocalizer.QuestsMinigameNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 else: frameBgColor = 'blue' if quest.getType() == Quests.CogTrackQuest: dept = quest.getCogTrack() cogIcons = loader.loadModel('phase_3/models/gui/cog_icons') lIconGeomScale = 0.13 if dept == 'c': icon = cogIcons.find('**/CorpIcon') elif dept == 's': icon = cogIcons.find('**/SalesIcon') elif dept == 'l': icon = cogIcons.find('**/LegalIcon') elif dept == 'm': icon = cogIcons.find('**/MoneyIcon') lIconGeom = icon.copyTo(hidden) lIconGeom.setColor(Suit.Suit.medallionColors[dept]) cogIcons.removeNode() elif quest.getType() == Quests.CogQuest: if quest.getCogType() != Quests.Any: lIconGeom = self.createSuitHead(quest.getCogType()) lIconGeomScale = IMAGE_SCALE_SMALL else: cogIcons = loader.loadModel('phase_3/models/gui/cog_icons') lIconGeom = cogIcons.find('**/cog') lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() elif quest.getType() == Quests.CogLevelQuest: cogIcons = loader.loadModel('phase_3/models/gui/cog_icons') lIconGeom = cogIcons.find('**/cog') lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() elif quest.getType() == Quests.CogNewbieQuest: if quest.getCogType() != Quests.Any: rIconGeom = self.createSuitHead(quest.getCogType()) rIconGeomScale = IMAGE_SCALE_SMALL else: cogIcons = loader.loadModel('phase_3/models/gui/cog_icons') rIconGeom = cogIcons.find('**/cog') rIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append( list(map(string.capwords, quest.getObjectiveStrings()))) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter( quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.SkelecogTrackQuest: dept = quest.getCogTrack() cogIcons = loader.loadModel('phase_3/models/gui/cog_icons') lIconGeomScale = 0.13 if dept == 'c': icon = cogIcons.find('**/CorpIcon') elif dept == 's': icon = cogIcons.find('**/SalesIcon') elif dept == 'l': icon = cogIcons.find('**/LegalIcon') elif dept == 'm': icon = cogIcons.find('**/MoneyIcon') lIconGeom = icon.copyTo(hidden) lIconGeom.setColor(Suit.Suit.medallionColors[dept]) cogIcons.removeNode() elif quest.getType() == Quests.SkelecogQuest: cogIcons = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') lIconGeom = cogIcons.find('**/skelecog5') lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() elif quest.getType() == Quests.SkelecogLevelQuest: cogIcons = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') lIconGeom = cogIcons.find('**/skelecog5') lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() elif quest.getType() == Quests.SkelecogNewbieQuest: cogIcons = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') rIconGeom = cogIcons.find('**/skelecog5') rIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append( list(map(string.capwords, quest.getObjectiveStrings()))) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter( quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.SkeleReviveQuest: cogIcons = loader.loadModel( 'phase_3.5/models/gui/stickerbook_gui') lIconGeom = cogIcons.find('**/skelecog5') lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() if not fComplete: infoText = string.capwords(quest.getLocationName()) if infoText == '': infoText = TTLocalizer.QuestPosterAnywhere if fComplete: textColor = (0, 0.3, 0, 1) imageColor = Vec4(*self.colors['lightGreen']) lPos.setX(-0.18) rIconGeom = self.createNpcToonHead(toNpcId) rIconGeomScale = IMAGE_SCALE_SMALL captions = captions[:1] captions.append(toNpcName) auxText = TTLocalizer.QuestPosterAuxReturnTo headlineString = TTLocalizer.QuestPosterComplete infoText = TTLocalizer.QuestPageDestination % ( toNpcBuildingName, toNpcStreetName, toNpcLocationName) if self.laffMeter != None: self.laffMeter.reparentTo(hidden) self.laffMeter.destroy() self.laffMeter = None else: textColor = self.normalTextColor self.show() self['image_color'] = imageColor self.headline['text_fg'] = textColor self.headline['text'] = headlineString self.lPictureFrame.show() self.lPictureFrame.setPos(lPos) self.lPictureFrame['text_scale'] = TEXT_SCALE if lPos[0] != 0: self.lPictureFrame['text_scale'] = 0.0325 self.lPictureFrame['text'] = captions[0] self.lPictureFrame['image_color'] = Vec4(*self.colors[frameBgColor]) if len(captions) > 1: self.rPictureFrame.show() self.rPictureFrame['text'] = captions[1] self.rPictureFrame['text_scale'] = 0.0325 self.rPictureFrame['image_color'] = Vec4( *self.colors[frameBgColor]) else: self.rPictureFrame.hide() self._deleteGeoms() self.lQuestIcon['geom'] = lIconGeom self.lQuestIcon['geom_pos'] = (0, 10, 0) if lIconGeom: self.lQuestIcon['geom_scale'] = lIconGeomScale if self.laffMeter != None: self.laffMeter.reparentTo(self.lQuestIcon) self.rQuestIcon['geom'] = rIconGeom self.rQuestIcon['geom_pos'] = (0, 10, 0) if rIconGeom: self.rQuestIcon['geom_scale'] = rIconGeomScale if auxText: self.auxText.show() self.auxText['text'] = auxText self.auxText.setPos(auxTextPos) else: self.auxText.hide() self.bind(DGG.WITHIN, self.mouseEnterPoster) self.bind(DGG.WITHOUT, self.mouseExitPoster) numQuestItems = quest.getNumQuestItems() if fComplete or numQuestItems <= 1: self.questProgress.hide() if not quest.getType() == Quests.TrackChoiceQuest: infoZ = -0.075 else: self.questProgress.show() self.questProgress['value'] = toonProgress & pow(2, 16) - 1 self.questProgress['range'] = numQuestItems self.questProgress['text'] = quest.getProgressString( base.localAvatar, questDesc) self.questInfo['text'] = infoText self.questInfo.setZ(infoZ) self.fitLabel(self.questInfo) return
def update(self, questDesc): questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc quest = Quests.getQuest(questId) if quest == None: self.notify.warning("Tried to display poster for unknown quest %s" % questId) return if rewardId == Quests.NA: finalReward = Quests.getFinalRewardId(questId, fAll=1) transformedReward = Quests.transformReward(finalReward, base.localAvatar) reward = Quests.getReward(transformedReward) else: reward = Quests.getReward(rewardId) if reward and questId not in Quests.NoRewardTierZeroQuests: rewardString = reward.getPosterString() else: rewardString = "" self.rewardText["text"] = rewardString self.fitLabel(self.rewardText) if Quests.isQuestJustForFun(questId, rewardId): self.funQuest.show() else: self.funQuest.hide() if self._deleteCallback: self.showDeleteButton(questDesc) else: self.hideDeleteButton() fComplete = quest.getCompletionStatus(base.localAvatar, questDesc) == Quests.COMPLETE if toNpcId == Quests.ToonHQ: toNpcName = TTLocalizer.QuestPosterHQOfficer toNpcBuildingName = TTLocalizer.QuestPosterHQBuildingName toNpcStreetName = TTLocalizer.QuestPosterHQStreetName toNpcLocationName = TTLocalizer.QuestPosterHQLocationName elif toNpcId == Quests.ToonTailor: toNpcName = TTLocalizer.QuestPosterTailor toNpcBuildingName = TTLocalizer.QuestPosterTailorBuildingName toNpcStreetName = TTLocalizer.QuestPosterTailorStreetName toNpcLocationName = TTLocalizer.QuestPosterTailorLocationName else: toNpcName = NPCToons.getNPCName(toNpcId) toNpcZone = NPCToons.getNPCZone(toNpcId) toNpcHoodId = ZoneUtil.getCanonicalHoodId(toNpcZone) toNpcLocationName = base.cr.hoodMgr.getFullnameFromId(toNpcHoodId) toNpcBuildingName = NPCToons.getBuildingTitle(toNpcZone) toNpcBranchId = ZoneUtil.getBranchZone(toNpcZone) toNpcStreetName = ZoneUtil.getStreetName(toNpcBranchId) lPos = Vec3(0, 0, 0.13) lIconGeom = None lIconGeomScale = 1 rIconGeom = None rIconGeomScale = 1 infoText = "" infoZ = TTLocalizer.QPinfoZ auxText = None auxTextPos = Vec3(0, 0, 0.12) headlineString = quest.getHeadlineString() objectiveStrings = quest.getObjectiveStrings() captions = map(string.capwords, quest.getObjectiveStrings()) imageColor = Vec4(*self.colors["white"]) if quest.getType() == Quests.DeliverGagQuest or quest.getType() == Quests.DeliverItemQuest: frameBgColor = "red" if quest.getType() == Quests.DeliverGagQuest: invModel = loader.loadModel("phase_3.5/models/gui/inventory_icons") track, item = quest.getGagType() lIconGeom = invModel.find("**/" + AvPropsNew[track][item]) invModel.removeNode() else: bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = bookModel.find("**/package") lIconGeomScale = 0.12 bookModel.removeNode() if not fComplete: captions.append(toNpcName) auxText = TTLocalizer.QuestPosterAuxTo auxTextPos.setZ(0.12) lPos.setX(-0.18) infoText = TTLocalizer.QuestPageDestination % (toNpcBuildingName, toNpcStreetName, toNpcLocationName) rIconGeom = self.createNpcToonHead(toNpcId) rIconGeomScale = IMAGE_SCALE_SMALL elif quest.getType() == Quests.RecoverItemQuest: frameBgColor = "green" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = bookModel.find("**/package") lIconGeomScale = 0.12 bookModel.removeNode() if not fComplete: rIconGeomScale = IMAGE_SCALE_SMALL holder = quest.getHolder() holderType = quest.getHolderType() if holder == Quests.Any: cogIcons = loader.loadModel("phase_3/models/gui/cog_icons") rIconGeom = cogIcons.find("**/cog") cogIcons.removeNode() lPos.setX(-0.18) auxText = TTLocalizer.QuestPosterAuxFrom elif holder == Quests.AnyFish: headlineString = TTLocalizer.QuestPosterFishing auxText = TTLocalizer.QuestPosterAuxFor auxTextPos.setX(-0.18) captions = captions[:1] else: if holderType == "track": cogIcons = loader.loadModel("phase_3/models/gui/cog_icons") if holder == "c": icon = cogIcons.find("**/CorpIcon") elif holder == "s": icon = cogIcons.find("**/SalesIcon") elif holder == "l": icon = cogIcons.find("**/LegalIcon") elif holder == "m": icon = cogIcons.find("**/MoneyIcon") rIconGeom = icon.copyTo(hidden) rIconGeom.setColor(Suit.Suit.medallionColors[holder]) rIconGeomScale = 0.12 cogIcons.removeNode() elif holderType == "level": cogIcons = loader.loadModel("phase_3/models/gui/cog_icons") rIconGeom = cogIcons.find("**/cog") rIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() else: rIconGeom = self.createSuitHead(holder) lPos.setX(-0.18) auxText = TTLocalizer.QuestPosterAuxFrom infoText = string.capwords(quest.getLocationName()) if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.VisitQuest: frameBgColor = "brown" captions[0] = "%s" % toNpcName lIconGeom = self.createNpcToonHead(toNpcId) lIconGeomScale = IMAGE_SCALE_SMALL if not fComplete: infoText = TTLocalizer.QuestPageDestination % (toNpcBuildingName, toNpcStreetName, toNpcLocationName) elif quest.getType() == Quests.TrackChoiceQuest: frameBgColor = "green" invModel = loader.loadModel("phase_3.5/models/gui/inventory_icons") track1, track2 = quest.getChoices() lIconGeom = invModel.find("**/" + AvPropsNew[track1][1]) if not fComplete: auxText = TTLocalizer.QuestPosterAuxOr lPos.setX(-0.18) rIconGeom = invModel.find("**/" + AvPropsNew[track2][1]) infoText = TTLocalizer.QuestPageNameAndDestination % ( toNpcName, toNpcBuildingName, toNpcStreetName, toNpcLocationName, ) infoZ = -0.02 invModel.removeNode() elif quest.getType() == Quests.BuildingQuest: frameBgColor = "blue" track = quest.getBuildingTrack() numFloors = quest.getNumFloors() if track == "c": lIconGeom = loader.loadModel("phase_4/models/modules/suit_landmark_corp") elif track == "l": lIconGeom = loader.loadModel("phase_4/models/modules/suit_landmark_legal") elif track == "m": lIconGeom = loader.loadModel("phase_4/models/modules/suit_landmark_money") elif track == "s": lIconGeom = loader.loadModel("phase_4/models/modules/suit_landmark_sales") else: bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = bookModel.find("**/COG_building") bookModel.removeNode() if lIconGeom and track != Quests.Any: self.loadElevator(lIconGeom, numFloors) lIconGeom.setH(180) self.fitGeometry(lIconGeom, fFlip=0) lIconGeomScale = IMAGE_SCALE_SMALL else: lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.BuildingNewbieQuest: frameBgColor = "blue" track = quest.getBuildingTrack() numFloors = quest.getNumFloors() if track == "c": rIconGeom = loader.loadModel("phase_4/models/modules/suit_landmark_corp") elif track == "l": rIconGeom = loader.loadModel("phase_4/models/modules/suit_landmark_legal") elif track == "m": rIconGeom = loader.loadModel("phase_4/models/modules/suit_landmark_money") elif track == "s": rIconGeom = loader.loadModel("phase_4/models/modules/suit_landmark_sales") else: bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") rIconGeom = bookModel.find("**/COG_building") bookModel.removeNode() if rIconGeom and track != Quests.Any: self.loadElevator(rIconGeom, numFloors) rIconGeom.setH(180) self.fitGeometry(rIconGeom, fFlip=0) rIconGeomScale = IMAGE_SCALE_SMALL else: rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append(map(string.capwords, quest.getObjectiveStrings())) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.FactoryQuest: frameBgColor = "blue" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = bookModel.find("**/factoryIcon2") bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.FactoryNewbieQuest: frameBgColor = "blue" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") rIconGeom = bookModel.find("**/factoryIcon2") bookModel.removeNode() rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append(map(string.capwords, quest.getObjectiveStrings())) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.MintQuest: frameBgColor = "blue" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = bookModel.find("**/CashBotMint") bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.MintNewbieQuest: frameBgColor = "blue" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") rIconGeom = bookModel.find("**/CashBotMint") bookModel.removeNode() rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append(map(string.capwords, quest.getObjectiveStrings())) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.CogPartQuest: frameBgColor = "green" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = bookModel.find("**/CogArmIcon2") bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.CogPartNewbieQuest: frameBgColor = "green" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") rIconGeom = bookModel.find("**/CogArmIcon2") bookModel.removeNode() rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append(map(string.capwords, quest.getObjectiveStrings())) auxText = TTLocalizer.QuestsCogPartQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.ForemanQuest or quest.getType() == Quests.SupervisorQuest: frameBgColor = "blue" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = bookModel.find("**/skelecog5") bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.ForemanNewbieQuest or quest.getType() == Quests.SupervisorNewbieQuest: frameBgColor = "blue" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") rIconGeom = bookModel.find("**/skelecog5") bookModel.removeNode() rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append(map(string.capwords, quest.getObjectiveStrings())) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.VPQuest: frameBgColor = "blue" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = bookModel.find("**/BossHead3Icon") bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.VPNewbieQuest: frameBgColor = "blue" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") rIconGeom = bookModel.find("**/BossHead3Icon") bookModel.removeNode() rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append(map(string.capwords, quest.getObjectiveStrings())) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.CFOQuest: frameBgColor = "blue" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = bookModel.find("**/CashBotBossHeadIcon") bookModel.removeNode() lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.CFONewbieQuest: frameBgColor = "blue" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") rIconGeom = bookModel.find("**/CashBotBossHeadIcon") bookModel.removeNode() rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append(map(string.capwords, quest.getObjectiveStrings())) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.RescueQuest: frameBgColor = "blue" lIconGeom = self.createNpcToonHead(2001) lIconGeomScale = 0.13 if not fComplete: infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.RescueNewbieQuest: frameBgColor = "blue" rIconGeom = self.createNpcToonHead(2001) rIconGeomScale = 0.13 if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append(map(string.capwords, quest.getObjectiveStrings())) auxText = TTLocalizer.QuestsRescueQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None infoText = quest.getLocationName() if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.FriendQuest: frameBgColor = "brown" gui = loader.loadModel("phase_3.5/models/gui/friendslist_gui") lIconGeom = gui.find("**/FriendsBox_Closed") lIconGeomScale = 0.45 gui.removeNode() infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.FriendNewbieQuest: frameBgColor = "brown" gui = loader.loadModel("phase_3.5/models/gui/friendslist_gui") lIconGeom = gui.find("**/FriendsBox_Closed") lIconGeomScale = 0.45 gui.removeNode() infoText = TTLocalizer.QuestPosterAnywhere elif quest.getType() == Quests.TrolleyQuest: frameBgColor = "lightBlue" gui = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = gui.find("**/trolley") lIconGeomScale = 0.13 gui.removeNode() infoText = TTLocalizer.QuestPosterPlayground elif quest.getType() == Quests.MailboxQuest: frameBgColor = "lightBlue" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = bookModel.find("**/package") lIconGeomScale = 0.12 bookModel.removeNode() infoText = TTLocalizer.QuestPosterAtHome elif quest.getType() == Quests.PhoneQuest: frameBgColor = "lightBlue" bookModel = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = bookModel.find("**/clarabelleCow") lIconGeomScale = 0.12 bookModel.removeNode() infoText = TTLocalizer.QuestPosterOnPhone elif quest.getType() == Quests.MinigameNewbieQuest: frameBgColor = "lightBlue" gui = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") rIconGeom = gui.find("**/trolley") rIconGeomScale = 0.13 gui.removeNode() infoText = TTLocalizer.QuestPosterPlayground if not fComplete: captions = [TTLocalizer.QuestsMinigameNewbieQuestCaption % quest.getNewbieLevel()] captions.append(map(string.capwords, quest.getObjectiveStrings())) auxText = TTLocalizer.QuestsMinigameNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 else: frameBgColor = "blue" if quest.getType() == Quests.CogTrackQuest: dept = quest.getCogTrack() cogIcons = loader.loadModel("phase_3/models/gui/cog_icons") lIconGeomScale = 0.13 if dept == "c": icon = cogIcons.find("**/CorpIcon") elif dept == "s": icon = cogIcons.find("**/SalesIcon") elif dept == "l": icon = cogIcons.find("**/LegalIcon") elif dept == "m": icon = cogIcons.find("**/MoneyIcon") lIconGeom = icon.copyTo(hidden) lIconGeom.setColor(Suit.Suit.medallionColors[dept]) cogIcons.removeNode() elif quest.getType() == Quests.CogQuest: if quest.getCogType() != Quests.Any: lIconGeom = self.createSuitHead(quest.getCogType()) lIconGeomScale = IMAGE_SCALE_SMALL else: cogIcons = loader.loadModel("phase_3/models/gui/cog_icons") lIconGeom = cogIcons.find("**/cog") lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() elif quest.getType() == Quests.CogLevelQuest: cogIcons = loader.loadModel("phase_3/models/gui/cog_icons") lIconGeom = cogIcons.find("**/cog") lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() elif quest.getType() == Quests.CogNewbieQuest: if quest.getCogType() != Quests.Any: rIconGeom = self.createSuitHead(quest.getCogType()) rIconGeomScale = IMAGE_SCALE_SMALL else: cogIcons = loader.loadModel("phase_3/models/gui/cog_icons") rIconGeom = cogIcons.find("**/cog") rIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append(map(string.capwords, quest.getObjectiveStrings())) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.SkelecogTrackQuest: dept = quest.getCogTrack() cogIcons = loader.loadModel("phase_3/models/gui/cog_icons") lIconGeomScale = 0.13 if dept == "c": icon = cogIcons.find("**/CorpIcon") elif dept == "s": icon = cogIcons.find("**/SalesIcon") elif dept == "l": icon = cogIcons.find("**/LegalIcon") elif dept == "m": icon = cogIcons.find("**/MoneyIcon") lIconGeom = icon.copyTo(hidden) lIconGeom.setColor(Suit.Suit.medallionColors[dept]) cogIcons.removeNode() elif quest.getType() == Quests.SkelecogQuest: cogIcons = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = cogIcons.find("**/skelecog5") lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() elif quest.getType() == Quests.SkelecogLevelQuest: cogIcons = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = cogIcons.find("**/skelecog5") lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() elif quest.getType() == Quests.SkelecogNewbieQuest: cogIcons = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") rIconGeom = cogIcons.find("**/skelecog5") rIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() if not fComplete: headlineString = TTLocalizer.QuestsNewbieQuestHeadline captions = [quest.getCaption()] captions.append(map(string.capwords, quest.getObjectiveStrings())) auxText = TTLocalizer.QuestsCogNewbieQuestAux lPos.setX(-0.18) self.laffMeter = self.createLaffMeter(quest.getNewbieLevel()) self.laffMeter.setScale(0.04) lIconGeom = None else: lIconGeom = rIconGeom rIconGeom = None lIconGeomScale = rIconGeomScale rIconGeomScale = 1 elif quest.getType() == Quests.SkeleReviveQuest: cogIcons = loader.loadModel("phase_3.5/models/gui/stickerbook_gui") lIconGeom = cogIcons.find("**/skelecog5") lIconGeomScale = IMAGE_SCALE_SMALL cogIcons.removeNode() if not fComplete: infoText = string.capwords(quest.getLocationName()) if infoText == "": infoText = TTLocalizer.QuestPosterAnywhere if fComplete: textColor = (0, 0.3, 0, 1) imageColor = Vec4(*self.colors["lightGreen"]) lPos.setX(-0.18) rIconGeom = self.createNpcToonHead(toNpcId) rIconGeomScale = IMAGE_SCALE_SMALL captions = captions[:1] captions.append(toNpcName) auxText = TTLocalizer.QuestPosterAuxReturnTo headlineString = TTLocalizer.QuestPosterComplete infoText = TTLocalizer.QuestPageDestination % (toNpcBuildingName, toNpcStreetName, toNpcLocationName) if self.laffMeter != None: self.laffMeter.reparentTo(hidden) self.laffMeter.destroy() self.laffMeter = None else: textColor = self.normalTextColor self.show() self["image_color"] = imageColor self.headline["text_fg"] = textColor self.headline["text"] = headlineString self.lPictureFrame.show() self.lPictureFrame.setPos(lPos) self.lPictureFrame["text_scale"] = TEXT_SCALE if lPos[0] != 0: self.lPictureFrame["text_scale"] = 0.0325 self.lPictureFrame["text"] = captions[0] self.lPictureFrame["image_color"] = Vec4(*self.colors[frameBgColor]) if len(captions) > 1: self.rPictureFrame.show() self.rPictureFrame["text"] = captions[1] self.rPictureFrame["text_scale"] = 0.0325 self.rPictureFrame["image_color"] = Vec4(*self.colors[frameBgColor]) else: self.rPictureFrame.hide() self._deleteGeoms() self.lQuestIcon["geom"] = lIconGeom self.lQuestIcon["geom_pos"] = (0, 10, 0) if lIconGeom: self.lQuestIcon["geom_scale"] = lIconGeomScale if self.laffMeter != None: self.laffMeter.reparentTo(self.lQuestIcon) self.rQuestIcon["geom"] = rIconGeom self.rQuestIcon["geom_pos"] = (0, 10, 0) if rIconGeom: self.rQuestIcon["geom_scale"] = rIconGeomScale if auxText: self.auxText.show() self.auxText["text"] = auxText self.auxText.setPos(auxTextPos) else: self.auxText.hide() self.bind(DGG.WITHIN, self.mouseEnterPoster) self.bind(DGG.WITHOUT, self.mouseExitPoster) numQuestItems = quest.getNumQuestItems() if fComplete or numQuestItems <= 1: self.questProgress.hide() if not quest.getType() == Quests.TrackChoiceQuest: infoZ = -0.075 else: self.questProgress.show() self.questProgress["value"] = toonProgress & pow(2, 16) - 1 self.questProgress["range"] = numQuestItems self.questProgress["text"] = quest.getProgressString(base.localAvatar, questDesc) self.questInfo["text"] = infoText self.questInfo.setZ(infoZ) self.fitLabel(self.questInfo) return