Пример #1
0
    def _addGoalsReAvatar(self, avId):
        # add goals that have to do with a particular avatar
        av = self.pet.air.doId2do.get(avId)
        """assert av is not None, (
            '%s._addGoalsReAvatar: %s not in doId2do' % (self.pet.doId, avId))
            """
        if av is None:
            PetBrain.notify.warning('%s._addGoalsReAvatar: %s not in doId2do' %
                                    (self.pet.doId, avId))
            return

        # add goals related to this avatar
        if avId not in self.doId2goals:
            goals = [
                PetGoal.ChaseAvatar(av),
                PetGoal.FleeFromAvatar(av),
            ]
            """
            if isinstance(av, DistributedToonAI.DistributedToonAI):
                goals += [
                    ]
                    """
            self.doId2goals[avId] = goals
            self.lastInteractTime.setdefault(avId, 0)

        for goal in self.doId2goals[avId]:
            self.goalMgr.addGoal(goal)
 def _addGoalsReAvatar(self, avId):
     av = self.pet.air.doId2do.get(avId)
     if av is None:
         PetBrain.notify.warning('%s._addGoalsReAvatar: %s not in doId2do' %
                                 (self.pet.doId, avId))
         return
     if avId not in self.doId2goals:
         goals = [PetGoal.ChaseAvatar(av), PetGoal.FleeFromAvatar(av)]
         self.doId2goals[avId] = goals
         self.lastInteractTime.setdefault(avId, 0)
     for goal in self.doId2goals[avId]:
         self.goalMgr.addGoal(goal)
    def start(self):
        PetBrain.notify.debug('start: %s' % self.pet.doId)
        self.lookers = {}
        self.lookees = {}
        self.accept(PetLookerAI.getStartLookedAtByOtherEvent(
            self.pet.doId), self._handleLookedAtByOtherStart)
        self.accept(PetLookerAI.getStopLookedAtByOtherEvent(
            self.pet.doId), self._handleLookedAtByOtherStop)
        self.accept(PetLookerAI.getStartLookingAtOtherEvent(
            self.pet.doId), self._handleLookingAtOtherStart)
        self.accept(PetLookerAI.getStopLookingAtOtherEvent(
            self.pet.doId), self._handleLookingAtOtherStop)
        self.globalGoals = [PetGoal.Wander()]
        for goal in self.globalGoals:
            self.goalMgr.addGoal(goal)

        for doId in self.pet._getNearbyAvatarDict():
            self._handleAvatarArrive(doId)

        self.tLastLonelinessUpdate = globalClock.getFrameTime()
        taskMgr.doMethodLater(
            simbase.petThinkPeriod *
            random.random(),
            self._think,
            self.getThinkTaskName())
        self.started = 1
Пример #4
0
 def _handleDoTrick(trickId, avId, self=self):
     avatar = simbase.air.doId2do.get(avId)
     if avatar:
         if self.lookedAtBy(avatar.doId):
             if not self.goalMgr.hasTrickGoal():
                 if not self.pet._willDoTrick(trickId):
                     self.pet.trickFailLogger.addEvent(trickId)
                     trickId = PetTricks.Tricks.BALK
                 trickGoal = PetGoal.DoTrick(avatar, trickId)
                 self.goalMgr.addGoal(trickGoal)
 def toggleLeash(self, avId):
     if self.leashMode:
         self.leashMode = 0
         self.leashAvId = None
         self.brain.goalMgr.removeGoal(self.leashGoal)
         del self.leashGoal
         response = 'leash OFF'
     else:
         self.leashMode = 1
         self.leashAvId = avId
         self.leashGoal = PetGoal.ChaseAvatarLeash(avId)
         self.brain.goalMgr.addGoal(self.leashGoal)
         response = 'leash ON'
     return response
Пример #6
0
 def _handleDoTrick(trickId, avId, self=self):
     # av is telling us to do a trick
     avatar = simbase.air.doId2do.get(avId)
     if avatar:
         if self.lookedAtBy(avatar.doId):
             # there should only be one DoTrick goal at a time
             if not self.goalMgr.hasTrickGoal():
                 # will the pet do the trick?
                 if not self.pet._willDoTrick(trickId):
                     self.pet.trickFailLogger.addEvent(trickId)
                     trickId = PetTricks.Tricks.BALK
                 # add a goal of doing the trick
                 trickGoal = PetGoal.DoTrick(avatar, trickId)
                 self.goalMgr.addGoal(trickGoal)