def enterThrowGear(self, point, ts=0):
     lookNode = render.attachNewNode('pointNode')
     lookNode.setPos(point)
     #self.gearModel.reparentTo(render)
     #self.gearModel.setPos(point)
     throwSfx = base.audio3d.loadSfx(
         "phase_9/audio/sfx/CHQ_VP_frisbee_gears.mp3")
     base.audio3d.attachSoundToObject(throwSfx, self)
     if hasattr(self, 'uniqueName'):
         name = self.uniqueName('vpThrowGear')
     else:
         name = 'vpThrowGear'
     self.track = Sequence(NPCLookInterval(self.vp_torso_node,
                                           lookNode,
                                           blendType='easeInOut',
                                           isBackwards=False),
                           Func(VicePresident.throwGear, self, point),
                           Func(base.playSfx, throwSfx),
                           ActorInterval(self, "throw"),
                           name=name)
     self.track.setDoneEvent(self.track.getName())
     self.acceptOnce(self.track.getDoneEvent(), self.fsm.request,
                     ["neutral"])
     self.track.start(ts)
     lookNode.removeNode()
     del lookNode
예제 #2
0
 def enterSeekTarget(self, event):
     dialogue = random.choice(CGG.GuardDialog[event])
     self.setChat(dialogue)
     self.loop('walk')
     self.moveTrack = NPCLookInterval(self, base.localAvatar)
     self.moveTrack.setDoneEvent(self.uniqueName('SeekLocalAvatar'))
     self.acceptOnce(self.moveTrack.getDoneEvent(), self.request,
                     ['TryToConfirmTarget'])
     self.moveTrack.start()
 def enterTurn2Target(self, toon):
     self.turnIval = NPCLookInterval(self, toon, fluid=1, name=self.uniqueName('turnIval'))
     if self.turnIval.distance > 30:
         self.loop('walk')
     else:
         if self.turnIval.distance < 10.0:
             self.headsUp(toon)
             self.neutralFSM.request('talk2target')
             return
     self.turnIval.setDoneEvent(self.turnIval.getName())
     self.acceptOnce(self.turnIval.getDoneEvent(), self.__handleTurningDone)
     self.turnIval.start()
 def enterNeutral(self, ts=0):
     if self.getCurrentAnim() != 'stand-angry':
         if self.knockedDown:
             base.playSfx(self.chirps, looping=1)
             self.loop("dn_neutral")
         else:
             self.loop("stand-angry")
     self.track = NPCLookInterval(self.vp_torso_node,
                                  Vec3(0, 0, 0),
                                  blendType='easeInOut',
                                  name='lookAtCenter',
                                  isBackwards=False)
     self.track.start(ts)