def showScoreText(self, number, scale = 1.25):
     if not number == 0:
         if self.scoreText:
             self.hideScoreText()
         self.ScoreTextGenerator.setFont(OTPGlobals.getSignFont())
         if number < 0:
             self.ScoreTextGenerator.setText(str(number))
         else:
             self.ScoreTextGenerator.setText('+' + str(number))
         self.ScoreTextGenerator.clearShadow()
         self.ScoreTextGenerator.setAlign(TextNode.ACenter)
         if number < 0:
             r, g, b, a = (0.9, 0, 0, 1)
         else:
             r, g, b, a = (0.9, 0.9, 0, 1)
         self.scoreTextNode = self.ScoreTextGenerator.generate()
         self.scoreText = self.toon.attachNewNode(self.scoreTextNode)
         self.scoreText.setScale(scale)
         self.scoreText.setBillboardPointEye()
         self.scoreText.setBin('fixed', 100)
         self.scoreText.setPos(0, 0, self.toon.height / 2)
         self.scoreText.setTransparency(1)
         self.scoreText.setColor(r, g, b, a)
         self.scoreText.setDepthTest(0)
         self.scoreText.setDepthWrite(0)
         seq = Sequence(self.scoreText.posInterval(0.5, Point3(0, 0, self.toon.height + 2), blendType='easeOut'), self.scoreText.colorInterval(0.25, Vec4(r, g, b, 0)), Func(self.hideScoreText))
         seq.start()
    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"))
 def showScoreText(self, number, scale = 1.25):
     if not number == 0:
         if self.scoreText:
             self.hideScoreText()
         self.ScoreTextGenerator.setFont(OTPGlobals.getSignFont())
         if number < 0:
             self.ScoreTextGenerator.setText(str(number))
         else:
             self.ScoreTextGenerator.setText('+' + str(number))
         self.ScoreTextGenerator.clearShadow()
         self.ScoreTextGenerator.setAlign(TextNode.ACenter)
         if number < 0:
             r, g, b, a = (0.9, 0, 0, 1)
         else:
             r, g, b, a = (0.9, 0.9, 0, 1)
         self.scoreTextNode = self.ScoreTextGenerator.generate()
         self.scoreText = self.toon.attachNewNode(self.scoreTextNode)
         self.scoreText.setScale(scale)
         self.scoreText.setBillboardPointEye()
         self.scoreText.setBin('fixed', 100)
         self.scoreText.setPos(0, 0, self.toon.height / 2)
         self.scoreText.setTransparency(1)
         self.scoreText.setColor(r, g, b, a)
         self.scoreText.setDepthTest(0)
         self.scoreText.setDepthWrite(0)
         seq = Task.sequence(self.scoreText.lerpPos(Point3(0, 0, self.toon.height + 2), 0.5, blendType='easeOut'), self.scoreText.lerpColor(Vec4(r, g, b, a), Vec4(r, g, b, 0), 0.25), Task(self.hideScoreTextTask))
         taskMgr.add(seq, self.game.uniqueName('scoreText'))
 def getFontByName(self, fontname):
     if fontname == 'default':
         return TextNode.getDefaultFont()
     elif fontname == 'interface':
         return OTPGlobals.getInterfaceFont()
     elif fontname == 'sign':
         return OTPGlobals.getSignFont()
     else:
         return None
