Spaces:
Sleeping
Sleeping
| import random | |
| def randomly_select_from_json(world_data): | |
| world_name = world_data["name"] | |
| world_description = world_data["description"] | |
| valid_kingdoms = { | |
| k_name: k_data | |
| for k_name, k_data in world_data["kingdoms"].items() | |
| if any("npcs" in town_data and town_data["npcs"] for town_data in k_data["towns"].values()) | |
| } | |
| if not valid_kingdoms: | |
| raise ValueError("No kingdoms with valid towns and NPCs found.") | |
| kingdom_name, kingdom_data = random.choice(list(valid_kingdoms.items())) | |
| kingdom_description = kingdom_data["description"] | |
| valid_towns = { | |
| t_name: t_data | |
| for t_name, t_data in kingdom_data["towns"].items() | |
| if "npcs" in t_data and t_data["npcs"] | |
| } | |
| if not valid_towns: | |
| raise ValueError(f"No towns with NPCs found in kingdom: {kingdom_name}") | |
| town_name, town_data = random.choice(list(valid_towns.items())) | |
| town_description = town_data["description"] | |
| npcs = town_data["npcs"] | |
| character_name, character_data = random.choice(list(npcs.items())) | |
| character_description = character_data["description"] | |
| return { | |
| "world": {"name": world_name, "description": world_description}, | |
| "kingdom": {"name": kingdom_name, "description": kingdom_description}, | |
| "town": {"name": town_name, "description": town_description}, | |
| "character": {"name": character_name, "description": character_description}, | |
| } | |