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
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