Esempio n. 5
0
    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 config.GetBool('silly-surge-text', True) and random.randrange(0, 100) < config.GetInt('silly-surge-chance', 10):
                        self.sillySurgeText = True
                        absNumber = int(abs(number) / 10)

                        if len(TTLocalizer.SillySurgeTerms) > absNumber:
                            self.HpTextGenerator.setText(str(number) + '\n' + TTLocalizer.SillySurgeTerms[absNumber])
                        else:
                            self.HpTextGenerator.setText(str(number) + '\n' + random.choice(TTLocalizer.SillySurgeTerms))

                    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:
                    color = [1, 1, 0, 1]
                elif bonus == 2:
                    color = [1, 0.5, 0, 1]
                elif number < 0:
                    color = [0.9, 0, 0, 1]

                    if self.interactivePropTrackBonus > -1 and self.interactivePropTrackBonus == attackTrack:
                        color = [0, 0, 1, 1]
                else:
                    color = [0, 0.9, 0, 1]

                self.HpTextGenerator.setTextColor(*color)
                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)
                color[3] = 0
                Sequence(self.hpText.posInterval(1.0, Point3(0, 0, self.height + 1.5), blendType='easeOut'), Wait(0.85), self.hpText.colorInterval(0.1, Vec4(*color), 0.1), Func(self.hideHpText)).start()
 def getFontByName(self, fontname):
     if fontname == 'default':
         return TextNode.getDefaultFont()
     elif fontname == 'interface':
         return OTPGlobals.getInterfaceFont()
     elif fontname == 'sign':
         return OTPGlobals.getSignFont()
     else:
         return None
     return None
 def getFontByName(self, fontname):
     if fontname == "default":
         return TextNode.getDefaultFont()
     elif fontname == "interface":
         return OTPGlobals.getInterfaceFont()
     elif fontname == "sign":
         return OTPGlobals.getSignFont()
     else:
         return None
     return None
    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
Esempio n. 9
0
    def showScoreText(self, number, scale=1.25):
        """ This function shows a number floating on top of the toon indicating
        that the score has been increased/decreased by that number. """
        if not (number == 0):
            # Get rid of the number if it is already there.
            if self.scoreText:
                self.hideScoreText()
            # Set the font
            self.ScoreTextGenerator.setFont(OTPGlobals.getSignFont())
            # Show both negative and positive signs
            if number < 0:
                self.ScoreTextGenerator.setText(str(number))
            else:
                self.ScoreTextGenerator.setText("+" + str(number))
            # No shadow
            self.ScoreTextGenerator.clearShadow()
            # Center the number
            self.ScoreTextGenerator.setAlign(TextNode.ACenter)
            # Red for negative, green for positive
            if (number < 0):
                r, g, b, a = 0.9, 0, 0, 1
            else:
                r, g, b, a = 0.9, 0.9, 0, 1

            self.scoreTextNode = self.ScoreTextGenerator.generate()

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

            # Initial position ... Center of the body... the "tan tien"
            self.scoreText.setPos(0, 0, self.toon.height / 2)
            self.scoreText.setTransparency(1)
            self.scoreText.setColor(r, g, b, a)
            self.scoreText.setDepthTest(0)
            self.scoreText.setDepthWrite(0)

            seq = Task.sequence(
                # Fly the number out of the character
                self.scoreText.lerpPos(Point3(0, 0, self.toon.height + 2),
                                       0.5,
                                       blendType='easeOut'),
                # Fade the number
                self.scoreText.lerpColor(Vec4(r, g, b, a), Vec4(r, g, b, 0),
                                         0.25),
                # Get rid of the number
                Task(self.hideScoreTextTask))
            taskMgr.add(seq, self.game.uniqueName("scoreText"))
Esempio n. 10
0
    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):
        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):
     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.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()
             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 = Sequence(
                 self.hpText.posInterval(1.0,
                                         Point3(0, 0, self.height + 1.5),
                                         blendType='easeOut'), Wait(0.85),
                 self.hpText.colorInterval(0.1, Vec4(r, g, b, 0)),
                 Func(self.hideHpText))
             seq.start()
Esempio n. 13
0
    def __init__(self, listOfNames, doneEvent, usedNames):
        StateData.StateData.__init__(self, doneEvent)

        self.listOfNames = listOfNames
        self.doneEvent = doneEvent
        self.avId = -1

        self.tumblerList = {}

        # Keep Track of Used Names
        self.usedNames = usedNames

        # Get Appropriate Font
        self.interfaceFont = OTPGlobals.getInterfaceFont()
        self.signFont = OTPGlobals.getSignFont()
        self.nameEntryFont = OTPGlobals.getInterfaceFont()

        # Stores the Current Name String
        self.name = ""
        self.nameIsChecked = 0

        # nameAction is used later in NameShop
        # 0 = DefaultName Mode
        # 1 = PickAName Mode
        # 2 = TypeAName Mode
        self.nameAction = 0

        # Add an fsm to NameShop to handle PayState, PickAName, TypeAName,
        #   NameAccepted, NameRejected, and NameCouncil
        self.fsm = ClassicFSM.ClassicFSM(
            'NameShop',
            [
                State.State('Init', self.enterInit, self.exitInit,
                            ['PickAName']),
                State.State('PickAName', self.enterPickANameState,
                            self.exitPickANameState, ['TypeAName', 'Done']),
                State.State('TypeAName', self.enterTypeANameState,
                            self.exitTypeANameState, ['PickAName', 'Done']),
                State.State('Done', self.enterDone, self.exitDone, ['Init'])
            ],
            # Initial state
            'Init',
            # Final state
            'Done',
        )
