Example #1
0
    def update(self, NPCID, count=0, fCallable=0):
        oldNPCID = self['NPCID']
        self['NPCID'] = NPCID
        if NPCID != oldNPCID:
            if self.NPCHead:
                self.NPCHead.detachNode()
                self.NPCHead.delete()
            if NPCID is None:
                self.showBack()
                return
            self.front.show()
            self.back.hide()
            self.NPCName['text'] = TTLocalizer.NPCToonNames[NPCID]
            self.NPCHead = self.createNPCToonHead(NPCID,
                                                  dimension=self.NPCHeadDim)
            self.NPCHead.reparentTo(self.front)
            self.NPCHead.setZ(self.NPCHeadPosZ)
            track, level, hp, rarity = NPCToons.getNPCTrackLevelHpRarity(NPCID)
            sosText = self.sosTracks[track]
            if track == ToontownBattleGlobals.NPC_RESTOCK_GAGS:
                if level == -1:
                    sosText += ' All'
                else:
                    sosText += ' ' + self.sosTracks[level]

            # hide secret cards
            if NPCToons.isSecret(NPCID):
                sosText = '???'

            sosText = TextEncoder.upper(sosText)
            self.sosTypeInfo['text'] = sosText
            for i in range(self.maxRarity):
                if i < rarity:
                    self.rarityStars[i].show()
                else:
                    self.rarityStars[i].hide()

        if fCallable:
            self.sosCallButton.show()
            self.sosCountInfo.setPos(-0.4, 0, self.sosCountInfoPosZ)
            self.sosCountInfo['text_scale'] = self.sosCountInfoScale
            self.sosCountInfo['text_align'] = TextNode.ALeft
        else:
            self.sosCallButton.hide()
            self.sosCountInfo.setPos(0, 0, self.sosCountInfo2PosZ)
            self.sosCountInfo['text_scale'] = self.sosCountInfo2Scale
            self.sosCountInfo['text_align'] = TextNode.ACenter
        if count > 0:
            countText = TTLocalizer.NPCFriendPanelRemaining % count
            self.sosCallButton['state'] = DGG.NORMAL
        else:
            countText = 'Unavailable'
            self.sosCallButton['state'] = DGG.DISABLED
        self.sosCountInfo['text'] = countText
        return
    def update(self, NPCID, count = 0, fCallable = 0):
        oldNPCID = self['NPCID']
        self['NPCID'] = NPCID
        if NPCID != oldNPCID:
            if self.NPCHead:
                self.NPCHead.detachNode()
                self.NPCHead.delete()
            if NPCID is None:
                self.showBack()
                return
            self.front.show()
            self.back.hide()
            self.NPCName['text'] = TTLocalizer.NPCToonNames[NPCID]
            self.NPCHead = self.createNPCToonHead(NPCID, dimension=self.NPCHeadDim)
            self.NPCHead.reparentTo(self.front)
            self.NPCHead.setZ(self.NPCHeadPosZ)
            track, level, hp, rarity = NPCToons.getNPCTrackLevelHpRarity(NPCID)
            sosText = self.sosTracks[track]
            if track == ToontownBattleGlobals.NPC_RESTOCK_GAGS:
                if level == -1:
                    sosText += ' All'
                else:
                    sosText += ' ' + self.sosTracks[level]
                    
            # hide secret cards
            if NPCToons.isSecret(NPCID):
                sosText = '???'
                    
            sosText = TextEncoder.upper(sosText)
            self.sosTypeInfo['text'] = sosText
            for i in range(self.maxRarity):
                if i < rarity:
                    self.rarityStars[i].show()
                else:
                    self.rarityStars[i].hide()

        if fCallable:
            self.sosCallButton.show()
            self.sosCountInfo.setPos(-0.4, 0, self.sosCountInfoPosZ)
            self.sosCountInfo['text_scale'] = self.sosCountInfoScale
            self.sosCountInfo['text_align'] = TextNode.ALeft
        else:
            self.sosCallButton.hide()
            self.sosCountInfo.setPos(0, 0, self.sosCountInfo2PosZ)
            self.sosCountInfo['text_scale'] = self.sosCountInfo2Scale
            self.sosCountInfo['text_align'] = TextNode.ACenter
        if count > 0:
            countText = TTLocalizer.NPCFriendPanelRemaining % count
            self.sosCallButton['state'] = DGG.NORMAL
        else:
            countText = 'Unavailable'
            self.sosCallButton['state'] = DGG.DISABLED
        self.sosCountInfo['text'] = countText
        return
 def __chooseNPCFriend(self):
     npcId = self['NPCID']
     if NPCToons.isSecret(npcId):
         self.diag = TTDialog.TTGlobalDialog(message = TTLocalizer.SOSCallSecretQuestion, doneEvent = 'event-sos-confirm', style = TTDialog.YesNo)
         self.acceptOnce('event-sos-confirm', self.__handleDiagDone)
         
     else:
         self.__chooseNPCFriendYes()
Example #4
0
    def __chooseNPCFriend(self):
        npcId = self['NPCID']
        if NPCToons.isSecret(npcId):
            self.diag = TTDialog.TTGlobalDialog(
                message=TTLocalizer.SOSCallSecretQuestion,
                doneEvent='event-sos-confirm',
                style=TTDialog.YesNo)
            self.acceptOnce('event-sos-confirm', self.__handleDiagDone)

        else:
            self.__chooseNPCFriendYes()
 def createNPCToonHead(self, NPCID, dimension=0.5):
     NPCInfo = NPCToons.NPCToonDict[NPCID]
     dnaList = NPCInfo[2]
     gender = NPCInfo[3]
     if dnaList == 'r':
         dnaList = NPCToons.getRandomDNA(NPCID, gender)
     dna = ToonDNA.ToonDNA()
     dna.newToonFromProperties(*dnaList)
     head = ToonHead.ToonHead()
     head.setupHead(dna, forGui=1)
     self.fitGeometry(head, fFlip=1, dimension=dimension)
     return head
