Exemple #1
0
    def enter(self, destHood):
        doneStatus = {}

        def letThrough(self=self, doneStatus=doneStatus):
            doneStatus['mode'] = 'pass'
            messenger.send(self.doneEvent, [doneStatus])

        if not base.restrictTrialers:
            letThrough()
            return
        if base.roamingTrialers:
            letThrough()
            return
        if base.cr.isPaid():
            letThrough()
            return
        if ZoneUtil.getCanonicalHoodId(destHood) in (
                ToontownGlobals.ToontownCentral, ToontownGlobals.MyEstate,
                ToontownGlobals.GoofySpeedway):
            letThrough()
            return
        else:
            try:
                base.localAvatar.b_setAnimState('neutral', 1)
            except:
                pass

        doneStatus['mode'] = 'fail'
        self.doneStatus = doneStatus
        self.dialog = TeaserPanel.TeaserPanel(pageName='otherHoods',
                                              doneFunc=self.handleOk)
 def requestInvite(self, inviteeId):
     self.notify.debug('requestInvite %s' % inviteeId)
     elevator = base.cr.doId2do.get(self.getElevatorIdList()[0])
     if elevator:
         if elevator.allowedToEnter(self.zoneId):
             if inviteeId in self.getGroupKickList(localAvatar.doId):
                 if not self.isGroupLeader(localAvatar.doId):
                     avatar = base.cr.doId2do.get(inviteeId)
                     if avatar:
                         avatarNameText = avatar.name
                     else:
                         avatarNameText = ''
                     rejectText = TTLocalizer.BoardingInviteeInKickOutList % avatarNameText
                     self.showMe(rejectText)
                     return
             if self.inviterPanels.isInvitingPanelUp():
                 self.showMe(TTLocalizer.BoardingPendingInvite,
                             pos=(0, 0, 0))
             elif len(self.getGroupMemberList(
                     localAvatar.doId)) >= self.maxSize:
                 self.showMe(TTLocalizer.BoardingInviteGroupFull)
             else:
                 invitee = base.cr.doId2do.get(inviteeId)
                 if invitee:
                     self.inviterPanels.createInvitingPanel(self, inviteeId)
                     self.sendUpdate('requestInvite', [inviteeId])
         else:
             place = base.cr.playGame.getPlace()
             if place:
                 place.fsm.request('stopped')
             self.teaserDialog = TeaserPanel.TeaserPanel(
                 pageName='cogHQ', doneFunc=self.handleOkTeaser)
 def handleEnterGolfKartSphere(self, collEntry):
     self.notify.debug('Entering Golf Kart Sphere.... %s' % self.getDoId())
     if self.allowedToEnter():
         self.loader.place.detectedGolfKartCollision(self)
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.dialog = TeaserPanel.TeaserPanel(pageName='golf', doneFunc=self.handleOkTeaser)
 def handleCollisionSphereEnter(self, collEntry):
     if self.allowedToEnter():
         base.cr.playGame.getPlace().fsm.request('purchase')
         self.sendUpdate('avatarEnter', [])
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.dialog = TeaserPanel.TeaserPanel(pageName='otherGags', doneFunc=self.handleOkTeaser)
 def enterDoor(self):
     if self.allowedToEnter():
         messenger.send('DistributedDoor_doorTrigger')
         self.sendUpdate('requestEnter')
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.dialog = TeaserPanel.TeaserPanel(pageName='otherHoods', doneFunc=self.handleOkTeaser)
Exemple #6
0
 def handleCollisionSphereEnter(self, collEntry):
     if self.allowedToTalk():
         base.cr.playGame.getPlace().fsm.request('quest', [self])
         self.sendUpdate('avatarEnter', [])
         self.nametag3d.setDepthTest(0)
         self.nametag3d.setBin('fixed', 0)
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.dialog = TeaserPanel.TeaserPanel(pageName='quests', doneFunc=self.handleOkTeaser)
Exemple #7
0
 def enterTrueFriendTeaserPanel(self):
     self.previousStateBeforeTeaser = None
     place = base.cr.playGame.getPlace()
     if place:
         if place.fsm.hasStateNamed('stopped'):
             self.previousStateBeforeTeaser = place.fsm.getCurrentState().getName()
             place.fsm.request('stopped')
         else:
             self.notify.warning("Enter: %s has no 'stopped' state." % place)
     self.teaser = TeaserPanel.TeaserPanel(pageName='secretChat', doneFunc=self.handleOkTeaser)
     return
