def stockStore(self, level): itemsList = shopScr.magicShopsByLevel[ level ] self.prices[level] = {} self.items[level] = [] for i in itemsList: iT = item.Item( i[0], i[1] ) iT.priceID = i self.items[level].append( iT ) self.prices[level][i] = prices.priceItem(iT)
def enterStore(self, hero, game, level): self.gameboard_copy = game.gameBoard self.myInterface.state = 'mainmenu' if self.name in ['itemshop', 'magicshop']: self.stockStore(level) else: if self.stockedAt == None: self.items[level] = self.stockStore( level ) self.stockedAt = game.Ticker.getCount() else: count = game.Ticker.getCount() if ( self.stockedAt - count ) > 86400: # num. of secs in 1 day self.items[level] = self.stockStore( level ) self.stockedAt = count self.drawStoreScreen(game) while True: action = self.getAction(['Buy', 'Sell', 'Exit Shop'], game) if action == 'Exit Shop': self.myInterface.state = 'game' return elif action == 'Buy': self.ticker.tick(60) purchase = self.buy(game, self.items[level], self.prices[level]) if purchase == None: pass elif hasattr(purchase, "__iter__"): # purchasing multiple items if len(purchase) == 0: pass elif hero.gold >= len(purchase)*self.prices[level][purchase[0].priceID]: for it in purchase: hero.takeGold( self.prices[level][it.priceID] ) hero.getItem( it ) elif hero.takeGold( self.prices[level][purchase.priceID] ): # single item hero.getItem( purchase ) if self.name in ['blacksmith', 'armory']: self.items[level].remove(purchase) else: self.stockStore(level) else: game.textMessage("You don't have enough money!") elif action == 'Sell': self.ticker.tick(120) sPrices = {} hSaleItems = self.getHeroSaleItems(hero) for i in range( len( hSaleItems ) ): hSaleItems[i].priceID = i sPrices[i] = prices.priceItem( hSaleItems[i] )/2 sale = self.sell(game, hSaleItems, sPrices) if sale == None: pass else: hero.addGold( sPrices[ sale.priceID ] ) hero.takeItem(sale) if self.name in ['blacksmith', 'armory']: self.items[level].append(sale) else: self.stockStore(level) self.drawStoreScreen(game)
def stockStore(self, level): itemsList = shopScr.townHallsByLevel[level] self.prices[level] = {} self.items[level] = [] for i in itemsList: iT = item.Item(*i) iT.priceID = i self.items[level].append(iT) self.prices[level][i] = prices.priceItem(iT)
def stockStore(self, level): itemsList = shopScr.townHallsByLevel[ level ] self.prices[level] = {} self.items[level] = [] for i in itemsList: iT = item.Item( *i ) iT.priceID = i self.items[level].append( iT ) self.prices[level][i] = prices.priceItem(iT)
def stockStore(self, level): itemsList = shopScr.blacksmithShopsByLevel[ level ] items = [] self.prices[level] = {} for i in range(4): cItem = random.choice( itemsList ) mods = [random.randrange(level, level+2), random.randrange(level, level+2), random.randrange(level, level+2) ] W = weapon.Weapon( cItem, mods ) W.priceID = i items.append( W ) self.prices[level][i] = prices.priceItem(W) return items
def stockStore(self, level): itemsList = shopScr.armoriesByLevel[ level ] items = [] self.prices[level] = {} for i in range(4): cItem = random.choice( itemsList ) if misc.rollDie(level, level+5): resist = random.choice( armorScr.resists ) else: resist = None if cItem == const.RING: enh = random.choice( shopScr.enhancementsByLevel[level] ) A = armor.Ring( cItem, resist, (enh, random.randrange(level, level+2)) ) A.priceID = i items.append( A ) else: #items.append( armor.Armor( cItem, resist ) ) A = armor.Armor( cItem, resist ) A.priceID = i items.append( A ) self.prices[level][i] = prices.priceItem(A) return items