Exemple #1
0
 def resume(self, currentFloor = 0, topFloor = 0):
     if len(self.suits) == 0:
         self.d_setMembers()
         self.suitsKilledPerFloor.append(self.suitsKilledThisBattle)
         if topFloor == 0:
             self.b_setState('Reward')
         else:
             for (floorNum, cogsThisFloor) in PythonUtil.enumerate(self.suitsKilledPerFloor):
                 for toonId in self.activeToons:
                     toon = self.getToon(toonId)
                     if toon:
                         (recovered, notRecovered) = self.air.questManager.recoverItems(toon, cogsThisFloor, self.zoneId)
                         self.toonItems[toonId][0].extend(recovered)
                         self.toonItems[toonId][1].extend(notRecovered)
                         meritArray = self.air.promotionMgr.recoverMerits(toon, cogsThisFloor, self.zoneId, getCreditMultiplier(floorNum))
                         if toonId in self.helpfulToons:
                             self.toonMerits[toonId] = addListsByValue(self.toonMerits[toonId], meritArray)
                         else:
                             self.notify.debug('toon %d not helpful, skipping merits' % toonId)
                 
             
             self.d_setBattleExperience()
             self.b_setState('BuildingReward')
             
     elif self.resumeNeedUpdate == 1:
         self.d_setMembers()
         if len(self.resumeDeadSuits) > 0 or self.resumeLastActiveSuitDied == 0 or len(self.resumeDeadToons) > 0:
             self.needAdjust = 1
         
     
     self.setState('WaitForJoin')
     self.resumeNeedUpdate = 0
     self.resumeDeadToons = []
     self.resumeDeadSuits = []
     self.resumeLastActiveSuitDied = 0
Exemple #2
0
    def resume(self, currentFloor=0, topFloor=0):
        assert (self.notify.debug('resuming the battle'))
        if (len(self.suits) == 0):
            # Toons won - award experience, etc.
            assert (self.resumeNeedUpdate == 1)

            self.d_setMembers()

            self.suitsKilledPerFloor.append(self.suitsKilledThisBattle)

            if (topFloor == 0):
                self.b_setState('Reward')
            else:
                # calculate and assign the merits and item recoveries by floor
                for floorNum, cogsThisFloor in PythonUtil.enumerate(
                        self.suitsKilledPerFloor):
                    for toonId in self.activeToons:
                        toon = self.getToon(toonId)
                        if toon:
                            # Append the recovered and not recovered items to their respective lists
                            recovered, notRecovered = self.air.questManager.recoverItems(
                                toon, cogsThisFloor, self.zoneId)
                            self.toonItems[toonId][0].extend(recovered)
                            self.toonItems[toonId][1].extend(notRecovered)
                            # the new merit list must be added by value to the cumulative list
                            meritArray = self.air.promotionMgr.recoverMerits(
                                toon, cogsThisFloor, self.zoneId,
                                getCreditMultiplier(floorNum))

                            if toonId in self.helpfulToons:
                                self.toonMerits[toonId] = addListsByValue(
                                    self.toonMerits[toonId], meritArray)
                            else:
                                self.notify.debug(
                                    "toon %d not helpful, skipping merits" %
                                    toonId)

                self.d_setBattleExperience()
                self.b_setState('BuildingReward')
        else:
            # Continue with the battle
            if (self.resumeNeedUpdate == 1):
                self.d_setMembers()
                if ((len(self.resumeDeadSuits) > 0
                     and self.resumeLastActiveSuitDied == 0)
                        or (len(self.resumeDeadToons) > 0)):
                    self.needAdjust = 1
                # Wait for input will call __requestAdjust()
            self.setState('WaitForJoin')

        self.resumeNeedUpdate = 0
        self.resumeDeadToons = []
        self.resumeDeadSuits = []
        self.resumeLastActiveSuitDied = 0