def enterMoveAvatars(self, choiceList, positionList, rewardList):
     self.notify.debug('in enterMoveAvatars:')
     tasks = []
     self.avatarPositionsCopy = self.avatarPositions.copy()
     for i in range(0, len(choiceList) / self.numPlayers):
         startIndex = i * self.numPlayers
         endIndex = startIndex + self.numPlayers
         self.choiceList = choiceList[startIndex:endIndex]
         self.positionList = positionList[startIndex:endIndex]
         self.rewardList = rewardList[startIndex:endIndex]
         self.notify.debug('           turn: ' + str(i + 1))
         self.notify.debug('     choiceList: ' + str(self.choiceList))
         self.notify.debug('   positionList: ' + str(self.positionList))
         self.notify.debug('     rewardList: ' + str(self.rewardList))
         longestLerpTime = self.getLongestLerpTime(i > 0)
         self.notify.debug('longestLerpTime: ' + str(longestLerpTime))
         if i == 0:
             snt = Task(self.showNumbers)
             snt.choiceList = self.choiceList
             smt = Task(self.showMatches)
             smt.choiceList = self.choiceList
             tasks += [
                 snt,
                 Task.pause(0.5),
                 smt]
         
         if longestLerpTime > 0.0:
             self.notify.debug('someone moved...')
             mat = Task(self.moveAvatars)
             mat.choiceList = self.choiceList
             mat.positionList = self.positionList
             mat.rewardList = self.rewardList
             mat.name = 'moveAvatars'
             if i == 0:
                 tasks += [
                     Task.pause(0.75),
                     mat,
                     Task.pause(0.75),
                     Task(self.hideNumbers),
                     Task.pause(longestLerpTime - 0.5)]
             else:
                 mat.chance = 1
                 tasks += [
                     mat,
                     Task.pause(longestLerpTime)]
             tasks += self.showChanceRewards()
             continue
         self.notify.debug('no one moved...')
         tasks += [
             Task.pause(1.0),
             Task(self.hideNumbers)]
     
     self.notify.debug('task list : ' + str(tasks))
     wdt = Task(self.walkDone)
     wdt.name = 'walk done'
     tasks.append(wdt)
     moveTask = Task.sequence(*tasks)
     taskMgr.add(moveTask, 'moveAvatars')
 def enterMoveAvatars(self, choiceList, positionList, rewardList):
     self.notify.debug('in enterMoveAvatars:')
     tasks = []
     self.avatarPositionsCopy = self.avatarPositions.copy()
     for i in range(0, len(choiceList) / self.numPlayers):
         startIndex = i * self.numPlayers
         endIndex = startIndex + self.numPlayers
         self.choiceList = choiceList[startIndex:endIndex]
         self.positionList = positionList[startIndex:endIndex]
         self.rewardList = rewardList[startIndex:endIndex]
         self.notify.debug('           turn: ' + str(i + 1))
         self.notify.debug('     choiceList: ' + str(self.choiceList))
         self.notify.debug('   positionList: ' + str(self.positionList))
         self.notify.debug('     rewardList: ' + str(self.rewardList))
         longestLerpTime = self.getLongestLerpTime(i > 0)
         self.notify.debug('longestLerpTime: ' + str(longestLerpTime))
         if i == 0:
             snt = Task(self.showNumbers)
             snt.choiceList = self.choiceList
             smt = Task(self.showMatches)
             smt.choiceList = self.choiceList
             tasks += [
                 snt,
                 Task.pause(0.5),
                 smt]
         
         if longestLerpTime > 0.0:
             self.notify.debug('someone moved...')
             mat = Task(self.moveAvatars)
             mat.choiceList = self.choiceList
             mat.positionList = self.positionList
             mat.rewardList = self.rewardList
             mat.name = 'moveAvatars'
             if i == 0:
                 tasks += [
                     Task.pause(0.75),
                     mat,
                     Task.pause(0.75),
                     Task(self.hideNumbers),
                     Task.pause(longestLerpTime - 0.5)]
             else:
                 mat.chance = 1
                 tasks += [
                     mat,
                     Task.pause(longestLerpTime)]
             tasks += self.showChanceRewards()
             continue
         self.notify.debug('no one moved...')
         tasks += [
             Task.pause(1.0),
             Task(self.hideNumbers)]
     
     self.notify.debug('task list : ' + str(tasks))
     wdt = Task(self.walkDone)
     wdt.name = 'walk done'
     tasks.append(wdt)
     moveTask = Task.sequence(*tasks)
     taskMgr.add(moveTask, 'moveAvatars')
    def enterMoveAvatars(self, choiceList, positionList, rewardList):
        self.notify.debug("in enterMoveAvatars:")
        # These arrays could contain multiple turn information,
        # so unroll them one turn at a time
        tasks = []

        # Make a copy for getLongestLerpTime to stomp on
        self.avatarPositionsCopy = self.avatarPositions.copy()

        for i in range(0, len(choiceList) / self.numPlayers):
            startIndex = i * self.numPlayers
            endIndex = startIndex + self.numPlayers
            self.choiceList = choiceList[startIndex:endIndex]
            self.positionList = positionList[startIndex:endIndex]
            self.rewardList = rewardList[startIndex:endIndex]

            self.notify.debug("           turn: " + str(i + 1))
            self.notify.debug("     choiceList: " + str(self.choiceList))
            self.notify.debug("   positionList: " + str(self.positionList))
            self.notify.debug("     rewardList: " + str(self.rewardList))

            longestLerpTime = self.getLongestLerpTime(i > 0)

            self.notify.debug("longestLerpTime: " + str(longestLerpTime))

            # only need to do this once
            if i == 0:
                snt = Task(self.showNumbers)
                snt.choiceList = self.choiceList
                smt = Task(self.showMatches)
                smt.choiceList = self.choiceList
                tasks += [
                    snt,
                    Task.pause(0.5),
                    smt,
                ]

            # there may be multiple moves per turn thanks to the
            # chance cards. Concatenate all tasks into a list,
            # then make one big sequence out of the lists
            if longestLerpTime > 0.0:
                self.notify.debug("someone moved...")
                # If anybody moves, add all these task
                mat = Task(self.moveAvatars)
                mat.choiceList = self.choiceList
                mat.positionList = self.positionList
                mat.rewardList = self.rewardList
                mat.name = "moveAvatars"
                if i == 0:
                    tasks += [
                        Task.pause(0.75),
                        # Start moving the avatars with the numbers up
                        # for just a brief time
                        mat,
                        Task.pause(0.75),
                        Task(self.hideNumbers),
                        # Wait for the walk to finish
                        Task.pause(longestLerpTime - 0.5),
                    ]
                else:
                    mat.chance = 1
                    tasks += [
                        mat,
                        # Wait for the walk to finish
                        Task.pause(longestLerpTime),
                    ]

                # check for chance card hit in this lane
                tasks += self.showChanceRewards()
            else:
                self.notify.debug("no one moved...")
                # If nobody moves, use this sequence
                tasks += [Task.pause(1.0), Task(self.hideNumbers)]

        self.notify.debug("task list : " + str(tasks))

        # now make and spawn a sequence out of our compiled task list
        wdt = Task(self.walkDone)
        wdt.name = "walk done"
        tasks.append(wdt)
        moveTask = Task.sequence(*tasks)
        taskMgr.add(moveTask, "moveAvatars")