def enter(self, chipDestNode): destNode = self.__lastWalkNode choices = CCharPaths.getAdjacentNodes(self.__curWalkNode, self.paths) if len(choices) == 1: destNode = choices[0] else: while destNode == self.__lastWalkNode: destNode = random.choice( CCharPaths.getAdjacentNodes(self.__curWalkNode, self.paths)) destNode = chipDestNode self.notify.debug( 'Walking ' + self.character.getName() + '... from ' + str(self.__curWalkNode) + '(' + str(CCharPaths.getNodePos(self.__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.__curWalkNode, destNode, globalClockDelta.getRealNetworkTime(), self.offsetX, self.offsetY ]) duration = CCharPaths.getWalkDuration(self.__curWalkNode, destNode, self.speed, self.paths) t = taskMgr.doMethodLater( duration, self.__doneHandler, self.character.taskName(self.character.getName() + 'DoneWalking')) t.newWalkNode = destNode
def enter(self): destNode = self.__lastWalkNode choices = CCharPaths.getAdjacentNodes(self.__curWalkNode, self.paths) if len(choices) == 1: destNode = choices[0] else: while destNode == self.__lastWalkNode: destNode = random.choice( CCharPaths.getAdjacentNodes(self.__curWalkNode, self.paths)) self.notify.debug( 'Walking ' + self.character.getName() + '... from ' + str(self.__curWalkNode) + '(' + str(CCharPaths.getNodePos(self.__curWalkNode, self.paths)) + ') to ' + str(destNode) + '(' + str(CCharPaths.getNodePos(destNode, self.paths)) + ')') self.character.sendUpdate('setWalk', [ self.__curWalkNode, destNode, globalClockDelta.getRealNetworkTime() ]) duration = CCharPaths.getWalkDuration(self.__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 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 enter(self, chipDestNode): """ //////////////////////////////////////////////////////////////////// // Function: called when the character enters the walk state // create a doLater to wait a specific amount of time // while character gets to the destination on all client // machines. // Parameters: none // Changes: //////////////////////////////////////////////////////////////////// """ # choose a destination # choose a new destination node, different from last #import pdb; pdb.set_trace() destNode = self.__lastWalkNode choices = CCharPaths.getAdjacentNodes(self.__curWalkNode, self.paths) if len(choices) == 1: destNode = choices[0] else: while destNode == self.__lastWalkNode: destNode = random.choice( CCharPaths.getAdjacentNodes(self.__curWalkNode, self.paths)) destNode = chipDestNode self.notify.debug("Walking " + self.character.getName() + "... from " + \ str(self.__curWalkNode) + "(" + str(CCharPaths.getNodePos(self.__curWalkNode, self.paths)) + ") to " + \ str(destNode) + "(" + str(CCharPaths.getNodePos(destNode,self.paths)) + ")") # calculate an offset 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 # broadcast the walk self.character.sendUpdate("setFollowChip", [ self.__curWalkNode, destNode, globalClockDelta.getRealNetworkTime(), self.offsetX, self.offsetY ]) # set up a doLater to fire when character is done walking duration = CCharPaths.getWalkDuration(self.__curWalkNode, destNode, self.speed, self.paths) t = taskMgr.doMethodLater( duration, self.__doneHandler, self.character.taskName(self.character.getName() + "DoneWalking")) t.newWalkNode = destNode
def enter(self): """ //////////////////////////////////////////////////////////////////// // Function: called when the character enters the walk state // create a doLater to wait a specific amount of time // while character gets to the destination on all client // machines. // Parameters: none // Changes: //////////////////////////////////////////////////////////////////// """ # choose a destination # choose a new destination node, different from last destNode = self.__lastWalkNode choices = CCharPaths.getAdjacentNodes(self.__curWalkNode, self.paths) if len(choices) == 1: destNode = choices[0] else: while destNode == self.__lastWalkNode: destNode = random.choice( CCharPaths.getAdjacentNodes(self.__curWalkNode, self.paths)) self.notify.debug("Walking " + self.character.getName() + "... from " + \ str(self.__curWalkNode) + "(" + str(CCharPaths.getNodePos(self.__curWalkNode, self.paths)) + ") to " + \ str(destNode) + "(" + str(CCharPaths.getNodePos(destNode,self.paths)) + ")") # broadcast the walk self.character.sendUpdate("setWalk", [ self.__curWalkNode, destNode, globalClockDelta.getRealNetworkTime() ]) # set up a doLater to fire when character is done walking duration = CCharPaths.getWalkDuration(self.__curWalkNode, destNode, self.speed, self.paths) t = taskMgr.doMethodLater( duration, self.doneHandler, self.character.taskName(self.character.getName() + "DoneWalking")) t.newWalkNode = destNode # keep track of the destination since dale needs to know about self.destNode = destNode
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