def spawnTitleText(self):
        def getDescription(zoneNum, self=self):
            ent = self.entities.get(zoneNum)
            if ent and hasattr(ent, "description"):
                return ent.description

        description = getDescription(self.lastCamZone)
        if description and description != "":
            taskMgr.remove(self.uniqueName("titleText"))
            self.smallTitleText.setText(description)
            self.titleText.setText(description)
            self.titleText.setColor(Vec4(*self.titleColor))
            self.titleText.setFg(self.titleColor)
            titleSeq = None
            if self.lastCamZone not in self.zonesEnteredList:
                self.zonesEnteredList.append(self.lastCamZone)
                titleSeq = Task.sequence(
                    Task.Task(self.hideSmallTitleTextTask),
                    Task.Task(self.showTitleTextTask),
                    Task.pause(0.10000000000000001),
                    Task.pause(6.0),
                    self.titleText.lerpColor(
                        Vec4(self.titleColor[0], self.titleColor[1], self.titleColor[2], self.titleColor[3]),
                        Vec4(self.titleColor[0], self.titleColor[1], self.titleColor[2], 0.0),
                        0.5,
                    ),
                )

            smallTitleSeq = Task.sequence(Task.Task(self.hideTitleTextTask), Task.Task(self.showSmallTitleTask))
            if titleSeq:
                seq = Task.sequence(titleSeq, smallTitleSeq)
            else:
                seq = smallTitleSeq
            taskMgr.add(seq, self.uniqueName("titleText"))
    def spawnTitleText(self):
        def getDescription(zoneNum, self=self):
            ent = self.entities.get(zoneNum)
            if ent and hasattr(ent, 'description'):
                return ent.description
            return None

        description = getDescription(self.lastCamZone)
        if description and description != '':
            taskMgr.remove(self.uniqueName('titleText'))
            self.smallTitleText.setText(description)
            self.titleText.setText(description)
            self.titleText.setColor(Vec4(*self.titleColor))
            self.titleText.setFg(self.titleColor)
            titleSeq = None
            if self.lastCamZone not in self.zonesEnteredList:
                self.zonesEnteredList.append(self.lastCamZone)
                titleSeq = Task.sequence(
                    Task.Task(self.hideSmallTitleTextTask),
                    Task.Task(self.showTitleTextTask), Task.pause(0.1),
                    Task.pause(6.0),
                    self.titleText.lerpColor(
                        Vec4(self.titleColor[0], self.titleColor[1],
                             self.titleColor[2], self.titleColor[3]),
                        Vec4(self.titleColor[0], self.titleColor[1],
                             self.titleColor[2], 0.0), 0.5))
            smallTitleSeq = Task.sequence(Task.Task(self.hideTitleTextTask),
                                          Task.Task(self.showSmallTitleTask))
            if titleSeq:
                seq = Task.sequence(titleSeq, smallTitleSeq)
            else:
                seq = smallTitleSeq
            taskMgr.add(seq, self.uniqueName('titleText'))
        return
    def showInfoText(self, text="hello world"):
        description = text
        if description and description != '':
            taskMgr.remove(self.uniqueName("titleText"))
            self.smallTitleText.setText(description)
            self.titleText.setText(description)
            self.titleText.setColor(Vec4(*self.titleColor))
            self.titleText.setFg(self.titleColor)

            # Only show the big title once per session.
            # If we've already seen it, just show the small title

            titleSeq = None
            titleSeq = Task.sequence(
                Task.Task(self.hideSmallTitleTextTask),
                Task.Task(self.showTitleTextTask),
                Task.pause(0.1),
                Task.pause(3.0),
                self.titleText.lerpColor(
                    Vec4(self.titleColor[0], self.titleColor[1],
                         self.titleColor[2], self.titleColor[3]),
                    Vec4(self.titleColor[0], self.titleColor[1],
                         self.titleColor[2], 0.0), 0.5),
            )

            if titleSeq:
                seq = Task.sequence(titleSeq)
            taskMgr.add(seq, self.uniqueName("titleText"))
