def add_item(self, item: Entity) -> List[Optional[Dict]]: results = [] item_placed = False for i in range(self.capacity): if self.items[i] is None: self.items[i] = item item_placed = True break if not item_placed: results.append({ "message": "You cannot carry any more, your inventory is full" }) results.append({"play_sound": "error"}) else: results.append({"message": f"You pick up the {item.name}!"}) if "Potion" in item.name: results.append({"play_sound": "pickup_potion"}) if "Scroll" in item.name: results.append({"play_sound": "pickup_scroll"}) item.remove_from_sprite_lists() results.append({"enemy_turn": True}) return results