コード例 #1
0
 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
コード例 #2
0
 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
コード例 #3
0
 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