Exemple #1
0
 def enterMidnight(self):
     self.__interval = LerpColorScaleInterval(
         render,
         self.getDuration(),
         WeatherGlobals.cycleColors[3],
         startColorScale=render.getColorScale())
     self.__interval.start()
Exemple #2
0
class Button():
    
    def __init__(self, id, model, nodeName):
        
        nodeRegEx = "**/" + nodeName
        
        self.nodeName = nodeName
        self.nodePath = model.find(nodeRegEx)
        self.node = self.nodePath.node()
        
        self.node.setIntoCollideMask(BitMask32.bit(1))
        self.node.setTag('ID', id)
        self.node.setTag('nodeId', nodeName)
        
        self.lighting = None
        
    def mouseHoverIn(self):
        
        if self.lighting != None:
            self.lighting.pause()

        self.lighting = LerpColorScaleInterval(self.nodePath, 0.1, Vec4(0.1,0.1,0.1,2), blendType ='noBlend')
        self.lighting.start()
        
    def mouseHoverOut(self):
        
        self.lighting = LerpColorScaleInterval(self.nodePath, 1.5, Vec4(0.5,0.5,0.5,1), blendType ='easeOut')
        self.lighting.start()       
Exemple #3
0
 def update(self, currentHour):
     self.currSeq = LerpColorScaleInterval(
         render, self.interval,
         DayTimeGlobals.COLORS[0 if currentHour == 23 else currentHour + 1],
         DayTimeGlobals.COLORS[currentHour])
     self.currSeq.start()
     self.setSky(self.hour2sky[currentHour])
Exemple #4
0
 def hide(self, start=True):
     self.npc.actor.setTransparency(True)
     ds = S.ch_anim['death_speed']
     interval = LerpColorScaleInterval(self.npc.actor, 1 / ds / 7,
                                                     (1, 1, 1, 0))
     if not start:
         return interval
     interval.start()
Exemple #5
0
 def show(self):
     ds = S.ch_anim['death_speed']
     interval = LerpColorScaleInterval(self.npc.actor, 1 / ds / 7,
                                                     (1, 1, 1, 1))
     def callback():
         self.npc.actor.setTransparency(False)
     interval.setDoneEvent('body_showed')
     base.acceptOnce('body_showed', callback)
     interval.start()
class DistributedDayTimeManager(DistributedWeatherMGR):
    notify = directNotify.newCategory('DistributedDayTimeManager')
    
    def __init__(self, cr):
        DistributedWeatherMGR.__init__(self, cr)
        self.cr = cr
        self.hood = base.cr.playGame.hood
        self.interval = 2
        self.hour2sky = {
            0: 'night',
            1: 'night',
            2: 'night',
            3: 'night',
            4: 'night',
            5: 'night',
            6: 'mml',
            7: 'mml',
            8: 'day',
            9: 'day',
            10: 'day',
            11: 'day',
            12: 'day',
            13: 'day',
            14: 'day',
            15: 'day',
            16: 'day',
            17: 'mml',
            18: 'mml',
            19: 'mml',
            20: 'night',
            21: 'night',
            22: 'night',
            23: 'night'
        }

    def generate(self):
        DistributedWeatherMGR.generate(self)
        
    def announceGenerate(self):
        DistributedWeatherMGR.announceGenerate(self)

    def setSky(self, sky):
        self.hood.skyTransition(str(sky))
    
    def update(self, currentHour):
        self.currSeq = LerpColorScaleInterval(render, self.interval, DayTimeGlobals.COLORS[
            0 if currentHour == 23 else currentHour + 1], DayTimeGlobals.COLORS[currentHour])
        
        self.currSeq.start()
        
        # update the sky
        self.setSky(self.hour2sky[currentHour])

    def delete(self):
        self.currSeq.finish()
        DistributedWeatherMGR.delete(self)
        render.setColorScale(Vec4(1, 1, 1, 1))
Exemple #7
0
    def blink(self,
              rgba: tuple,
              length,
              fade_in: bool = False,
              fade_out: bool = False):
        """Make creature blink with provided rgba color for length amount of time.
        Can be usefull to highlight various effects - getting healed, damage, etc"""

        # TODO: add ability to set not just rgba, but also lightness
        # right now its only possible to make node blink in darker shades, which
        # is done by mixing rgb values. Its not possible to make node blink in
        # white tones, which is one of (together with red) default ways to highlight
        # getting damage with color in these types of games

        if (rgba == self.default_colorscheme) or length <= 0:
            # coz it wont do anything at this point anyway
            return

        sequence = Sequence(name=f"Blinking {self.name} with color {rgba}")

        if fade_in and fade_out:
            length = length / 2

        if fade_in:
            fade_in_effect = LerpColorScaleInterval(
                nodePath=self.node,
                duration=(length),
                colorScale=rgba,
                startColorScale=self.default_colorscheme,
            )
            sequence.append(fade_in_effect)
        else:
            sequence.append(Func(self.node.set_color_scale, rgba))

        if fade_out:
            fade_out_effect = LerpColorScaleInterval(
                nodePath=self.node,
                duration=(length),
                colorScale=self.default_colorscheme,
                startColorScale=rgba,
            )
            sequence.append(fade_out_effect)
        else:
            if not fade_in:
                sequence.append(Wait(length))
            sequence.append(
                Func(self.node.set_color_scale, self.default_colorscheme))

        sequence.start()
Exemple #8
0
    def mouseHoverIn(self):
        
        if self.lighting != None:
            self.lighting.pause()

        self.lighting = LerpColorScaleInterval(self.nodePath, 0.1, Vec4(0.1,0.1,0.1,2), blendType ='noBlend')
        self.lighting.start()
 def handlePickup(self, avId):
     avatar = self.cr.doId2do[avId]
     avatarGoneName = avatar.uniqueName('disable')
     self.accept(avatarGoneName, self.unexpectedExit)
     flyTime = 1.0
     self.stopSpin()
     self.spinIval = Sequence(
         LerpHprInterval(self.bean,
                         duration=1.5,
                         hpr=Vec3(360, 0, 0),
                         startHpr=self.bean.getHpr()))
     self.spinIval.loop()
     self.actuallyCollect(avId, 1.2)
     track = ParallelEndTogether(
         Sequence(
             LerpPosInterval(self.bean,
                             flyTime,
                             pos=Point3(0, 0, 3),
                             startPos=self.bean.getPos(avatar),
                             blendType='easeInOut'),
             Func(self.bean.detachNode), Func(self.ignore, avatarGoneName)),
         LerpColorScaleInterval(self.bean, flyTime, Vec4(0, 0, 0, 0.1),
                                Vec4(1, 1, 1, 1)))
     self.flyTrack = Sequence(track, name='treasureFlyTrack')
     self.bean.reparentTo(avatar)
     self.flyTrack.start()
 def tintTile(self,x,y):
     """
     the 'i was so bored and was looking for something colorful' function. feel free to enable it in the Cube.py file
     """
     if x != None and y != None:
         tile=self.getTileFromPos(x,y)
         
         #tile.setColorScale(0,0,0,1)
         if tile != None:
             if tile.hasPythonTag("Colorlerp"):
                 tile.getPythonTag("Colorlerp").pause()
             seq = Sequence(
                 Wait(.1),
                 LerpColorScaleInterval(tile,.1,(random(),random(),random(),1) ), 
                 LerpColorScaleInterval(tile,10,(1,1,1,1) ) )
             tile.setPythonTag("Colorlerp",seq)
             seq.start()
Exemple #11
0
 def playFireSequence(self):
     self.smokeNode.reparentTo(self.barrelNode)
     self.smokeNode.setPos(0, 6, -3)
     self.smokeNode.setScale(0.5)
     self.smokeNode.wrtReparentTo(render)
     track = Sequence(Parallel(LerpScaleInterval(self.smokeNode, 0.5, 3), LerpColorScaleInterval(self.smokeNode, 0.5, Vec4(2, 2, 2, 0))), Func(self.smokeNode.reparentTo, hidden), Func(self.smokeNode.clearColorScale))
     base.playSfx(self.sndCannonFire)
     track.start()
Exemple #12
0
    def set_stage(self, stage_nr):
        print(("Setting stage", stage_nr))

        Sequence(
            LerpColorScaleInterval(self.text_stage_np,
                                   0.4,
                                   Vec4(1, 1, 1, 0),
                                   Vec4(1),
                                   blendType="easeInOut"),
            Func(lambda *args: self.text_stage.set_text("Stage " + str(stage_nr
                                                                       ))),
            LerpColorScaleInterval(self.text_stage_np,
                                   0.4,
                                   Vec4(1),
                                   Vec4(1, 1, 1, 0),
                                   blendType="easeInOut"),
        ).start()
Exemple #13
0
    def start(self):
        base.musicManager.stopAllSounds()

        self.disableToonInterface()

        self.music.play()

        self.creditsSeq = Sequence(

            # Fade the screen black
            Sequence(
                Func(self.screenCover.show),
                Func(self.screenCover.setTransparency, 1),
                LerpColorScaleInterval(self.screenCover,
                                       4,
                                       Vec4(1, 1, 1, 1),
                                       startColorScale=Vec4(1, 1, 1, 0)),
                Func(self.screenCover.clearColorScale),
                Func(self.screenCover.clearTransparency)),

            # Fade the logo in
            Sequence(
                Func(self.logo.show),
                LerpColorScaleInterval(self.logo,
                                       2,
                                       Vec4(1, 1, 1, 1),
                                       startColorScale=Vec4(1, 1, 1, 0)),
                Func(self.logo.clearColorScale)),

            # Wait 2 seconds
            Wait(2.0),

            # Fade the logo out
            Sequence(
                LerpColorScaleInterval(self.logo,
                                       5,
                                       Vec4(1, 1, 1, 0),
                                       startColorScale=Vec4(1, 1, 1, 1)),
                Func(self.logo.clearColorScale), Func(self.logo.hide)),

            # Chan's slide
            chanSlide.construct(),
        )

        self.creditsSeq.start()
 def showMenu(self):
     self.clearKeys()
     base.accept("arrow_up", self.selectUp)
     base.accept("arrow_down", self.selectDown)
     base.accept("escape", exit)
     base.accept("enter", self.execSelection)
     self.myFrame.show()
     self.main.gui.hide()
     seq = Sequence(LerpColorScaleInterval(self.myFrame, .5, (1, 1, 1, 1)))
     seq.start()
Exemple #15
0
 def hide(self):
     self.gui_node.hide()
     if self.anim is not None:
         self.anim.finish()
     self.anim = Sequence(
         LerpColorScaleInterval(self.gui_node,
                                0.2,
                                Vec4(1, 1, 1, 0),
                                Vec4(1),
                                blendType="easeInOut"))
     self.anim.start()
Exemple #16
0
    def construct(self):
        seq = Sequence(
            Sequence(
                Func(self.show), Func(self.setTransparency, 1),
                LerpColorScaleInterval(self,
                                       3,
                                       Vec4(1, 1, 1, 1),
                                       startColorScale=Vec4(1, 1, 1, 0)),
                Func(self.clearColorScale), Func(self.clearTransparency)),
            Wait(self.duration),
            Sequence(
                Func(self.setTransparency, 1),
                LerpColorScaleInterval(self,
                                       3,
                                       Vec4(1, 1, 1, 0),
                                       startColorScale=Vec4(1, 1, 1, 1)),
                Func(self.clearColorScale), Func(self.clearTransparency),
                Func(self.hide)),
        )

        return seq
Exemple #17
0
 def onMessage(self, msg, *args):
     '''
     Using Messenger objects any game component can broadcast messages which will become available to the active
     nodescript through this method.
     The msg parameter is the name of the message, while *args is a list of arguments provided by the sender.
     
     Each nodescript must first declare the list of messages for which it is interested to receive. The list is declared
     in the NodeScript.registerMessages method.
     '''
     
     # When a sound has finished playing the sound_finished message is broadcasted. 
     # We handle it here to get notified when the blah sound has finished and update the UI accordingly.
     if msg == 'sound_finished':
         print 'FINISHED'
         self.eventText.setFg((1.0, 0.0, 0.0, 0.0))
         self.eventText.show()
         Sequence(
                  LerpColorScaleInterval(self.eventText, 0.5, (1,1,1,1), (1,1,1,0)),
                  LerpColorScaleInterval(self.eventText, 0.5, (1,1,1,0), (1,1,1,1))
                  ).start()
             
                     
