Merchant inventory is well-saved
This commit is contained in:
@ -23,8 +23,17 @@ class Merchant(FriendlyEntity):
|
||||
super().__init__(name=name, *args, **kwargs)
|
||||
self.inventory = inventory or []
|
||||
self.hazel = hazel
|
||||
for i in range(5):
|
||||
self.inventory.append(choice(Item.get_all_items())())
|
||||
|
||||
entity_classes = self.get_all_entity_classes_in_a_dict()
|
||||
|
||||
for i in range(len(self.inventory)):
|
||||
if isinstance(self.inventory[i], dict):
|
||||
item_class = entity_classes[self.inventory[i]["type"]]
|
||||
self.inventory[i] = item_class(**self.inventory[i])
|
||||
|
||||
if not self.inventory:
|
||||
for i in range(5):
|
||||
self.inventory.append(choice(Item.get_all_items())())
|
||||
|
||||
def talk_to(self, player: Player) -> str:
|
||||
"""
|
||||
@ -34,6 +43,14 @@ class Merchant(FriendlyEntity):
|
||||
# TODO
|
||||
return _("I don't sell any squirrel")
|
||||
|
||||
def save_state(self) -> dict:
|
||||
"""
|
||||
We save the inventory of the merchant formatted as JSON
|
||||
"""
|
||||
d = super().save_state()
|
||||
d["inventory"] = [item.save_state() for item in self.inventory]
|
||||
return d
|
||||
|
||||
|
||||
class Sunflower(FriendlyEntity):
|
||||
"""
|
||||
|
Reference in New Issue
Block a user