Example #6
0
 def createNpcToonHead(self, toNpcId):
     npcInfo = NPCToons.NPCToonDict[toNpcId]
     dnaList = npcInfo[2]
     gender = npcInfo[3]
     if dnaList == 'r':
         dnaList = NPCToons.getRandomDNA(toNpcId, gender)
     dna = AvatarDNA.AvatarDNA()
     dna.newToonFromProperties(*dnaList)
     head = ToonHead.ToonHead()
     head.setupHead(dna, forGui=1)
     self.fitGeometry(head, fFlip=1)
     return head
def createNPCToonHead(NPCID, dimension = 0.5):
    NPCInfo = NPCToons.NPCToonDict[NPCID]
    dnaList = NPCInfo[2]
    gender = NPCInfo[3]
    if dnaList == 'r':
        dnaList = NPCToons.getRandomDNA(NPCID, gender)
    dna = ToonDNA.ToonDNA()
    dna.newToonFromProperties(*dnaList)
    head = ToonHead.ToonHead()
    head.setupHead(dna, forGui=1)
    fitGeometry(head, fFlip=1, dimension=dimension)
    return head
Example #8
0
 def createNpcToonHead(self, toNpcId):
     npcInfo = NPCToons.NPCToonDict[toNpcId]
     dnaList = npcInfo[2]
     gender = npcInfo[3]
     if dnaList == 'r':
         dnaList = NPCToons.getRandomDNA(toNpcId, gender)
     
     dna = AvatarDNA.AvatarDNA()
     dna.newToonFromProperties(*dnaList)
     head = ToonHead.ToonHead()
     head.setupHead(dna, forGui = 1)
     self.fitGeometry(head, fFlip = 1)
     return head
Example #9
0
 def createNPCToonHead(self, NPCID, dimension = 0.5):
     NPCInfo = NPCToons.NPCToonDict[NPCID]
     dnaList = NPCInfo[2]
     gender = NPCInfo[3]
     if dnaList == 'r':
         dnaList = NPCToons.getRandomDNA(NPCID, gender)
     dna = ToonDNA.ToonDNA()
     dna.newToonFromProperties(*dnaList)
     head = ToonHead.ToonHead()
     head.setupHead(dna, forGui=1)
     self.fitGeometry(head, fFlip=1, dimension=dimension)
     if NPCID == 91917:
         LaughingManGlobals.addHeadEffect(head, book=True)
     return head
Example #10
0
 def createNPCToonHead(self, NPCID, dimension = 0.5):
     # Given an NPC id create a toon head suitable for framing
     NPCInfo = NPCToons.NPCToonDict[NPCID]
     dnaList = NPCInfo[2]
     gender = NPCInfo[3]
     if dnaList == 'r':
         dnaList = NPCToons.getRandomDNA(NPCID, gender)
     dna = ToonDNA.ToonDNA()
     dna.newToonFromProperties(*dnaList)
     head = ToonHead.ToonHead()
     head.setupHead(dna, forGui = 1)
     # Insert xform with gets head to uniform size
     self.fitGeometry(head, fFlip = 1, dimension = dimension)
     return head
Example #11
0
 def createNPCToonHead(self, NPCID, dimension=0.5):
     NPCInfo = NPCToons.NPCToonDict[NPCID]
     dnaList = NPCInfo[2]
     gender = NPCInfo[3]
     if dnaList == 'r':
         dnaList = NPCToons.getRandomDNA(NPCID, gender)
     dna = ToonDNA.ToonDNA()
     dna.newToonFromProperties(*dnaList)
     head = ToonHead.ToonHead()
     head.setupHead(dna, forGui=1)
     self.fitGeometry(head, fFlip=1, dimension=dimension)
     if NPCID == 91917:
         LaughingManGlobals.addHeadEffect(head, book=True)
     return head
    def update(self):
        friendList = sorted(self.friendDict.keys(), reverse=True, key=lambda id: NPCToons.getNPCTrackLevelHpRarity(id)[3])
        cardNum = 0

        for i in xrange(self.pos, self.pos + 16):
            card = self.cardList[cardNum]

            if len(friendList) > i:
                npcId = friendList[i]
                card.update(npcId, self.friendDict[npcId], self.callable)
                self.rightArrow.show()
            else:
                card.update(None, 0, self.callable)
                self.rightArrow.hide()

            cardNum += 1
Example #13
0
    def update(self):
        friendList = sorted(
            self.friendDict.keys(),
            reverse=True,
            key=lambda id: NPCToons.getNPCTrackLevelHpRarity(id)[3])
        cardNum = 0

        for i in xrange(self.pos, self.pos + 16):
            card = self.cardList[cardNum]

            if len(friendList) > i:
                npcId = friendList[i]
                card.update(npcId, self.friendDict[npcId], self.callable)
                self.rightArrow.show()
            else:
                card.update(None, 0, self.callable)
                self.rightArrow.hide()

            cardNum += 1
Example #14
0
 def updateDNA(self, description):
     # Create dna
     if isinstance(description, ToonDNA.ToonDNA):
         dna = description
     else:
         dna = ToonDNA.ToonDNA()
         if (isinstance(description, types.ListType)
                 or isinstance(description, types.TupleType)):
             # Assume it is a property list
             dna.newToonFromProperties(*description)
         elif isinstance(description, Datagram):
             # Create dna straight from datagram
             dna.makeFromNetString(description)
         elif isinstance(description, types.StringType):
             # Assume it is a server string description
             # Convert to datagram then create dna
             dna.makeFromNetString(self.convertServerDNAString(description))
         elif isinstance(description, types.IntType):
             # Assume it is an NPC id
             npcInfo = NPCToons.NPCToonDict[description]
             properties = npcInfo[2]
             if properties == 'r':
                 gender = npcInfo[3]
                 properties = NPCToons.getRandomDNA(description, gender)
             dna.newToonFromProperties(*properties)
         else:
             if random() < 0.5:
                 gender = 'm'
             else:
                 gender = 'f'
             dna.newToonRandom(gender=gender)
     if not self.style:
         # New toon, need to initialize style
         self.setDNA(dna)
     else:
         # Just jump straight to the update function
         self.updateToonDNA(dna, fForce=1)
