Remplace le système de quêtes par des déclencheurs, ajoute l'action variable et le chaînage
Supprime le concept de "quête" au profit d'un onglet unique "Déclencheurs"
portant toute la logique (dialogue, condition, marquage terminé) directement
sur l'objet de scène. Ajoute une nouvelle action "Modifier une variable"
(réutilisant le vocabulaire du graphe de flow) utilisable après une
collision, une interaction ou une branche de condition, ainsi qu'un
chaînage d'actions ("then") permettant d'enchaîner plusieurs actions à la
suite et d'étendre un déclencheur déjà posé sans le recréer.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
c504ace167
commit
d664ed5637
@@ -10,6 +10,7 @@ from ..rendering.personnage_role import resolve_personnage_role
|
||||
from ..rendering.collision_settings import resolve_collision_settings
|
||||
from ..rendering.collision_rules import resolve_collision_rules
|
||||
from ..rendering.dialogue_box_style import resolve_dialogue_box_style
|
||||
from ..rendering.trigger_graph import list_completable_dialogue_ids
|
||||
from ..scenes.list_scene_objects import list_scene_objects
|
||||
from ..scenes.render_scene_object import render_scene_object
|
||||
|
||||
@@ -156,18 +157,18 @@ def full_game_payload(slug, player_id=db.PLAYER_SHARED):
|
||||
# ci-dessus sont déjà indexés par id, jamais par nom.
|
||||
definition_names = {str(d["id"]): d["name"] for d in definitions}
|
||||
|
||||
# Quêtes (voir db/quests/, onglet "🗺️ Quêtes") : GAME-WIDE, jamais
|
||||
# rattachées à un écran comme "elements" ci-dessus — nécessaires ici
|
||||
# pour que static/js/play/dialogue-box-controller.js puisse retrouver,
|
||||
# à l'exécution d'une action "quete" (collision-rules-controller.js),
|
||||
# le dialogue de la colonne correspondant au STATUT ACTUEL de la
|
||||
# quête (nouvelle/en_cours/terminee) sans aller-retour serveur.
|
||||
quests = db.list_quests(slug)
|
||||
# Déclencheurs "terminés" (voir screens/rendering/collision_rules.py::
|
||||
# "dialogue".mark_completed) : GAME-WIDE, la liste des id de dialogue
|
||||
# que le créateur a marqués comme concluant la partie — nécessaire à
|
||||
# static/js/play/dialogue-box-controller.js::
|
||||
# forgeSyncAllDialoguesCompletionToScorm pour savoir quand TOUS ont
|
||||
# été joués, sans plus aucune notion de quête.
|
||||
completable_dialogue_ids = list_completable_dialogue_ids(slug)
|
||||
|
||||
return {
|
||||
"screens": payload_screens, "flows": flows, "animations": animations,
|
||||
"data": data, "fields_meta": fields_meta,
|
||||
"variables": variables, "personnage_animations": personnage_animations,
|
||||
"definition_names": definition_names,
|
||||
"quests": quests,
|
||||
"completable_dialogue_ids": completable_dialogue_ids,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user