Exemple #8
0
 def enterDoor(self):
     assert (self.debugPrint("enterDoor()"))
     if self.allowedToEnter():
         messenger.send("DistributedDoor_doorTrigger")
         self.sendUpdate("requestEnter")  # calls back with a avatarEnter.
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.dialog = TeaserPanel.TeaserPanel(pageName='otherHoods',
                                               doneFunc=self.handleOkTeaser)
 def handleEnterTrolleySphere(self, collEntry):
     self.notify.debug('Entering Trolley Sphere....')
     if base.localAvatar.getPos(render).getZ() < self.trolleyCar.getPos(render).getZ():
         return
     if self.allowedToEnter():
         self.loader.place.detectedTrolleyCollision()
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.dialog = TeaserPanel.TeaserPanel(pageName='minigames', doneFunc=self.handleOkTeaser)
Exemple #10
0
 def handleEnterSphere(self, collEntry):
     self.notify.debug('Entering Elevator Sphere....')
     if hasattr(localAvatar, 'boardingParty') and localAvatar.boardingParty and localAvatar.boardingParty.getGroupLeader(localAvatar.doId) and localAvatar.boardingParty.getGroupLeader(localAvatar.doId) != localAvatar.doId:
         base.localAvatar.elevatorNotifier.showMe(TTLocalizer.ElevatorGroupMember)
     elif self.allowedToEnter(self.zoneId):
         self.cr.playGame.getPlace().detectedElevatorCollision(self)
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.dialog = TeaserPanel.TeaserPanel(pageName='cogHQ', doneFunc=self.handleOkTeaser)
Exemple #11
0
 def __handleEnterSphere(self, collEntry):
     if self.allowedToEnter():
         if base.localAvatar.doId == self.lastAvId and globalClock.getFrameCount() <= self.lastFrame + 1:
             self.notify.debug('Ignoring duplicate entry for avatar.')
             return
         if base.localAvatar.hp > 0 and base.cr.playGame.getPlace().fsm.getCurrentState().getName() != 'fishing':
             self.cr.playGame.getPlace().detectedFishingCollision()
             self.d_requestEnter()
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.dialog = TeaserPanel.TeaserPanel(pageName='fishing', doneFunc=self.handleOkTeaser)
Exemple #12
0
 def enterDoor(self):
     self.ignore("shift")
     if hasattr(self, "enterText"):
         self.enterText.removeNode()
         del self.enterText
     if self.allowedToEnter():
         messenger.send('DistributedDoor_doorTrigger')
         self.sendUpdate('requestEnter')
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.dialog = TeaserPanel.TeaserPanel(pageName = 'otherHoods', doneFunc = self.handleOkTeaser)
Exemple #13
0
 def handleEnterSphere(self, collEntry):
     self.notify.debug('Entering Elevator Sphere....')
     if self.allowedToEnter(self.zoneId):
         if self.elevatorTripId and localAvatar.lastElevatorLeft == self.elevatorTripId:
             self.rejectBoard(base.localAvatar.doId, REJECT_SHUFFLE)
         elif base.localAvatar.hp > 0:
             self.cr.playGame.getPlace().detectedElevatorCollision(self)
             toon = base.localAvatar
             self.sendUpdate('requestBoard', [])
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.dialog = TeaserPanel.TeaserPanel(pageName='cogHQ', doneFunc=self.handleOkTeaser)
Exemple #14
0
 def __handleAskDone(self):
     self.ignore(self.planPartyQuestionGuiDoneEvent)
     doneStatus = self.askGui.doneStatus
     if doneStatus == "ok":
         wantsToPlan = 1
         if (localAvatar.getGameAccess() != ToontownGlobals.AccessFull):
             wantsToPlan = 0
             place = base.cr.playGame.getPlace()
             if place:
                 place.fsm.request('stopped', force = 1)
             self.teaserDialog = TeaserPanel.TeaserPanel(pageName='parties', doneFunc = self.handleOkTeaser)
     else:
         wantsToPlan = 0
     self.sendUpdate("answer", [wantsToPlan])
     self.askGui.hide()