Example #15
0
 def update(self, questDesc):
     questId, fromNpcId, toNpcId, rewardId, toonProgress = questDesc
     quest = Quests.getQuest(questId)
     if rewardId == Quests.NA:
         finalReward = Quests.getFinalRewardId(questId, fAll=1)
         transformedReward = Quests.transformReward(finalReward,
                                                    toonbase.localToon)
         reward = Quests.getReward(transformedReward)
     else:
         reward = Quests.getReward(rewardId)
     if reward:
         rewardString = reward.getPosterString()
     else:
         rewardString = ''
     self.rewardText['text'] = rewardString
     self.fitLabel(self.rewardText)
     questEntry = Quests.QuestDict.get(questId)
     if questEntry:
         tier = questEntry[0]
         fOptional = Quests.isRewardOptional(tier, rewardId)
     else:
         fOptional = 0
     if fOptional:
         self.funQuest.show()
     else:
         self.funQuest.hide()
     fComplete = quest.getCompletionStatus(toonbase.localToon,
                                           questDesc) == Quests.COMPLETE
     fromNpcName = NPCToons.getNPCName(fromNpcId)
     npcZone = NPCToons.getNPCZone(fromNpcId)
     hoodId = ZoneUtil.getHoodId(npcZone)
     branchId = ZoneUtil.getBranchZone(npcZone)
     if fromNpcId == Quests.ToonHQ:
         locationName = Localizer.QuestPosterHQLocationName
         buildingName = Localizer.QuestPosterHQBuildingName
         streetName = Localizer.QuestPosterHQStreetName
     else:
         if fromNpcId == Quests.ToonTailor:
             locationName = Localizer.QuestPosterTailorLocationName
             buildingName = Localizer.QuestPosterTailorBuildingName
             streetName = Localizer.QuestPosterTailorStreetName
         else:
             locationName = toonbase.tcr.hoodMgr.getFullnameFromId(hoodId)
             buildingName = NPCToons.getBuildingTitle(npcZone)
             streetName = ZoneUtil.getStreetName(branchId)
     if toNpcId == Quests.ToonHQ:
         toNpcName = Localizer.QuestPosterHQOfficer
         toNpcBuildingName = Localizer.QuestPosterHQBuildingName
         toNpcStreetName = Localizer.QuestPosterHQStreetName
         toNpcLocationName = Localizer.QuestPosterHQLocationName
     else:
         if toNpcId == Quests.ToonTailor:
             toNpcName = Localizer.QuestPosterTailor
             toNpcBuildingName = Localizer.QuestPosterTailorBuildingName
             toNpcStreetName = Localizer.QuestPosterTailorStreetName
             toNpcLocationName = Localizer.QuestPosterTailorLocationName
         else:
             toNpcName = NPCToons.getNPCName(toNpcId)
             toNpcZone = NPCToons.getNPCZone(toNpcId)
             toNpcHoodId = ZoneUtil.getHoodId(toNpcZone)
             toNpcLocationName = toonbase.tcr.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 = -0.0625
     auxText = None
     auxTextPos = Vec3(0, 0, 0.12)
     headlineString = quest.getHeadlineString()
     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.loadModelOnce(
                 'phase_3.5/models/gui/inventory_icons')
             track, item = quest.getGagType()
             lIconGeom = invModel.find('**/' + AvPropsNew[track][item])
             invModel.removeNode()
         else:
             bookModel = loader.loadModelOnce(
                 'phase_3.5/models/gui/stickerbook_gui')
             lIconGeom = bookModel.find('**/package')
             lIconGeomScale = 0.12
             bookModel.removeNode()
         if not fComplete:
             captions.append(toNpcName)
             auxText = Localizer.QuestPosterAuxTo
             auxTextPos.setZ(0.12)
             lPos.setX(-0.18)
             infoText = Localizer.QuestPageDestination % (
                 toNpcBuildingName, toNpcStreetName, toNpcLocationName)
             rIconGeom = self.createNpcToonHead(toNpcId)
             rIconGeomScale = IMAGE_SCALE_SMALL
     else:
         if quest.getType() == Quests.RecoverItemQuest:
             frameBgColor = 'green'
             bookModel = loader.loadModelOnce(
                 '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.loadModelOnce(
                         'phase_3/models/gui/cog_icons')
                     rIconGeom = cogIcons.find('**/cog')
                     cogIcons.removeNode()
                     lPos.setX(-0.18)
                     auxText = Localizer.QuestPosterAuxFrom
                 else:
                     if holder == Quests.AnyFish:
                         headlineString = 'GO FISHING'
                         auxText = Localizer.QuestPosterAuxFor
                         auxTextPos.setX(-0.18)
                         captions = captions[:1]
                     else:
                         if holderType == 'track':
                             cogIcons = loader.loadModelOnce(
                                 'phase_3/models/gui/cog_icons')
                             if holder == 'c':
                                 icon = cogIcons.find('**/CorpIcon')
                             else:
                                 if holder == 's':
                                     icon = cogIcons.find('**/SalesIcon')
                                 else:
                                     if holder == 'l':
                                         icon = cogIcons.find(
                                             '**/LegalIcon')
                                     else:
                                         if holder == 'm':
                                             icon = cogIcons.find(
                                                 '**/MoneyIcon')
                             rIconGeom = icon.copyTo(hidden)
                             rIconGeom.setColor(
                                 Suit.Suit.medallionColors[holder])
                             rIconGeomScale = 0.12
                             cogIcons.removeNode()
                         else:
                             if holderType == 'level':
                                 cogIcons = loader.loadModelOnce(
                                     '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 = Localizer.QuestPosterAuxFrom
                 infoText = string.capwords(quest.getLocationName())
                 if infoText == '':
                     infoText = Localizer.QuestPosterAnywhere
         else:
             if quest.getType() == Quests.VisitQuest:
                 frameBgColor = 'brown'
                 captions[0] = '%s' % toNpcName
                 lIconGeom = self.createNpcToonHead(toNpcId)
                 lIconGeomScale = IMAGE_SCALE_SMALL
                 if not fComplete:
                     infoText = Localizer.QuestPageDestination % (
                         toNpcBuildingName, toNpcStreetName,
                         toNpcLocationName)
             else:
                 if quest.getType() == Quests.TrackChoiceQuest:
                     frameBgColor = 'green'
                     invModel = loader.loadModelOnce(
                         'phase_3.5/models/gui/inventory_icons')
                     track1, track2 = quest.getChoices()
                     lIconGeom = invModel.find('**/' +
                                               AvPropsNew[track1][1])
                     if not fComplete:
                         auxText = Localizer.QuestPosterAuxOr
                         lPos.setX(-0.18)
                         rIconGeom = invModel.find('**/' +
                                                   AvPropsNew[track2][1])
                         infoText = Localizer.QuestPageNameAndDestination % (
                             toNpcName, toNpcBuildingName, toNpcStreetName,
                             toNpcLocationName)
                         infoZ = -0.02
                     invModel.removeNode()
                 else:
                     if quest.getType() == Quests.BuildingQuest:
                         frameBgColor = 'blue'
                         track = quest.getBuildingTrack()
                         numFloors = quest.getNumFloors()
                         if track == 'c':
                             lIconGeom = loader.loadModelCopy(
                                 'phase_5/models/modules/suit_landmark_corp'
                             )
                         else:
                             if track == 'l':
                                 lIconGeom = loader.loadModelCopy(
                                     'phase_5/models/modules/suit_landmark_legal'
                                 )
                             else:
                                 if track == 'm':
                                     lIconGeom = loader.loadModelCopy(
                                         'phase_5/models/modules/suit_landmark_money'
                                     )
                                 else:
                                     if track == 's':
                                         lIconGeom = loader.loadModelCopy(
                                             'phase_5/models/modules/suit_landmark_sales'
                                         )
                                     else:
                                         bookModel = loader.loadModelCopy(
                                             'phase_3.5/models/gui/stickerbook_gui'
                                         )
                                         lIconGeom = bookModel.find(
                                             '**/COG_building')
                                         bookModel.removeNode()
                         if lIconGeom and track != Quests.Any:
                             self.loadElevator(lIconGeom, numFloors)
                             self.fitGeometry(lIconGeom, fFlip=1)
                             lIconGeomScale = IMAGE_SCALE_SMALL
                         else:
                             lIconGeomScale = 0.13
                         if not fComplete:
                             infoText = quest.getLocationName()
                             if infoText == '':
                                 infoText = Localizer.QuestPosterAnywhere
                     else:
                         if quest.getType() == Quests.BuildingNewbieQuest:
                             frameBgColor = 'blue'
                             track = quest.getBuildingTrack()
                             numFloors = quest.getNumFloors()
                             if track == 'c':
                                 rIconGeom = loader.loadModelCopy(
                                     'phase_5/models/modules/suit_landmark_corp'
                                 )
                             else:
                                 if track == 'l':
                                     rIconGeom = loader.loadModelCopy(
                                         'phase_5/models/modules/suit_landmark_legal'
                                     )
                                 else:
                                     if track == 'm':
                                         rIconGeom = loader.loadModelCopy(
                                             'phase_5/models/modules/suit_landmark_money'
                                         )
                                     else:
                                         if track == 's':
                                             rIconGeom = loader.loadModelCopy(
                                                 'phase_5/models/modules/suit_landmark_sales'
                                             )
                                         else:
                                             bookModel = loader.loadModelCopy(
                                                 'phase_3.5/models/gui/stickerbook_gui'
                                             )
                                             rIconGeom = bookModel.find(
                                                 '**/COG_building')
                                             bookModel.removeNode()
                             if rIconGeom and track != Quests.Any:
                                 self.loadElevator(rIconGeom, numFloors)
                                 self.fitGeometry(rIconGeom, fFlip=1)
                                 rIconGeomScale = IMAGE_SCALE_SMALL
                             else:
                                 rIconGeomScale = 0.13
                             if not fComplete:
                                 headlineString = Localizer.QuestsNewbieQuestHeadline
                                 captions = [
                                     Localizer.QuestsCogNewbieQuestCaption %
                                     quest.getNewbieLevel()
                                 ]
                                 captions.append(
                                     map(string.capwords,
                                         quest.getObjectiveStrings()))
                                 auxText = Localizer.QuestsCogNewbieQuestAux
                                 lPos.setX(-0.18)
                                 self.laffMeter = self.createLaffMeter(
                                     quest.getNewbieLevel())
                                 self.laffMeter.setScale(0.04)
                                 lIconGeom = None
                                 infoText = quest.getLocationName()
                                 if infoText == '':
                                     infoText = Localizer.QuestPosterAnywhere
                             else:
                                 lIconGeom = rIconGeom
                                 lIconGeomScale = rIconGeomScale
                         else:
                             if quest.getType() == Quests.FriendQuest:
                                 frameBgColor = 'brown'
                                 gui = loader.loadModelOnce(
                                     'phase_3.5/models/gui/friendslist_gui')
                                 lIconGeom = gui.find(
                                     '**/FriendsBox_Closed')
                                 lIconGeomScale = 0.45
                                 gui.removeNode()
                                 infoText = Localizer.QuestPosterAnywhere
                             else:
                                 if quest.getType(
                                 ) == Quests.FriendNewbieQuest:
                                     frameBgColor = 'brown'
                                     gui = loader.loadModelOnce(
                                         'phase_3.5/models/gui/friendslist_gui'
                                     )
                                     lIconGeom = gui.find(
                                         '**/FriendsBox_Closed')
                                     lIconGeomScale = 0.45
                                     gui.removeNode()
                                     infoText = Localizer.QuestPosterAnywhere
                                 else:
                                     if quest.getType(
                                     ) == Quests.TrolleyQuest:
                                         frameBgColor = 'lightBlue'
                                         gui = loader.loadModelOnce(
                                             'phase_3.5/models/gui/stickerbook_gui'
                                         )
                                         lIconGeom = gui.find('**/trolley')
                                         lIconGeomScale = 0.13
                                         gui.removeNode()
                                         infoText = Localizer.QuestPosterPlayground
                                     else:
                                         if quest.getType(
                                         ) == Quests.MinigameNewbieQuest:
                                             frameBgColor = 'lightBlue'
                                             gui = loader.loadModelOnce(
                                                 'phase_3.5/models/gui/stickerbook_gui'
                                             )
                                             rIconGeom = gui.find(
                                                 '**/trolley')
                                             rIconGeomScale = 0.13
                                             gui.removeNode()
                                             infoText = Localizer.QuestPosterPlayground
                                             if not fComplete:
                                                 captions = [
                                                     Localizer.
                                                     QuestsMinigameNewbieQuestCaption
                                                     %
                                                     quest.getNewbieLevel()
                                                 ]
                                                 captions.append(
                                                     map(
                                                         string.capwords,
                                                         quest.
                                                         getObjectiveStrings(
                                                         )))
                                                 auxText = Localizer.QuestsMinigameNewbieQuestAux
                                                 lPos.setX(-0.18)
                                                 self.laffMeter = self.createLaffMeter(
                                                     quest.getNewbieLevel())
                                                 self.laffMeter.setScale(
                                                     0.04)
                                                 lIconGeom = None
                                             else:
                                                 lIconGeom = rIconGeom
                                                 lIconGeomScale = rIconGeomScale
                                         else:
                                             frameBgColor = 'blue'
                                             if quest.getType(
                                             ) == Quests.CogTrackQuest:
                                                 dept = quest.getCogTrack()
                                                 cogIcons = loader.loadModelOnce(
                                                     'phase_3/models/gui/cog_icons'
                                                 )
                                                 lIconGeomScale = 0.13
                                                 if dept == 'c':
                                                     icon = cogIcons.find(
                                                         '**/CorpIcon')
                                                 else:
                                                     if dept == 's':
                                                         icon = cogIcons.find(
                                                             '**/SalesIcon')
                                                     else:
                                                         if dept == 'l':
                                                             icon = cogIcons.find(
                                                                 '**/LegalIcon'
                                                             )
                                                         else:
                                                             if dept == 'm':
                                                                 icon = cogIcons.find(
                                                                     '**/MoneyIcon'
                                                                 )
                                                 lIconGeom = icon.copyTo(
                                                     hidden)
                                                 lIconGeom.setColor(
                                                     Suit.Suit.
                                                     medallionColors[dept])
                                                 cogIcons.removeNode()
                                             else:
                                                 if quest.getType(
                                                 ) == Quests.CogQuest:
                                                     if quest.getCogType(
                                                     ) != Quests.Any:
                                                         lIconGeom = self.createSuitHead(
                                                             quest.
                                                             getCogType())
                                                         lIconGeomScale = IMAGE_SCALE_SMALL
                                                     else:
                                                         cogIcons = loader.loadModelOnce(
                                                             'phase_3/models/gui/cog_icons'
                                                         )
                                                         lIconGeom = cogIcons.find(
                                                             '**/cog')
                                                         lIconGeomScale = IMAGE_SCALE_SMALL
                                                         cogIcons.removeNode(
                                                         )
                                                 else:
                                                     if quest.getType(
                                                     ) == Quests.CogLevelQuest:
                                                         cogIcons = loader.loadModelOnce(
                                                             'phase_3/models/gui/cog_icons'
                                                         )
                                                         lIconGeom = cogIcons.find(
                                                             '**/cog')
                                                         lIconGeomScale = IMAGE_SCALE_SMALL
                                                         cogIcons.removeNode(
                                                         )
                                                     else:
                                                         if quest.getType(
                                                         ) == Quests.CogNewbieQuest:
                                                             if quest.getCogType(
                                                             ) != Quests.Any:
                                                                 rIconGeom = self.createSuitHead(
                                                                     quest.
                                                                     getCogType(
                                                                     ))
                                                                 rIconGeomScale = IMAGE_SCALE_SMALL
                                                             else:
                                                                 cogIcons = loader.loadModelOnce(
                                                                     'phase_3/models/gui/cog_icons'
                                                                 )
                                                                 rIconGeom = cogIcons.find(
                                                                     '**/cog'
                                                                 )
                                                                 rIconGeomScale = IMAGE_SCALE_SMALL
                                                                 cogIcons.removeNode(
                                                                 )
                                                             if not fComplete:
                                                                 headlineString = Localizer.QuestsNewbieQuestHeadline
                                                                 captions = [
                                                                     Localizer
                                                                     .
                                                                     QuestsCogNewbieQuestCaption
                                                                     %
                                                                     quest.
                                                                     getNewbieLevel(
                                                                     )
                                                                 ]
                                                                 captions.append(
                                                                     map(
                                                                         string
                                                                         .
                                                                         capwords,
                                                                         quest
                                                                         .
                                                                         getObjectiveStrings(
                                                                         )))
                                                                 auxText = Localizer.QuestsCogNewbieQuestAux
                                                                 lPos.setX(
                                                                     -0.18)
                                                                 self.laffMeter = self.createLaffMeter(
                                                                     quest.
                                                                     getNewbieLevel(
                                                                     ))
                                                                 self.laffMeter.setScale(
                                                                     0.04)
                                                                 lIconGeom = None
                                                             else:
                                                                 lIconGeom = rIconGeom
                                                                 lIconGeomScale = rIconGeomScale
                                             if not fComplete:
                                                 infoText = string.capwords(
                                                     quest.getLocationName(
                                                     ))
                                                 if infoText == '':
                                                     infoText = Localizer.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 = Localizer.QuestPosterAuxReturnTo
         headlineString = 'COMPLETE'
         infoText = Localizer.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'] = captions[0]
     self.lPictureFrame['image_color'] = Vec4(*self.colors[frameBgColor])
     if len(captions) > 1:
         self.rPictureFrame.show()
         self.rPictureFrame['text'] = captions[1]
         self.rPictureFrame['image_color'] = Vec4(
             *self.colors[frameBgColor])
     else:
         self.rPictureFrame.hide()
     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
     self.questInfo['text'] = infoText
     self.questInfo.setZ(infoZ)
     self.fitLabel(self.questInfo)
     if auxText:
         self.auxText.show()
         self.auxText['text'] = auxText
         self.auxText.setPos(auxTextPos)
     else:
         self.auxText.hide()
     self.bind(WITHIN, self.mouseEnterPoster)
     self.bind(WITHOUT, self.mouseExitPoster)
     numQuestItems = quest.getNumQuestItems()
     if fComplete or numQuestItems <= 1:
         self.questProgress.hide()
     else:
         self.questProgress.show()
         self.questProgress['value'] = toonProgress
         self.questProgress['range'] = numQuestItems
         self.questProgress['text'] = quest.getProgressString(
             toonbase.localToon, questDesc)
     return
Example #16
0
 def update(self, questDesc):
     (questId, fromNpcId, toNpcId, rewardId, toonProgress) = questDesc
     quest = Quests.getQuest(questId)
     if rewardId == Quests.NA:
         finalReward = Quests.getFinalRewardId(questId, fAll = 1)
         transformedReward = Quests.transformReward(finalReward, toonbase.localToon)
         reward = Quests.getReward(transformedReward)
     else:
         reward = Quests.getReward(rewardId)
     if reward:
         rewardString = reward.getPosterString()
     else:
         rewardString = ''
     self.rewardText['text'] = rewardString
     self.fitLabel(self.rewardText)
     questEntry = Quests.QuestDict.get(questId)
     if questEntry:
         tier = questEntry[0]
         fOptional = Quests.isRewardOptional(tier, rewardId)
     else:
         fOptional = 0
     if fOptional:
         self.funQuest.show()
     else:
         self.funQuest.hide()
     fComplete = quest.getCompletionStatus(toonbase.localToon, questDesc) == Quests.COMPLETE
     fromNpcName = NPCToons.getNPCName(fromNpcId)
     npcZone = NPCToons.getNPCZone(fromNpcId)
     hoodId = ZoneUtil.getHoodId(npcZone)
     branchId = ZoneUtil.getBranchZone(npcZone)
     if fromNpcId == Quests.ToonHQ:
         locationName = Localizer.QuestPosterHQLocationName
         buildingName = Localizer.QuestPosterHQBuildingName
         streetName = Localizer.QuestPosterHQStreetName
     elif fromNpcId == Quests.ToonTailor:
         locationName = Localizer.QuestPosterTailorLocationName
         buildingName = Localizer.QuestPosterTailorBuildingName
         streetName = Localizer.QuestPosterTailorStreetName
     else:
         locationName = toonbase.tcr.hoodMgr.getFullnameFromId(hoodId)
         buildingName = NPCToons.getBuildingTitle(npcZone)
         streetName = ZoneUtil.getStreetName(branchId)
     if toNpcId == Quests.ToonHQ:
         toNpcName = Localizer.QuestPosterHQOfficer
         toNpcBuildingName = Localizer.QuestPosterHQBuildingName
         toNpcStreetName = Localizer.QuestPosterHQStreetName
         toNpcLocationName = Localizer.QuestPosterHQLocationName
     elif toNpcId == Quests.ToonTailor:
         toNpcName = Localizer.QuestPosterTailor
         toNpcBuildingName = Localizer.QuestPosterTailorBuildingName
         toNpcStreetName = Localizer.QuestPosterTailorStreetName
         toNpcLocationName = Localizer.QuestPosterTailorLocationName
     else:
         toNpcName = NPCToons.getNPCName(toNpcId)
         toNpcZone = NPCToons.getNPCZone(toNpcId)
         toNpcHoodId = ZoneUtil.getHoodId(toNpcZone)
         toNpcLocationName = toonbase.tcr.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 = -0.0625
     auxText = None
     auxTextPos = Vec3(0, 0, 0.12)
     headlineString = quest.getHeadlineString()
     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.loadModelOnce('phase_3.5/models/gui/inventory_icons')
             (track, item) = quest.getGagType()
             lIconGeom = invModel.find('**/' + AvPropsNew[track][item])
             invModel.removeNode()
         else:
             bookModel = loader.loadModelOnce('phase_3.5/models/gui/stickerbook_gui')
             lIconGeom = bookModel.find('**/package')
             lIconGeomScale = 0.12
             bookModel.removeNode()
         if not fComplete:
             captions.append(toNpcName)
             auxText = Localizer.QuestPosterAuxTo
             auxTextPos.setZ(0.12)
             lPos.setX(-0.17999999999999999)
             infoText = Localizer.QuestPageDestination % (toNpcBuildingName, toNpcStreetName, toNpcLocationName)
             rIconGeom = self.createNpcToonHead(toNpcId)
             rIconGeomScale = IMAGE_SCALE_SMALL
         
     elif quest.getType() == Quests.RecoverItemQuest:
         frameBgColor = 'green'
         bookModel = loader.loadModelOnce('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.loadModelOnce('phase_3/models/gui/cog_icons')
                 rIconGeom = cogIcons.find('**/cog')
                 cogIcons.removeNode()
                 lPos.setX(-0.17999999999999999)
                 auxText = Localizer.QuestPosterAuxFrom
             elif holder == Quests.AnyFish:
                 headlineString = 'GO FISHING'
                 auxText = Localizer.QuestPosterAuxFor
                 auxTextPos.setX(-0.17999999999999999)
                 captions = captions[:1]
             elif holderType == 'track':
                 cogIcons = loader.loadModelOnce('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.loadModelOnce('phase_3/models/gui/cog_icons')
                 rIconGeom = cogIcons.find('**/cog')
                 rIconGeomScale = IMAGE_SCALE_SMALL
                 cogIcons.removeNode()
             else:
                 rIconGeom = self.createSuitHead(holder)
             lPos.setX(-0.17999999999999999)
             auxText = Localizer.QuestPosterAuxFrom
             infoText = string.capwords(quest.getLocationName())
             if infoText == '':
                 infoText = Localizer.QuestPosterAnywhere
             
         
     elif quest.getType() == Quests.VisitQuest:
         frameBgColor = 'brown'
         captions[0] = '%s' % toNpcName
         lIconGeom = self.createNpcToonHead(toNpcId)
         lIconGeomScale = IMAGE_SCALE_SMALL
         if not fComplete:
             infoText = Localizer.QuestPageDestination % (toNpcBuildingName, toNpcStreetName, toNpcLocationName)
         
     elif quest.getType() == Quests.TrackChoiceQuest:
         frameBgColor = 'green'
         invModel = loader.loadModelOnce('phase_3.5/models/gui/inventory_icons')
         (track1, track2) = quest.getChoices()
         lIconGeom = invModel.find('**/' + AvPropsNew[track1][1])
         if not fComplete:
             auxText = Localizer.QuestPosterAuxOr
             lPos.setX(-0.17999999999999999)
             rIconGeom = invModel.find('**/' + AvPropsNew[track2][1])
             infoText = Localizer.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.loadModelCopy('phase_5/models/modules/suit_landmark_corp')
         elif track == 'l':
             lIconGeom = loader.loadModelCopy('phase_5/models/modules/suit_landmark_legal')
         elif track == 'm':
             lIconGeom = loader.loadModelCopy('phase_5/models/modules/suit_landmark_money')
         elif track == 's':
             lIconGeom = loader.loadModelCopy('phase_5/models/modules/suit_landmark_sales')
         else:
             bookModel = loader.loadModelCopy('phase_3.5/models/gui/stickerbook_gui')
             lIconGeom = bookModel.find('**/COG_building')
             bookModel.removeNode()
         if lIconGeom and track != Quests.Any:
             self.loadElevator(lIconGeom, numFloors)
             self.fitGeometry(lIconGeom, fFlip = 1)
             lIconGeomScale = IMAGE_SCALE_SMALL
         else:
             lIconGeomScale = 0.13
         if not fComplete:
             infoText = quest.getLocationName()
             if infoText == '':
                 infoText = Localizer.QuestPosterAnywhere
             
         
     elif quest.getType() == Quests.BuildingNewbieQuest:
         frameBgColor = 'blue'
         track = quest.getBuildingTrack()
         numFloors = quest.getNumFloors()
         if track == 'c':
             rIconGeom = loader.loadModelCopy('phase_5/models/modules/suit_landmark_corp')
         elif track == 'l':
             rIconGeom = loader.loadModelCopy('phase_5/models/modules/suit_landmark_legal')
         elif track == 'm':
             rIconGeom = loader.loadModelCopy('phase_5/models/modules/suit_landmark_money')
         elif track == 's':
             rIconGeom = loader.loadModelCopy('phase_5/models/modules/suit_landmark_sales')
         else:
             bookModel = loader.loadModelCopy('phase_3.5/models/gui/stickerbook_gui')
             rIconGeom = bookModel.find('**/COG_building')
             bookModel.removeNode()
         if rIconGeom and track != Quests.Any:
             self.loadElevator(rIconGeom, numFloors)
             self.fitGeometry(rIconGeom, fFlip = 1)
             rIconGeomScale = IMAGE_SCALE_SMALL
         else:
             rIconGeomScale = 0.13
         if not fComplete:
             headlineString = Localizer.QuestsNewbieQuestHeadline
             captions = [
                 Localizer.QuestsCogNewbieQuestCaption % quest.getNewbieLevel()]
             captions.append(map(string.capwords, quest.getObjectiveStrings()))
             auxText = Localizer.QuestsCogNewbieQuestAux
             lPos.setX(-0.17999999999999999)
             self.laffMeter = self.createLaffMeter(quest.getNewbieLevel())
             self.laffMeter.setScale(0.040000000000000001)
             lIconGeom = None
             infoText = quest.getLocationName()
             if infoText == '':
                 infoText = Localizer.QuestPosterAnywhere
             
         else:
             lIconGeom = rIconGeom
             lIconGeomScale = rIconGeomScale
     elif quest.getType() == Quests.FriendQuest:
         frameBgColor = 'brown'
         gui = loader.loadModelOnce('phase_3.5/models/gui/friendslist_gui')
         lIconGeom = gui.find('**/FriendsBox_Closed')
         lIconGeomScale = 0.45000000000000001
         gui.removeNode()
         infoText = Localizer.QuestPosterAnywhere
     elif quest.getType() == Quests.FriendNewbieQuest:
         frameBgColor = 'brown'
         gui = loader.loadModelOnce('phase_3.5/models/gui/friendslist_gui')
         lIconGeom = gui.find('**/FriendsBox_Closed')
         lIconGeomScale = 0.45000000000000001
         gui.removeNode()
         infoText = Localizer.QuestPosterAnywhere
     elif quest.getType() == Quests.TrolleyQuest:
         frameBgColor = 'lightBlue'
         gui = loader.loadModelOnce('phase_3.5/models/gui/stickerbook_gui')
         lIconGeom = gui.find('**/trolley')
         lIconGeomScale = 0.13
         gui.removeNode()
         infoText = Localizer.QuestPosterPlayground
     elif quest.getType() == Quests.MinigameNewbieQuest:
         frameBgColor = 'lightBlue'
         gui = loader.loadModelOnce('phase_3.5/models/gui/stickerbook_gui')
         rIconGeom = gui.find('**/trolley')
         rIconGeomScale = 0.13
         gui.removeNode()
         infoText = Localizer.QuestPosterPlayground
         if not fComplete:
             captions = [
                 Localizer.QuestsMinigameNewbieQuestCaption % quest.getNewbieLevel()]
             captions.append(map(string.capwords, quest.getObjectiveStrings()))
             auxText = Localizer.QuestsMinigameNewbieQuestAux
             lPos.setX(-0.17999999999999999)
             self.laffMeter = self.createLaffMeter(quest.getNewbieLevel())
             self.laffMeter.setScale(0.040000000000000001)
             lIconGeom = None
         else:
             lIconGeom = rIconGeom
             lIconGeomScale = rIconGeomScale
     else:
         frameBgColor = 'blue'
         if quest.getType() == Quests.CogTrackQuest:
             dept = quest.getCogTrack()
             cogIcons = loader.loadModelOnce('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.loadModelOnce('phase_3/models/gui/cog_icons')
                 lIconGeom = cogIcons.find('**/cog')
                 lIconGeomScale = IMAGE_SCALE_SMALL
                 cogIcons.removeNode()
         elif quest.getType() == Quests.CogLevelQuest:
             cogIcons = loader.loadModelOnce('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.loadModelOnce('phase_3/models/gui/cog_icons')
                 rIconGeom = cogIcons.find('**/cog')
                 rIconGeomScale = IMAGE_SCALE_SMALL
                 cogIcons.removeNode()
             if not fComplete:
                 headlineString = Localizer.QuestsNewbieQuestHeadline
                 captions = [
                     Localizer.QuestsCogNewbieQuestCaption % quest.getNewbieLevel()]
                 captions.append(map(string.capwords, quest.getObjectiveStrings()))
                 auxText = Localizer.QuestsCogNewbieQuestAux
                 lPos.setX(-0.17999999999999999)
                 self.laffMeter = self.createLaffMeter(quest.getNewbieLevel())
                 self.laffMeter.setScale(0.040000000000000001)
                 lIconGeom = None
             else:
                 lIconGeom = rIconGeom
                 lIconGeomScale = rIconGeomScale
         
         if not fComplete:
             infoText = string.capwords(quest.getLocationName())
             if infoText == '':
                 infoText = Localizer.QuestPosterAnywhere
             
         
     if fComplete:
         textColor = (0, 0.29999999999999999, 0, 1)
         imageColor = Vec4(*self.colors['lightGreen'])
         lPos.setX(-0.17999999999999999)
         rIconGeom = self.createNpcToonHead(toNpcId)
         rIconGeomScale = IMAGE_SCALE_SMALL
         captions = captions[:1]
         captions.append(toNpcName)
         auxText = Localizer.QuestPosterAuxReturnTo
         headlineString = 'COMPLETE'
         infoText = Localizer.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'] = captions[0]
     self.lPictureFrame['image_color'] = Vec4(*self.colors[frameBgColor])
     if len(captions) > 1:
         self.rPictureFrame.show()
         self.rPictureFrame['text'] = captions[1]
         self.rPictureFrame['image_color'] = Vec4(*self.colors[frameBgColor])
     else:
         self.rPictureFrame.hide()
     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
     
     self.questInfo['text'] = infoText
     self.questInfo.setZ(infoZ)
     self.fitLabel(self.questInfo)
     if auxText:
         self.auxText.show()
         self.auxText['text'] = auxText
         self.auxText.setPos(auxTextPos)
     else:
         self.auxText.hide()
     self.bind(WITHIN, self.mouseEnterPoster)
     self.bind(WITHOUT, self.mouseExitPoster)
     numQuestItems = quest.getNumQuestItems()
     if fComplete or numQuestItems <= 1:
         self.questProgress.hide()
     else:
         self.questProgress.show()
         self.questProgress['value'] = toonProgress
         self.questProgress['range'] = numQuestItems
         self.questProgress['text'] = quest.getProgressString(toonbase.localToon, questDesc)
Example #17
0
    def update(self, NPCID, count=0, fCallable=0):

        # Record ID for next update
        oldNPCID = self['NPCID']
        self['NPCID'] = NPCID

        if NPCID != oldNPCID:
            # Update things that only change when NPC ID changes
            if self.NPCHead:
                # New NPC, get rid of old head if it exists
                self.NPCHead.detachNode()
                self.NPCHead.delete()
                
            if NPCID is None:
                # Show back of card
                self.showBack()
                return

            # Show front of card
            self.front.show()
            self.back.hide()

            # Update labels
            self.NPCName['text'] = TTLocalizer.NPCToonNames[NPCID]
            # Creat new toon head
            self.NPCHead = self.createNPCToonHead(NPCID, dimension = 1.4)
            self.NPCHead.reparentTo(self.front)
            self.NPCHead.setZ(0.3)
            # Get details about toon
            track, level, hp, rarity = NPCToons.getNPCTrackLevelHpRarity(NPCID)
            # Update sos type info
            sosText = self.sosTracks[track]
            if track == ToontownBattleGlobals.NPC_RESTOCK_GAGS:
                # In this case level is the track being restocked
                if level == -1:
                    sosText += " All"
                else:
                    sosText += " " + self.sosTracks[level]
            sosText = TextEncoder.upper(sosText)
            self.sosTypeInfo['text'] = sosText
            # Update Rarity stars
            for i in range(self.maxRarity):
                if i < rarity:
                    self.rarityStars[i].show()
                else:
                    self.rarityStars[i].hide()

        if fCallable:
            self.sosCallButton.show()
            self.sosCountInfo.setPos(-0.4, 0, -1.54)
            self.sosCountInfo['text_scale'] = 0.28
            self.sosCountInfo['text_align'] = TextNode.ALeft
        else:
            self.sosCallButton.hide()
            self.sosCountInfo.setPos(0, 0, -1.5)
            self.sosCountInfo['text_scale'] = 0.4
            self.sosCountInfo['text_align'] = TextNode.ACenter

        if count > 0:
            countText = (TTLocalizer.NPCFriendPanelRemaining % (count))
            self.sosCallButton['state'] = DGG.NORMAL
        else:
            countText = "Unavailable"
            self.sosCallButton['state'] = DGG.DISABLED
    
        self.sosCountInfo['text'] = countText