Retrait de la création rapide de variable globale depuis le sélecteur de
la Condition de visibilité (bouton "+ Créer") : une variable globale est
désormais gérée comme un objet "jeu" à part entière, avec une vraie page
CRUD ("Variables", nouvelle entrée du menu de gauche) - création, édition
du type/valeur, suppression. Le nom reste volontairement immuable après
création (c'est par ce nom qu'une condition de visibilité ou une action
"Modifier une variable" la référence - la renommer casserait ces réglages
en silence), d'où db.update_global_variable qui ne touche que type/valeur.
Redesign du tableau de bord du jeu (game_dashboard.html) en deux
colonnes : à gauche tout ce qu'on peut créer (écrans, éléments de jeu,
variables, jouer, nouvel objet) plus les paramètres du jeu (renommer/
supprimer) ; à droite ce qui a déjà été créé (objets définis). Remplace
les cartes Bulma par le système de mise en page compact déjà défini dans
style.css (.twoCol/.listRow/.dangerZone/.addBtn) mais jamais utilisé
jusqu'ici - plus dense et cohérent avec le reste de l'éditeur.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
70 lines
3.1 KiB
HTML
70 lines
3.1 KiB
HTML
{% extends "base.html" %}
|
||
{% block title %}{{ game.name }} — Forge Engine{% endblock %}
|
||
{% block content_class %}content-wide{% endblock %}
|
||
{% block breadcrumb %}<li class="is-active"><a>{{ game.name }}</a></li>{% endblock %}
|
||
{% block content %}
|
||
<h1 class="title">{{ game.name }}</h1>
|
||
<p class="hint mb-4">Base de données : projects/{{ game.slug }}/game.db</p>
|
||
|
||
<div class="twoCol">
|
||
<div class="colLeft">
|
||
<h2>Créer</h2>
|
||
<div class="list">
|
||
<a href="{{ url_for('screens_list', slug=game.slug) }}" class="listRow">
|
||
<div class="rowTitle">🖥️ Écrans du jeu</div>
|
||
<div class="rowSub">Créer et enchaîner les écrans jouables (accueil, formulaires, scènes...)</div>
|
||
</a>
|
||
<a href="{{ url_for('element_types', slug=game.slug) }}" class="listRow">
|
||
<div class="rowTitle">🧩 Éléments de jeu</div>
|
||
<div class="rowSub">Catalogue réutilisable (Personnage, Outil, IA...)</div>
|
||
</a>
|
||
<a href="{{ url_for('game_variables', slug=game.slug) }}" class="listRow">
|
||
<div class="rowTitle">🔧 Variables</div>
|
||
<div class="rowSub">Valeurs globales au jeu entier (ex. porte ouverte, niveau débloqué...)</div>
|
||
</a>
|
||
<a href="{{ url_for('game_play', slug=game.slug) }}" target="_blank" class="listRow">
|
||
<div class="rowTitle">▶️ Jouer</div>
|
||
<div class="rowSub">Aperçu jouable du jeu</div>
|
||
</a>
|
||
</div>
|
||
<a href="{{ url_for('object_new', slug=game.slug) }}" class="addBtn">➕ Définir un nouvel objet</a>
|
||
|
||
<div class="dangerZone">
|
||
<h3>Paramètres du jeu</h3>
|
||
<form method="post" action="{{ url_for('game_rename', slug=game.slug) }}">
|
||
<label for="rename">Renommer le jeu</label>
|
||
<div class="fieldRow">
|
||
<input type="text" id="rename" name="game_name" value="{{ game.name }}" required autocomplete="off">
|
||
<button type="submit">Renommer</button>
|
||
</div>
|
||
</form>
|
||
<form method="post" action="{{ url_for('game_delete', slug=game.slug) }}" class="actionsRow"
|
||
onsubmit="return confirm('Supprimer définitivement le jeu « {{ game.name }} », son dossier et sa base de données ? Cette action est irréversible.');">
|
||
<button type="submit" class="danger">🗑️ Supprimer ce jeu</button>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="colRight">
|
||
<h2>Objets définis</h2>
|
||
{% if definitions %}
|
||
<div class="list">
|
||
{% for d in definitions %}
|
||
<div class="listRow listRowFlex">
|
||
<a href="{{ url_for('object_view', slug=game.slug, definition_id=d.id) }}" class="rowLink">
|
||
<div class="rowTitle">{{ d.name }}</div>
|
||
<div class="rowSub">table SQL : {{ d.table_name }}</div>
|
||
</a>
|
||
<div class="rowActions">
|
||
<a class="button is-small" href="{{ url_for('object_edit', slug=game.slug, definition_id=d.id) }}" title="Modifier cet objet">✏️</a>
|
||
</div>
|
||
</div>
|
||
{% endfor %}
|
||
</div>
|
||
{% else %}
|
||
<p class="hint">Aucun objet défini pour l'instant — un objet, c'est comme une table de base de données : un nom, et des champs typés.</p>
|
||
{% endif %}
|
||
</div>
|
||
</div>
|
||
{% endblock %}
|