Exemple #15
0
    def handleEnterTrolleySphere(self, collEntry):
        self.notify.debug("Entering Trolley Sphere....")

        # To counter the toon trap bug
        if (base.localAvatar.getPos(render).getZ() <
            (self.trolleyCar.getPos(render).getZ())):
            return
        if self.allowedToEnter():
            # Put localToon into requestBoard mode.
            self.loader.place.detectedTrolleyCollision()
        else:
            place = base.cr.playGame.getPlace()
            if place:
                place.fsm.request('stopped')
            self.dialog = TeaserPanel.TeaserPanel(pageName='minigames',
                                                  doneFunc=self.handleOkTeaser)
 def handleCollisionSphereEnter(self, collEntry):
     """
     Response for a toon walking up to this NPC
     """
     assert self.notify.debug("Entering collision sphere...")
     if self.allowedToEnter():
         # Lock down the avatar for purchase mode
         base.cr.playGame.getPlace().fsm.request('purchase')
         # Tell the server
         self.sendUpdate("avatarEnter", [])
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.dialog = TeaserPanel.TeaserPanel(pageName='tricks',
                                               doneFunc=self.handleOkTeaser)
Exemple #17
0
 def enterUnpaidChatWarning(self):
     self.forceHidePayButton = False
     if base.cr.productName in ['DisneyOnline-UK',
      'JP',
      'DE',
      'BR',
      'FR']:
         directFrameText = OTPLocalizer.PaidParentPasswordUKWarning
         payButtonText = OTPLocalizer.PaidParentPasswordUKWarningSet
         directButtonText = OTPLocalizer.PaidParentPasswordUKWarningContinue
     else:
         directFrameText = OTPLocalizer.PaidNoParentPasswordWarning
         payButtonText = OTPLocalizer.PaidNoParentPasswordWarningSet
         directButtonText = OTPLocalizer.PaidNoParentPasswordWarningContinue
         if 'QuickLauncher' not in str(base.cr.launcher.__class__) and not base.cr.isPaid():
             directFrameText = OTPLocalizer.UnpaidNoParentPasswordWarning
             self.forceHidePayButton = True
     if self.unpaidChatWarning == None:
         guiButton = loader.loadModel('phase_3/models/gui/quit_button')
         buttonImage = (guiButton.find('**/QuitBtn_UP'), guiButton.find('**/QuitBtn_DN'), guiButton.find('**/QuitBtn_RLVR'))
         self.unpaidChatWarning = DirectFrame(parent=aspect2dp, pos=(0.0, 0.1, 0.4), relief=None, image=DGG.getDefaultDialogGeom(), image_color=OTPGlobals.GlobalDialogColor, image_scale=(1.2, 1.0, 0.8), text=directFrameText, text_wordwrap=TTLocalizer.TCMunpaidChatWarningWordwrap, text_scale=TTLocalizer.TCMunpaidChatWarning, text_pos=TTLocalizer.TCMunpaidChatWarningPos, textMayChange=0)
         self.payButton = DirectButton(self.unpaidChatWarning, image=buttonImage, relief=None, text=payButtonText, image_scale=(1.75, 1, 1.15), text_scale=TTLocalizer.TCMpayButton, text_pos=(0, -0.02), textMayChange=0, pos=TTLocalizer.TCMpayButtonPos, command=self.__handleUnpaidChatWarningPay)
         DirectButton(self.unpaidChatWarning, image=buttonImage, relief=None, text=directButtonText, textMayChange=0, image_scale=(1.75, 1, 1.15), text_scale=0.06, text_pos=(0, -0.02), pos=TTLocalizer.TCMdirectButtonTextPos, command=self.__handleUnpaidChatWarningContinue)
         guiButton.removeNode()
     if base.localAvatar.cantLeaveGame or self.forceHidePayButton:
         self.payButton.hide()
     else:
         self.payButton.show()
     if base.cr.productName not in ['ES',
      'JP',
      'DE',
      'BR',
      'FR']:
         self.unpaidChatWarning.show()
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.teaser = TeaserPanel.TeaserPanel('secretChat', self.__handleUnpaidChatWarningDone)
         if base.localAvatar.inTutorial:
             self.teaser.hidePay()
     normObs, scObs = self.isObscured()
     if not scObs:
         self.scButton.show()
     if not normObs:
         self.normalButton.show()
     return
