예제 #1
0
 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))
예제 #2
0
 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))
예제 #3
0
 def find_enemy(self, enemy_name):
     return utils.double_find_by_name(enemy_name, self.enemies)
예제 #4
0
 def find_item(self, item_name):
     return utils.double_find_by_name(item_name, self.items)
예제 #5
0
 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)
예제 #6
0
 def find_active(self, name):
     players = [player for player in self.by_id.values() if player.active]
     return double_find_by_name(name, players)
예제 #7
0
 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)
예제 #8
0
 def find_in_inventory(self, item_name):
     return double_find_by_name(item_name, self.inventory)