Here's the relevent code:
Expand|Select|Wrap|Line Numbers
- def shop(self, name):
- self.name = name
- if name == "sapphire":
- if "sapphire" in self.inventory:
- print "I can buy that for 10 gold."
- self.inventory.remove_item("sapphire")
- self.gold += 10
- print "You now have", self.gold, "gold."
- else:
- print "You don't have a", name
- elif name == "emerald":
- if "emerald" in self.inventory:
- print "I can buy that for 20 gold."
- self.inventory.remove_item("emerald")
- self.gold += 20
- print "You now have", self.gold, "gold."
- else:
- print "You don't have an", name
- elif name == "ruby":
- if "ruby" in self.inventory:
- print "I can buy that for 30 gold."
- self.inventory.remove_item("ruby")
- self.gold += 30
- print "You now have", self.gold, "gold."
- else:
- print "You don't have a", name
- elif name == "diamond":
- if "diamond" in self.inventory:
- print "I can buy that for 40 gold."
- self.inverntory.remove_item("diamond")
- self.gold += 40
- print "You now have", self.gold, "gold."
- else:
- print "You don't have a", name
- elif name == "onyx":
- if "onyx" in self.inventory:
- print "That's a really rare gem! \nI'll give you 50 gold for it."
- self.inventory.remove_item("onyx")
- self.gold += 50
- print "You now have", self.gold, "gold."
- else:
- print "You don't have an", name
- else:
- print "I can't buy that."
Expand|Select|Wrap|Line Numbers
- def remove_item(self, item):
- del self[item.name]
Traceback (most recent call last):
File "J:\Alex and the Mysterious Temple.py", line 594, in ?
main()
File "J:\Alex and the Mysterious Temple.py", line 592, in main
adv.play("Alex and the Mysterious Temple")
File "E:\text_game.py", line 160, in play
self.player.move(verb)
File "J:\Alex and the Mysterious Temple.py", line 263, in move
self.shop(sell)
File "J:\Alex and the Mysterious Temple.py", line 163, in shop
self.inventory.remove_item("sapphire")
File "E:\text_game.py", line 32, in remove_item
del self[item.name]
AttributeError: 'str' object has no attribute 'name'
Help is appreciated.