Exemple #18
0
 def __typeAName(self):
     if base.cr.productName in ['JP',
      'DE',
      'BR',
      'FR']:
         if base.restrictTrialers:
             if not base.cr.isPaid():
                 dialog = TeaserPanel.TeaserPanel(pageName='typeAName')
                 return
     if self.fsm.getCurrentState().getName() == 'TypeAName':
         self.typeANameButton['text'] = TTLocalizer.TypeANameButton
         self.typeANameButton.wrtReparentTo(self.namePanel, sort=2)
         self.fsm.request('PickAName')
     else:
         self.typeANameButton['text'] = TTLocalizer.PickANameButton
         self.typeANameButton.wrtReparentTo(aspect2d, sort=2)
         self.typeANameButton.show()
         self.fsm.request('TypeAName')
    def requestInvite(self, inviteeId):
        self.notify.debug("requestInvite %s" % (inviteeId))
        # Check for trial toon
        elevator = base.cr.doId2do.get(self.getElevatorIdList()[0])
        if elevator:
            if elevator.allowedToEnter():
                # Check if the inviteeId is in the kick out list
                if inviteeId in self.getGroupKickList(localAvatar.doId):
                    if not self.isGroupLeader(localAvatar.doId):
                        # You cannot invite a toon if he is in the kick out list
                        # and if you are not the group leader
                        avatar = base.cr.doId2do.get(inviteeId)
                        if avatar:
                            avatarNameText = avatar.name
                        else:
                            avatarNameText = ''
                        rejectText = TTLocalizer.BoardingInviteeInKickOutList % (
                            avatarNameText)
                        self.showMe(rejectText)
                        return

                # Check if any Boarding Group Inviting Panel is up
                if self.inviterPanels.isInvitingPanelUp():
                    self.showMe(TTLocalizer.BoardingPendingInvite,
                                pos=(0, 0, 0))
                elif (len(self.getGroupMemberList(localAvatar.doId)) >=
                      self.maxSize):
                    # The Boarding Group is full, so you can't send any more invites.
                    self.showMe(TTLocalizer.BoardingInviteGroupFull)
                else:
                    # Show BoardingGroupInviter panel
                    invitee = base.cr.doId2do.get(inviteeId)
                    if invitee:
                        self.inviterPanels.createInvitingPanel(self, inviteeId)
                        # TODO: Add invitee to the groupListDict
                        # Sending the invite
                        self.sendUpdate("requestInvite", [inviteeId])
            else:
                place = base.cr.playGame.getPlace()
                if place:
                    place.fsm.request('stopped')
                self.teaserDialog = TeaserPanel.TeaserPanel(
                    pageName='cogHQ', doneFunc=self.handleOkTeaser)
