def cogSummonsDone(self, returnCode, suitIndex, buildingId): self.cancel['state'] = DGG.NORMAL if self.summonsType == 'single': if returnCode == 'success': self.statusLabel['text'] = TTL.SummonDlgSingleSuccess elif returnCode == 'badlocation': self.statusLabel['text'] = TTL.SummonDlgSingleBadLoc elif returnCode == 'fail': self.statusLabel['text'] = TTL.SummonDlgInvasionFail elif self.summonsType == 'building': if returnCode == 'success': building = base.cr.doId2do.get(buildingId) dnaStore = base.cr.playGame.dnaStore buildingTitle = dnaStore.getTitleFromBlockNumber(building.block) buildingInteriorZone = building.zoneId + 500 + building.block npcName = TTLocalizer.SummonDlgShopkeeper npcId = NPCToons.zone2NpcDict.get(buildingInteriorZone) if npcId: npcName = NPCToons.getNPCName(npcId[0]) if buildingTitle: self.statusLabel['text'] = TTL.SummonDlgBldgSuccess % (npcName, buildingTitle) else: self.statusLabel['text'] = TTL.SummonDlgBldgSuccess2 elif returnCode == 'badlocation': self.statusLabel['text'] = TTL.SummonDlgBldgBadLoc elif returnCode == 'fail': self.statusLabel['text'] = TTL.SummonDlgInvasionFail elif self.summonsType == 'invasion': if returnCode == 'success': self.statusLabel['text'] = TTL.SummonDlgInvasionSuccess elif returnCode == 'busy': self.statusLabel['text'] = TTL.SummonDlgInvasionBusy % self.suitFullName elif returnCode == 'fail': self.statusLabel['text'] = TTL.SummonDlgInvasionFail
def cogSummonsDone(self, returnCode, suitIndex, buildingId): self.cancel["state"] = DGG.NORMAL if self.summonsType == "single": if returnCode == "success": self.statusLabel["text"] = TTL.SummonDlgSingleSuccess elif returnCode == "badlocation": self.statusLabel["text"] = TTL.SummonDlgSingleBadLoc elif returnCode == "fail": self.statusLabel["text"] = TTL.SummonDlgInvasionFail elif self.summonsType == "building": if returnCode == "success": building = base.cr.doId2do.get(buildingId) buildingTitle = base.cr.playGame.dnaData.getBlock(building.block).title buildingInteriorZone = building.zoneId + 500 + building.block npcName = TTLocalizer.SummonDlgShopkeeper npcId = NPCToons.zone2NpcDict.get(buildingInteriorZone) if npcId: npcName = NPCToons.getNPCName(npcId[0]) if buildingTitle: self.statusLabel["text"] = TTL.SummonDlgBldgSuccess % (npcName, buildingTitle) else: self.statusLabel["text"] = TTL.SummonDlgBldgSuccess2 elif returnCode == "badlocation": self.statusLabel["text"] = TTL.SummonDlgBldgBadLoc elif returnCode == "fail": self.statusLabel["text"] = TTL.SummonDlgInvasionFail elif self.summonsType == "invasion": if returnCode == "success": self.statusLabel["text"] = TTL.SummonDlgInvasionSuccess elif returnCode == "busy": self.statusLabel["text"] = TTL.SummonDlgInvasionBusy % self.suitFullName elif returnCode == "fail": self.statusLabel["text"] = TTL.SummonDlgInvasionFail
def cogSummonsDone(self, returnCode, suitIndex, buildingId): self.cancel['state'] = DGG.NORMAL if self.summonsType == 'building' or self.summonsType == 'cogdo': if returnCode == 'success': building = base.cr.doId2do.get(buildingId) dnaStore = base.cr.playGame.dnaStore buildingTitle = dnaStore.getTitleFromBlockNumber( building.block) buildingInteriorZone = building.zoneId + 500 + building.block npcName = TTLocalizer.SummonDlgShopkeeper npcId = NPCToons.zone2NpcDict.get(buildingInteriorZone) if npcId: npcName = NPCToons.getNPCName(npcId[0]) if buildingTitle: self.statusLabel[ 'text'] = TTLocalizer.SummonDlgBldgSuccess % ( npcName, buildingTitle) else: self.statusLabel[ 'text'] = TTLocalizer.SummonDlgBldgSuccess2 elif returnCode == 'badlocation': self.statusLabel['text'] = TTLocalizer.SummonDlgBldgBadLoc elif returnCode == 'fail': self.statusLabel['text'] = TTLocalizer.SummonDlgInvasionFail elif returnCode == 'disabled': self.statusLabel['text'] = TTLocalizer.SummonDlgBldgNoCogdos elif self.summonsType.endswith('invasion'): if returnCode == 'success': self.statusLabel['text'] = TTLocalizer.SummonDlgInvasionSuccess elif returnCode == 'busy': self.statusLabel[ 'text'] = TTLocalizer.SummonDlgInvasionBusy % self.suitFullName elif returnCode == 'fail': self.statusLabel['text'] = TTLocalizer.SummonDlgInvasionFail
def setVictors(self, victorIds): DistributedFactoryAI.setVictors(self, victorIds) activeVictors = [self.air.doId2do.get(victorId) for victorId in victorIds if self.air.doId2do.get(victorId) is not None] npcId = random.choice(self.POSSIBLE_SOS) npcName = NPCToons.getNPCName(npcId) for victor in activeVictors: victor.attemptAddNPCFriend(npcId) victor.d_setSystemMessage(0, 'You got a %s SOS card.' % npcName)
def setVictors(self, victorIds): DistributedFactoryAI.DistributedFactoryAI.setVictors(self, victorIds) activeVictors = [] for victorId in victorIds: toon = self.air.doId2do.get(victorId) if toon is not None: activeVictors.append(toon) npcId = random.choice(NPCToons.npcFriendsMinMaxStars(3, 3)) for toon in activeVictors: toon.attemptAddNPCFriend(npcId) toon.d_setSystemMessage(0, 'You got a %s SOS card.' % (NPCToons.getNPCName(npcId)))
def decodeTTSCToontaskMsg(taskId, toNpcId, toonProgress, msgIndex): q = Quests.getQuest(taskId) if q is None: return name = NPCToons.getNPCName(toNpcId) if name is None: return msgs = q.getSCStrings(toNpcId, toonProgress) if type(msgs) != type([]): msgs = [msgs] if msgIndex >= len(msgs): return return msgs[msgIndex]
def setVictors(self, victorIds): DistributedFactoryAI.setVictors(self, victorIds) activeVictors = [self.air.doId2do.get(victorId) for victorId in victorIds if self.air.doId2do.get(victorId) is not None] npcId = random.choice(self.POSSIBLE_SOS) npcName = NPCToons.getNPCName(npcId) for victor in activeVictors: victor.attemptAddNPCFriend(npcId) victor.attemptAddNPCFriend(npcId) victor.attemptAddNPCFriend(npcId) victor.d_setSystemMessage(0, 'You got 3 %s SOS Cards!' % npcName)
def cogSummonsDone(self, returnCode, suitIndex, buildingId): self.cancel['state'] = DGG.NORMAL if self.summonsType == 'single': if returnCode == 'success': self.statusLabel['text'] = TTL.SummonDlgSingleSuccess elif returnCode == 'badlocation': self.statusLabel['text'] = TTL.SummonDlgSingleBadLoc elif returnCode == 'fail': self.statusLabel['text'] = TTL.SummonDlgInvasionFail elif self.summonsType == 'building': if returnCode == 'success': building = base.cr.doId2do.get(buildingId) buildingTitle = base.cr.playGame.dnaData.getBlock( building.block).title buildingInteriorZone = building.zoneId + 500 + building.block npcName = TTLocalizer.SummonDlgShopkeeper npcId = NPCToons.zone2NpcDict.get(buildingInteriorZone) if npcId: npcName = NPCToons.getNPCName(npcId[0]) if buildingTitle: self.statusLabel['text'] = TTL.SummonDlgBldgSuccess % ( npcName, buildingTitle) else: self.statusLabel['text'] = TTL.SummonDlgBldgSuccess2 elif returnCode == 'badlocation': self.statusLabel['text'] = TTL.SummonDlgBldgBadLoc elif returnCode == 'fail': self.statusLabel['text'] = TTL.SummonDlgInvasionFail elif self.summonsType == 'invasion': if returnCode == 'success': self.statusLabel['text'] = TTL.SummonDlgInvasionSuccess elif returnCode == 'busy': self.statusLabel[ 'text'] = TTL.SummonDlgInvasionBusy % self.suitFullName elif returnCode == 'fail': self.statusLabel['text'] = TTL.SummonDlgInvasionFail
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 setSOSNpcId(self, npcId): self.SOSToonName = NPCToons.getNPCName(npcId)
def setValues(self, index, track, level = None, numTargets = None, targetIndex = None, localNum = None): self.notify.debug('Toon Panel setValues: index=%s track=%s level=%s numTargets=%s targetIndex=%s localNum=%s' % (index, track, level, numTargets, targetIndex, localNum)) self.undecidedText.hide() self.sosText.hide() self.fireText.hide() self.gagNode.hide() self.whichText.hide() self.passNode.hide() self.cleanupSosHead() self.hoverButton.unbind(DGG.ENTER) if self.hasGag: self.gag.removeNode() self.hasGag = 0 if track == BattleBase.NO_ATTACK or track == BattleBase.UN_ATTACK: self.undecidedText.show() elif track == BattleBase.PASS_ATTACK: self.passNode.show() elif track == BattleBase.FIRE: self.fireText.show() self.whichText.show() self.whichText['text'] = self.determineWhichText(numTargets, targetIndex, localNum, index) elif track == BattleBase.NPCSOS: self.sosHead = createNPCToonHead(targetIndex) self.sosHead.reparentTo(self) self.sosHead.setPos(0.1, 0, 0.045) self.sosHead.setScale(0.24) track, level, hp, rarity = NPCToons.getNPCTrackLevelHpRarity(targetIndex) sosType = self.sosTracks[track] if track == NPC_RESTOCK_GAGS: if level == -1: sosType += ' All' else: sosType += ' ' + self.sosTracks[level] if hp: hpString = TTLocalizer.BattleSOSPopupHP % (TTLocalizer.BattleSOSPopupHeal if track == HEAL_TRACK else TTLocalizer.BattleSOSPopupHarm, hp) sosType = TextEncoder.upper(sosType) count = max(0, self.avatar.getNPCFriendCount(targetIndex) - 1) info = TTLocalizer.BattleSOSPopup % (sosType, NPCToons.getNPCName(targetIndex), hpString if hp else '', rarity, count) self.hoverButton.bind(DGG.ENTER, self.battle.showRolloverFrame, extraArgs=[self, TTLocalizer.BattleHoverSos, info]) elif track == BattleBase.SOS or track == BattleBase.PETSOS: self.sosText.show() elif track >= MIN_TRACK_INDEX and track <= MAX_TRACK_INDEX: self.undecidedText.hide() self.passNode.hide() self.gagNode.show() invButton = base.localAvatar.inventory.buttonLookup(track, level) self.gag = invButton.instanceUnderNode(self.gagNode, 'gag') self.gag.setScale(0.8) self.gag.setPos(0, 0, 0.02) self.hasGag = 1 if self.avatar: curExp, nextExp = self.avatar.inventory.getCurAndNextExpValues(track) organic = self.avatar.checkGagBonus(track, level) damage = int(getAvPropDamage(track, level, curExp, organic)) numItems = max(0, self.avatar.inventory.numItem(track, level) - 1) info = TTLocalizer.BattleGagPopup % (self.avatar.inventory.getToonupDmgStr(track, 0), damage, numItems) self.hoverButton.bind(DGG.ENTER, self.battle.showRolloverFrame, extraArgs=[self, TTLocalizer.BattleHoverGag, info]) if self.avatar.checkGagBonus(track, level): self.gag.setColor((1, 0, 0, 1) if track == 1 and level == 5 else (0, 1, 0, 1)) if numTargets is not None and targetIndex is not None and localNum is not None: self.whichText.show() self.whichText['text'] = self.determineWhichText(numTargets, targetIndex, localNum, index) else: self.notify.error('Bad track value: %s' % track)
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
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 setValues(self, index, track, level=None, numTargets=None, targetIndex=None, localNum=None): self.notify.debug( 'Toon Panel setValues: index=%s track=%s level=%s numTargets=%s targetIndex=%s localNum=%s' % (index, track, level, numTargets, targetIndex, localNum)) self.undecidedText.hide() self.sosText.hide() self.fireText.hide() self.gagNode.hide() self.whichText.hide() self.passNode.hide() self.cleanupSosHead() self.hoverButton.unbind(DGG.ENTER) if self.hasGag: self.gag.removeNode() self.hasGag = 0 if track == BattleBase.NO_ATTACK or track == BattleBase.UN_ATTACK: self.undecidedText.show() elif track == BattleBase.PASS_ATTACK: self.passNode.show() elif track == BattleBase.FIRE: self.fireText.show() self.whichText.show() self.whichText['text'] = self.determineWhichText( numTargets, targetIndex, localNum, index) elif track == BattleBase.NPCSOS: self.sosHead = createNPCToonHead(targetIndex) self.sosHead.reparentTo(self) self.sosHead.setPos(0.1, 0, 0.045) self.sosHead.setScale(0.24) track, level, hp, rarity = NPCToons.getNPCTrackLevelHpRarity( targetIndex) sosType = self.sosTracks[track] if track == NPC_RESTOCK_GAGS: if level == -1: sosType += ' All' else: sosType += ' ' + self.sosTracks[level] if hp: hpString = TTLocalizer.BattleSOSPopupHP % ( TTLocalizer.BattleSOSPopupHeal if track == HEAL_TRACK else TTLocalizer.BattleSOSPopupHarm, hp) sosType = TextEncoder.upper(sosType) count = max(0, self.avatar.getNPCFriendCount(targetIndex) - 1) info = TTLocalizer.BattleSOSPopup % ( sosType, NPCToons.getNPCName(targetIndex), hpString if hp else '', rarity, count) self.hoverButton.bind( DGG.ENTER, self.battle.showRolloverFrame, extraArgs=[self, TTLocalizer.BattleHoverSos, info]) elif track == BattleBase.SOS or track == BattleBase.PETSOS: self.sosText.show() elif track >= MIN_TRACK_INDEX and track <= MAX_TRACK_INDEX: self.undecidedText.hide() self.passNode.hide() self.gagNode.show() invButton = base.localAvatar.inventory.buttonLookup(track, level) self.gag = invButton.instanceUnderNode(self.gagNode, 'gag') self.gag.setScale(0.8) self.gag.setPos(0, 0, 0.02) self.hasGag = 1 if self.avatar: curExp, nextExp = self.avatar.inventory.getCurAndNextExpValues( track) organic = self.avatar.checkGagBonus(track, level) damage = int(getAvPropDamage(track, level, curExp, organic)) numItems = max(0, self.avatar.inventory.numItem(track, level) - 1) info = TTLocalizer.BattleGagPopup % ( self.avatar.inventory.getToonupDmgStr(track, 0), damage, numItems) self.hoverButton.bind( DGG.ENTER, self.battle.showRolloverFrame, extraArgs=[self, TTLocalizer.BattleHoverGag, info]) if self.avatar.checkGagBonus(track, level): self.gag.setColor(( 1, 0, 0, 1) if track == 1 and level == 5 else (0, 1, 0, 1)) if numTargets is not None and targetIndex is not None and localNum is not None: self.whichText.show() self.whichText['text'] = self.determineWhichText( numTargets, targetIndex, localNum, index) else: self.notify.error('Bad track value: %s' % track)