Nouvel espace "🗺️ Quêtes" (game-wide, comme les événements personnalisés) : liste de cartes + "+ Nouvelle quête", chaque carte ouvrant une modale d'arbre de dialogue en bulles de théâtre ("speaker: texte"), une colonne par statut de quête (nouvelle/en cours/terminée) puisque le dialogue joué dépend de l'état de la quête au moment où le joueur parle au PNJ. Bulles alternées joueur/PNJ, couleur différente selon qui parle. L'action "Déclencher une quête" de l'éditeur de collision n'est plus un champ texte libre : elle ouvre directement CETTE MÊME modale (picker de quêtes existantes + création à la volée), et finalise la règle avec l'id numérique de la quête choisie — collision_rules.py migré en conséquence (quete_id devient un entier, comme evenement_id). Corrige aussi la miniature d'objet de la carte "🧩 Collision", 3× plus grande (120px) comme demandé. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
21 lines
723 B
Python
21 lines
723 B
Python
import json
|
|
|
|
from flask import render_template
|
|
|
|
import db
|
|
|
|
from core.flask_app import app
|
|
|
|
|
|
@app.route("/game/<slug>/quests")
|
|
def quests_view(slug):
|
|
"""Éditeur de quêtes (voir db/quests/) — page dédiée game-wide, dans le
|
|
même esprit que game_dashboard.html : une liste de cartes + un bouton
|
|
"+ Nouvelle quête" au-dessus, chaque carte ouvrant une modale avec
|
|
l'arbre de dialogue (static/js/quests/quest-editor.js — même module
|
|
JS que celui rendu depuis l'assistant "+ Action" de l'éditeur de
|
|
collision, voir collision-rules-editor.js)."""
|
|
game = db.game_meta(slug)
|
|
quests = db.list_quests(slug)
|
|
return render_template("quests.html", game=game, quests_json=json.dumps(quests))
|