Exemple #20
0
    def handleEnterSphere(self, collEntry):
        self.notify.debug("Entering Elevator Sphere....")

        # If the localAvatar is part of a boarding group and is not a leader,
        # he is not allowed to enter the elevator - Show a message.
        if hasattr(localAvatar, "boardingParty") and \
           localAvatar.boardingParty and \
           localAvatar.boardingParty.getGroupLeader(localAvatar.doId) and \
           localAvatar.boardingParty.getGroupLeader(localAvatar.doId) != localAvatar.doId:
            base.localAvatar.elevatorNotifier.showMe(TTLocalizer.ElevatorGroupMember)
        elif self.allowedToEnter():
            # Tell localToon we are considering entering the elevator
            self.cr.playGame.getPlace().detectedElevatorCollision(self)
        else:
            place = base.cr.playGame.getPlace()
            if place:
                place.fsm.request('stopped')
            self.dialog = TeaserPanel.TeaserPanel(pageName='cogHQ',
                                                  doneFunc=self.handleOkTeaser)
Exemple #21
0
 def handleCollisionSphereEnter(self, collEntry):
     """
     Response for a toon walking up to this NPC
     """
     assert self.notify.debug("Entering collision sphere...")
     if self.allowedToTalk():
         # Lock down the avatar for quest mode
         base.cr.playGame.getPlace().fsm.request('quest', [self])
         # Tell the server
         self.sendUpdate("avatarEnter", [])
         # make sure this NPCs chat balloon is visible above all others for th elocekd down avatar
         self.nametag3d.setDepthTest(0)
         self.nametag3d.setBin('fixed', 0)
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.dialog = TeaserPanel.TeaserPanel(pageName='quests',
                                               doneFunc=self.handleOkTeaser)
Exemple #22
0
    def enter(self, destHood):
        """enter(phase)
        """
        doneStatus = {}

        def letThrough(self=self, doneStatus=doneStatus):
            doneStatus['mode'] = 'pass'
            messenger.send(self.doneEvent, [doneStatus])

        if not base.restrictTrialers:
            letThrough()
            return

        if base.roamingTrialers:
            letThrough()
            return

        if base.cr.isPaid():
            # paid user, let them through
            letThrough()
            return

        if ZoneUtil.getCanonicalHoodId(destHood) in \
           (ToontownGlobals.ToontownCentral,
            ToontownGlobals.MyEstate,
            ToontownGlobals.GoofySpeedway,
            ):
            # trialer going to TTC/Estate/Goofy Speedway, let them through
            letThrough()
            return
        else:
            # Careful! You may not have a localToon yet
            try:
                # Make the Toon stand still while the panel is up
                base.localAvatar.b_setAnimState('neutral', 1)
            except:
                pass

        doneStatus['mode'] = 'fail'
        self.doneStatus = doneStatus
        self.dialog = TeaserPanel.TeaserPanel(pageName='otherHoods',
                                              doneFunc=self.handleOk)
Exemple #23
0
    def enterDoor(self):
        if config.GetBool('want-doomsday', False):
            base.localAvatar.disableAvatarControls()
            self.confirm = TTDialog.TTGlobalDialog(
                doneEvent='confirmDone',
                message=SafezoneInvasionGlobals.LeaveToontownCentralAlert,
                style=TTDialog.Acknowledge)
            self.confirm.show()
            self.accept('confirmDone', self.handleConfirm)
            return

        if self.allowedToEnter():
            messenger.send('DistributedDoor_doorTrigger')
            self.sendUpdate('requestEnter')
        else:
            place = base.cr.playGame.getPlace()
            if place:
                place.fsm.request('stopped')
            self.dialog = TeaserPanel.TeaserPanel(pageName='otherHoods',
                                                  doneFunc=self.handleOkTeaser)
 def handleEnterTrolleySphere(self, collEntry):
     if config.GetBool('want-doomsday', False):
         base.localAvatar.disableAvatarControls()
         self.confirm = TTDialog.TTGlobalDialog(
             doneEvent='confirmDone',
             message=SafezoneInvasionGlobals.BoardTrolleyAlert,
             style=TTDialog.Acknowledge)
         self.confirm.show()
         self.accept('confirmDone', self.handleConfirm)
         return
     self.notify.debug('Entering Trolley Sphere....')
     if base.localAvatar.getPos(render).getZ() < self.trolleyCar.getPos(
             render).getZ():
         return
     if self.allowedToEnter():
         self.loader.place.detectedTrolleyCollision()
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.dialog = TeaserPanel.TeaserPanel(pageName='minigames',
                                               doneFunc=self.handleOkTeaser)