Exemple #4
0
 def showHitScore(self, number, scale=1):
     if number <= 0:
         return
     if self.hpText:
         self.hideHitScore()
     self.HpTextGenerator.setFont(ToontownGlobals.getSignFont())
     if number < 0:
         self.HpTextGenerator.setText(str(number))
     else:
         self.HpTextGenerator.setText('+' + str(number))
     self.HpTextGenerator.clearShadow()
     self.HpTextGenerator.setAlign(TextNode.ACenter)
     r = 1
     g = 1
     b = 0
     a = 1
     self.HpTextGenerator.setTextColor(r, g, b, a)
     self.hpTextNode = self.HpTextGenerator.generate()
     self.hpText = render.attachNewNode(self.hpTextNode)
     self.hpText.setScale(scale)
     self.hpText.setBillboardPointEye()
     self.hpText.setBin('fixed', 100)
     self.hpText.setPos(self.root, 0, 0, self.height / 2)
     seq = Task.sequence(
         self.hpText.lerpPos(Point3(
             self.root.getX(render), self.root.getY(render),
             self.root.getZ(render) + self.height + 1.0),
                             0.25,
                             blendType='easeOut'), Task.pause(0.25),
         self.hpText.lerpColor(Vec4(r, g, b, a), Vec4(r, g, b, 0), 0.1),
         Task.Task(self.__hideHitScoreTask))
     taskMgr.add(seq, 'PartyCogHpText' + str(self.id))
    def showHpString(self, text, duration=0.84999999999999998, scale=0.69999999999999996):
        if self.HpTextEnabled and not (self.ghostMode):
            if text != "":
                if self.hpText:
                    self.hideHpText()

                self.HpTextGenerator.setFont(OTPGlobals.getSignFont())
                self.HpTextGenerator.setText(text)
                self.HpTextGenerator.clearShadow()
                self.HpTextGenerator.setAlign(TextNode.ACenter)
                r = 1.0
                a = 1.0
                g = 0.0
                b = 0.0
                self.HpTextGenerator.setTextColor(r, g, b, a)
                self.hpTextNode = self.HpTextGenerator.generate()
                self.hpText = self.attachNewNode(self.hpTextNode)
                self.hpText.setScale(scale)
                self.hpText.setBillboardAxis()
                self.hpText.setPos(0, 0, self.height / 2)
                seq = Task.sequence(
                    self.hpText.lerpPos(Point3(0, 0, self.height + 1.5), 1.0, blendType="easeOut"),
                    Task.pause(duration),
                    self.hpText.lerpColor(Vec4(r, g, b, a), Vec4(r, g, b, 0), 0.10000000000000001),
                    Task.Task(self.hideHpTextTask),
                )
                taskMgr.add(seq, self.uniqueName("hpText"))