Exemple #18
0
    def startCrashEffect(self):
        if not self.getLocationSeeker() or self.crashBegun:
            return
        self.cleanupCrashIval()
        self.crashBegun = True
        if self.crashSite is None:
            self.crashSite = loader.loadModel('phase_6/models/props/piano.bam')
            self.crashSite.setScale(0.5)
            self.crashSite.setTransparency(TransparencyAttrib.MAlpha)
            self.crashSite.setColorScale(1.0, 1.0, 1.0, 0.25)
            self.crashSite.reparentTo(render)
            self.crashSiteGag = self.crashSite.find('**/crashed_piano')
            self.crashSiteGag.setTransparency(TransparencyAttrib.MAlpha)
            self.crashSiteShadow = self.crashSite.find('**/shadow_crack')

            # Clean up the collision nodes.
            for node in self.crashSite.findAllMatches('**/*coll*'):
                node.removeNode()
        self.crashSite.show()

        dropShadow = self.getLocationSeeker().getDropShadow()
        if not dropShadow:
            return
        location = self.getLocationSeeker().getDropShadow().getPos(render)
        self.crashSite.setPos(location.getX(), location.getY(),
                              location.getZ())
        self.crashEndPos = self.crashSiteShadow.getPos()
        self.crashStartPos = Point3(self.crashEndPos.getX(),
                                    self.crashEndPos.getY(),
                                    self.crashEndPos.getZ() + 8.5)

        self.crashSiteIval = Sequence(
            Func(self.crashSiteShadow.hide),
            Func(self.crashSiteGag.headsUp, base.localAvatar),
            Parallel(
                Sequence(
                    LerpPosHprInterval(self.crashSiteGag,
                                       duration=0.75,
                                       pos=self.crashEndPos,
                                       startPos=self.crashStartPos,
                                       startHpr=Point3(0.0, 15.0, 21.30),
                                       hpr=Point3(0.0, 0.0, 0.0)),
                    Func(self.crashSiteShadow.show)), ),
            LerpColorScaleInterval(self.crashSiteShadow,
                                   duration=0.75,
                                   colorScale=Vec4(1.0, 1.0, 1.0, 0.0),
                                   startColorScale=Vec4(1.0, 1.0, 1.0, 1.0)),
            Func(self.crashSiteShadow.hide),
            Func(self.crashSiteShadow.setColorScale, 1.0, 1.0, 1.0, 1.0))
        self.crashSiteIval.loop()
Exemple #19
0
 def show(self):
     """
         showing text animation
     """
     self.gui_node.show()
     if self.anim is not None:
         self.anim.finish()
     self.anim = Sequence(
         LerpColorScaleInterval(self.gui_node,
                                0.2,
                                Vec4(1),
                                Vec4(1, 1, 1, 0),
                                blendType="easeInOut"))
     self.anim.start()
Exemple #20
0
 def add_points(self, player):
     """
         updating score after game end
     """
     if player == 2:
         self.blueScore += 1
         Sequence(
             LerpColorScaleInterval(self.text_blue_np,
                                    0.4,
                                    Vec4(0, 0, 1, 0),
                                    Vec4(1),
                                    blendType="easeInOut"),
             Func(lambda *args: self.text_blue.set_text("BLUE: " + str(
                 self.blueScore))),
             LerpColorScaleInterval(self.text_blue_np,
                                    0.4,
                                    Vec4(1),
                                    Vec4(0, 0, 1, 0),
                                    blendType="easeInOut"),
         ).start()
     elif player == 1:
         self.redScore += 1
         Sequence(
             LerpColorScaleInterval(self.text_red_np,
                                    0.4,
                                    Vec4(1, 0, 0, 0),
                                    Vec4(1),
                                    blendType="easeInOut"),
             Func(lambda *args: self.text_red.set_text("RED: " + str(
                 self.redScore))),
             LerpColorScaleInterval(self.text_red_np,
                                    0.4,
                                    Vec4(1),
                                    Vec4(1, 0, 0, 0),
                                    blendType="easeInOut"),
         ).start()
Exemple #21
0
    def playFireSequence(self):
        # Play the smoke animation
        self.smokeNode.reparentTo(self.barrelNode)
        self.smokeNode.setPos(0, 6, -3)
        self.smokeNode.setScale(.5)
        # reparent to render, so the smoke doesn't get darker in the nighttime
        self.smokeNode.wrtReparentTo(render)
        track = Sequence(
            Parallel(
                LerpScaleInterval(self.smokeNode, .5, 3),
                LerpColorScaleInterval(self.smokeNode, .5, Vec4(2, 2, 2, 0))),
            Func(self.smokeNode.reparentTo, hidden),
            Func(self.smokeNode.clearColorScale),
        )

        base.playSfx(self.sndCannonFire)
        track.start()
Exemple #22
0
 def lightsOn(self):
     
     lighting = LerpColorScaleInterval(self.model, 0.1, Vec4(5,5,5,1), blendType ='easeIn')
     lighting.start()
     
     self.updateTooltip()
Exemple #23
0
 def lightsOff(self):
     
     delighting = LerpColorScaleInterval(self.model, 0.1, Vec4(0.5,0.5,0.5,1), blendType ='easeOut')
     delighting.start()
     
     self.ywn.tooltip.clearText()
Exemple #24
0
 def mouseHoverOut(self):
     
     self.lighting = LerpColorScaleInterval(self.nodePath, 1.5, Vec4(0.5,0.5,0.5,1), blendType ='easeOut')
     self.lighting.start()       
Exemple #25
0
 def fadeOut(self, t):
     return LerpColorScaleInterval(self.cmnode,
                         t,
                         LVecBase4f(0.0,0.0,0.0,0.0),
                         LVecBase4f(0.0,0.0,0.0,1.0))
