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)
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)
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
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)
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)
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)
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)
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)
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()
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)
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
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)
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)
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)
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)
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)
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)
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')
def __handleTrialer(self): TeaserPanel.TeaserPanel(pageName='sixToons')
def __restrictForward(self): TeaserPanel.TeaserPanel(pageName='species')