Exemple #6
0
 def showHpString(self, text, duration=0.85, scale=0.7):
     if self.HpTextEnabled and not self.ghostMode:
         if text != '':
             if self.hpText:
                 self.hideHpText()
             self.HpTextGenerator.setFont(OTPGlobals.getSignFont())
             self.HpTextGenerator.setText(text)
             self.HpTextGenerator.clearShadow()
             self.HpTextGenerator.setAlign(TextNode.ACenter)
             r = a = 1.0
             g = b = 0.0
             self.HpTextGenerator.setTextColor(r, g, b, a)
             self.hpTextNode = self.HpTextGenerator.generate()
             self.hpText = self.attachNewNode(self.hpTextNode)
             self.hpText.setScale(scale)
             self.hpText.setBillboardAxis()
             self.hpText.setPos(0, 0, self.height / 2)
             seq = Task.sequence(
                 self.hpText.lerpPos(Point3(0, 0, self.height + 1.5),
                                     1.0,
                                     blendType='easeOut'),
                 Task.pause(duration),
                 self.hpText.lerpColor(Vec4(r, g, b, a), Vec4(r, g, b, 0),
                                       0.1), Task.Task(self.hideHpTextTask))
             taskMgr.add(seq, self.uniqueName('hpText'))
    def showHpString(self, text, duration=0.85, scale=0.7):
        if self.HpTextEnabled and not self.ghostMode:
            # We don't show empty strings
            if text != '':
                # Get rid of text if it is already there.
                if self.hpText:
                    self.hideHpText()
                # Set the font
                self.HpTextGenerator.setFont(OTPGlobals.getSignFont())
                # Write the text
                self.HpTextGenerator.setText(text)
                # No shadow
                self.HpTextGenerator.clearShadow()
                # Put a shadow on there
                #self.HpTextGenerator.setShadow(0.05, 0.05)
                #self.HpTextGenerator.setShadowColor(0, 0, 0, 1)
                # Center the text
                self.HpTextGenerator.setAlign(TextNode.ACenter)
                # Set the color and alpha scale (a)
                r = a = 1.0
                g = b = 0.0

                self.HpTextGenerator.setTextColor(r, g, b, a)

                self.hpTextNode = self.HpTextGenerator.generate()

                # Put the hpText over the head of the avatar
                self.hpText = self.attachNewNode(self.hpTextNode)
                # Set its scale
                self.hpText.setScale(scale)
                # Make sure it is a billboard
                self.hpText.setBillboardAxis()

                # Initial position ... Center of the body... the "tan tien"
                self.hpText.setPos(0, 0, self.height / 2)
                seq = Task.sequence(
                    # Fly the number out of the character
                    self.hpText.lerpPos(Point3(0, 0, self.height + 1.5),
                                        1.0,
                                        blendType='easeOut'),
                    # Wait 2 seconds
                    Task.pause(duration),
                    # Fade the number
                    self.hpText.lerpColor(Vec4(r, g, b, a), Vec4(r, g, b, 0),
                                          0.1),
                    # Get rid of the number
                    Task.Task(self.hideHpTextTask))
                taskMgr.add(seq, self.uniqueName("hpText"))
        else:
            # Just play the sound effect.
            # TODO: Put in the sound effect!
            pass
 def showInfoText(self, text='hello world'):
     description = text
     if description and description != '':
         taskMgr.remove(self.uniqueName('titleText'))
         self.smallTitleText.setText(description)
         self.titleText.setText(description)
         self.titleText.setColor(Vec4(*self.titleColor))
         self.titleText.setFg(self.titleColor)
         titleSeq = None
         titleSeq = Task.sequence(
             Task.Task(self.hideSmallTitleTextTask),
             Task.Task(self.showTitleTextTask), Task.pause(0.1),
             Task.pause(3.0),
             self.titleText.lerpColor(
                 Vec4(self.titleColor[0], self.titleColor[1],
                      self.titleColor[2], self.titleColor[3]),
                 Vec4(self.titleColor[0], self.titleColor[1],
                      self.titleColor[2], 0.0), 0.5))
         if titleSeq:
             seq = Task.sequence(titleSeq)
         taskMgr.add(seq, self.uniqueName('titleText'))
     return
    def showHpText(self, number, bonus=0, scale=1):
        if self.HpTextEnabled and not (self.ghostMode):
            if number != 0:
                if self.hpText:
                    self.hideHpText()

                self.HpTextGenerator.setFont(OTPGlobals.getSignFont())
                if number < 0:
                    self.HpTextGenerator.setText(str(number))
                else:
                    self.HpTextGenerator.setText('+' + str(number))
                self.HpTextGenerator.clearShadow()
                self.HpTextGenerator.setAlign(TextNode.ACenter)
                if bonus == 1:
                    r = 1.0
                    g = 1.0
                    b = 0
                    a = 1
                elif bonus == 2:
                    r = 1.0
                    g = 0.5
                    b = 0
                    a = 1
                elif number < 0:
                    r = 0.90000000000000002
                    g = 0
                    b = 0
                    a = 1
                else:
                    r = 0
                    g = 0.90000000000000002
                    b = 0
                    a = 1
                self.HpTextGenerator.setTextColor(r, g, b, a)
                self.hpTextNode = self.HpTextGenerator.generate()
                self.hpText = self.attachNewNode(self.hpTextNode)
                self.hpText.setScale(scale)
                self.hpText.setBillboardPointEye()
                self.hpText.setBin('fixed', 100)
                self.hpText.setPos(0, 0, self.height / 2)
                seq = Task.sequence(
                    self.hpText.lerpPos(Point3(0, 0, self.height + 1.5),
                                        1.0,
                                        blendType='easeOut'),
                    Task.pause(0.84999999999999998),
                    self.hpText.lerpColor(Vec4(r, g, b, a), Vec4(r, g, b, 0),
                                          0.10000000000000001),
                    Task.Task(self.hideHpTextTask))
                taskMgr.add(seq, self.uniqueName('hpText'))
    def showInfoText(self, text="hello world"):
        description = text
        if description and description != "":
            taskMgr.remove(self.uniqueName("titleText"))
            self.smallTitleText.setText(description)
            self.titleText.setText(description)
            self.titleText.setColor(Vec4(*self.titleColor))
            self.titleText.setFg(self.titleColor)
            titleSeq = None
            titleSeq = Task.sequence(
                Task.Task(self.hideSmallTitleTextTask),
                Task.Task(self.showTitleTextTask),
                Task.pause(0.10000000000000001),
                Task.pause(3.0),
                self.titleText.lerpColor(
                    Vec4(self.titleColor[0], self.titleColor[1], self.titleColor[2], self.titleColor[3]),
                    Vec4(self.titleColor[0], self.titleColor[1], self.titleColor[2], 0.0),
                    0.5,
                ),
            )
            if titleSeq:
                seq = Task.sequence(titleSeq)

            taskMgr.add(seq, self.uniqueName("titleText"))
    def showHpText(self, number, bonus=0, scale=1):
        if self.HpTextEnabled and not (self.ghostMode):
            if number != 0:
                if self.hpText:
                    self.hideHpText()

                self.HpTextGenerator.setFont(OTPGlobals.getSignFont())
                if number < 0:
                    self.HpTextGenerator.setText(str(number))
                else:
                    self.HpTextGenerator.setText("+" + str(number))
                self.HpTextGenerator.clearShadow()
                self.HpTextGenerator.setAlign(TextNode.ACenter)
                if bonus == 1:
                    r = 1.0
                    g = 1.0
                    b = 0
                    a = 1
                elif bonus == 2:
                    r = 1.0
                    g = 0.5
                    b = 0
                    a = 1
                elif number < 0:
                    r = 0.90000000000000002
                    g = 0
                    b = 0
                    a = 1
                else:
                    r = 0
                    g = 0.90000000000000002
                    b = 0
                    a = 1
                self.HpTextGenerator.setTextColor(r, g, b, a)
                self.hpTextNode = self.HpTextGenerator.generate()
                self.hpText = self.attachNewNode(self.hpTextNode)
                self.hpText.setScale(scale)
                self.hpText.setBillboardPointEye()
                self.hpText.setBin("fixed", 100)
                self.hpText.setPos(0, 0, self.height / 2)
                seq = Task.sequence(
                    self.hpText.lerpPos(Point3(0, 0, self.height + 1.5), 1.0, blendType="easeOut"),
                    Task.pause(0.84999999999999998),
                    self.hpText.lerpColor(Vec4(r, g, b, a), Vec4(r, g, b, 0), 0.10000000000000001),
                    Task.Task(self.hideHpTextTask),
                )
                taskMgr.add(seq, self.uniqueName("hpText"))
    def showHpText(self, number, bonus=0, scale=1):
        # WARNING if this changes please also change DistributedToon.py
        if self.HpTextEnabled and not self.ghostMode:
            # We don't show zero change.
            if number != 0:
                # Get rid of the number if it is already there.
                if self.hpText:
                    self.hideHpText()
                # Set the font
                self.HpTextGenerator.setFont(OTPGlobals.getSignFont())
                # Show both negative and positive signs
                if number < 0:
                    self.HpTextGenerator.setText(str(number))
                else:
                    self.HpTextGenerator.setText("+" + str(number))
                # No shadow
                self.HpTextGenerator.clearShadow()
                # Put a shadow on there
                #self.HpTextGenerator.setShadow(0.05, 0.05)
                #self.HpTextGenerator.setShadowColor(0, 0, 0, 1)
                # Center the number
                self.HpTextGenerator.setAlign(TextNode.ACenter)
                # Red for negative, green for positive, yellow for bonus
                if bonus == 1:
                    r = 1.0
                    g = 1.0
                    b = 0
                    a = 1
                elif bonus == 2:
                    r = 1.0
                    g = 0.5
                    b = 0
                    a = 1
                elif number < 0:
                    r = 0.9
                    g = 0
                    b = 0
                    a = 1
                else:
                    r = 0
                    g = 0.9
                    b = 0
                    a = 1

                self.HpTextGenerator.setTextColor(r, g, b, a)

                self.hpTextNode = self.HpTextGenerator.generate()

                # Put the hpText over the head of the avatar
                self.hpText = self.attachNewNode(self.hpTextNode)
                self.hpText.setScale(scale)
                # Make sure it is a billboard
                self.hpText.setBillboardPointEye()
                # Render it after other things in the scene.
                self.hpText.setBin('fixed', 100)

                # Initial position ... Center of the body... the "tan tien"
                self.hpText.setPos(0, 0, self.height / 2)
                seq = Task.sequence(
                    # Fly the number out of the character
                    self.hpText.lerpPos(Point3(0, 0, self.height + 1.5),
                                        1.0,
                                        blendType='easeOut'),
                    # Wait 2 seconds
                    Task.pause(0.85),
                    # Fade the number
                    self.hpText.lerpColor(Vec4(r, g, b, a), Vec4(r, g, b, 0),
                                          0.1),
                    # Get rid of the number
                    Task.Task(self.hideHpTextTask))
                taskMgr.add(seq, self.uniqueName("hpText"))
        else:
            # Just play the sound effect.
            # TODO: Put in the sound effect!
            pass
 def showHpText(self, number, bonus = 0, scale = 1, attackTrack = -1):
     if self.HpTextEnabled and not self.ghostMode:
         if number != 0:
             if self.hpText:
                 self.hideHpText()
             self.HpTextGenerator.setFont(OTPGlobals.getSignFont())
             if number < 0:
                 self.HpTextGenerator.setText(str(number))
                 if base.cr.newsManager.isHolidayRunning(ToontownGlobals.SILLY_SURGE_HOLIDAY):
                     self.sillySurgeText = True
                     absNum = abs(number)
                     if absNum > 0 and absNum <= 10:
                         self.HpTextGenerator.setText(str(number) + '\n' + TTLocalizer.SillySurgeTerms[1])
                     elif absNum > 10 and absNum <= 20:
                         self.HpTextGenerator.setText(str(number) + '\n' + TTLocalizer.SillySurgeTerms[2])
                     elif absNum > 20 and absNum <= 30:
                         self.HpTextGenerator.setText(str(number) + '\n' + TTLocalizer.SillySurgeTerms[3])
                     elif absNum > 30 and absNum <= 40:
                         self.HpTextGenerator.setText(str(number) + '\n' + TTLocalizer.SillySurgeTerms[4])
                     elif absNum > 40 and absNum <= 50:
                         self.HpTextGenerator.setText(str(number) + '\n' + TTLocalizer.SillySurgeTerms[5])
                     elif absNum > 50 and absNum <= 60:
                         self.HpTextGenerator.setText(str(number) + '\n' + TTLocalizer.SillySurgeTerms[6])
                     elif absNum > 60 and absNum <= 70:
                         self.HpTextGenerator.setText(str(number) + '\n' + TTLocalizer.SillySurgeTerms[7])
                     elif absNum > 70 and absNum <= 80:
                         self.HpTextGenerator.setText(str(number) + '\n' + TTLocalizer.SillySurgeTerms[8])
                     elif absNum > 80 and absNum <= 90:
                         self.HpTextGenerator.setText(str(number) + '\n' + TTLocalizer.SillySurgeTerms[9])
                     elif absNum > 90 and absNum <= 100:
                         self.HpTextGenerator.setText(str(number) + '\n' + TTLocalizer.SillySurgeTerms[10])
                     elif absNum > 100 and absNum <= 110:
                         self.HpTextGenerator.setText(str(number) + '\n' + TTLocalizer.SillySurgeTerms[11])
                     else:
                         self.HpTextGenerator.setText(str(number) + '\n' + TTLocalizer.SillySurgeTerms[12])
                 if self.interactivePropTrackBonus > -1 and self.interactivePropTrackBonus == attackTrack:
                     self.sillySurgeText = True
                     if attackTrack in TTLocalizer.InteractivePropTrackBonusTerms:
                         self.HpTextGenerator.setText(str(number) + '\n' + TTLocalizer.InteractivePropTrackBonusTerms[attackTrack])
             else:
                 self.HpTextGenerator.setText('+' + str(number))
             self.HpTextGenerator.clearShadow()
             self.HpTextGenerator.setAlign(TextNode.ACenter)
             if bonus == 1:
                 r = 1.0
                 g = 1.0
                 b = 0
                 a = 1
             elif bonus == 2:
                 r = 1.0
                 g = 0.5
                 b = 0
                 a = 1
             elif number < 0:
                 r = 0.9
                 g = 0
                 b = 0
                 a = 1
                 if self.interactivePropTrackBonus > -1 and self.interactivePropTrackBonus == attackTrack:
                     r = 0
                     g = 0
                     b = 1
                     a = 1
             else:
                 r = 0
                 g = 0.9
                 b = 0
                 a = 1
             self.HpTextGenerator.setTextColor(r, g, b, a)
             self.hpTextNode = self.HpTextGenerator.generate()
             self.hpText = self.attachNewNode(self.hpTextNode)
             self.hpText.setScale(scale)
             self.hpText.setBillboardPointEye()
             self.hpText.setBin('fixed', 100)
             if self.sillySurgeText:
                 self.nametag3d.setDepthTest(0)
                 self.nametag3d.setBin('fixed', 99)
             self.hpText.setPos(0, 0, self.height / 2)
             seq = Task.sequence(self.hpText.lerpPos(Point3(0, 0, self.height + 1.5), 1.0, blendType='easeOut'), Task.pause(0.85), self.hpText.lerpColor(Vec4(r, g, b, a), Vec4(r, g, b, 0), 0.1), Task.Task(self.hideHpTextTask))
             taskMgr.add(seq, self.uniqueName('hpText'))
