from ..screens_repo.list_screens import list_screens from ..scenes.list_scene_objects import list_scene_objects def list_personnage_names(slug): """Noms distincts de tous les personnages nommés (voir "ℹ️ Informations", templates/scene_edit.html), toutes scènes 2D du jeu confondues — une quête (voir db/quests/) est GAME-WIDE, son dialogue peut donc mettre en scène un PNJ posé sur une autre scène que celle où la règle de collision se déclenche. Ordre alphabétique, jamais de doublon.""" names = set() for s in list_screens(slug): if s["kind"] != "jeu_2d": continue for o in list_scene_objects(slug, s["id"]): if o["kind"] == "personnage" and o.get("name"): names.add(o["name"]) return sorted(names)