def placeOrder(self): if not self.cart: # TODO: Add error message here return # Create our order order = Order(self.store, self.customer, self.address) # Iterate over all the items in the cart and add them for item in self.cart: code = item[ITEM_CODE] order.add_item(code) # Make sure the order is valid, or else throw an exception result = order.validate() if not result: raise Exception("placeOrder - Invalid Order!") price = order.price() info = price['Order'] breakdown = info['AmountsBreakdown'] subtotal = breakdown['FoodAndBeverage'] total = breakdown['Customer'] if float(subtotal) < 10.0: raise Exception("placeOrder - Subtotal must be at least 10") result = order.place(self.card) print("Order placed with result: {}".format(result)) text = TTLocalizer.PizzaOrderPlaced.format(total) # TODO: this will not work in a non-ttoff source base.localAvatar.setSystemMessage( 0, text, whisperType=WhisperPopup.WTAnnouncement) fanfare = Sequence(Fanfare.makeFanfare(0, base.localAvatar)[0]) fanfare.start() self.exit()
def getExpTrack(self, toon, origExp, earnedExp, deathList, origQuestsList, itemList, missedItemList, origMeritList, meritList, partList, toonList, uberEntry, helpfulToonsList, noSkip=False): self.notify.debug("getExpTrack() was called!") self.notify.debug("earnedExp = %s" % str(earnedExp)) self.notify.debug("meritList = %s" % str(meritList)) track = Sequence( Func(self.initGagFrame, toon, origExp, origMeritList, noSkip=noSkip), Wait(1.0)) endTracks = [0, 0, 0, 0, 0, 0, 0, 0] trackEnded = 0 self.notify.debug("Appending Track Interval Lists!") for trackIndex in range(len(earnedExp)): if earnedExp[trackIndex] > 0 or origExp[ trackIndex] >= ToontownBattleGlobals.MaxSkill: track += self.getTrackIntervalList( toon, trackIndex, origExp[trackIndex], earnedExp[trackIndex], ToontownBattleGlobals.getUberFlagSafe( uberEntry, trackIndex)) maxExp = ToontownBattleGlobals.MaxSkill - ToontownBattleGlobals.UberSkill if origExp[trackIndex] < maxExp and earnedExp[ trackIndex] + origExp[trackIndex] >= maxExp: endTracks[trackIndex] = 1 trackEnded = 1 self.notify.debug("Appending Merit Interval Lists!") for dept in range(len(SuitDNA.suitDepts)): if meritList[dept]: track += self.getMeritIntervalList(toon, dept, origMeritList[dept], meritList[dept]) track.append(Wait(0.75)) self.notify.debug("Appending Item Interval Lists!") itemInterval = self.getItemIntervalList(toon, itemList) if itemInterval: track.append(Func(self.initItemFrame, toon)) track.append(Wait(0.25)) track += itemInterval track.append(Wait(0.5)) self.notify.debug("Appending Missed Item Interval Lists!") missedItemInterval = self.getMissedItemIntervalList( toon, missedItemList) if missedItemInterval: track.append(Func(self.initMissedItemFrame, toon)) track.append(Wait(0.25)) track += missedItemInterval track.append(Wait(0.5)) self.notify.debug('partList = %s' % partList) newPart = 0 for part in partList: if part != 0: newPart = 1 break if newPart: partList = self.getCogPartIntervalList(toon, partList) if partList: track.append(Func(self.initCogPartFrame, toon)) track.append(Wait(0.25)) track += partList track.append(Wait(0.5)) questList = self.getQuestIntervalList(toon, deathList, toonList, origQuestsList, itemList, helpfulToonsList, earnedExp) if questList: avQuests = [] for i in xrange(0, len(origQuestsList), 5): avQuests.append(origQuestsList[i:i + 5]) track.append( Func(self.initQuestFrame, toon, copy.deepcopy(avQuests))) track.append(Wait(0.25)) track += questList track.append(Wait(0.5)) track.append(Wait(0.25)) if trackEnded: track.append(Func(self.vanishFrames)) track.append(Fanfare.makeFanfare(0, toon)[0]) for i in xrange(len(endTracks)): if endTracks[i] is 1: track += self.getEndTrackIntervalList(toon, toonList, i) track.append(Func(self.cleanupEndTrack)) return track