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
@@ -277,17 +277,18 @@ def build_scorm_zip(slug):
|
||||
else "static/js/play/offline/scorm-api.js"
|
||||
)
|
||||
|
||||
# Score max possible (voir db/quests/reward_budget.py) : sans lui, un
|
||||
# LMS SCORM 1.2 n'a que cmi.core.score.raw (un total de points brut,
|
||||
# sans barème) et l'affiche à tort avec un "%" — demande utilisateur
|
||||
# "5% pour 1.2 mais 100% pour 2004 avec 1 seule question, c'est un
|
||||
# défaut de la 1.2 qu'on ne peut pas régler ?". En fournissant aussi
|
||||
# min/max (voir static/js/play/offline/scorm-api.js), le LMS peut
|
||||
# Score max possible (voir db/dialogue_lines.py::sum_question_rewards) :
|
||||
# sans lui, un LMS SCORM 1.2 n'a que cmi.core.score.raw (un total de
|
||||
# points brut, sans barème) et l'affiche à tort avec un "%" — demande
|
||||
# utilisateur "5% pour 1.2 mais 100% pour 2004 avec 1 seule question,
|
||||
# c'est un défaut de la 1.2 qu'on ne peut pas régler ?". En fournissant
|
||||
# aussi min/max (voir static/js/play/offline/scorm-api.js), le LMS peut
|
||||
# calculer raw/max lui-même, un vrai pourcentage au lieu du score brut
|
||||
# mal étiqueté.
|
||||
max_quiz_score = sum(
|
||||
db.quest_dialogues_total_reward(quest["dialogues"]) for quest in db.list_quests(slug)
|
||||
)
|
||||
# mal étiqueté. Les dialogues vivent dans les règles de collision des
|
||||
# objets de scène (voir screens/rendering/collision_rules.py::
|
||||
# "dialogue".dialogue), retrouvés via screens.collect_all_dialogue_lines.
|
||||
all_dialogue_lines = [line for lines in screens.collect_all_dialogue_lines(slug) for line in lines]
|
||||
max_quiz_score = db.sum_question_rewards(all_dialogue_lines)
|
||||
|
||||
# gameData.icon_data_uris (voir forgeRenderIcone,
|
||||
# static/js/play/offline/render-special-widgets.js) : ajouté au
|
||||
|
||||
Reference in New Issue
Block a user