def sell(self, item_name): this_store = store.store_database.by_id[self.player.room.data] sell_item = double_find_by_name(item_name, self.player.inventory) if sell_item is None: self.player.send_string("<red><bold>Sorry, you don't have that!") return if not this_store.has(sell_item.id): self.player.send_string( "<red><bold>Sorry, we don't want that item!") return self.player.drop_item(sell_item) self.player.money += sell_item.price self.send_room("<cyan><bold>{} sells a {}".format( self.player.name, sell_item.name))
def buy(self, item_name): this_store = store.store_database.by_id[self.player.room.data] items = [ item.item_database.by_id[item_id] for item_id in this_store.available_items ] purchase_item = double_find_by_name(item_name, items) if purchase_item is None: self.player.send_string( "<red><bold>Sorry, we don't have that item!") return elif self.player.money < purchase_item.price: self.player.send_string( "<red><bold>Sorry, but you can't afford that!") return elif not self.player.pick_up_item(purchase_item): self.player.send_string( "<red><bold>Sorry, but you can't carry that much!") return else: self.player.money -= purchase_item.price self.send_room("<cyan><bold>{} buys a {}".format( self.player.name, purchase_item.name))
def find_enemy(self, enemy_name): return utils.double_find_by_name(enemy_name, self.enemies)
def find_item(self, item_name): return utils.double_find_by_name(item_name, self.items)
def find_logged_in(self, name): players = [ player for player in self.by_id.values() if player.logged_in ] return double_find_by_name(name, players)
def find_active(self, name): players = [player for player in self.by_id.values() if player.active] return double_find_by_name(name, players)
def get_item_index(self, name): """This gets the index of an item within the player's inventory given a name.""" item = double_find_by_name(name, self.inventory) if item: self.inventory.index(item)
def find_in_inventory(self, item_name): return double_find_by_name(item_name, self.inventory)