def handleRegularPurchaseManager(self, scoreList):
        """
        regular minigame, handle purchase manager stuff
        """
        # create separate NewbiePurchaseManagerAIs for the noobs
        for id in self.newbieIdList:
            # newbie PM gets a single newbie, and we also give it the
            # list of all players; note that we don't give newbie PMs the
            # 'newbie list' -- that's only for the regular PM.
            pm = NewbiePurchaseManagerAI.NewbiePurchaseManagerAI(
                self.air, id, self.avIdList, scoreList, self.minigameId,
                self.trolleyZone)
            # We have no idea if the newbie PM is going to be around longer
            # than the 'regular' minigame->purchase->minigame... sequence.
            # We have to reference-count the zone. PMs decrement the zone
            # reference count when all participants leave to the playground.
            MinigameCreatorAI.acquireMinigameZone(self.zoneId)
            pm.generateWithRequired(self.zoneId)

        if len(self.avIdList) > len(self.newbieIdList):
            # Create a PurchaseManager
            pm = PurchaseManagerAI.PurchaseManagerAI(self.air, self.avIdList,
                                                     scoreList,
                                                     self.minigameId,
                                                     self.trolleyZone,
                                                     self.newbieIdList)
            pm.generateWithRequired(self.zoneId)
 def handleMetagamePurchaseManager(self, scoreList):
     self.notify.debug('self.newbieIdList = %s' % self.newbieIdList)
     votesToUse = self.startingVotes
     if hasattr(self, 'currentVotes'):
         votesToUse = self.currentVotes
     
     votesArray = []
     for avId in self.avIdList:
         if votesToUse.has_key(avId):
             votesArray.append(votesToUse[avId])
             continue
         self.notify.warning('votesToUse=%s does not have avId=%d' % (votesToUse, avId))
         votesArray.append(0)
     
     if self.metagameRound < TravelGameGlobals.FinalMetagameRoundIndex:
         newRound = self.metagameRound
         if not self.minigameId == ToontownGlobals.TravelGameId:
             for index in range(len(scoreList)):
                 votesArray[index] += scoreList[index]
             
         
         self.notify.debug('votesArray = %s' % votesArray)
         desiredNextGame = None
         if hasattr(self, 'desiredNextGame'):
             desiredNextGame = self.desiredNextGame
         
         numToons = 0
         lastAvId = 0
         for avId in self.avIdList:
             av = simbase.air.doId2do.get(avId)
             if av:
                 numToons += 1
                 lastAvId = avId
                 continue
         
         doNewbie = False
         if numToons == 1 and lastAvId in self.newbieIdList:
             doNewbie = True
         
         if doNewbie:
             pm = NewbiePurchaseManagerAI.NewbiePurchaseManagerAI(self.air, lastAvId, self.avIdList, scoreList, self.minigameId, self.trolleyZone)
             MinigameCreatorAI.acquireMinigameZone(self.zoneId)
             pm.generateWithRequired(self.zoneId)
         else:
             pm = PurchaseManagerAI.PurchaseManagerAI(self.air, self.avIdList, scoreList, self.minigameId, self.trolleyZone, self.newbieIdList, votesArray, newRound, desiredNextGame)
             pm.generateWithRequired(self.zoneId)
     else:
         self.notify.debug('last minigame, handling newbies')
         if ToontownGlobals.JELLYBEAN_TROLLEY_HOLIDAY in simbase.air.holidayManager.currentHolidays or ToontownGlobals.JELLYBEAN_TROLLEY_HOLIDAY_MONTH in simbase.air.holidayManager.currentHolidays:
             votesArray = map(lambda x: MinigameGlobals.JellybeanTrolleyHolidayScoreMultiplier * x, votesArray)
         
         for id in self.newbieIdList:
             pm = NewbiePurchaseManagerAI.NewbiePurchaseManagerAI(self.air, id, self.avIdList, scoreList, self.minigameId, self.trolleyZone)
             MinigameCreatorAI.acquireMinigameZone(self.zoneId)
             pm.generateWithRequired(self.zoneId)
         
         if len(self.avIdList) > len(self.newbieIdList):
             pm = PurchaseManagerAI.PurchaseManagerAI(self.air, self.avIdList, scoreList, self.minigameId, self.trolleyZone, self.newbieIdList, votesArray = votesArray, metagameRound = self.metagameRound)
             pm.generateWithRequired(self.zoneId)
 def handleMetagamePurchaseManager(self, scoreList):
     self.notify.debug('self.newbieIdList = %s' % self.newbieIdList)
     votesToUse = self.startingVotes
     if hasattr(self, 'currentVotes'):
         votesToUse = self.currentVotes
     
     votesArray = []
     for avId in self.avIdList:
         if votesToUse.has_key(avId):
             votesArray.append(votesToUse[avId])
             continue
         self.notify.warning('votesToUse=%s does not have avId=%d' % (votesToUse, avId))
         votesArray.append(0)
     
     if self.metagameRound < TravelGameGlobals.FinalMetagameRoundIndex:
         newRound = self.metagameRound
         if not self.minigameId == ToontownGlobals.TravelGameId:
             for index in range(len(scoreList)):
                 votesArray[index] += scoreList[index]
             
         
         self.notify.debug('votesArray = %s' % votesArray)
         desiredNextGame = None
         if hasattr(self, 'desiredNextGame'):
             desiredNextGame = self.desiredNextGame
         
         numToons = 0
         lastAvId = 0
         for avId in self.avIdList:
             av = simbase.air.doId2do.get(avId)
             if av:
                 numToons += 1
                 lastAvId = avId
                 continue
         
         doNewbie = False
         if numToons == 1 and lastAvId in self.newbieIdList:
             doNewbie = True
         
         if doNewbie:
             pm = NewbiePurchaseManagerAI.NewbiePurchaseManagerAI(self.air, lastAvId, self.avIdList, scoreList, self.minigameId, self.trolleyZone)
             MinigameCreatorAI.acquireMinigameZone(self.zoneId)
             pm.generateWithRequired(self.zoneId)
         else:
             pm = PurchaseManagerAI.PurchaseManagerAI(self.air, self.avIdList, scoreList, self.minigameId, self.trolleyZone, self.newbieIdList, votesArray, newRound, desiredNextGame)
             pm.generateWithRequired(self.zoneId)
     else:
         self.notify.debug('last minigame, handling newbies')
         if ToontownGlobals.JELLYBEAN_TROLLEY_HOLIDAY in simbase.air.holidayManager.currentHolidays or ToontownGlobals.JELLYBEAN_TROLLEY_HOLIDAY_MONTH in simbase.air.holidayManager.currentHolidays:
             votesArray = map(lambda x: MinigameGlobals.JellybeanTrolleyHolidayScoreMultiplier * x, votesArray)
         
         for id in self.newbieIdList:
             pm = NewbiePurchaseManagerAI.NewbiePurchaseManagerAI(self.air, id, self.avIdList, scoreList, self.minigameId, self.trolleyZone)
             MinigameCreatorAI.acquireMinigameZone(self.zoneId)
             pm.generateWithRequired(self.zoneId)
         
         if len(self.avIdList) > len(self.newbieIdList):
             pm = PurchaseManagerAI.PurchaseManagerAI(self.air, self.avIdList, scoreList, self.minigameId, self.trolleyZone, self.newbieIdList, votesArray = votesArray, metagameRound = self.metagameRound)
             pm.generateWithRequired(self.zoneId)
 def handleRegularPurchaseManager(self, scoreList):
     for id in self.newbieIdList:
         pm = NewbiePurchaseManagerAI.NewbiePurchaseManagerAI(self.air, id, self.avIdList, scoreList, self.minigameId, self.trolleyZone)
         MinigameCreatorAI.acquireMinigameZone(self.zoneId)
         pm.generateWithRequired(self.zoneId)
     
     if len(self.avIdList) > len(self.newbieIdList):
         pm = PurchaseManagerAI.PurchaseManagerAI(self.air, self.avIdList, scoreList, self.minigameId, self.trolleyZone, self.newbieIdList)
         pm.generateWithRequired(self.zoneId)
    def handleRegularPurchaseManager(self, scoreList):
        for id in self.newbieIdList:
            pm = NewbiePurchaseManagerAI.NewbiePurchaseManagerAI(self.air, id, self.avIdList, scoreList, self.minigameId, self.trolleyZone)
            MinigameCreatorAI.acquireMinigameZone(self.zoneId)
            pm.generateWithRequired(self.zoneId)

        if len(self.avIdList) > len(self.newbieIdList):
            pm = PurchaseManagerAI.PurchaseManagerAI(self.air, self.avIdList, scoreList, self.minigameId, self.trolleyZone, self.newbieIdList)
            pm.generateWithRequired(self.zoneId)
    def handleMetagamePurchaseManager(self, scoreList):
        """
        metagame being played, handle play again and consider newbies
        """
        self.notify.debug('self.newbieIdList = %s' % self.newbieIdList)
        votesToUse = self.startingVotes

        if hasattr(self, 'currentVotes'):
            votesToUse = self.currentVotes

        votesArray = []
        for avId in self.avIdList:
            if votesToUse.has_key(avId):
                votesArray.append(votesToUse[avId])
            else:
                self.notify.warning('votesToUse=%s does not have avId=%d' %
                                    (votesToUse, avId))
                votesArray.append(0)

        if self.metagameRound < TravelGameGlobals.FinalMetagameRoundIndex:
            newRound = self.metagameRound  # let purchaseManager handle incrementing it

            # if this is not the travel game, add the beans we earned to the votes list
            # also make sure it's not the last game
            if not self.minigameId == ToontownGlobals.TravelGameId:
                for index in range(len(scoreList)):
                    votesArray[index] += scoreList[index]

            self.notify.debug('votesArray = %s' % votesArray)

            desiredNextGame = None
            if hasattr(self, 'desiredNextGame'):
                desiredNextGame = self.desiredNextGame

            numToons = 0
            lastAvId = 0
            for avId in self.avIdList:
                av = simbase.air.doId2do.get(avId)
                if av:
                    numToons += 1
                    lastAvId = avId
            doNewbie = False
            if numToons == 1 and lastAvId in self.newbieIdList:
                doNewbie = True

            if doNewbie:
                # newbie PM gets a single newbie, and we also give it the
                # list of all players; note that we don't give newbie PMs the
                # 'newbie list' -- that's only for the regular PM.
                pm = NewbiePurchaseManagerAI.NewbiePurchaseManagerAI(
                    self.air, lastAvId, self.avIdList, scoreList,
                    self.minigameId, self.trolleyZone)
                # We have no idea if the newbie PM is going to be around longer
                # than the 'regular' minigame->purchase->minigame... sequence.
                # We have to reference-count the zone. PMs decrement the zone
                # reference count when all participants leave to the playground.
                MinigameCreatorAI.acquireMinigameZone(self.zoneId)
                pm.generateWithRequired(self.zoneId)
            else:
                pm = PurchaseManagerAI.PurchaseManagerAI(
                    self.air, self.avIdList, scoreList, self.minigameId,
                    self.trolleyZone, self.newbieIdList, votesArray, newRound,
                    desiredNextGame)
                pm.generateWithRequired(self.zoneId)
        else:
            # this is the last minigame, handle newbies. and playAgain
            # also for now weare doing a regular minigame if only 1 person
            # presses play again,
            self.notify.debug('last minigame, handling newbies')

            # create separate NewbiePurchaseManagerAIs for the noobs
            for id in self.newbieIdList:
                # newbie PM gets a single newbie, and we also give it the
                # list of all players; note that we don't give newbie PMs the
                # 'newbie list' -- that's only for the regular PM.
                pm = NewbiePurchaseManagerAI.NewbiePurchaseManagerAI(
                    self.air, id, self.avIdList, scoreList, self.minigameId,
                    self.trolleyZone)
                # We have no idea if the newbie PM is going to be around longer
                # than the 'regular' minigame->purchase->minigame... sequence.
                # We have to reference-count the zone. PMs decrement the zone
                # reference count when all participants leave to the playground.
                MinigameCreatorAI.acquireMinigameZone(self.zoneId)
                pm.generateWithRequired(self.zoneId)

            if len(self.avIdList) > len(self.newbieIdList):
                # Create a PurchaseManager
                pm = PurchaseManagerAI.PurchaseManagerAI(
                    self.air,
                    self.avIdList,
                    scoreList,
                    self.minigameId,
                    self.trolleyZone,
                    self.newbieIdList,
                    votesArray=votesArray,
                    metagameRound=self.metagameRound)
                pm.generateWithRequired(self.zoneId)