# Rôle d'un personnage posé sur une scène 2D (voir # screens/scenes/set_scene_object_role.py) : seul un personnage "joueur" # est déplacé/animé automatiquement au clavier et suivi par la caméra # (voir static/js/play/personnage-controller.js) — "ennemie"/"pnj" restent # immobiles tant qu'aucune logique de flow ne les pilote (déplacement # ennemi automatique/apparition, dialogue de PNJ... : hors scope de ce # premier réglage, seulement l'étiquette qui permettra de les construire # ensuite sans ambiguïté sur "quel objet est le joueur"). PERSONNAGE_ROLES = ["joueur", "ennemie", "pnj"] PERSONNAGE_ROLE_LABELS = {"joueur": "Joueur", "ennemie": "Ennemi", "pnj": "PNJ"} DEFAULT_PERSONNAGE_ROLE = "joueur" def resolve_personnage_role(el): """Décode attributes._personnage_role — un attribut absent/corrompu retombe sur "joueur" (comportement inchangé pour tout personnage posé avant l'ajout de ce réglage : c'était déjà, de fait, le seul rôle qui existait — tout personnage se déplaçait au clavier).""" role = (el.get("attributes") or {}).get("_personnage_role") return role if role in PERSONNAGE_ROLES else DEFAULT_PERSONNAGE_ROLE