Beispiel #1
0
    def sell_item(self, itemname, buyer='shop', gold=0, silver=0, copper=0):
        if isinstance(itemname, int):
            tosell = Item(self.get('inventory/pack', [])[itemname])
        else:
            for item in self.get('inventory/pack', []):
                if item.displayname() == itemname:
                    tosell = Item(item)
                    break
        if buyer != 'shop':
            buyer.spend_money(gold, silver, copper)
            buyer.acquire_item(tosell)
            buyer.autosave()
        else:
            gold, silver, copper = self.sell_price(*tosell.price_tuple())

        self.drop_item(itemname)
        self.gain_money(gold, silver, copper)
Beispiel #2
0
 def for_sale(self):
     """
     >>> char = Character({})
     >>> char.for_sale()
     []
     >>> hp = char.acquire_item(Item(load_yaml('items', 'health_potion.yaml')))
     >>> char.for_sale()
     [(0, 'Health Potion', 'Gold 4, Silver 10, Copper 10')]
     """
     out = []
     pack = self.get('inventory/pack', [])
     for i in pack:
         try:
             item = Item(i)
             gold, silver, copper = self.sell_price(*item.price_tuple())
             moneystr = 'Gold %s, Silver %s, Copper %s' % (int(gold), int(silver), int(copper))
             out.append((pack.index(i), item.displayname(), moneystr))
         except Exception as e:
             raise Exception('Error loading %s - %s' % (self.displayname(), e))
     return out