Example #1
0
 def fillSlot(self, index, avId):
     self.notify.debug('%s.fillSlot(%s, %s, ...)' % (self.doId, index, avId))
     request = self.toonRequests.get(index)
     if request:
         self.cr.relatedObjectMgr.abortRequest(request)
         del self.toonRequests[index]
     if avId == 0:
         pass
     else:
         if not self.cr.doId2do.has_key(avId):
             func = PythonUtil.Functor(self.gotToon, index, avId)
             self.toonRequests[index] = self.cr.relatedObjectMgr.requestObjects([avId], allCallback=func)
         else:
             if not self.isSetup:
                 self.deferredSlots.append((index, avId))
             else:
                 if avId == base.localAvatar.getDoId():
                     self.localToonOnBoard = 1
                     elevator = self.getPlaceElevator()
                     elevator.fsm.request('boarding', [self.getElevatorModel()])
                     elevator.fsm.request('boarded')
                 toon = self.cr.doId2do[avId]
                 toon.stopSmooth()
                 toon.wrtReparentTo(self.golfKart)
                 sitStartDuration = toon.getDuration('sit-start')
                 jumpTrack = self.generateToonJumpTrack(toon, index)
                 track = Sequence(jumpTrack, Func(toon.setAnimState, 'Sit', 1.0), Func(self.clearToonTrack, avId), name=toon.uniqueName('fillElevator'), autoPause=1)
                 track.delayDelete = DelayDelete.DelayDelete(toon, 'fillSlot')
                 self.storeToonTrack(avId, track)
                 track.start()
                 self.boardedAvIds[avId] = None
     return
Example #2
0
    def requestPurchase(self, phone, callback):
        from toontown.toontowngui import TTDialog
        avatar = base.localAvatar
        itemsOnOrder = 0
        for item in avatar.onOrder + avatar.mailboxContents:
            if item.storedInAttic() and not item.replacesExisting():
                itemsOnOrder += 1

        if phone.numHouseItems is None:
            phone.numHouseItems = 0
        numHouseItems = phone.numHouseItems + itemsOnOrder
        if numHouseItems >= ToontownGlobals.MaxHouseItems and not self.replacesExisting(
        ):
            self.requestPurchaseCleanup()
            buttonCallback = PythonUtil.Functor(
                self.__handleFullPurchaseDialog, phone, callback)
            self.dialog = TTDialog.TTDialog(
                style=TTDialog.YesNo,
                text=TTLocalizer.CatalogPurchaseHouseFull,
                text_wordwrap=15,
                command=buttonCallback)
            self.dialog.show()
        else:
            CatalogItem.CatalogItem.requestPurchase(self, phone, callback)
        return
 def fillSlot(self, index, avId):
     self.notify.debug('%s.fillSlot(%s, %s, ...)' %
                       (self.doId, index, avId))
     request = self.toonRequests.get(index)
     if request:
         self.cr.relatedObjectMgr.abortRequest(request)
         del self.toonRequests[index]
     if avId == 0:
         pass
     else:
         if not self.cr.doId2do.has_key(avId):
             func = PythonUtil.Functor(self.gotToon, index, avId)
             self.toonRequests[
                 index] = self.cr.relatedObjectMgr.requestObjects(
                     [avId], allCallback=func)
         else:
             if not self.isSetup:
                 self.deferredSlots.append((index, avId))
             else:
                 if avId == base.localAvatar.getDoId():
                     self.localToonOnBoard = 1
                     elevator = self.getPlaceElevator()
                     elevator.fsm.request('boarding',
                                          [self.getElevatorModel()])
                     elevator.fsm.request('boarded')
                 toon = self.cr.doId2do[avId]
                 toon.stopSmooth()
                 toon.setZ(self.getElevatorModel(),
                           self.getScaledPoint(index)[2])
                 toon.setShadowHeight(0)
                 if toon.isDisguised:
                     toon.suit.loop('walk')
                     animFunc = Func(toon.suit.loop, 'neutral')
                 else:
                     toon.setAnimState('run', 1.0)
                     animFunc = Func(toon.setAnimState, 'neutral', 1.0)
                 toon.headsUp(self.getElevatorModel(),
                              apply(Point3, self.getScaledPoint(index)))
                 track = Sequence(
                     LerpPosInterval(toon,
                                     TOON_BOARD_ELEVATOR_TIME * 0.75,
                                     apply(Point3,
                                           self.getScaledPoint(index)),
                                     other=self.getElevatorModel()),
                     LerpHprInterval(toon,
                                     TOON_BOARD_ELEVATOR_TIME * 0.25,
                                     Point3(180, 0, 0),
                                     other=self.getElevatorModel()),
                     animFunc,
                     name=toon.uniqueName('fillElevator'),
                     autoPause=1)
                 track.start()
                 self.boardedAvIds[avId] = index