Exemple #25
0
 def __typeAName(self):
     if not self.wantTypeAName:
         FeatureComingSoonDialog.FeatureComingSoonDialog(text="That feature is \1textShadow\1coming soon\2! Sorry about that!")
     
     else:
         if base.cr.productName in ['JP',
          'DE',
          'BR',
          'FR']:
             if base.restrictTrialers:
                 if not base.cr.isPaid():
                     dialog = TeaserPanel.TeaserPanel(pageName='typeAName')
                     return
         if self.fsm.getCurrentState().getName() == 'TypeAName':
             self.typeANameButton['text'] = TTLocalizer.TypeANameButton
             self.typeANameButton.wrtReparentTo(self.namePanel, sort=2)
             self.fsm.request('PickAName')
         else:
             self.typeANameButton['text'] = TTLocalizer.PickANameButton
             self.typeANameButton.wrtReparentTo(aspect2d, sort=2)
             self.typeANameButton.show()
             self.fsm.request('TypeAName')
    def handleEnterSphere(self, collEntry):
        self.notify.debug("Entering Elevator Sphere....")
        #print("handleEnterSphere elevator%s avatar%s" % (self.elevatorTripId, localAvatar.lastElevatorLeft))
        if self.allowedToEnter():
            if self.elevatorTripId and (localAvatar.lastElevatorLeft
                                        == self.elevatorTripId):
                #print("NO BACKCIES!")
                self.rejectBoard(base.localAvatar.doId, REJECT_SHUFFLE)

            # Only toons with hp can board the elevator.
            elif base.localAvatar.hp > 0:
                # Put localToon into requestBoard mode.
                self.cr.playGame.getPlace().detectedElevatorCollision(self)
                # Tell the server that this avatar wants to board.
                toon = base.localAvatar
                self.sendUpdate("requestBoard", [])
        else:
            place = base.cr.playGame.getPlace()
            if place:
                place.fsm.request('stopped')
            self.dialog = TeaserPanel.TeaserPanel(pageName='cogHQ',
                                                  doneFunc=self.handleOkTeaser)
Exemple #27
0
 def enterDoor(self):
     if base.config.GetBool('want-doomsday', False):
         base.localAvatar.disableAvatarControls()
         self.confirm = TTDialog.TTGlobalDialog(doneEvent='confirmDone', message=SafezoneInvasionGlobals.LeaveToontownCentralAlert, style=TTDialog.Acknowledge)
         self.confirm.show()
         self.accept('confirmDone', self.handleConfirm)
         return
     if base.localAvatar.cameraFollow == 68:
         base.localAvatar.disableAvatarControls()
         self.confirm = TTDialog.TTGlobalDialog(doneEvent='confirmDone', message="You can't run away from this robot!", style=TTDialog.Acknowledge)
         self.confirm.show()
         self.accept('confirmDone', self.handleConfirm)
         return
     if base.cr.currentEpisode == 'gyro_tale':
         if ZoneUtil.getHoodId(self.zoneId) == ToontownGlobals.OldDaisyGardens and 'toon_landmark_DG_E1' not in self.getBuilding().getName():
             return
     if self.allowedToEnter():
         messenger.send('DistributedDoor_doorTrigger')
         self.sendUpdate('requestEnter')
     else:
         place = base.cr.playGame.getPlace()
         if place:
             place.fsm.request('stopped')
         self.dialog = TeaserPanel.TeaserPanel(pageName='otherHoods', doneFunc=self.handleOkTeaser)
 def _AvatarChoice__handleTrialer(self):
     TeaserPanel.TeaserPanel(pageName='sixToons')
Exemple #29
0
 def __handleTrialer(self):
     TeaserPanel.TeaserPanel(pageName='sixToons')
 def __restrictForward(self):
     TeaserPanel.TeaserPanel(pageName='species')