Exemple #14
0
    def showHitScore(self, number, scale=1):
        """
        Shows the hit score.
        Borrowed from otp.avatar.DistributedAvatar.showHpText
        """
        if number <= 0:
            return

        # Get rid of the number if it is already there.
        if self.hpText:
            self.hideHitScore()

        # Set the font
        self.HpTextGenerator.setFont(ToontownGlobals.getSignFont())

        # Show both negative and positive signs
        if number < 0:
            self.HpTextGenerator.setText(str(number))
        else:
            self.HpTextGenerator.setText("+" + str(number))

        # No shadow
        self.HpTextGenerator.clearShadow()

        # Center the number
        self.HpTextGenerator.setAlign(TextNode.ACenter)

        # Red, always
        #if number < 0:
        r = 1  #0.9
        g = 1  #0
        b = 0
        a = 1

        self.HpTextGenerator.setTextColor(r, g, b, a)

        self.hpTextNode = self.HpTextGenerator.generate()

        # Put the hpText over the head of the avatar
        self.hpText = render.attachNewNode(self.hpTextNode)
        self.hpText.setScale(scale)
        # Make sure it is a billboard
        self.hpText.setBillboardPointEye()
        # Render it after other things in the scene.
        self.hpText.setBin('fixed', 100)

        # Initial position ... Center of the body... the "tan tien"
        self.hpText.setPos(self.root, 0, 0, self.height / 2)

        # Black magic from the early days of Panda3D, later replaced by a Sequence
        seq = Task.sequence(
            # Fly the number out of the character
            self.hpText.lerpPos(Point3(
                self.root.getX(render), self.root.getY(render),
                self.root.getZ(render) + self.height + 1.0),
                                0.25,
                                blendType='easeOut'),
            Task.pause(0.25),
            # Fade the number
            self.hpText.lerpColor(Vec4(r, g, b, a), Vec4(r, g, b, 0), 0.1),
            # Get rid of the number
            Task.Task(self.__hideHitScoreTask))

        taskMgr.add(seq, "PartyCogHpText" + str(self.id))