class LegendaryFishingGameGUI:
    
    def __init__(self, gameObject = None):
        base.loadingScreen.beginStep('LegendaryGameGUI', 4, 20)
        self.gameObject = gameObject
        self.guiImage = loader.loadModel('models/minigames/pir_m_gam_fsh_legendaryGui')
        self.UICompoments = { }
        self.uiBaseNode = NodePath('baseNode')
        self.uiBaseNode.reparentTo(aspect2d)
        self.uiBaseNode.show()
        self.leftBaseNode = NodePath('leftBaseNode')
        self.leftBaseNode.reparentTo(base.a2dLeftCenter)
        self.leftBaseNode.show()
        self.fishActor = None
        self.actorAnim = { }
        self.scaleSize = {
            InventoryType.Collection_Set11_Part1: 0.059999999999999998,
            InventoryType.Collection_Set11_Part2: 0.055,
            InventoryType.Collection_Set11_Part3: 0.12,
            InventoryType.Collection_Set11_Part4: 0.086999999999999994,
            InventoryType.Collection_Set11_Part5: 0.080000000000000002 }
        self.meterFrame = DirectFrame(parent = self.leftBaseNode, frameSize = (-0.29999999999999999, 0.29999999999999999, -1.0, 0.0), frameColor = (1.0, 1.0, 1.0, 0.0), relief = None, state = DGG.DISABLED, pos = (1.0, 0.0, -0.45000000000000001), hpr = (0, 0, 0), scale = (1.3, 0.0, 1.3), image = self.guiImage.find('**/pir_t_gui_fsh_meter'), image_scale = (0.20000000000000001, 0.0, 0.80000000000000004), image_pos = (0, 0, 0), text = '', textMayChange = 1, text_scale = PiratesGuiGlobals.TextScaleTitleLarge, text_pos = (-0.55000000000000004, 0.10000000000000001), text_shadow = PiratesGuiGlobals.TextShadow)
        self.UICompoments['meterFrame'] = self.meterFrame
        self.fishingRod = DirectFrame(parent = self.meterFrame, frameSize = (-0.29999999999999999, 0.29999999999999999, -1.0, 0.0), relief = None, state = DGG.DISABLED, pos = FishingGlobals.fishingRodScreenPosition, image = self.guiImage.find('**/pir_t_gui_fsh_fullRod'), image_scale = (1.0, 0.0, 0.125), image_pos = (0.20000000000000001, 0, 0))
        self.fishingRod.setR(FishingGlobals.fishingRodInitSlope)
        self.UICompoments['fishingRod'] = self.fishingRod
        base.loadingScreen.tick()
        self.fishingHandleBaseFrame = DirectFrame(parent = self.uiBaseNode, frameSize = (-0.29999999999999999, 0.29999999999999999, -1.5, 1.5), frameColor = (1.0, 1.0, 1.0, 0.0), relief = None, state = DGG.DISABLED, pos = (0.0, 0.0, 0.0), hpr = (0, 0, 0), scale = (0.71999999999999997, 0.0, 0.71999999999999997), image = self.guiImage.find('**/pir_t_gui_fsh_partialRod'), image_scale = (3.7999999999999998, 0.0, 1.8999999999999999), image_pos = (0, 0, 0), image_hpr = (0.0, 0.0, 0))
        self.fishingHandleBaseFrame.hide()
        self.UICompoments['fishingHandleBaseFrame'] = self.fishingHandleBaseFrame
        self.fishingHandle = DirectFrame(parent = self.fishingHandleBaseFrame, frameSize = (-0.080000000000000002, 0.080000000000000002, -0.20000000000000001, 0.20000000000000001), relief = None, state = DGG.DISABLED, pos = (-0.10000000000000001, 0.0, -0.050000000000000003), hpr = (0, 0, 0), image = self.guiImage.find('**/pir_t_gui_fsh_handleArm'), image_scale = (1.0, 0.0, 1.0), image_pos = (-0.042000000000000003, 0, -0.115), image_hpr = (0.0, 0.0, 0))
        self.UICompoments['fishingHandle'] = self.fishingHandle
        self.arrowImage = DirectFrame(parent = self.fishingHandleBaseFrame, frameSize = (-0.40000000000000002, 0.40000000000000002, -0.40000000000000002, 0.40000000000000002), relief = None, state = DGG.DISABLED, pos = (0.0, 0.0, 0.0), hpr = (0, 0, 0), scale = (1.2, 0.0, 1.2), image = self.guiImage.find('**/pir_t_gui_fsh_arrow'), image_scale = (1.0, 0.0, 1.0), image_pos = (0.0, 0, 0.0), image_hpr = (0.0, 0.0, 0.0))
        self.arrowImage.hide()
        self.UICompoments['arrowImage'] = self.arrowImage
        btnGeom = (self.guiImage.find('**/pir_t_gui_fsh_handle'), self.guiImage.find('**/pir_t_gui_fsh_handle'), self.guiImage.find('**/pir_t_gui_fsh_handleOn'))
        self.fishingHandleButton = GuiButton(pos = (-0.29999999999999999, 0, -0.55000000000000004), hpr = (0, 0, 0), scale = 0.45000000000000001, image = btnGeom, image_pos = (0, 0, 0), image_scale = 1.0, sortOrder = 2)
        self.fishingHandleButton.bind(DGG.B1PRESS, self.handleButtonClicked)
        self.fishingHandleButton.reparentTo(self.fishingHandle)
        self.UICompoments['fishingHandleButton'] = self.fishingHandleButton
        self.fishingHandleBaseFrame.setTransparency(TransparencyAttrib.MAlpha)
        self.meterFrame.setTransparency(TransparencyAttrib.MAlpha)
        self.lineOneTransitTextNode = TextNode('lineOneTransitText')
        self.lineOneTransitTextNode.setFont(PiratesGlobals.getPirateFont())
        self.lineOneTransitTextNode.setText('')
        self.lineOneTransitTextNode.setAlign(TextNode.ACenter)
        self.lineOneTransitTextNode.setTextColor(1.0, 1.0, 1.0, 0.5)
        self.lineOneTransitTextNodePath = NodePath(self.lineOneTransitTextNode)
        self.lineOneTransitTextNodePath.setPos(0.0, 0.0, -0.80000000000000004)
        self.lineOneTransitTextNodePath.setScale(0.34999999999999998, 0.34999999999999998, 0.34999999999999998)
        self.lineOneTransitTextNodePath.reparentTo(self.uiBaseNode)
        self.lineOneTransitTextNodePath.hide()
        self.UICompoments['lineOneTransitText'] = self.lineOneTransitTextNodePath
        self.lineTwoTransitTextNode = TextNode('lineTwoTransitText')
        self.lineTwoTransitTextNode.setFont(PiratesGlobals.getPirateFont())
        self.lineTwoTransitTextNode.setText('')
        self.lineTwoTransitTextNode.setAlign(TextNode.ACenter)
        self.lineTwoTransitTextNode.setTextColor(1.0, 1.0, 1.0, 0.5)
        self.lineTwoTransitTextNodePath = NodePath(self.lineTwoTransitTextNode)
        self.lineTwoTransitTextNodePath.setPos(-0.40000000000000002, 0.0, -0.94999999999999996)
        self.lineTwoTransitTextNodePath.setScale(0.12, 0.12, 0.12)
        self.lineTwoTransitTextNodePath.reparentTo(self.uiBaseNode)
        self.lineTwoTransitTextNodePath.hide()
        self.UICompoments['lineTwoTransitText'] = self.lineTwoTransitTextNodePath
        base.loadingScreen.tick()
        self.test_guiImage = loader.loadModel('models/gui/toplevel_gui')
        self.buttonIcon = (self.test_guiImage.find('**/treasure_chest_closed'), self.test_guiImage.find('**/treasure_chest_closed'), self.test_guiImage.find('**/treasure_chest_closed_over'))
        self.winImagePanel = GuiPanel.GuiPanel('', 2.6000000000000001, 1.8999999999999999, True)
        self.winImagePanel.setPos(-1.3, 0.0, -0.94999999999999996)
        self.winImagePanel.reparentTo(self.uiBaseNode)
        self.winImagePanel.background = OnscreenImage(parent = self.winImagePanel, scale = (2.3999999999999999, 0, 1.8), image = self.guiImage.find('**/pir_t_gui_fsh_posterBackground'), hpr = (0, 0, 0), pos = (1.3, 0, 0.94999999999999996))
        self.winImagePanel.setBin('gui-popup', -4)
        self.winTitleTextNode = TextNode('winTitleTextNode')
        self.winTitleTextNode.setText('Congratulations!')
        self.winTitleTextNode.setAlign(TextNode.ACenter)
        self.winTitleTextNode.setFont(PiratesGlobals.getPirateFont())
        self.winTitleTextNode.setTextColor(0.23000000000000001, 0.089999999999999997, 0.029999999999999999, 1.0)
        self.winTitleTextNodePath = NodePath(self.winTitleTextNode)
        self.winTitleTextNodePath.setPos(1.3500000000000001, 0.0, 1.6699999999999999)
        self.winTitleTextNodePath.setScale(0.17999999999999999)
        self.winTitleTextNodePath.reparentTo(self.winImagePanel)
        self.wholeStoryTextNode = TextNode('storyTextNode')
        self.wholeStoryTextNode.setText('')
        self.wholeStoryTextNode.setWordwrap(19.0)
        self.wholeStoryTextNode.setTextColor(0.23000000000000001, 0.089999999999999997, 0.029999999999999999, 1.0)
        self.wholeStoryTextNodePath = NodePath(self.wholeStoryTextNode)
        self.wholeStoryTextNodePath.setPos(0.33000000000000002, 0.0, 1.6399999999999999)
        self.wholeStoryTextNodePath.setScale(0.050000000000000003)
        self.wholeStoryTextNodePath.reparentTo(self.winImagePanel)
        self.winImagePanel.closeButton['command'] = self.closeDialogGotNextState
        self.winImagePanel.closeButton['extraArgs'] = [
            'winImagePanel',
            'FarewellLegendaryFish',
            False]
        self.UICompoments['winImagePanel'] = self.winImagePanel
        self.winImagePanel.hide()
        self.luiCloseDialogSequence = Sequence()
        self.arrowImageRotationInterval = LerpHprInterval(self.arrowImage, 2.2000000000000002, self.arrowImage.getHpr() + Point3(0.0, 0.0, 280.0), self.arrowImage.getHpr())
        self.luiArrowRotatingSequence = Sequence(Func(self.showGui, [
            'arrowImage']), Parallel(Func(self.arrowImageRotationInterval.start), Wait(2.2000000000000002)), Func(self.hideGui, [
            'arrowImage']), Func(self.arrowImage.setHpr, self.arrowImage.getHpr() + Point3(0.0, 0.0, 5.0)), name = self.gameObject.distributedFishingSpot.uniqueName('luiArrowRotatingSequence'))
        self.lineOneColorChange = LerpColorScaleInterval(self.lineOneTransitTextNodePath, FishingGlobals.legendaryTransitionTextDuration, (1.0, 1.0, 1.0, 0.0), (1.0, 1.0, 1.0, 1.0), blendType = 'easeOut')
        self.lineOnePosChange = LerpPosInterval(self.lineOneTransitTextNodePath, FishingGlobals.legendaryTransitionTextDuration, (0.0, 0.0, -0.20000000000000001), (0.0, 0.0, -0.80000000000000004), blendType = 'easeOut')
        self.lineTwoCholorChange = LerpColorScaleInterval(self.lineTwoTransitTextNodePath, FishingGlobals.legendaryTransitionTextDuration, (1.0, 1.0, 1.0, 1.0), (1.0, 1.0, 1.0, 1.0), blendType = 'easeOut')
        self.lineTwoPosChange = LerpPosInterval(self.lineTwoTransitTextNodePath, FishingGlobals.legendaryTransitionTextDuration, (0.0, 0.0, -0.32000000000000001), (0.0, 0.0, -0.94999999999999996), blendType = 'easeOut')
        self.transitionTextMovingSequence = Sequence(Func(self.lineOneTransitTextNodePath.show), Func(self.lineTwoTransitTextNodePath.show), Parallel(self.lineOnePosChange, self.lineTwoPosChange, self.lineOneColorChange, self.lineTwoCholorChange), Func(self.lineOneTransitTextNodePath.hide), Func(self.lineTwoTransitTextNodePath.hide), name = self.gameObject.distributedFishingSpot.uniqueName('transitionTextMovingSequence'))
        self.meterFadeInInterval = Sequence(Func(self.meterFrame.show), LerpColorScaleInterval(self.meterFrame, FishingGlobals.legendaryTransitionTextDuration, colorScale = (1.0, 1.0, 1.0, 1.0), startColorScale = (1.0, 1.0, 1.0, 0.0), blendType = 'easeOut'), name = 'FadeInLegendaryMeter')
        self.meterFadeOutInterval = Sequence(LerpColorScaleInterval(self.meterFrame, FishingGlobals.legendaryTransitionTextDuration, colorScale = (1.0, 1.0, 1.0, 0.0), startColorScale = (1.0, 1.0, 1.0, 1.0), blendType = 'easeOut'), Func(self.meterFrame.hide), name = 'FadeOutLegendaryMeter')
        self.rodFadeInInterval = Sequence(Func(self.fishingHandleBaseFrame.show), LerpColorScaleInterval(self.fishingHandleBaseFrame, FishingGlobals.legendaryTransitionTextDuration, colorScale = (1.0, 1.0, 1.0, 1.0), startColorScale = (1.0, 1.0, 1.0, 0.0), blendType = 'easeOut'), name = 'FadeInLegendaryRodInterface')
        self.rodFadeOutInterval = Sequence(LerpColorScaleInterval(self.fishingHandleBaseFrame, FishingGlobals.legendaryTransitionTextDuration, colorScale = (1.0, 1.0, 1.0, 0.0), startColorScale = (1.0, 1.0, 1.0, 1.0), blendType = 'easeOut'), Func(self.fishingHandleBaseFrame.hide), name = 'FadeOutLegendaryRodInterface')
        base.loadingScreen.tick()
        smallScale = self.fishingHandleButton['scale']
        bigScale = self.fishingHandleButton['scale'] * 1.2
        self.buttonGrowUpInterval = LerpScaleInterval(self.fishingHandleButton, 1.0, bigScale, smallScale)
        self.luiFightTransitSequence = Sequence(Parallel(Func(self.fishingHandleBaseFrame.show), Func(self.meterFadeOutInterval.start), Func(self.rodFadeInInterval.start), Func(self.buttonGrowUpInterval.start)), Wait(1.0), Func(self.meterFrame.hide), name = self.gameObject.distributedFishingSpot.uniqueName('luiFightTransitSequence'))
        self.luiReelTransitSequence = Sequence(Parallel(Func(self.fishingHandleBaseFrame.show), Func(self.meterFadeOutInterval.start), Func(self.rodFadeInInterval.start)), Wait(1.0), Func(self.meterFrame.hide), name = self.gameObject.distributedFishingSpot.uniqueName('luiReelTransitSequence'))
        self.luiStruggleTransitSequence = Sequence(Parallel(Func(self.meterFrame.show), Func(self.resetFishingRod), self.meterFadeInInterval, self.rodFadeOutInterval), Wait(1.0), Func(self.fishingHandleBaseFrame.hide), name = self.gameObject.distributedFishingSpot.uniqueName('luiStruggleTransitSequence'))
        self.meterFadeOutInterval.start()
        self.rodFadeOutInterval.start()
        self.hideAllGUI()
        base.loadingScreen.endStep('LegendaryGameGUI')

    
    def hideAllGUI(self):
        self.uiBaseNode.reparentTo(hidden)
        self.leftBaseNode.reparentTo(hidden)

    
    def showAllGUI(self):
        self.uiBaseNode.reparentTo(aspect2d)
        self.leftBaseNode.reparentTo(base.a2dLeftCenter)

    
    def hideGui(self, nameList):
        for ui in nameList:
            self.UICompoments[ui].hide()
        

    
    def showGui(self, nameList):
        for ui in nameList:
            self.UICompoments[ui].show()
        

    
    def destroy(self):
        self.arrowImageRotationInterval.pause()
        self.arrowImageRotationInterval.clearToInitial()
        self.luiArrowRotatingSequence.pause()
        self.luiArrowRotatingSequence.clearToInitial()
        self.luiCloseDialogSequence.pause()
        self.luiCloseDialogSequence.clearToInitial()
        totalKey = self.UICompoments.keys()
        for iKey in totalKey:
            del self.UICompoments[iKey]
        
        self.fishingHandle = None
        self.fishingHandleButton = None
        self.fishingRod.removeNode()
        self.leftBaseNode.removeNode()
        self.uiBaseNode.removeNode()
        if self.fishActor:
            self.fishActor.destroy()
            self.fishActor = None
        

    
    def handleButtonClicked(self, mouseKey):
        if self.gameObject.lfgFsm.getCurrentOrNextState() in [
            'CatchIt']:
            self.gameObject.lfgFsm.request('Transition', 'Struggle')
            self.gameObject.sfx['legendaryGreen'].play()
        

    
    def setTransitionText(self, state):
        self.lineOneTransitTextNode.setText(PLocalizer.LegendaryFishingGui[state][0])
        self.lineTwoTransitTextNode.setText(PLocalizer.LegendaryFishingGui[state][1])

    
    def resetInterval(self):
        self.transitionTextMovingSequence.pause()
        self.transitionTextMovingSequence.clearToInitial()
        self.lineOneColorChange.pause()
        self.lineOneColorChange.clearToInitial()
        self.lineOnePosChange.pause()
        self.lineOnePosChange.clearToInitial()
        self.lineTwoCholorChange.pause()
        self.lineTwoCholorChange.clearToInitial()
        self.lineTwoPosChange.pause()
        self.lineTwoPosChange.clearToInitial()
        self.luiReelTransitSequence.pause()
        self.luiReelTransitSequence.clearToInitial()
        self.luiStruggleTransitSequence.pause()
        self.luiStruggleTransitSequence.clearToInitial()
        self.luiFightTransitSequence.pause()
        self.luiFightTransitSequence.clearToInitial()
        self.buttonGrowUpInterval.pause()
        self.buttonGrowUpInterval.clearToInitial()
        self.meterFadeOutInterval.pause()
        self.meterFadeOutInterval.clearToInitial()
        self.rodFadeInInterval.pause()
        self.rodFadeInInterval.clearToInitial()
        self.meterFadeInInterval.pause()
        self.meterFadeInInterval.clearToInitial()
        self.rodFadeOutInterval.pause()
        self.rodFadeOutInterval.clearToInitial()

    
    def fightingTransit(self):
        self.luiFightTransitSequence.start()

    
    def reelTransit(self):
        self.luiReelTransitSequence.start()

    
    def struggleTransit(self):
        self.luiStruggleTransitSequence.start()

    
    def resetFishingRod(self):
        self.fishingRod.setR(FishingGlobals.fishingRodInitSlope)

    
    def showWinImage(self, fish):
        self.hideGui([
            'meterFrame',
            'fishingHandleBaseFrame'])
        result = fish.myData['name'].split(' ')
        fileName = str(result[0]).capitalize()
        imgName = 'pir_t_gui_fsh_render%s' % fileName
        self.actorAnim['swimIdleOpposite'] = 'models/char/pir_a_gam_fsh_%s_%s.bam' % (fish.myData['model'], 'swimIdleOpposite')
        self.fishActor = BlendActor('models/char/pir_r_gam_fsh_%s.bam' % fish.myData['model'], self.actorAnim, FishingGlobals.defaultFishBlendTime, FishingGlobals.fishBlendTimeDict)
        self.fishActor.setPlayRate(fish.myData['speed'] * fish.myData['swimAnimationMultiplier'], 'swimIdleOpposite')
        self.fishActor.changeAnimationTo('swimIdleOpposite')
        self.fishActor.reparentTo(self.winImagePanel)
        self.fishActor.setScale(self.scaleSize[fish.myData['id']])
        self.fishActor.setPos(1.7, 0, 1.0)
        self.fishActor.setHpr(0, 0, 35)
        self.fishActor.setDepthWrite(True)
        self.fishActor.setDepthTest(True)
        self.wholeStoryTextNode.setText(PLocalizer.LegendSelectionGui['wholeStory'][fish.myData['id']])
        self.winImagePanel.show()

    
    def closeDialogGotNextState(self, object, targetState, ifFadeInAgain):
        if self.fishActor:
            self.fishActor.destroy()
            self.fishActor = None
        
        self.luiCloseDialogSequence = Sequence(Func(self.gameObject.distributedFishingSpot.fadeOut), Wait(0.40000000000000002), Func(self.UICompoments[object].hide), Func(self.gameObject.lfgFsm.request, targetState), name = self.gameObject.distributedFishingSpot.uniqueName('luiCloseDialogSequence'))
        self.luiCloseDialogSequence.start()

    
    def updateStruggleTimerText(self, time, percent):
        self.meterFrame['text'] = str(time)
        self.meterFrame['text_fg'] = (1.0 - percent, percent, 0.0, 1.0)