Esempio n. 14
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 = Sequence(self.hpText.posInterval(1.0, Point3(0, 0, self.height + 1.5), blendType='easeOut'), Wait(duration), self.hpText.colorInterval(0.1, Vec4(r, g, b, 0)), Func(self.hideHpText))
             seq.start()
Esempio n. 15
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)
             self.hpTextSeq = Sequence(self.hpText.posInterval(1.0, Point3(0, 0, self.height + 1.5), blendType='easeOut'), Wait(duration), self.hpText.colorInterval(0.1, Vec4(r, g, b, 0)), Func(self.hideHpText))
             self.hpTextSeq.start()
Esempio n. 16
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'))
Esempio n. 17
0
 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.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()
             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 = Sequence(self.hpText.posInterval(1.0, Point3(0, 0, self.height + 1.5), blendType='easeOut'), Wait(0.85), self.hpText.colorInterval(0.1, Vec4(r, g, b, 0)), Func(self.hideHpText))
             seq.start()
Esempio n. 18
0
 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 > 110 and absNum <= 200:
                         self.HpTextGenerator.setText(
                             str(number) + '\n' +
                             TTLocalizer.SillySurgeTerms[12])
                     else:
                         self.HpTextGenerator.setText(
                             str(number) + '\n' +
                             TTLocalizer.SillySurgeTerms[13])
                 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
             else:
                 if bonus == 2:
                     r = 1.0
                     g = 0.5
                     b = 0
                     a = 1
                 else:
                     if 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)
             if self.isBoss:
                 self.hpText.setScale(scale * 3.5)
             else:
                 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 = Sequence(
                 self.hpText.posInterval(1.0,
                                         Point3(0, 0, self.height + 1.5),
                                         blendType='easeOut'), Wait(0.85),
                 self.hpText.colorInterval(0.1, Vec4(r, g, b, 0), 0.1),
                 Func(self.hideHpText))
             seq.start()
Esempio n. 19
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
    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
Esempio n. 21
0
 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 = Sequence(self.hpText.posInterval(1.0, Point3(0, 0, self.height + 1.5), blendType='easeOut'), Wait(0.85), self.hpText.colorInterval(0.1, Vec4(r, g, b, 0), 0.1), Func(self.hideHpText))
             seq.start()
Esempio n. 22
0
    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 config.GetBool(
                            'silly-surge-text',
                            True) and random.randrange(0, 100) < config.GetInt(
                                'silly-surge-chance', 10):
                        self.sillySurgeText = True
                        absNumber = int(abs(number) / 10)

                        if len(TTLocalizer.SillySurgeTerms) > absNumber:
                            self.HpTextGenerator.setText(
                                str(number) + '\n' +
                                TTLocalizer.SillySurgeTerms[absNumber])
                        else:
                            self.HpTextGenerator.setText(
                                str(number) + '\n' +
                                random.choice(TTLocalizer.SillySurgeTerms))

                    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:
                    color = [1, 1, 0, 1]
                elif bonus == 2:
                    color = [1, 0.5, 0, 1]
                elif number < 0:
                    color = [0.9, 0, 0, 1]

                    if self.interactivePropTrackBonus > -1 and self.interactivePropTrackBonus == attackTrack:
                        color = [0, 0, 1, 1]
                else:
                    color = [0, 0.9, 0, 1]

                self.HpTextGenerator.setTextColor(*color)
                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)
                color[3] = 0
                Sequence(
                    self.hpText.posInterval(1.0,
                                            Point3(0, 0, self.height + 1.5),
                                            blendType='easeOut'), Wait(0.85),
                    self.hpText.colorInterval(0.1, Vec4(*color), 0.1),
                    Func(self.hideHpText)).start()