Exemple #15
0
    def showHpText(self, number, bonus=0, scale=1, attackTrack=-1):
        if self.HpTextEnabled and not self.ghostMode:
            # We don't show zero change.
            if number != 0:
                # Get rid of the number if it is already there.
                if self.hpText:
                    self.hideHpText()
                # Set the font
                self.HpTextGenerator.setFont(OTPGlobals.getSignFont())
                # Show both negative and positive signs
                if number < 0:
                    self.HpTextGenerator.setText(str(number))
                    # If we're doing the Silly Holiday word additions
                    if base.cr.newsManager.isHolidayRunning(
                            ToontownGlobals.SILLY_SURGE_HOLIDAY):
                        self.sillySurgeText = True
                        absNum = abs(number)
                        if absNum > 0 and absNum <= 10:
                            self.HpTextGenerator.setText(
                                str(number) + "\n" +
                                TTLocalizer.SillySurgeTerms[1])
                        elif absNum > 10 and absNum <= 20:
                            self.HpTextGenerator.setText(
                                str(number) + "\n" +
                                TTLocalizer.SillySurgeTerms[2])
                        elif absNum > 20 and absNum <= 30:
                            self.HpTextGenerator.setText(
                                str(number) + "\n" +
                                TTLocalizer.SillySurgeTerms[3])
                        elif absNum > 30 and absNum <= 40:
                            self.HpTextGenerator.setText(
                                str(number) + "\n" +
                                TTLocalizer.SillySurgeTerms[4])
                        elif absNum > 40 and absNum <= 50:
                            self.HpTextGenerator.setText(
                                str(number) + "\n" +
                                TTLocalizer.SillySurgeTerms[5])
                        elif absNum > 50 and absNum <= 60:
                            self.HpTextGenerator.setText(
                                str(number) + "\n" +
                                TTLocalizer.SillySurgeTerms[6])
                        elif absNum > 60 and absNum <= 70:
                            self.HpTextGenerator.setText(
                                str(number) + "\n" +
                                TTLocalizer.SillySurgeTerms[7])
                        elif absNum > 70 and absNum <= 80:
                            self.HpTextGenerator.setText(
                                str(number) + "\n" +
                                TTLocalizer.SillySurgeTerms[8])
                        elif absNum > 80 and absNum <= 90:
                            self.HpTextGenerator.setText(
                                str(number) + "\n" +
                                TTLocalizer.SillySurgeTerms[9])
                        elif absNum > 90 and absNum <= 100:
                            self.HpTextGenerator.setText(
                                str(number) + "\n" +
                                TTLocalizer.SillySurgeTerms[10])
                        elif absNum > 100 and absNum <= 110:
                            self.HpTextGenerator.setText(
                                str(number) + "\n" +
                                TTLocalizer.SillySurgeTerms[11])
                        else:  # greater than 110
                            self.HpTextGenerator.setText(
                                str(number) + "\n" +
                                TTLocalizer.SillySurgeTerms[12])

                    # check for interactive prop gag track bonus
                    if self.interactivePropTrackBonus > -1 and self.interactivePropTrackBonus == attackTrack:
                        self.sillySurgeText = True
                        if attackTrack in TTLocalizer.InteractivePropTrackBonusTerms:
                            self.HpTextGenerator.setText(
                                str(number) + "\n" + TTLocalizer.
                                InteractivePropTrackBonusTerms[attackTrack])
                else:
                    self.HpTextGenerator.setText("+" + str(number))
                # No shadow
                self.HpTextGenerator.clearShadow()
                # Put a shadow on there
                #self.HpTextGenerator.setShadow(0.05, 0.05)
                #self.HpTextGenerator.setShadowColor(0, 0, 0, 1)
                # Center the number
                self.HpTextGenerator.setAlign(TextNode.ACenter)
                # Red for negative, green for positive, yellow for bonus
                if bonus == 1:
                    r = 1.0
                    g = 1.0
                    b = 0
                    a = 1
                elif bonus == 2:
                    r = 1.0
                    g = 0.5
                    b = 0
                    a = 1
                elif number < 0:
                    r = 0.9
                    g = 0
                    b = 0
                    a = 1
                    # if we have a track bonus, for now make it blue
                    if self.interactivePropTrackBonus > -1 and self.interactivePropTrackBonus == attackTrack:
                        r = 0
                        g = 0
                        b = 1
                        a = 1
                else:
                    r = 0
                    g = 0.9
                    b = 0
                    a = 1

                self.HpTextGenerator.setTextColor(r, g, b, a)

                self.hpTextNode = self.HpTextGenerator.generate()

                # Put the hpText over the head of the avatar
                self.hpText = self.attachNewNode(self.hpTextNode)
                self.hpText.setScale(scale)
                # Make sure it is a billboard
                self.hpText.setBillboardPointEye()
                # Render it after other things in the scene.
                self.hpText.setBin('fixed', 100)
                if self.sillySurgeText:
                    self.nametag3d.setDepthTest(0)
                    self.nametag3d.setBin('fixed', 99)

                # Initial position ... Center of the body... the "tan tien"
                self.hpText.setPos(0, 0, self.height / 2)
                seq = Task.sequence(
                    # Fly the number out of the character
                    self.hpText.lerpPos(Point3(0, 0, self.height + 1.5),
                                        1.0,
                                        blendType='easeOut'),
                    # Wait 2 seconds
                    Task.pause(0.85),
                    # Fade the number
                    self.hpText.lerpColor(Vec4(r, g, b, a), Vec4(r, g, b, 0),
                                          0.1),
                    # Get rid of the number
                    Task.Task(self.hideHpTextTask))
                taskMgr.add(seq, self.uniqueName("hpText"))
        else:
            # Just play the sound effect.
            # TODO: Put in the sound effect!
            pass