Exemple #27
0
 def createFadeOut(logo):
     return LerpColorScaleInterval(logo, 2,
                                   LVecBase4f(0.0, 0.0, 0.0, 0.0),
                                   LVecBase4f(0.0, 0.0, 0.0, 1.0))
Exemple #28
0
 def showMenu(self):
     self.myFrame.show()
     self.main.gui.hide()
     seq = Sequence(LerpColorScaleInterval(self.myFrame, .5, (1, 1, 1, 1)))
     seq.start()
 def hideResume(self):
     seq = Sequence(
         LerpColorScaleInterval(self.resumeButton, .5, (1, 1, 1, 0)),
         Func(self.resumeButton.hide))
     seq.start()
Exemple #30
0
 def __init__(self, gameObject=None):
     base.loadingScreen.beginStep('LegendaryGameGUI', 4, 20)
     self.gameObject = gameObject
     self.guiImage = loader.loadModel(
         'models/minigames/pir_m_gam_fsh_legendaryGui')
     self.UICompoments = {}
     self.uiBaseNode = NodePath('baseNode')
     self.uiBaseNode.reparentTo(aspect2d)
     self.uiBaseNode.show()
     self.leftBaseNode = NodePath('leftBaseNode')
     self.leftBaseNode.reparentTo(base.a2dLeftCenter)
     self.leftBaseNode.show()
     self.fishActor = None
     self.actorAnim = {}
     self.scaleSize = {
         InventoryType.Collection_Set11_Part1: 0.059999999999999998,
         InventoryType.Collection_Set11_Part2: 0.055,
         InventoryType.Collection_Set11_Part3: 0.12,
         InventoryType.Collection_Set11_Part4: 0.086999999999999994,
         InventoryType.Collection_Set11_Part5: 0.080000000000000002
     }
     self.meterFrame = DirectFrame(
         parent=self.leftBaseNode,
         frameSize=(-0.29999999999999999, 0.29999999999999999, -1.0, 0.0),
         frameColor=(1.0, 1.0, 1.0, 0.0),
         relief=None,
         state=DGG.DISABLED,
         pos=(1.0, 0.0, -0.45000000000000001),
         hpr=(0, 0, 0),
         scale=(1.3, 0.0, 1.3),
         image=self.guiImage.find('**/pir_t_gui_fsh_meter'),
         image_scale=(0.20000000000000001, 0.0, 0.80000000000000004),
         image_pos=(0, 0, 0),
         text='',
         textMayChange=1,
         text_scale=PiratesGuiGlobals.TextScaleTitleLarge,
         text_pos=(-0.55000000000000004, 0.10000000000000001),
         text_shadow=PiratesGuiGlobals.TextShadow)
     self.UICompoments['meterFrame'] = self.meterFrame
     self.fishingRod = DirectFrame(
         parent=self.meterFrame,
         frameSize=(-0.29999999999999999, 0.29999999999999999, -1.0, 0.0),
         relief=None,
         state=DGG.DISABLED,
         pos=FishingGlobals.fishingRodScreenPosition,
         image=self.guiImage.find('**/pir_t_gui_fsh_fullRod'),
         image_scale=(1.0, 0.0, 0.125),
         image_pos=(0.20000000000000001, 0, 0))
     self.fishingRod.setR(FishingGlobals.fishingRodInitSlope)
     self.UICompoments['fishingRod'] = self.fishingRod
     base.loadingScreen.tick()
     self.fishingHandleBaseFrame = DirectFrame(
         parent=self.uiBaseNode,
         frameSize=(-0.29999999999999999, 0.29999999999999999, -1.5, 1.5),
         frameColor=(1.0, 1.0, 1.0, 0.0),
         relief=None,
         state=DGG.DISABLED,
         pos=(0.0, 0.0, 0.0),
         hpr=(0, 0, 0),
         scale=(0.71999999999999997, 0.0, 0.71999999999999997),
         image=self.guiImage.find('**/pir_t_gui_fsh_partialRod'),
         image_scale=(3.7999999999999998, 0.0, 1.8999999999999999),
         image_pos=(0, 0, 0),
         image_hpr=(0.0, 0.0, 0))
     self.fishingHandleBaseFrame.hide()
     self.UICompoments[
         'fishingHandleBaseFrame'] = self.fishingHandleBaseFrame
     self.fishingHandle = DirectFrame(
         parent=self.fishingHandleBaseFrame,
         frameSize=(-0.080000000000000002, 0.080000000000000002,
                    -0.20000000000000001, 0.20000000000000001),
         relief=None,
         state=DGG.DISABLED,
         pos=(-0.10000000000000001, 0.0, -0.050000000000000003),
         hpr=(0, 0, 0),
         image=self.guiImage.find('**/pir_t_gui_fsh_handleArm'),
         image_scale=(1.0, 0.0, 1.0),
         image_pos=(-0.042000000000000003, 0, -0.115),
         image_hpr=(0.0, 0.0, 0))
     self.UICompoments['fishingHandle'] = self.fishingHandle
     self.arrowImage = DirectFrame(
         parent=self.fishingHandleBaseFrame,
         frameSize=(-0.40000000000000002, 0.40000000000000002,
                    -0.40000000000000002, 0.40000000000000002),
         relief=None,
         state=DGG.DISABLED,
         pos=(0.0, 0.0, 0.0),
         hpr=(0, 0, 0),
         scale=(1.2, 0.0, 1.2),
         image=self.guiImage.find('**/pir_t_gui_fsh_arrow'),
         image_scale=(1.0, 0.0, 1.0),
         image_pos=(0.0, 0, 0.0),
         image_hpr=(0.0, 0.0, 0.0))
     self.arrowImage.hide()
     self.UICompoments['arrowImage'] = self.arrowImage
     btnGeom = (self.guiImage.find('**/pir_t_gui_fsh_handle'),
                self.guiImage.find('**/pir_t_gui_fsh_handle'),
                self.guiImage.find('**/pir_t_gui_fsh_handleOn'))
     self.fishingHandleButton = GuiButton(pos=(-0.29999999999999999, 0,
                                               -0.55000000000000004),
                                          hpr=(0, 0, 0),
                                          scale=0.45000000000000001,
                                          image=btnGeom,
                                          image_pos=(0, 0, 0),
                                          image_scale=1.0,
                                          sortOrder=2)
     self.fishingHandleButton.bind(DGG.B1PRESS, self.handleButtonClicked)
     self.fishingHandleButton.reparentTo(self.fishingHandle)
     self.UICompoments['fishingHandleButton'] = self.fishingHandleButton
     self.fishingHandleBaseFrame.setTransparency(TransparencyAttrib.MAlpha)
     self.meterFrame.setTransparency(TransparencyAttrib.MAlpha)
     self.lineOneTransitTextNode = TextNode('lineOneTransitText')
     self.lineOneTransitTextNode.setFont(PiratesGlobals.getPirateFont())
     self.lineOneTransitTextNode.setText('')
     self.lineOneTransitTextNode.setAlign(TextNode.ACenter)
     self.lineOneTransitTextNode.setTextColor(1.0, 1.0, 1.0, 0.5)
     self.lineOneTransitTextNodePath = NodePath(self.lineOneTransitTextNode)
     self.lineOneTransitTextNodePath.setPos(0.0, 0.0, -0.80000000000000004)
     self.lineOneTransitTextNodePath.setScale(0.34999999999999998,
                                              0.34999999999999998,
                                              0.34999999999999998)
     self.lineOneTransitTextNodePath.reparentTo(self.uiBaseNode)
     self.lineOneTransitTextNodePath.hide()
     self.UICompoments[
         'lineOneTransitText'] = self.lineOneTransitTextNodePath
     self.lineTwoTransitTextNode = TextNode('lineTwoTransitText')
     self.lineTwoTransitTextNode.setFont(PiratesGlobals.getPirateFont())
     self.lineTwoTransitTextNode.setText('')
     self.lineTwoTransitTextNode.setAlign(TextNode.ACenter)
     self.lineTwoTransitTextNode.setTextColor(1.0, 1.0, 1.0, 0.5)
     self.lineTwoTransitTextNodePath = NodePath(self.lineTwoTransitTextNode)
     self.lineTwoTransitTextNodePath.setPos(-0.40000000000000002, 0.0,
                                            -0.94999999999999996)
     self.lineTwoTransitTextNodePath.setScale(0.12, 0.12, 0.12)
     self.lineTwoTransitTextNodePath.reparentTo(self.uiBaseNode)
     self.lineTwoTransitTextNodePath.hide()
     self.UICompoments[
         'lineTwoTransitText'] = self.lineTwoTransitTextNodePath
     base.loadingScreen.tick()
     self.test_guiImage = loader.loadModel('models/gui/toplevel_gui')
     self.buttonIcon = (
         self.test_guiImage.find('**/treasure_chest_closed'),
         self.test_guiImage.find('**/treasure_chest_closed'),
         self.test_guiImage.find('**/treasure_chest_closed_over'))
     self.winImagePanel = GuiPanel.GuiPanel('', 2.6000000000000001,
                                            1.8999999999999999, True)
     self.winImagePanel.setPos(-1.3, 0.0, -0.94999999999999996)
     self.winImagePanel.reparentTo(self.uiBaseNode)
     self.winImagePanel.background = OnscreenImage(
         parent=self.winImagePanel,
         scale=(2.3999999999999999, 0, 1.8),
         image=self.guiImage.find('**/pir_t_gui_fsh_posterBackground'),
         hpr=(0, 0, 0),
         pos=(1.3, 0, 0.94999999999999996))
     self.winImagePanel.setBin('gui-popup', -4)
     self.winTitleTextNode = TextNode('winTitleTextNode')
     self.winTitleTextNode.setText('Congratulations!')
     self.winTitleTextNode.setAlign(TextNode.ACenter)
     self.winTitleTextNode.setFont(PiratesGlobals.getPirateFont())
     self.winTitleTextNode.setTextColor(0.23000000000000001,
                                        0.089999999999999997,
                                        0.029999999999999999, 1.0)
     self.winTitleTextNodePath = NodePath(self.winTitleTextNode)
     self.winTitleTextNodePath.setPos(1.3500000000000001, 0.0,
                                      1.6699999999999999)
     self.winTitleTextNodePath.setScale(0.17999999999999999)
     self.winTitleTextNodePath.reparentTo(self.winImagePanel)
     self.wholeStoryTextNode = TextNode('storyTextNode')
     self.wholeStoryTextNode.setText('')
     self.wholeStoryTextNode.setWordwrap(19.0)
     self.wholeStoryTextNode.setTextColor(0.23000000000000001,
                                          0.089999999999999997,
                                          0.029999999999999999, 1.0)
     self.wholeStoryTextNodePath = NodePath(self.wholeStoryTextNode)
     self.wholeStoryTextNodePath.setPos(0.33000000000000002, 0.0,
                                        1.6399999999999999)
     self.wholeStoryTextNodePath.setScale(0.050000000000000003)
     self.wholeStoryTextNodePath.reparentTo(self.winImagePanel)
     self.winImagePanel.closeButton[
         'command'] = self.closeDialogGotNextState
     self.winImagePanel.closeButton['extraArgs'] = [
         'winImagePanel', 'FarewellLegendaryFish', False
     ]
     self.UICompoments['winImagePanel'] = self.winImagePanel
     self.winImagePanel.hide()
     self.luiCloseDialogSequence = Sequence()
     self.arrowImageRotationInterval = LerpHprInterval(
         self.arrowImage, 2.2000000000000002,
         self.arrowImage.getHpr() + Point3(0.0, 0.0, 280.0),
         self.arrowImage.getHpr())
     self.luiArrowRotatingSequence = Sequence(
         Func(self.showGui, ['arrowImage']),
         Parallel(Func(self.arrowImageRotationInterval.start),
                  Wait(2.2000000000000002)),
         Func(self.hideGui, ['arrowImage']),
         Func(self.arrowImage.setHpr,
              self.arrowImage.getHpr() + Point3(0.0, 0.0, 5.0)),
         name=self.gameObject.distributedFishingSpot.uniqueName(
             'luiArrowRotatingSequence'))
     self.lineOneColorChange = LerpColorScaleInterval(
         self.lineOneTransitTextNodePath,
         FishingGlobals.legendaryTransitionTextDuration,
         (1.0, 1.0, 1.0, 0.0), (1.0, 1.0, 1.0, 1.0),
         blendType='easeOut')
     self.lineOnePosChange = LerpPosInterval(
         self.lineOneTransitTextNodePath,
         FishingGlobals.legendaryTransitionTextDuration,
         (0.0, 0.0, -0.20000000000000001), (0.0, 0.0, -0.80000000000000004),
         blendType='easeOut')
     self.lineTwoCholorChange = LerpColorScaleInterval(
         self.lineTwoTransitTextNodePath,
         FishingGlobals.legendaryTransitionTextDuration,
         (1.0, 1.0, 1.0, 1.0), (1.0, 1.0, 1.0, 1.0),
         blendType='easeOut')
     self.lineTwoPosChange = LerpPosInterval(
         self.lineTwoTransitTextNodePath,
         FishingGlobals.legendaryTransitionTextDuration,
         (0.0, 0.0, -0.32000000000000001), (0.0, 0.0, -0.94999999999999996),
         blendType='easeOut')
     self.transitionTextMovingSequence = Sequence(
         Func(self.lineOneTransitTextNodePath.show),
         Func(self.lineTwoTransitTextNodePath.show),
         Parallel(self.lineOnePosChange, self.lineTwoPosChange,
                  self.lineOneColorChange, self.lineTwoCholorChange),
         Func(self.lineOneTransitTextNodePath.hide),
         Func(self.lineTwoTransitTextNodePath.hide),
         name=self.gameObject.distributedFishingSpot.uniqueName(
             'transitionTextMovingSequence'))
     self.meterFadeInInterval = Sequence(
         Func(self.meterFrame.show),
         LerpColorScaleInterval(
             self.meterFrame,
             FishingGlobals.legendaryTransitionTextDuration,
             colorScale=(1.0, 1.0, 1.0, 1.0),
             startColorScale=(1.0, 1.0, 1.0, 0.0),
             blendType='easeOut'),
         name='FadeInLegendaryMeter')
     self.meterFadeOutInterval = Sequence(LerpColorScaleInterval(
         self.meterFrame,
         FishingGlobals.legendaryTransitionTextDuration,
         colorScale=(1.0, 1.0, 1.0, 0.0),
         startColorScale=(1.0, 1.0, 1.0, 1.0),
         blendType='easeOut'),
                                          Func(self.meterFrame.hide),
                                          name='FadeOutLegendaryMeter')
     self.rodFadeInInterval = Sequence(
         Func(self.fishingHandleBaseFrame.show),
         LerpColorScaleInterval(
             self.fishingHandleBaseFrame,
             FishingGlobals.legendaryTransitionTextDuration,
             colorScale=(1.0, 1.0, 1.0, 1.0),
             startColorScale=(1.0, 1.0, 1.0, 0.0),
             blendType='easeOut'),
         name='FadeInLegendaryRodInterface')
     self.rodFadeOutInterval = Sequence(
         LerpColorScaleInterval(
             self.fishingHandleBaseFrame,
             FishingGlobals.legendaryTransitionTextDuration,
             colorScale=(1.0, 1.0, 1.0, 0.0),
             startColorScale=(1.0, 1.0, 1.0, 1.0),
             blendType='easeOut'),
         Func(self.fishingHandleBaseFrame.hide),
         name='FadeOutLegendaryRodInterface')
     base.loadingScreen.tick()
     smallScale = self.fishingHandleButton['scale']
     bigScale = self.fishingHandleButton['scale'] * 1.2
     self.buttonGrowUpInterval = LerpScaleInterval(self.fishingHandleButton,
                                                   1.0, bigScale,
                                                   smallScale)
     self.luiFightTransitSequence = Sequence(
         Parallel(Func(self.fishingHandleBaseFrame.show),
                  Func(self.meterFadeOutInterval.start),
                  Func(self.rodFadeInInterval.start),
                  Func(self.buttonGrowUpInterval.start)),
         Wait(1.0),
         Func(self.meterFrame.hide),
         name=self.gameObject.distributedFishingSpot.uniqueName(
             'luiFightTransitSequence'))
     self.luiReelTransitSequence = Sequence(
         Parallel(Func(self.fishingHandleBaseFrame.show),
                  Func(self.meterFadeOutInterval.start),
                  Func(self.rodFadeInInterval.start)),
         Wait(1.0),
         Func(self.meterFrame.hide),
         name=self.gameObject.distributedFishingSpot.uniqueName(
             'luiReelTransitSequence'))
     self.luiStruggleTransitSequence = Sequence(
         Parallel(Func(self.meterFrame.show), Func(self.resetFishingRod),
                  self.meterFadeInInterval, self.rodFadeOutInterval),
         Wait(1.0),
         Func(self.fishingHandleBaseFrame.hide),
         name=self.gameObject.distributedFishingSpot.uniqueName(
             'luiStruggleTransitSequence'))
     self.meterFadeOutInterval.start()
     self.rodFadeOutInterval.start()
     self.hideAllGUI()
     base.loadingScreen.endStep('LegendaryGameGUI')
