def enter(self, chipDestNode): destNode = self._CharFollowChipStateAI__lastWalkNode choices = CCharPaths.getAdjacentNodes( self._CharFollowChipStateAI__curWalkNode, self.paths) if len(choices) == 1: destNode = choices[0] else: while destNode == self._CharFollowChipStateAI__lastWalkNode: destNode = random.choice( CCharPaths.getAdjacentNodes( self._CharFollowChipStateAI__curWalkNode, self.paths)) destNode = chipDestNode self.notify.debug( 'Walking ' + self.character.getName() + '... from ' + str(self._CharFollowChipStateAI__curWalkNode) + '(' + str( CCharPaths.getNodePos(self._CharFollowChipStateAI__curWalkNode, self.paths)) + ') to ' + str(destNode) + '(' + str(CCharPaths.getNodePos(destNode, self.paths)) + ')') self.offsetDistance = ToontownGlobals.DaleOrbitDistance angle = random.randint(0, 359) self.offsetX = math.cos(deg2Rad(angle)) * self.offsetDistance self.offsetY = math.sin(deg2Rad(angle)) * self.offsetDistance self.character.sendUpdate('setFollowChip', [ self._CharFollowChipStateAI__curWalkNode, destNode, globalClockDelta.getRealNetworkTime(), self.offsetX, self.offsetY ]) duration = CCharPaths.getWalkDuration( self._CharFollowChipStateAI__curWalkNode, destNode, self.speed, self.paths) t = taskMgr.doMethodLater( duration, self._CharFollowChipStateAI__doneHandler, self.character.taskName(self.character.getName() + 'DoneWalking')) t.newWalkNode = destNode
def enter(self): destNode = self._CharWalkStateAI__lastWalkNode choices = CCharPaths.getAdjacentNodes( self._CharWalkStateAI__curWalkNode, self.paths) if len(choices) == 1: destNode = choices[0] else: while destNode == self._CharWalkStateAI__lastWalkNode: destNode = random.choice( CCharPaths.getAdjacentNodes( self._CharWalkStateAI__curWalkNode, self.paths)) self.notify.debug( 'Walking ' + self.character.getName() + '... from ' + str(self._CharWalkStateAI__curWalkNode) + '(' + str( CCharPaths.getNodePos(self._CharWalkStateAI__curWalkNode, self.paths)) + ') to ' + str(destNode) + '(' + str(CCharPaths.getNodePos(destNode, self.paths)) + ')') self.character.sendUpdate('setWalk', [ self._CharWalkStateAI__curWalkNode, destNode, globalClockDelta.getRealNetworkTime() ]) duration = CCharPaths.getWalkDuration( self._CharWalkStateAI__curWalkNode, destNode, self.speed, self.paths) t = taskMgr.doMethodLater( duration, self.doneHandler, self.character.taskName(self.character.getName() + 'DoneWalking')) t.newWalkNode = destNode self.destNode = destNode
def generate(self, diffPath = None): DistributedChar.DistributedChar.generate(self) if diffPath == None: self.setPos(CCharPaths.getNodePos(CCharPaths.startNode, CCharPaths.getPaths(self.getName(), self.getCCLocation()))) else: self.setPos(CCharPaths.getNodePos(CCharPaths.startNode, CCharPaths.getPaths(diffPath, self.getCCLocation()))) self.setHpr(0, 0, 0) self.setParent(ToontownGlobals.SPRender) self.startBlink() self.startEarTask() self.chatTrack = Sequence() self.chatterDialogue = None self.acceptOnce('enter' + self.cSphereNode.getName(), self.__handleCollisionSphereEnter) self.accept('exitSafeZone', self.__handleExitSafeZone) return