Example #4
0
    def requestPurchase(self, phone, callback):
        from toontown.toontowngui import TTDialog
        avatar = base.localAvatar
        clothesOnOrder = 0
        for item in avatar.onOrder + avatar.mailboxContents:
            if item.storedInCloset():
                clothesOnOrder += 1

        if avatar.isClosetFull(clothesOnOrder):
            self.requestPurchaseCleanup()
            buttonCallback = PythonUtil.Functor(self.__handleFullPurchaseDialog, phone, callback)
            self.dialog = TTDialog.TTDialog(style=TTDialog.YesNo, text=TTLocalizer.CatalogPurchaseClosetFull, text_wordwrap=15, command=buttonCallback)
            self.dialog.show()
        else:
            CatalogItem.CatalogItem.requestPurchase(self, phone, callback)
Example #5
0
    def requestPurchase(self, phone, callback):
        from toontown.toontowngui import TTDialog
        avatar = base.localAvatar
        accessoriesOnOrder = 0
        for item in avatar.onOrder + avatar.mailboxContents:
            if item.storedInTrunk():
                accessoriesOnOrder += 1

        if avatar.isTrunkFull(accessoriesOnOrder):
            self.requestPurchaseCleanup()
            buttonCallback = PythonUtil.Functor(
                self.__handleFullPurchaseDialog, phone, callback)
            if avatar.getMaxAccessories() == 0:
                text = TTLocalizer.CatalogPurchaseNoTrunk
            else:
                text = TTLocalizer.CatalogPurchaseTrunkFull
            self.dialog = TTDialog.TTDialog(style=TTDialog.YesNo,
                                            text=text,
                                            text_wordwrap=15,
                                            command=buttonCallback)
            self.dialog.show()
        else:
            CatalogItem.CatalogItem.requestPurchase(self, phone, callback)
Example #6
0
 def fillSlot(self, index, avId, wantBoardingShow=0):
     self.notify.debug('%s.fillSlot(%s, %s, ...)' %
                       (self.doId, index, avId))
     request = self.toonRequests.get(index)
     if request:
         self.cr.relatedObjectMgr.abortRequest(request)
         del self.toonRequests[index]
     if avId == 0:
         pass
     else:
         if not self.cr.doId2do.has_key(avId):
             func = PythonUtil.Functor(self.gotToon, index, avId)
             self.toonRequests[
                 index] = self.cr.relatedObjectMgr.requestObjects(
                     [avId], allCallback=func)
         else:
             if not self.isSetup:
                 self.deferredSlots.append((index, avId, wantBoardingShow))
             else:
                 if avId == base.localAvatar.getDoId():
                     place = base.cr.playGame.getPlace()
                     if not place:
                         return
                     place.detectedElevatorCollision(self)
                     elevator = self.getPlaceElevator()
                     if elevator == None:
                         if place.fsm.hasStateNamed('elevator'):
                             place.fsm.request('elevator')
                         else:
                             if place.fsm.hasStateNamed('Elevator'):
                                 place.fsm.request('Elevator')
                         elevator = self.getPlaceElevator()
                     if not elevator:
                         return
                     self.localToonOnBoard = 1
                     if hasattr(
                             localAvatar,
                             'boardingParty') and localAvatar.boardingParty:
                         localAvatar.boardingParty.forceCleanupInviteePanel(
                         )
                         localAvatar.boardingParty.forceCleanupInviterPanels(
                         )
                     if hasattr(base.localAvatar, 'elevatorNotifier'):
                         base.localAvatar.elevatorNotifier.cleanup()
                     cameraTrack = Sequence()
                     cameraTrack.append(
                         Func(elevator.fsm.request, 'boarding',
                              [self.getElevatorModel()]))
                     cameraTrack.append(
                         Func(elevator.fsm.request, 'boarded'))
                 toon = self.cr.doId2do[avId]
                 toon.stopSmooth()
                 if not wantBoardingShow:
                     toon.setZ(self.getElevatorModel(),
                               self.elevatorPoints[index][2])
                     toon.setShadowHeight(0)
                 if toon.isDisguised:
                     animInFunc = Sequence(Func(toon.suit.loop, 'walk'))
                     animFunc = Sequence(
                         Func(toon.setAnimState, 'neutral', 1.0),
                         Func(toon.suit.loop, 'neutral'))
                 else:
                     animInFunc = Sequence(
                         Func(toon.setAnimState, 'run', 1.0))
                     animFunc = Func(toon.setAnimState, 'neutral', 1.0)
                 toon.headsUp(self.getElevatorModel(),
                              apply(Point3, self.elevatorPoints[index]))
                 track = Sequence(
                     animInFunc,
                     LerpPosInterval(toon,
                                     TOON_BOARD_ELEVATOR_TIME * 0.75,
                                     apply(Point3,
                                           self.elevatorPoints[index]),
                                     other=self.getElevatorModel()),
                     LerpHprInterval(toon,
                                     TOON_BOARD_ELEVATOR_TIME * 0.25,
                                     Point3(180, 0, 0),
                                     other=self.getElevatorModel()),
                     Func(self.clearToonTrack, avId),
                     animFunc,
                     name=toon.uniqueName('fillElevator'),
                     autoPause=1)
                 if wantBoardingShow:
                     boardingTrack, boardingTrackType = self.getBoardingTrack(
                         toon, index, False)
                     track = Sequence(boardingTrack, track)
                     if avId == base.localAvatar.getDoId():
                         cameraWaitTime = 2.5
                         if boardingTrackType == BoardingGroupShow.TRACK_TYPE_RUN:
                             cameraWaitTime = 0.5
                         else:
                             if boardingTrackType == BoardingGroupShow.TRACK_TYPE_POOF:
                                 cameraWaitTime = 1
                         cameraTrack = Sequence(Wait(cameraWaitTime),
                                                cameraTrack)
                 if self.canHideBoardingQuitBtn(avId):
                     track = Sequence(
                         Func(localAvatar.boardingParty.groupPanel.
                              disableQuitButton), track)
                 if avId == base.localAvatar.getDoId():
                     track = Parallel(cameraTrack, track)
                 track.delayDelete = DelayDelete.DelayDelete(
                     toon, 'Elevator.fillSlot')
                 self.storeToonTrack(avId, track)
                 track.start()
                 self.fillSlotTrack = track
                 self.boardedAvIds[avId] = None
     return