Exemple #31
0
class DistributedWeatherCycle(DistributedObject):
    notify = DirectNotifyGlobal.directNotify.newCategory(
        'DistributedWeatherCycle')

    def __init__(self, cr):
        DistributedObject.__init__(self, cr)
        self.fsm = ClassicFSM(self.__class__.__name__, [
            State('off', self.enterOff, self.exitOff, ['morning']),
            State('morning', self.enterMorning, self.exitMorning,
                  ['afternoon']),
            State('afternoon', self.enterAfternoon, self.exitAfternoon,
                  ['evening']),
            State('evening', self.enterEvening, self.exitEvening,
                  ['midnight']),
            State('midnight', self.enterMidnight, self.exitMidnight,
                  ['morning'])
        ], 'off', 'off')
        self.fsm.enterInitialState()
        self.__interval = None

    def setState(self, state):
        self.fsm.request(state)

    def getState(self):
        return self.fsm.getCurrentState()._State__name

    def setDuration(self, duration):
        self.duration = duration

    def getDuration(self):
        return self.duration

    def enterOff(self):
        pass

    def exitOff(self):
        pass

    def enterMorning(self):
        self.__interval = LerpColorScaleInterval(
            render,
            self.getDuration(),
            WeatherGlobals.cycleColors[0],
            startColorScale=render.getColorScale())
        self.__interval.start()

    def exitMorning(self):
        if not self.__interval:
            return
        self.__interval.finish()
        self.__interval = None

    def enterAfternoon(self):
        self.__interval = LerpColorScaleInterval(
            render,
            self.getDuration(),
            WeatherGlobals.cycleColors[1],
            startColorScale=render.getColorScale())
        self.__interval.start()

    def exitAfternoon(self):
        if not self.__interval:
            return
        self.__interval.finish()
        self.__interval = None

    def enterEvening(self):
        self.__interval = LerpColorScaleInterval(
            render,
            self.getDuration(),
            WeatherGlobals.cycleColors[2],
            startColorScale=render.getColorScale())
        self.__interval.start()

    def exitEvening(self):
        if not self.__interval:
            return
        self.__interval.finish()
        self.__interval = None

    def enterMidnight(self):
        self.__interval = LerpColorScaleInterval(
            render,
            self.getDuration(),
            WeatherGlobals.cycleColors[3],
            startColorScale=render.getColorScale())
        self.__interval.start()

    def exitMidnight(self):
        if not self.__interval:
            return
        self.__interval.finish()
        self.__interval = None
Exemple #32
0
    def enterIntro(self):
        helper.hide_cursor()
        cm = CardMaker("fade")
        cm.setFrameFullscreenQuad()
        self.gfLogo = NodePath(cm.generate())
        self.gfLogo.setTransparency(TransparencyAttrib.MAlpha)
        gfLogotex = loader.loadTexture('GrimFangLogo.png')
        gfLogots = TextureStage('gfLogoTS')
        gfLogots.setMode(TextureStage.MReplace)
        self.gfLogo.setTexture(gfLogots, gfLogotex)
        self.gfLogo.setY(-50)
        self.gfLogo.reparentTo(render2d)
        self.gfLogo.hide()

        self.pandaLogo = NodePath(cm.generate())
        self.pandaLogo.setTransparency(TransparencyAttrib.MAlpha)
        pandaLogotex = loader.loadTexture('Panda3DLogo.png')
        pandaLogots = TextureStage('pandaLogoTS')
        pandaLogots.setMode(TextureStage.MReplace)
        self.pandaLogo.setTexture(pandaLogots, pandaLogotex)
        self.pandaLogo.setY(-50)
        self.pandaLogo.reparentTo(render2d)
        self.pandaLogo.hide()

        gfFadeInInterval = LerpColorScaleInterval(
            self.gfLogo,
            2,
            LVecBase4f(0.0,0.0,0.0,1.0),
            LVecBase4f(0.0,0.0,0.0,0.0))

        gfFadeOutInterval = LerpColorScaleInterval(
            self.gfLogo,
            2,
            LVecBase4f(0.0,0.0,0.0,0.0),
            LVecBase4f(0.0,0.0,0.0,1.0))

        p3dFadeInInterval = LerpColorScaleInterval(
            self.pandaLogo,
            2,
            LVecBase4f(0.0,0.0,0.0,1.0),
            LVecBase4f(0.0,0.0,0.0,0.0))

        p3dFadeOutInterval = LerpColorScaleInterval(
            self.pandaLogo,
            2,
            LVecBase4f(0.0,0.0,0.0,0.0),
            LVecBase4f(0.0,0.0,0.0,1.0))

        self.fadeInOut = Sequence(
            Func(self.pandaLogo.show),
            p3dFadeInInterval,
            Wait(1.0),
            p3dFadeOutInterval,
            Wait(0.5),
            Func(self.pandaLogo.hide),
            Func(self.gfLogo.show),
            gfFadeInInterval,
            Wait(1.0),
            gfFadeOutInterval,
            Wait(0.5),
            Func(self.gfLogo.hide),
            Func(self.request, "Menu"),
            Func(helper.show_cursor),
            name="fadeInOut")
        self.fadeInOut.start()
Exemple #33
0
    def __init__(self):
        ShowBase.__init__(self)
        FSM.__init__(self, "FSM-Game")

        #
        # BASIC APPLICATION CONFIGURATIONS
        #
        self.disableMouse()
        self.setBackgroundColor(0, 0, 0)
        self.camLens.setFov(75)
        self.camLens.setNear(0.8)

        # check if the config file hasn't been created
        base.textWriteSpeed = 0.05
        mute = ConfigVariableBool("audio-mute", False).getValue()
        if mute:
            self.disableAllAudio()
        else:
            self.enableAllAudio()
        particles = ConfigVariableBool("particles-enabled", True).getValue()
        if particles:
            self.enableParticles()
        base.textWriteSpeed = ConfigVariableDouble("text-write-speed",0.05).getValue()
        base.controlType = ConfigVariableString("control-type", "Gamepad").getValue()
        base.mouseSensitivity = ConfigVariableDouble("mouse-sensitivity",1.0).getValue()
        if not os.path.exists(prcFile):
            self.__writeConfig()
            # set window properties
            # clear all properties not previously set
            self.win.clearRejectedProperties()
            # setup new window properties
            props = WindowProperties()
            # Fullscreen
            props.setFullscreen(True)
            # window icon
            print props.hasIconFilename()
            props.setIconFilename(windowicon)
            # get the displays width and height
            w = self.pipe.getDisplayWidth()
            h = self.pipe.getDisplayHeight()
            # set the window size to the screen resolution
            props.setSize(w, h)
            # request the new properties
            self.win.requestProperties(props)
        atexit.register(self.__writeConfig)

        # enable collision handling
        base.cTrav = CollisionTraverser("base collision traverser")
        base.pusher = CollisionHandlerPusher()
        base.pusher.addInPattern('%fn-in-%in')
        base.pusher.addOutPattern('%fn-out-%in')

        self.menu = Menu()
        self.options = OptionsMenu()

        self.musicMenu = loader.loadMusic("MayanJingle6_Menu.ogg")
        self.musicMenu.setLoop(True)

        cm = CardMaker("menuFade")
        cm.setFrameFullscreenQuad()
        self.menuCoverFade = NodePath(cm.generate())
        self.menuCoverFade.setTransparency(TransparencyAttrib.MAlpha)
        self.menuCoverFade.setBin("fixed", 1000)
        self.menuCoverFade.reparentTo(render2d)
        self.menuCoverFade.hide()
        self.menuCoverFadeOutInterval = Sequence(
            Func(self.menuCoverFade.show),
            LerpColorScaleInterval(
                self.menuCoverFade,
                1,
                LVecBase4f(0.0,0.0,0.0,1.0),
                LVecBase4f(0.0,0.0,0.0,0.0)),
            Func(self.menuCoverFade.hide))
        self.menuCoverFadeInInterval = Sequence(
            Func(self.menuCoverFade.show),
            LerpColorScaleInterval(
                self.menuCoverFade,
                1,
                LVecBase4f(0.0,0.0,0.0,0.0),
                LVecBase4f(0.0,0.0,0.0,1.0)),
            Func(self.menuCoverFade.hide))
        self.lerpAudioFadeOut = LerpFunc(
            self.audioFade,
            fromData=1.0,
            toData=0.0,
            duration=0.25,
            extraArgs=[self.musicMenu])
        self.fadeMusicOut = Sequence(
            self.lerpAudioFadeOut,
            Func(self.musicMenu.stop))
        self.lerpAudioFadeIn = LerpFunc(
            self.audioFade,
            fromData=0.0,
            toData=1.0,
            duration=1,
            extraArgs=[self.musicMenu])
        self.fadeMusicIn = Sequence(
                Func(self.musicMenu.play),
                self.lerpAudioFadeIn)

        self.seqFade = None
        self.acceptAll()

        self.request("Intro")
