# ---------- Actions : modifier un élément ---------- ELEMENT_ACTION_PROPERTIES = [ ("visibilite", "Visibilité"), # Voir TRIGGER_EVENTS ("survol"/"fin_survol") : c'est ce qui permet à un # créateur de reconstruire l'ancien comportement "texte affiché au # survol" (et bien d'autres) à la main dans la Logique de la scène — # poser "Modifier un élément → Contenu" sur un déclencheur "Au survol" # d'un AUTRE élément. La valeur est un texte littéral (pas encore de # binding vers un champ d'objet ici — voir applyOpenRowBindings pour le # mécanisme équivalent, propre à "Ouvrir la ligne cliquée"). ("contenu", "Contenu — texte affiché"), ("bg_color", "Couleur de fond"), ("border_color", "Couleur de bordure"), ("width", "Largeur en %"), ("height", "Hauteur en %"), # 3.3 (Confort) — surbrillance générique dynamique : un liseré qui # clignote autour de l'élément, pour attirer l'attention du joueur vers # ce qu'il doit toucher ensuite (ex. un mentor qui "montre" un bouton) — # sans avoir à poser une bordure de couleur togglée à la main. Voir # ELEMENT_SURBRILLANCE_VALUES et applyElementProperty() dans play.html. ("surbrillance", "Surbrillance — liseré clignotant"), # 3.5 (Confort) — verrouillage d'un élément après décision : grisé + # ignore les clics, DISTINCT de "invisible" (qui garde sa place mais # disparaît visuellement) — un bouton "Répondre" qui reste visible mais # devient inerte une fois le mail traité, par exemple. Voir # ELEMENT_DESACTIVE_VALUES et applyElementProperty() / bindClicks() dans # play.html (pointer-events:none empêche aussi le déclencheur "Au clic" # de se redéclencher tant que l'élément est désactivé). ("desactive", "Désactivé — grisé, ignore les clics"), # Phase 5 (moteur) — déplacement d'élément : "absolu" fixe la position # (en % du cadre, comme Largeur/Hauteur ci-dessus — les éléments sont # déjà positionnés ainsi, voir filters/element_style_filter.py) ; # "relatif" AJOUTE la valeur à la position actuelle plutôt que de # l'écraser (voir applyElementProperty() dans static/js/play/actions.js) # — combiné à un déclencheur clavier (Phase 3), ça permet un # personnage/objet qui se déplace pas à pas à chaque appui de touche. ("pos_x", "Position horizontale en % (absolue)"), ("pos_y", "Position verticale en % (absolue)"), ("pos_x_relatif", "Déplacer horizontalement de... % (relatif)"), ("pos_y_relatif", "Déplacer verticalement de... % (relatif)"), # Phase 7 (moteur) — personnage animé par sprites : quel sens regarde # l'élément (utile pour un personnage qui se déplace au clavier, voir # applyElementProperty() dans static/js/play/actions.js — retourne # l'élément en miroir plutôt que de nécessiter une 2e feuille de # sprites "vue de dos"). ("orientation", "Orientation — sens du personnage"), ] ELEMENT_ACTION_PROPERTY_LABELS = dict(ELEMENT_ACTION_PROPERTIES) ELEMENT_SURBRILLANCE_VALUES = [ ("on", "Activer la surbrillance"), ("off", "Désactiver la surbrillance"), ("toggle", "Basculer activée / désactivée"), ] ELEMENT_SURBRILLANCE_LABELS = dict(ELEMENT_SURBRILLANCE_VALUES) ELEMENT_DESACTIVE_VALUES = [ ("on", "Désactiver — griser, ignorer les clics"), ("off", "Réactiver"), ("toggle", "Basculer désactivé / réactivé"), ] ELEMENT_DESACTIVE_LABELS = dict(ELEMENT_DESACTIVE_VALUES) ELEMENT_ORIENTATION_VALUES = [ ("droite", "Faire face à droite"), ("gauche", "Faire face à gauche"), ("toggle", "Retourner (miroir)"), ] ELEMENT_ORIENTATION_LABELS = dict(ELEMENT_ORIENTATION_VALUES)