Exemple #16
0
 def showHitScore(self, number, scale = 1):
     if number <= 0:
         return
     if self.hpText:
         self.hideHitScore()
     self.HpTextGenerator.setFont(ToontownGlobals.getSignFont())
     if number < 0:
         self.HpTextGenerator.setText(str(number))
     else:
         self.HpTextGenerator.setText('+' + str(number))
     self.HpTextGenerator.clearShadow()
     self.HpTextGenerator.setAlign(TextNode.ACenter)
     r = 1
     g = 1
     b = 0
     a = 1
     self.HpTextGenerator.setTextColor(r, g, b, a)
     self.hpTextNode = self.HpTextGenerator.generate()
     self.hpText = render.attachNewNode(self.hpTextNode)
     self.hpText.setScale(scale)
     self.hpText.setBillboardPointEye()
     self.hpText.setBin('fixed', 100)
     self.hpText.setPos(self.root, 0, 0, self.height / 2)
     seq = Task.sequence(self.hpText.lerpPos(Point3(self.root.getX(render), self.root.getY(render), self.root.getZ(render) + self.height + 1.0), 0.25, blendType='easeOut'), Task.pause(0.25), self.hpText.lerpColor(Vec4(r, g, b, a), Vec4(r, g, b, 0), 0.1), Task.Task(self.__hideHitScoreTask))
     taskMgr.add(seq, 'PartyCogHpText' + str(self.id))