Exemple #34
0
 def showResume(self):
     self.resumeButton.show()
     seq = Sequence(
         LerpColorScaleInterval(self.resumeButton, .5, (1, 1, 1, 1)))
     seq.start()
Exemple #35
0
class LegendaryFishingGameGUI:
    def __init__(self, gameObject=None):
        base.loadingScreen.beginStep('LegendaryGameGUI', 4, 20)
        self.gameObject = gameObject
        self.guiImage = loader.loadModel(
            'models/minigames/pir_m_gam_fsh_legendaryGui')
        self.UICompoments = {}
        self.uiBaseNode = NodePath('baseNode')
        self.uiBaseNode.reparentTo(aspect2d)
        self.uiBaseNode.show()
        self.leftBaseNode = NodePath('leftBaseNode')
        self.leftBaseNode.reparentTo(base.a2dLeftCenter)
        self.leftBaseNode.show()
        self.fishActor = None
        self.actorAnim = {}
        self.scaleSize = {
            InventoryType.Collection_Set11_Part1: 0.059999999999999998,
            InventoryType.Collection_Set11_Part2: 0.055,
            InventoryType.Collection_Set11_Part3: 0.12,
            InventoryType.Collection_Set11_Part4: 0.086999999999999994,
            InventoryType.Collection_Set11_Part5: 0.080000000000000002
        }
        self.meterFrame = DirectFrame(
            parent=self.leftBaseNode,
            frameSize=(-0.29999999999999999, 0.29999999999999999, -1.0, 0.0),
            frameColor=(1.0, 1.0, 1.0, 0.0),
            relief=None,
            state=DGG.DISABLED,
            pos=(1.0, 0.0, -0.45000000000000001),
            hpr=(0, 0, 0),
            scale=(1.3, 0.0, 1.3),
            image=self.guiImage.find('**/pir_t_gui_fsh_meter'),
            image_scale=(0.20000000000000001, 0.0, 0.80000000000000004),
            image_pos=(0, 0, 0),
            text='',
            textMayChange=1,
            text_scale=PiratesGuiGlobals.TextScaleTitleLarge,
            text_pos=(-0.55000000000000004, 0.10000000000000001),
            text_shadow=PiratesGuiGlobals.TextShadow)
        self.UICompoments['meterFrame'] = self.meterFrame
        self.fishingRod = DirectFrame(
            parent=self.meterFrame,
            frameSize=(-0.29999999999999999, 0.29999999999999999, -1.0, 0.0),
            relief=None,
            state=DGG.DISABLED,
            pos=FishingGlobals.fishingRodScreenPosition,
            image=self.guiImage.find('**/pir_t_gui_fsh_fullRod'),
            image_scale=(1.0, 0.0, 0.125),
            image_pos=(0.20000000000000001, 0, 0))
        self.fishingRod.setR(FishingGlobals.fishingRodInitSlope)
        self.UICompoments['fishingRod'] = self.fishingRod
        base.loadingScreen.tick()
        self.fishingHandleBaseFrame = DirectFrame(
            parent=self.uiBaseNode,
            frameSize=(-0.29999999999999999, 0.29999999999999999, -1.5, 1.5),
            frameColor=(1.0, 1.0, 1.0, 0.0),
            relief=None,
            state=DGG.DISABLED,
            pos=(0.0, 0.0, 0.0),
            hpr=(0, 0, 0),
            scale=(0.71999999999999997, 0.0, 0.71999999999999997),
            image=self.guiImage.find('**/pir_t_gui_fsh_partialRod'),
            image_scale=(3.7999999999999998, 0.0, 1.8999999999999999),
            image_pos=(0, 0, 0),
            image_hpr=(0.0, 0.0, 0))
        self.fishingHandleBaseFrame.hide()
        self.UICompoments[
            'fishingHandleBaseFrame'] = self.fishingHandleBaseFrame
        self.fishingHandle = DirectFrame(
            parent=self.fishingHandleBaseFrame,
            frameSize=(-0.080000000000000002, 0.080000000000000002,
                       -0.20000000000000001, 0.20000000000000001),
            relief=None,
            state=DGG.DISABLED,
            pos=(-0.10000000000000001, 0.0, -0.050000000000000003),
            hpr=(0, 0, 0),
            image=self.guiImage.find('**/pir_t_gui_fsh_handleArm'),
            image_scale=(1.0, 0.0, 1.0),
            image_pos=(-0.042000000000000003, 0, -0.115),
            image_hpr=(0.0, 0.0, 0))
        self.UICompoments['fishingHandle'] = self.fishingHandle
        self.arrowImage = DirectFrame(
            parent=self.fishingHandleBaseFrame,
            frameSize=(-0.40000000000000002, 0.40000000000000002,
                       -0.40000000000000002, 0.40000000000000002),
            relief=None,
            state=DGG.DISABLED,
            pos=(0.0, 0.0, 0.0),
            hpr=(0, 0, 0),
            scale=(1.2, 0.0, 1.2),
            image=self.guiImage.find('**/pir_t_gui_fsh_arrow'),
            image_scale=(1.0, 0.0, 1.0),
            image_pos=(0.0, 0, 0.0),
            image_hpr=(0.0, 0.0, 0.0))
        self.arrowImage.hide()
        self.UICompoments['arrowImage'] = self.arrowImage
        btnGeom = (self.guiImage.find('**/pir_t_gui_fsh_handle'),
                   self.guiImage.find('**/pir_t_gui_fsh_handle'),
                   self.guiImage.find('**/pir_t_gui_fsh_handleOn'))
        self.fishingHandleButton = GuiButton(pos=(-0.29999999999999999, 0,
                                                  -0.55000000000000004),
                                             hpr=(0, 0, 0),
                                             scale=0.45000000000000001,
                                             image=btnGeom,
                                             image_pos=(0, 0, 0),
                                             image_scale=1.0,
                                             sortOrder=2)
        self.fishingHandleButton.bind(DGG.B1PRESS, self.handleButtonClicked)
        self.fishingHandleButton.reparentTo(self.fishingHandle)
        self.UICompoments['fishingHandleButton'] = self.fishingHandleButton
        self.fishingHandleBaseFrame.setTransparency(TransparencyAttrib.MAlpha)
        self.meterFrame.setTransparency(TransparencyAttrib.MAlpha)
        self.lineOneTransitTextNode = TextNode('lineOneTransitText')
        self.lineOneTransitTextNode.setFont(PiratesGlobals.getPirateFont())
        self.lineOneTransitTextNode.setText('')
        self.lineOneTransitTextNode.setAlign(TextNode.ACenter)
        self.lineOneTransitTextNode.setTextColor(1.0, 1.0, 1.0, 0.5)
        self.lineOneTransitTextNodePath = NodePath(self.lineOneTransitTextNode)
        self.lineOneTransitTextNodePath.setPos(0.0, 0.0, -0.80000000000000004)
        self.lineOneTransitTextNodePath.setScale(0.34999999999999998,
                                                 0.34999999999999998,
                                                 0.34999999999999998)
        self.lineOneTransitTextNodePath.reparentTo(self.uiBaseNode)
        self.lineOneTransitTextNodePath.hide()
        self.UICompoments[
            'lineOneTransitText'] = self.lineOneTransitTextNodePath
        self.lineTwoTransitTextNode = TextNode('lineTwoTransitText')
        self.lineTwoTransitTextNode.setFont(PiratesGlobals.getPirateFont())
        self.lineTwoTransitTextNode.setText('')
        self.lineTwoTransitTextNode.setAlign(TextNode.ACenter)
        self.lineTwoTransitTextNode.setTextColor(1.0, 1.0, 1.0, 0.5)
        self.lineTwoTransitTextNodePath = NodePath(self.lineTwoTransitTextNode)
        self.lineTwoTransitTextNodePath.setPos(-0.40000000000000002, 0.0,
                                               -0.94999999999999996)
        self.lineTwoTransitTextNodePath.setScale(0.12, 0.12, 0.12)
        self.lineTwoTransitTextNodePath.reparentTo(self.uiBaseNode)
        self.lineTwoTransitTextNodePath.hide()
        self.UICompoments[
            'lineTwoTransitText'] = self.lineTwoTransitTextNodePath
        base.loadingScreen.tick()
        self.test_guiImage = loader.loadModel('models/gui/toplevel_gui')
        self.buttonIcon = (
            self.test_guiImage.find('**/treasure_chest_closed'),
            self.test_guiImage.find('**/treasure_chest_closed'),
            self.test_guiImage.find('**/treasure_chest_closed_over'))
        self.winImagePanel = GuiPanel.GuiPanel('', 2.6000000000000001,
                                               1.8999999999999999, True)
        self.winImagePanel.setPos(-1.3, 0.0, -0.94999999999999996)
        self.winImagePanel.reparentTo(self.uiBaseNode)
        self.winImagePanel.background = OnscreenImage(
            parent=self.winImagePanel,
            scale=(2.3999999999999999, 0, 1.8),
            image=self.guiImage.find('**/pir_t_gui_fsh_posterBackground'),
            hpr=(0, 0, 0),
            pos=(1.3, 0, 0.94999999999999996))
        self.winImagePanel.setBin('gui-popup', -4)
        self.winTitleTextNode = TextNode('winTitleTextNode')
        self.winTitleTextNode.setText('Congratulations!')
        self.winTitleTextNode.setAlign(TextNode.ACenter)
        self.winTitleTextNode.setFont(PiratesGlobals.getPirateFont())
        self.winTitleTextNode.setTextColor(0.23000000000000001,
                                           0.089999999999999997,
                                           0.029999999999999999, 1.0)
        self.winTitleTextNodePath = NodePath(self.winTitleTextNode)
        self.winTitleTextNodePath.setPos(1.3500000000000001, 0.0,
                                         1.6699999999999999)
        self.winTitleTextNodePath.setScale(0.17999999999999999)
        self.winTitleTextNodePath.reparentTo(self.winImagePanel)
        self.wholeStoryTextNode = TextNode('storyTextNode')
        self.wholeStoryTextNode.setText('')
        self.wholeStoryTextNode.setWordwrap(19.0)
        self.wholeStoryTextNode.setTextColor(0.23000000000000001,
                                             0.089999999999999997,
                                             0.029999999999999999, 1.0)
        self.wholeStoryTextNodePath = NodePath(self.wholeStoryTextNode)
        self.wholeStoryTextNodePath.setPos(0.33000000000000002, 0.0,
                                           1.6399999999999999)
        self.wholeStoryTextNodePath.setScale(0.050000000000000003)
        self.wholeStoryTextNodePath.reparentTo(self.winImagePanel)
        self.winImagePanel.closeButton[
            'command'] = self.closeDialogGotNextState
        self.winImagePanel.closeButton['extraArgs'] = [
            'winImagePanel', 'FarewellLegendaryFish', False
        ]
        self.UICompoments['winImagePanel'] = self.winImagePanel
        self.winImagePanel.hide()
        self.luiCloseDialogSequence = Sequence()
        self.arrowImageRotationInterval = LerpHprInterval(
            self.arrowImage, 2.2000000000000002,
            self.arrowImage.getHpr() + Point3(0.0, 0.0, 280.0),
            self.arrowImage.getHpr())
        self.luiArrowRotatingSequence = Sequence(
            Func(self.showGui, ['arrowImage']),
            Parallel(Func(self.arrowImageRotationInterval.start),
                     Wait(2.2000000000000002)),
            Func(self.hideGui, ['arrowImage']),
            Func(self.arrowImage.setHpr,
                 self.arrowImage.getHpr() + Point3(0.0, 0.0, 5.0)),
            name=self.gameObject.distributedFishingSpot.uniqueName(
                'luiArrowRotatingSequence'))
        self.lineOneColorChange = LerpColorScaleInterval(
            self.lineOneTransitTextNodePath,
            FishingGlobals.legendaryTransitionTextDuration,
            (1.0, 1.0, 1.0, 0.0), (1.0, 1.0, 1.0, 1.0),
            blendType='easeOut')
        self.lineOnePosChange = LerpPosInterval(
            self.lineOneTransitTextNodePath,
            FishingGlobals.legendaryTransitionTextDuration,
            (0.0, 0.0, -0.20000000000000001), (0.0, 0.0, -0.80000000000000004),
            blendType='easeOut')
        self.lineTwoCholorChange = LerpColorScaleInterval(
            self.lineTwoTransitTextNodePath,
            FishingGlobals.legendaryTransitionTextDuration,
            (1.0, 1.0, 1.0, 1.0), (1.0, 1.0, 1.0, 1.0),
            blendType='easeOut')
        self.lineTwoPosChange = LerpPosInterval(
            self.lineTwoTransitTextNodePath,
            FishingGlobals.legendaryTransitionTextDuration,
            (0.0, 0.0, -0.32000000000000001), (0.0, 0.0, -0.94999999999999996),
            blendType='easeOut')
        self.transitionTextMovingSequence = Sequence(
            Func(self.lineOneTransitTextNodePath.show),
            Func(self.lineTwoTransitTextNodePath.show),
            Parallel(self.lineOnePosChange, self.lineTwoPosChange,
                     self.lineOneColorChange, self.lineTwoCholorChange),
            Func(self.lineOneTransitTextNodePath.hide),
            Func(self.lineTwoTransitTextNodePath.hide),
            name=self.gameObject.distributedFishingSpot.uniqueName(
                'transitionTextMovingSequence'))
        self.meterFadeInInterval = Sequence(
            Func(self.meterFrame.show),
            LerpColorScaleInterval(
                self.meterFrame,
                FishingGlobals.legendaryTransitionTextDuration,
                colorScale=(1.0, 1.0, 1.0, 1.0),
                startColorScale=(1.0, 1.0, 1.0, 0.0),
                blendType='easeOut'),
            name='FadeInLegendaryMeter')
        self.meterFadeOutInterval = Sequence(LerpColorScaleInterval(
            self.meterFrame,
            FishingGlobals.legendaryTransitionTextDuration,
            colorScale=(1.0, 1.0, 1.0, 0.0),
            startColorScale=(1.0, 1.0, 1.0, 1.0),
            blendType='easeOut'),
                                             Func(self.meterFrame.hide),
                                             name='FadeOutLegendaryMeter')
        self.rodFadeInInterval = Sequence(
            Func(self.fishingHandleBaseFrame.show),
            LerpColorScaleInterval(
                self.fishingHandleBaseFrame,
                FishingGlobals.legendaryTransitionTextDuration,
                colorScale=(1.0, 1.0, 1.0, 1.0),
                startColorScale=(1.0, 1.0, 1.0, 0.0),
                blendType='easeOut'),
            name='FadeInLegendaryRodInterface')
        self.rodFadeOutInterval = Sequence(
            LerpColorScaleInterval(
                self.fishingHandleBaseFrame,
                FishingGlobals.legendaryTransitionTextDuration,
                colorScale=(1.0, 1.0, 1.0, 0.0),
                startColorScale=(1.0, 1.0, 1.0, 1.0),
                blendType='easeOut'),
            Func(self.fishingHandleBaseFrame.hide),
            name='FadeOutLegendaryRodInterface')
        base.loadingScreen.tick()
        smallScale = self.fishingHandleButton['scale']
        bigScale = self.fishingHandleButton['scale'] * 1.2
        self.buttonGrowUpInterval = LerpScaleInterval(self.fishingHandleButton,
                                                      1.0, bigScale,
                                                      smallScale)
        self.luiFightTransitSequence = Sequence(
            Parallel(Func(self.fishingHandleBaseFrame.show),
                     Func(self.meterFadeOutInterval.start),
                     Func(self.rodFadeInInterval.start),
                     Func(self.buttonGrowUpInterval.start)),
            Wait(1.0),
            Func(self.meterFrame.hide),
            name=self.gameObject.distributedFishingSpot.uniqueName(
                'luiFightTransitSequence'))
        self.luiReelTransitSequence = Sequence(
            Parallel(Func(self.fishingHandleBaseFrame.show),
                     Func(self.meterFadeOutInterval.start),
                     Func(self.rodFadeInInterval.start)),
            Wait(1.0),
            Func(self.meterFrame.hide),
            name=self.gameObject.distributedFishingSpot.uniqueName(
                'luiReelTransitSequence'))
        self.luiStruggleTransitSequence = Sequence(
            Parallel(Func(self.meterFrame.show), Func(self.resetFishingRod),
                     self.meterFadeInInterval, self.rodFadeOutInterval),
            Wait(1.0),
            Func(self.fishingHandleBaseFrame.hide),
            name=self.gameObject.distributedFishingSpot.uniqueName(
                'luiStruggleTransitSequence'))
        self.meterFadeOutInterval.start()
        self.rodFadeOutInterval.start()
        self.hideAllGUI()
        base.loadingScreen.endStep('LegendaryGameGUI')

    def hideAllGUI(self):
        self.uiBaseNode.reparentTo(hidden)
        self.leftBaseNode.reparentTo(hidden)

    def showAllGUI(self):
        self.uiBaseNode.reparentTo(aspect2d)
        self.leftBaseNode.reparentTo(base.a2dLeftCenter)

    def hideGui(self, nameList):
        for ui in nameList:
            self.UICompoments[ui].hide()

    def showGui(self, nameList):
        for ui in nameList:
            self.UICompoments[ui].show()

    def destroy(self):
        self.arrowImageRotationInterval.pause()
        self.arrowImageRotationInterval.clearToInitial()
        self.luiArrowRotatingSequence.pause()
        self.luiArrowRotatingSequence.clearToInitial()
        self.luiCloseDialogSequence.pause()
        self.luiCloseDialogSequence.clearToInitial()
        totalKey = self.UICompoments.keys()
        for iKey in totalKey:
            del self.UICompoments[iKey]

        self.fishingHandle = None
        self.fishingHandleButton = None
        self.fishingRod.removeNode()
        self.leftBaseNode.removeNode()
        self.uiBaseNode.removeNode()
        if self.fishActor:
            self.fishActor.destroy()
            self.fishActor = None

    def handleButtonClicked(self, mouseKey):
        if self.gameObject.lfgFsm.getCurrentOrNextState() in ['CatchIt']:
            self.gameObject.lfgFsm.request('Transition', 'Struggle')
            self.gameObject.sfx['legendaryGreen'].play()

    def setTransitionText(self, state):
        self.lineOneTransitTextNode.setText(
            PLocalizer.LegendaryFishingGui[state][0])
        self.lineTwoTransitTextNode.setText(
            PLocalizer.LegendaryFishingGui[state][1])

    def resetInterval(self):
        self.transitionTextMovingSequence.pause()
        self.transitionTextMovingSequence.clearToInitial()
        self.lineOneColorChange.pause()
        self.lineOneColorChange.clearToInitial()
        self.lineOnePosChange.pause()
        self.lineOnePosChange.clearToInitial()
        self.lineTwoCholorChange.pause()
        self.lineTwoCholorChange.clearToInitial()
        self.lineTwoPosChange.pause()
        self.lineTwoPosChange.clearToInitial()
        self.luiReelTransitSequence.pause()
        self.luiReelTransitSequence.clearToInitial()
        self.luiStruggleTransitSequence.pause()
        self.luiStruggleTransitSequence.clearToInitial()
        self.luiFightTransitSequence.pause()
        self.luiFightTransitSequence.clearToInitial()
        self.buttonGrowUpInterval.pause()
        self.buttonGrowUpInterval.clearToInitial()
        self.meterFadeOutInterval.pause()
        self.meterFadeOutInterval.clearToInitial()
        self.rodFadeInInterval.pause()
        self.rodFadeInInterval.clearToInitial()
        self.meterFadeInInterval.pause()
        self.meterFadeInInterval.clearToInitial()
        self.rodFadeOutInterval.pause()
        self.rodFadeOutInterval.clearToInitial()

    def fightingTransit(self):
        self.luiFightTransitSequence.start()

    def reelTransit(self):
        self.luiReelTransitSequence.start()

    def struggleTransit(self):
        self.luiStruggleTransitSequence.start()

    def resetFishingRod(self):
        self.fishingRod.setR(FishingGlobals.fishingRodInitSlope)

    def showWinImage(self, fish):
        self.hideGui(['meterFrame', 'fishingHandleBaseFrame'])
        result = fish.myData['name'].split(' ')
        fileName = str(result[0]).capitalize()
        imgName = 'pir_t_gui_fsh_render%s' % fileName
        self.actorAnim[
            'swimIdleOpposite'] = 'models/char/pir_a_gam_fsh_%s_%s.bam' % (
                fish.myData['model'], 'swimIdleOpposite')
        self.fishActor = BlendActor(
            'models/char/pir_r_gam_fsh_%s.bam' % fish.myData['model'],
            self.actorAnim, FishingGlobals.defaultFishBlendTime,
            FishingGlobals.fishBlendTimeDict)
        self.fishActor.setPlayRate(
            fish.myData['speed'] * fish.myData['swimAnimationMultiplier'],
            'swimIdleOpposite')
        self.fishActor.changeAnimationTo('swimIdleOpposite')
        self.fishActor.reparentTo(self.winImagePanel)
        self.fishActor.setScale(self.scaleSize[fish.myData['id']])
        self.fishActor.setPos(1.7, 0, 1.0)
        self.fishActor.setHpr(0, 0, 35)
        self.fishActor.setDepthWrite(True)
        self.fishActor.setDepthTest(True)
        self.wholeStoryTextNode.setText(
            PLocalizer.LegendSelectionGui['wholeStory'][fish.myData['id']])
        self.winImagePanel.show()

    def closeDialogGotNextState(self, object, targetState, ifFadeInAgain):
        if self.fishActor:
            self.fishActor.destroy()
            self.fishActor = None

        self.luiCloseDialogSequence = Sequence(
            Func(self.gameObject.distributedFishingSpot.fadeOut),
            Wait(0.40000000000000002),
            Func(self.UICompoments[object].hide),
            Func(self.gameObject.lfgFsm.request, targetState),
            name=self.gameObject.distributedFishingSpot.uniqueName(
                'luiCloseDialogSequence'))
        self.luiCloseDialogSequence.start()

    def updateStruggleTimerText(self, time, percent):
        self.meterFrame['text'] = str(time)
        self.meterFrame['text_fg'] = (1.0 - percent, percent, 0.0, 1.0)
 def hideMenu(self):
     self.clearKeys()
     self.main.gui.show()
     seq = Sequence(LerpColorScaleInterval(self.myFrame, 0.4, (1, 1, 1, 0)),
                    Func(self.myFrame.hide))
     seq.start()
 def __init__(self, gameObject = None):
     base.loadingScreen.beginStep('LegendaryGameGUI', 4, 20)
     self.gameObject = gameObject
     self.guiImage = loader.loadModel('models/minigames/pir_m_gam_fsh_legendaryGui')
     self.UICompoments = { }
     self.uiBaseNode = NodePath('baseNode')
     self.uiBaseNode.reparentTo(aspect2d)
     self.uiBaseNode.show()
     self.leftBaseNode = NodePath('leftBaseNode')
     self.leftBaseNode.reparentTo(base.a2dLeftCenter)
     self.leftBaseNode.show()
     self.fishActor = None
     self.actorAnim = { }
     self.scaleSize = {
         InventoryType.Collection_Set11_Part1: 0.059999999999999998,
         InventoryType.Collection_Set11_Part2: 0.055,
         InventoryType.Collection_Set11_Part3: 0.12,
         InventoryType.Collection_Set11_Part4: 0.086999999999999994,
         InventoryType.Collection_Set11_Part5: 0.080000000000000002 }
     self.meterFrame = DirectFrame(parent = self.leftBaseNode, frameSize = (-0.29999999999999999, 0.29999999999999999, -1.0, 0.0), frameColor = (1.0, 1.0, 1.0, 0.0), relief = None, state = DGG.DISABLED, pos = (1.0, 0.0, -0.45000000000000001), hpr = (0, 0, 0), scale = (1.3, 0.0, 1.3), image = self.guiImage.find('**/pir_t_gui_fsh_meter'), image_scale = (0.20000000000000001, 0.0, 0.80000000000000004), image_pos = (0, 0, 0), text = '', textMayChange = 1, text_scale = PiratesGuiGlobals.TextScaleTitleLarge, text_pos = (-0.55000000000000004, 0.10000000000000001), text_shadow = PiratesGuiGlobals.TextShadow)
     self.UICompoments['meterFrame'] = self.meterFrame
     self.fishingRod = DirectFrame(parent = self.meterFrame, frameSize = (-0.29999999999999999, 0.29999999999999999, -1.0, 0.0), relief = None, state = DGG.DISABLED, pos = FishingGlobals.fishingRodScreenPosition, image = self.guiImage.find('**/pir_t_gui_fsh_fullRod'), image_scale = (1.0, 0.0, 0.125), image_pos = (0.20000000000000001, 0, 0))
     self.fishingRod.setR(FishingGlobals.fishingRodInitSlope)
     self.UICompoments['fishingRod'] = self.fishingRod
     base.loadingScreen.tick()
     self.fishingHandleBaseFrame = DirectFrame(parent = self.uiBaseNode, frameSize = (-0.29999999999999999, 0.29999999999999999, -1.5, 1.5), frameColor = (1.0, 1.0, 1.0, 0.0), relief = None, state = DGG.DISABLED, pos = (0.0, 0.0, 0.0), hpr = (0, 0, 0), scale = (0.71999999999999997, 0.0, 0.71999999999999997), image = self.guiImage.find('**/pir_t_gui_fsh_partialRod'), image_scale = (3.7999999999999998, 0.0, 1.8999999999999999), image_pos = (0, 0, 0), image_hpr = (0.0, 0.0, 0))
     self.fishingHandleBaseFrame.hide()
     self.UICompoments['fishingHandleBaseFrame'] = self.fishingHandleBaseFrame
     self.fishingHandle = DirectFrame(parent = self.fishingHandleBaseFrame, frameSize = (-0.080000000000000002, 0.080000000000000002, -0.20000000000000001, 0.20000000000000001), relief = None, state = DGG.DISABLED, pos = (-0.10000000000000001, 0.0, -0.050000000000000003), hpr = (0, 0, 0), image = self.guiImage.find('**/pir_t_gui_fsh_handleArm'), image_scale = (1.0, 0.0, 1.0), image_pos = (-0.042000000000000003, 0, -0.115), image_hpr = (0.0, 0.0, 0))
     self.UICompoments['fishingHandle'] = self.fishingHandle
     self.arrowImage = DirectFrame(parent = self.fishingHandleBaseFrame, frameSize = (-0.40000000000000002, 0.40000000000000002, -0.40000000000000002, 0.40000000000000002), relief = None, state = DGG.DISABLED, pos = (0.0, 0.0, 0.0), hpr = (0, 0, 0), scale = (1.2, 0.0, 1.2), image = self.guiImage.find('**/pir_t_gui_fsh_arrow'), image_scale = (1.0, 0.0, 1.0), image_pos = (0.0, 0, 0.0), image_hpr = (0.0, 0.0, 0.0))
     self.arrowImage.hide()
     self.UICompoments['arrowImage'] = self.arrowImage
     btnGeom = (self.guiImage.find('**/pir_t_gui_fsh_handle'), self.guiImage.find('**/pir_t_gui_fsh_handle'), self.guiImage.find('**/pir_t_gui_fsh_handleOn'))
     self.fishingHandleButton = GuiButton(pos = (-0.29999999999999999, 0, -0.55000000000000004), hpr = (0, 0, 0), scale = 0.45000000000000001, image = btnGeom, image_pos = (0, 0, 0), image_scale = 1.0, sortOrder = 2)
     self.fishingHandleButton.bind(DGG.B1PRESS, self.handleButtonClicked)
     self.fishingHandleButton.reparentTo(self.fishingHandle)
     self.UICompoments['fishingHandleButton'] = self.fishingHandleButton
     self.fishingHandleBaseFrame.setTransparency(TransparencyAttrib.MAlpha)
     self.meterFrame.setTransparency(TransparencyAttrib.MAlpha)
     self.lineOneTransitTextNode = TextNode('lineOneTransitText')
     self.lineOneTransitTextNode.setFont(PiratesGlobals.getPirateFont())
     self.lineOneTransitTextNode.setText('')
     self.lineOneTransitTextNode.setAlign(TextNode.ACenter)
     self.lineOneTransitTextNode.setTextColor(1.0, 1.0, 1.0, 0.5)
     self.lineOneTransitTextNodePath = NodePath(self.lineOneTransitTextNode)
     self.lineOneTransitTextNodePath.setPos(0.0, 0.0, -0.80000000000000004)
     self.lineOneTransitTextNodePath.setScale(0.34999999999999998, 0.34999999999999998, 0.34999999999999998)
     self.lineOneTransitTextNodePath.reparentTo(self.uiBaseNode)
     self.lineOneTransitTextNodePath.hide()
     self.UICompoments['lineOneTransitText'] = self.lineOneTransitTextNodePath
     self.lineTwoTransitTextNode = TextNode('lineTwoTransitText')
     self.lineTwoTransitTextNode.setFont(PiratesGlobals.getPirateFont())
     self.lineTwoTransitTextNode.setText('')
     self.lineTwoTransitTextNode.setAlign(TextNode.ACenter)
     self.lineTwoTransitTextNode.setTextColor(1.0, 1.0, 1.0, 0.5)
     self.lineTwoTransitTextNodePath = NodePath(self.lineTwoTransitTextNode)
     self.lineTwoTransitTextNodePath.setPos(-0.40000000000000002, 0.0, -0.94999999999999996)
     self.lineTwoTransitTextNodePath.setScale(0.12, 0.12, 0.12)
     self.lineTwoTransitTextNodePath.reparentTo(self.uiBaseNode)
     self.lineTwoTransitTextNodePath.hide()
     self.UICompoments['lineTwoTransitText'] = self.lineTwoTransitTextNodePath
     base.loadingScreen.tick()
     self.test_guiImage = loader.loadModel('models/gui/toplevel_gui')
     self.buttonIcon = (self.test_guiImage.find('**/treasure_chest_closed'), self.test_guiImage.find('**/treasure_chest_closed'), self.test_guiImage.find('**/treasure_chest_closed_over'))
     self.winImagePanel = GuiPanel.GuiPanel('', 2.6000000000000001, 1.8999999999999999, True)
     self.winImagePanel.setPos(-1.3, 0.0, -0.94999999999999996)
     self.winImagePanel.reparentTo(self.uiBaseNode)
     self.winImagePanel.background = OnscreenImage(parent = self.winImagePanel, scale = (2.3999999999999999, 0, 1.8), image = self.guiImage.find('**/pir_t_gui_fsh_posterBackground'), hpr = (0, 0, 0), pos = (1.3, 0, 0.94999999999999996))
     self.winImagePanel.setBin('gui-popup', -4)
     self.winTitleTextNode = TextNode('winTitleTextNode')
     self.winTitleTextNode.setText('Congratulations!')
     self.winTitleTextNode.setAlign(TextNode.ACenter)
     self.winTitleTextNode.setFont(PiratesGlobals.getPirateFont())
     self.winTitleTextNode.setTextColor(0.23000000000000001, 0.089999999999999997, 0.029999999999999999, 1.0)
     self.winTitleTextNodePath = NodePath(self.winTitleTextNode)
     self.winTitleTextNodePath.setPos(1.3500000000000001, 0.0, 1.6699999999999999)
     self.winTitleTextNodePath.setScale(0.17999999999999999)
     self.winTitleTextNodePath.reparentTo(self.winImagePanel)
     self.wholeStoryTextNode = TextNode('storyTextNode')
     self.wholeStoryTextNode.setText('')
     self.wholeStoryTextNode.setWordwrap(19.0)
     self.wholeStoryTextNode.setTextColor(0.23000000000000001, 0.089999999999999997, 0.029999999999999999, 1.0)
     self.wholeStoryTextNodePath = NodePath(self.wholeStoryTextNode)
     self.wholeStoryTextNodePath.setPos(0.33000000000000002, 0.0, 1.6399999999999999)
     self.wholeStoryTextNodePath.setScale(0.050000000000000003)
     self.wholeStoryTextNodePath.reparentTo(self.winImagePanel)
     self.winImagePanel.closeButton['command'] = self.closeDialogGotNextState
     self.winImagePanel.closeButton['extraArgs'] = [
         'winImagePanel',
         'FarewellLegendaryFish',
         False]
     self.UICompoments['winImagePanel'] = self.winImagePanel
     self.winImagePanel.hide()
     self.luiCloseDialogSequence = Sequence()
     self.arrowImageRotationInterval = LerpHprInterval(self.arrowImage, 2.2000000000000002, self.arrowImage.getHpr() + Point3(0.0, 0.0, 280.0), self.arrowImage.getHpr())
     self.luiArrowRotatingSequence = Sequence(Func(self.showGui, [
         'arrowImage']), Parallel(Func(self.arrowImageRotationInterval.start), Wait(2.2000000000000002)), Func(self.hideGui, [
         'arrowImage']), Func(self.arrowImage.setHpr, self.arrowImage.getHpr() + Point3(0.0, 0.0, 5.0)), name = self.gameObject.distributedFishingSpot.uniqueName('luiArrowRotatingSequence'))
     self.lineOneColorChange = LerpColorScaleInterval(self.lineOneTransitTextNodePath, FishingGlobals.legendaryTransitionTextDuration, (1.0, 1.0, 1.0, 0.0), (1.0, 1.0, 1.0, 1.0), blendType = 'easeOut')
     self.lineOnePosChange = LerpPosInterval(self.lineOneTransitTextNodePath, FishingGlobals.legendaryTransitionTextDuration, (0.0, 0.0, -0.20000000000000001), (0.0, 0.0, -0.80000000000000004), blendType = 'easeOut')
     self.lineTwoCholorChange = LerpColorScaleInterval(self.lineTwoTransitTextNodePath, FishingGlobals.legendaryTransitionTextDuration, (1.0, 1.0, 1.0, 1.0), (1.0, 1.0, 1.0, 1.0), blendType = 'easeOut')
     self.lineTwoPosChange = LerpPosInterval(self.lineTwoTransitTextNodePath, FishingGlobals.legendaryTransitionTextDuration, (0.0, 0.0, -0.32000000000000001), (0.0, 0.0, -0.94999999999999996), blendType = 'easeOut')
     self.transitionTextMovingSequence = Sequence(Func(self.lineOneTransitTextNodePath.show), Func(self.lineTwoTransitTextNodePath.show), Parallel(self.lineOnePosChange, self.lineTwoPosChange, self.lineOneColorChange, self.lineTwoCholorChange), Func(self.lineOneTransitTextNodePath.hide), Func(self.lineTwoTransitTextNodePath.hide), name = self.gameObject.distributedFishingSpot.uniqueName('transitionTextMovingSequence'))
     self.meterFadeInInterval = Sequence(Func(self.meterFrame.show), LerpColorScaleInterval(self.meterFrame, FishingGlobals.legendaryTransitionTextDuration, colorScale = (1.0, 1.0, 1.0, 1.0), startColorScale = (1.0, 1.0, 1.0, 0.0), blendType = 'easeOut'), name = 'FadeInLegendaryMeter')
     self.meterFadeOutInterval = Sequence(LerpColorScaleInterval(self.meterFrame, FishingGlobals.legendaryTransitionTextDuration, colorScale = (1.0, 1.0, 1.0, 0.0), startColorScale = (1.0, 1.0, 1.0, 1.0), blendType = 'easeOut'), Func(self.meterFrame.hide), name = 'FadeOutLegendaryMeter')
     self.rodFadeInInterval = Sequence(Func(self.fishingHandleBaseFrame.show), LerpColorScaleInterval(self.fishingHandleBaseFrame, FishingGlobals.legendaryTransitionTextDuration, colorScale = (1.0, 1.0, 1.0, 1.0), startColorScale = (1.0, 1.0, 1.0, 0.0), blendType = 'easeOut'), name = 'FadeInLegendaryRodInterface')
     self.rodFadeOutInterval = Sequence(LerpColorScaleInterval(self.fishingHandleBaseFrame, FishingGlobals.legendaryTransitionTextDuration, colorScale = (1.0, 1.0, 1.0, 0.0), startColorScale = (1.0, 1.0, 1.0, 1.0), blendType = 'easeOut'), Func(self.fishingHandleBaseFrame.hide), name = 'FadeOutLegendaryRodInterface')
     base.loadingScreen.tick()
     smallScale = self.fishingHandleButton['scale']
     bigScale = self.fishingHandleButton['scale'] * 1.2
     self.buttonGrowUpInterval = LerpScaleInterval(self.fishingHandleButton, 1.0, bigScale, smallScale)
     self.luiFightTransitSequence = Sequence(Parallel(Func(self.fishingHandleBaseFrame.show), Func(self.meterFadeOutInterval.start), Func(self.rodFadeInInterval.start), Func(self.buttonGrowUpInterval.start)), Wait(1.0), Func(self.meterFrame.hide), name = self.gameObject.distributedFishingSpot.uniqueName('luiFightTransitSequence'))
     self.luiReelTransitSequence = Sequence(Parallel(Func(self.fishingHandleBaseFrame.show), Func(self.meterFadeOutInterval.start), Func(self.rodFadeInInterval.start)), Wait(1.0), Func(self.meterFrame.hide), name = self.gameObject.distributedFishingSpot.uniqueName('luiReelTransitSequence'))
     self.luiStruggleTransitSequence = Sequence(Parallel(Func(self.meterFrame.show), Func(self.resetFishingRod), self.meterFadeInInterval, self.rodFadeOutInterval), Wait(1.0), Func(self.fishingHandleBaseFrame.hide), name = self.gameObject.distributedFishingSpot.uniqueName('luiStruggleTransitSequence'))
     self.meterFadeOutInterval.start()
     self.rodFadeOutInterval.start()
     self.hideAllGUI()
     base.loadingScreen.endStep('LegendaryGameGUI')
Exemple #38
0
 def fadeOut(self, t):
     return LerpColorScaleInterval(self.node, t,
                                   LVecBase4f(self.r, self.g, self.b, 0.0),
                                   LVecBase4f(self.r, self.g, self.b, 1.0))