Éditeur de quêtes : onglet à côté de Collision, pas une page à part
Corrige la mauvaise interprétation de la demande initiale : la page dédiée "🗺️ Quêtes" (nav du jeu) est retirée au profit d'un nouvel onglet "🗺️ Quêtes" DANS l'éditeur de scène 2D, juste à côté de "🧩 Collision" — même liste tabulaire que l'onglet "📣 Événements" (titre/objectif/récompense/statut/résultat par ligne, pas des cartes), un clic sur une ligne ouvrant la modale d'arbre de dialogue déjà construite. L'assistant "+ Action" de l'éditeur de collision ouvre toujours cette même modale pour "Déclencher une quête". Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
51427b5297
commit
78c1aba8a0
@@ -53,7 +53,6 @@
|
||||
une version simplifiée (juste les écrans) pour un type "restreint"
|
||||
(quiz/embranchement/rpg), la version complète pour "custom". -->
|
||||
<a href="{{ url_for('game_dashboard', slug=game.slug) }}" class="gameNavLink {{ 'active' if request.path == '/game/' ~ game.slug else '' }}" title="{{ 'Écrans du jeu' if game.onboarding_type in ('quiz', 'embranchement', 'rpg') else 'Écrans, objets, templates, variables' }}">📊 Tableau de bord</a>
|
||||
<a href="{{ url_for('quests_view', slug=game.slug) }}" class="gameNavLink {{ 'active' if request.path == '/game/' ~ game.slug ~ '/quests' else '' }}" title="Quêtes (objectif, récompense, statut, dialogue)">🗺️ Quêtes</a>
|
||||
<a href="{{ url_for('game_play', slug=game.slug) }}" target="_blank" class="gameNavLink" title="Aperçu jouable du jeu (une seule partie partagée, pour la conception)">▶️ Jouer</a>
|
||||
<!-- Phase 1.2 (feuille de route produit) : seul export retenu — paquet
|
||||
STATIQUE (aucun Python/Flask embarqué, voir
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}Quêtes — {{ game.name }}{% endblock %}
|
||||
{% block content %}
|
||||
<div class="dashPanelHeader" style="align-items:center; justify-content:space-between;">
|
||||
<h2>🗺️ Quêtes</h2>
|
||||
<button type="button" class="collisionRuleAddBtn" onclick="createQuestFromListPage()">✚ Nouvelle quête</button>
|
||||
</div>
|
||||
<p class="hint">Une quête : un objectif, une récompense (score), un statut, un résultat — et un dialogue par statut, à écrire en cliquant sur sa carte.</p>
|
||||
|
||||
<div id="questsGrid" class="questsGrid"></div>
|
||||
|
||||
<script>
|
||||
var QUESTS_JSON = {{ quests_json|safe }};
|
||||
var GAME_SLUG = "{{ game.slug }}";
|
||||
</script>
|
||||
<script src="{{ url_for('static', filename='js/quests/quest-editor.js') }}"></script>
|
||||
{% endblock %}
|
||||
@@ -94,6 +94,7 @@
|
||||
<div class="builderTabs" id="builderTabs">
|
||||
<button type="button" class="builderTabBtn active" data-tab="screen" onclick="switchBuilderTab('screen')">🖥️ Scène</button>
|
||||
<button type="button" class="builderTabBtn" data-tab="collision-rules" onclick="switchBuilderTab('collision-rules')">🧩 Collision</button>
|
||||
<button type="button" class="builderTabBtn" data-tab="quests" onclick="switchBuilderTab('quests')">🗺️ Quêtes</button>
|
||||
<button type="button" class="builderTabBtn" data-tab="events" onclick="switchBuilderTab('events')">📣 Événements</button>
|
||||
</div>
|
||||
|
||||
@@ -161,6 +162,22 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Éditeur de quêtes (voir db/quests/) : une LISTE (comme l'onglet
|
||||
Événements juste après), pas une grille de cartes — chaque ligne
|
||||
résume titre/objectif/récompense/statut/résultat, cliquer dessus
|
||||
ouvre la modale d'arbre de dialogue (static/js/quests/
|
||||
quest-editor.js, partagée avec l'assistant "+ Action" de l'onglet
|
||||
Collision). Rendu ENTIÈREMENT en JS depuis QUESTS_JSON, même
|
||||
convention que #collisionRulesCards ci-dessus. -->
|
||||
<div class="builderTabPanel" id="questsTabPanel" data-tab-panel="quests">
|
||||
<div class="dashPanelHeader">
|
||||
<h2>🗺️ Quêtes</h2>
|
||||
<button type="button" class="button is-small primary" onclick="createQuestFromListPage()">+ Créer une quête</button>
|
||||
</div>
|
||||
<p class="hint">Titre, objectif, récompense, statut, résultat — clique sur une ligne pour écrire son enchaînement de dialogue.</p>
|
||||
<div id="questsListWrap"></div>
|
||||
</div>
|
||||
|
||||
<div class="builderTabPanel" id="eventsTabPanel" data-tab-panel="events">
|
||||
<div class="dashPanelHeader">
|
||||
<h2>Événements personnalisés</h2>
|
||||
|
||||
Reference in New Issue
Block a user