Example #7
0
 def fillSlot(self, index, avId, wantBoardingShow=0):
     self.notify.debug('%s.fillSlot(%s, %s, ... %s)' %
                       (self.doId, index, avId, globalClock.getRealTime()))
     request = self.toonRequests.get(index)
     if request:
         self.cr.relatedObjectMgr.abortRequest(request)
         del self.toonRequests[index]
     if avId == 0:
         pass
     else:
         if not self.cr.doId2do.has_key(avId):
             func = PythonUtil.Functor(self.gotToon, index, avId)
             self.toonRequests[
                 index] = self.cr.relatedObjectMgr.requestObjects(
                     [avId], allCallback=func)
         else:
             if not self.isSetup:
                 self.deferredSlots.append((index, avId, wantBoardingShow))
             else:
                 if avId == base.localAvatar.getDoId():
                     place = base.cr.playGame.getPlace()
                     if not place:
                         return
                     elevator = self.getPlaceElevator()
                     if elevator == None:
                         place.fsm.request('elevator')
                         elevator = self.getPlaceElevator()
                     if not elevator:
                         return
                     self.localToonOnBoard = 1
                     if hasattr(
                             localAvatar,
                             'boardingParty') and localAvatar.boardingParty:
                         localAvatar.boardingParty.forceCleanupInviteePanel(
                         )
                         localAvatar.boardingParty.forceCleanupInviterPanels(
                         )
                     if hasattr(base.localAvatar, 'elevatorNotifier'):
                         base.localAvatar.elevatorNotifier.cleanup()
                     cameraTrack = Sequence()
                     cameraTrack.append(
                         Func(elevator.fsm.request, 'boarding',
                              [self.getElevatorModel()]))
                     cameraTrack.append(
                         Func(elevator.fsm.request, 'boarded'))
                 toon = self.cr.doId2do[avId]
                 toon.stopSmooth()
                 toon.wrtReparentTo(self.golfKart)
                 sitStartDuration = toon.getDuration('sit-start')
                 jumpTrack = self.generateToonJumpTrack(toon, index)
                 track = Sequence(jumpTrack,
                                  Func(toon.setAnimState, 'Sit', 1.0),
                                  Func(self.clearToonTrack, avId),
                                  name=toon.uniqueName('fillElevator'),
                                  autoPause=1)
                 if wantBoardingShow:
                     boardingTrack, boardingTrackType = self.getBoardingTrack(
                         toon, index, True)
                     track = Sequence(boardingTrack, track)
                     if avId == base.localAvatar.getDoId():
                         cameraWaitTime = 2.5
                         if boardingTrackType == BoardingGroupShow.TRACK_TYPE_RUN:
                             cameraWaitTime = 0.5
                         cameraTrack = Sequence(Wait(cameraWaitTime),
                                                cameraTrack)
                 if self.canHideBoardingQuitBtn(avId):
                     track = Sequence(
                         Func(localAvatar.boardingParty.groupPanel.
                              disableQuitButton), track)
                 if avId == base.localAvatar.getDoId():
                     track = Parallel(cameraTrack, track)
                 track.delayDelete = DelayDelete.DelayDelete(
                     toon, 'CogKart.fillSlot')
                 self.storeToonTrack(avId, track)
                 track.start()
                 self.fillSlotTrack = track
                 self.boardedAvIds[avId] = None
     return