Tous les onglets
Sheet ID :
1L9hbQuAD9A4WQFG1G47teZlUPM6-JkMmuuX2Ys-TYt8Colonne manquante connue : l'onglet
nations a idee4_court absente, remplacée par un doublon idee4_type, et idee3_court déplacée en fin. Nécessite une correction manuelle dans Sheets.divinites
10+ colonnes
via gviz + Apps Script
territoires
8 colonnes
via gviz
nations
36 colonnes
via gviz
attaques
6 colonnes
gviz + Apps Script
cycles
4 colonnes
via gviz
quetes
13 colonnes
via Apps Script
roadmap
7 colonnes
via CSV public
dieux_lore
4 colonnes
Apps Script uniquement
dieux_liens
4 colonnes
Apps Script uniquement
Règle critique — action Apps Script : le champ
action doit être placé dans le paramètre JSON data, pas en query string séparée. Ex : { action: 'getDieu', id: 'athena' }
divinites
Lecture via
gviz (stats) + action getDieu (bio, lore)Les colonnes
SOCIETAL_COLS (10 critères) et ORG_COLS (17 colonnes K–AB) sont sommées directement en JS — gviz ne retourne pas les résultats des formules =SOMME(). Ne pas les supprimer. Valeurs entre 0 et 50.requis Obligatoire
optionnel Peut être vide
auto Géré par le système
| Colonne | Type / exemple | Statut | Notes |
|---|---|---|---|
| id | athena | requis | Identifiant unique, minuscules, sans accent ni espace. Clé utilisée partout dans le code. |
| nom | Athéna | requis | Nom affiché dans l'interface. |
| joueur | Winston | requis | Pseudo Discord du joueur. |
| pi | nombre — 18 | requis | Points d'Influence actuels. Mis à jour manuellement par l'admin après résolution des cycles. |
| couleur | hex — #c9a84c | requis | Couleur de la divinité sur la carte et dans l'UI. Format hexadécimal avec #. |
| pass | monmotdepasse | requis | Mot de passe de connexion du joueur. Texte brut. |
| faction | Olympiens | requis | Valeurs exactes : Olympiens Shenming Sovereign. Respecter la casse. |
| avatar_url | URL Imgur | optionnel | Portrait de la divinité. Hébergé sur Imgur. Passer par fixImgur() si l'URL contient des virgules. |
| logo_url | URL Imgur | optionnel | Logo / symbole de la divinité. |
| tuto | 0 ou 1 | requis | 0 = tutoriel pas encore fait (se lance automatiquement au login). 1 = terminé. |
| K → AB | nombres 0–50 | requis | Colonnes SOCIETAL_COLS + ORG_COLS. Sommées en JS. Les noms exacts sont définis dans app.js. |
territoires
Lecture via
gvizrequis
optionnel
auto
| Colonne | Type / exemple | Statut | Notes |
|---|---|---|---|
| id | fr_paris | requis | Identifiant unique du territoire. |
| nom | Paris | requis | Nom affiché dans l'interface. |
| zone | France | requis | Doit correspondre exactement aux 23 zones du globe D3. |
| type | capitale | optionnel | Catégorie du territoire. |
| proprietaire | athena | optionnel | ID de la divinité propriétaire. Vide ou neutral si non possédé. Dans le code JS, la propriété s'appelle owner. |
| pi_valeur | nombre — 3 | optionnel | Valeur en PI du territoire à la conquête. |
| lon | nombre — 2.35 | optionnel | Longitude (pour affichage globe). Remplace cx dans la version mobile. |
| lat | nombre — 48.85 | optionnel | Latitude (pour affichage globe). |
| image_url | URL Imgur | optionnel | Photo du territoire (utilisée dans la fiche mobile). |
nations
36 colonnes — lecture via
gvizBug connu :
idee4_court est absente — remplacée par un doublon idee4_type. Et idee3_court est déplacée en toute fin de ligne. Nécessite une correction manuelle dans Google Sheets (réordonner les colonnes).Les URLs Imgur dans les colonnes
*_img peuvent contenir des virgules au lieu de points dans le sous-domaine — passer toujours par fixImgur() avant affichage.requis
optionnel
| Colonne | Type / exemple | Statut | Notes |
|---|---|---|---|
| zone | France | requis | Nom de la zone. Clé principale. Doit correspondre aux zones du globe. |
| leader | Emmanuel Macron | optionnel | Nom du dirigeant de la nation dans le contexte 2029. |
| portrait_url | URL Imgur | optionnel | Portrait du leader. |
| image_url | URL Imgur | optionnel | Image de fond de la nation (paysage, drapeau, etc.). |
| description | texte long | optionnel | Lore de la nation affiché dans le panneau zone. |
| alignement_x | nombre — 0.6 | optionnel | Axe idéologique horizontal (−1 à +1). Utilisé pour la pyramide d'alignement. |
| alignement_y | nombre — 0.3 | optionnel | Axe idéologique vertical (−1 à +1). |
| dieu1 | athena | optionnel | ID de la première divinité influente sur cette zone. |
| dieu2 | ares | optionnel | ID de la deuxième divinité influente. |
| leader_bio | texte long | optionnel | Biographie du leader affichée dans la fiche nation. |
| idee1_img | URL Imgur | optionnel | Image de l'idée nationale 1. |
| idee1_nom | La République Éternelle | optionnel | Nom de l'idée nationale 1. |
| idee1_type | bonus | optionnel | Type de l'idée. |
| idee1_court | texte court | optionnel | Accroche courte affichée sur la carte de l'idée. |
| idee1_long | texte long | optionnel | Description complète de l'idée (modal de détail). |
| idee1_effet | +2 PI défense | optionnel | Effet mécanique de l'idée. |
| idee2_* → idee4_* | Même structure × 4 idées (img, nom, type, court, long, effet). Total : 24 colonnes d'idées. | ||
attaques
Lecture via
gviz — écriture via Apps ScriptLimité à 2 attaques actives simultanées par divinité. La colonne
resultat est remplie par l'admin à la clôture du cycle.requis
auto
| Colonne | Type / exemple | Statut | Notes |
|---|---|---|---|
| cycle | nombre — 12 | requis | Numéro du cycle en cours. |
| attaquant | ares | requis | ID de la divinité attaquante. |
| defenseur | athena | requis | ID de la divinité défenseure. |
| territoire | France | requis | Zone ou territoire ciblé. |
| timestamp | date — 2025-06-01 18:32 | auto | Rempli automatiquement à la déclaration d'attaque. |
| resultat | victoire | auto | Rempli par l'admin à la clôture du cycle. Valeurs libres. |
cycles
Lecture via
gvizrequis
optionnel
| Colonne | Type / exemple | Statut | Notes |
|---|---|---|---|
| numero | nombre — 12 | requis | Numéro du cycle. |
| debut | date — 2025-06-01 | requis | Date de début du cycle. |
| fin | date — 2025-06-07 | optionnel | Vide si cycle en cours. |
| statut | en cours | requis | Valeurs : en cours cloture |
quetes
Lecture et écriture via Apps Script — actions
get_quete, accept_quete, refuse_queterequis
optionnel
auto
| Colonne | Type / exemple | Statut | Notes |
|---|---|---|---|
| id | q_001 | requis | Identifiant unique de la quête. |
| divinite_cible | athena | requis | ID de la divinité à qui la quête est proposée. |
| pnj_nom | Mercure | requis | Nom du PNJ donnant la quête. |
| pnj_image | URL Imgur | requis | Portrait du PNJ — 500×500px recommandé. Positionné à top:-70px dans le modal. |
| fond_image | URL Imgur | optionnel | Image de fond floutée derrière le PNJ. |
| pnj_bio | texte long | optionnel | Description du PNJ affichée dans le modal quête. |
| pnj_personnalite | rusé, diplomate | optionnel | Traits de caractère du PNJ. |
| objectif | texte long | requis | Description de l'objectif à accomplir, affiché au joueur. |
| gain_description | +5 PI en France | requis | Récompense textuelle affichée au joueur. |
| gain_pi | nombre — 5 | requis | PI accordés à la complétion. Appliqués manuellement par l'admin. |
| statut | disponible | requis | Valeurs : disponible acceptee completee refusee |
| acceptee_par | athena | auto | Rempli par Apps Script à l'acceptation. |
| timestamp_accept | date | auto | Rempli automatiquement à l'acceptation. |
roadmap
Lecture via CSV public — pas Apps Script
Pour obtenir l'URL CSV : Fichier → Partager → Publier sur le web → choisir l'onglet
roadmap → format CSV → copier le lien → le coller dans CSV_URL en haut de roadmap.js. Les modifications admin sont locales uniquement — mettre à jour le Sheet manuellement.Le CSV ne supporte pas les sauts de ligne dans les cellules. Garder le champ
texte sur une seule ligne dans le Sheet. La colonne teaser accepte plusieurs URLs séparées par | pour la galerie.requis
optionnel
| Colonne | Type / exemple | Statut | Notes |
|---|---|---|---|
| id | 1 ou rm_001 | requis | Identifiant unique de l'entrée. Un simple numéro suffit. |
| titre | Système de quêtes | requis | Titre de la carte affichée sur la timeline. |
| description | texte court | requis | Résumé affiché directement sur la carte de la timeline. |
| image | URL Imgur | optionnel | Vignette affichée sur la carte. |
| statut | En cours | requis | Valeurs exactes (casse à respecter) : Fait En cours Prévu |
| date | Juin 2025 | optionnel | Texte libre — pas de format date strict. Ex : "Été 2025", "Cycle 12". |
| texte | texte long | optionnel | Contenu détaillé affiché dans la modal au clic sur la carte. |
| teaser | url1|url2|url3 | optionnel | URLs d'images séparées par | pour la galerie lightbox dans le modal de détail. |
dieux_lore
Créé automatiquement par Apps Script — action
getLore / saveLore / deleteLoreNe jamais lire via CSV — les sauts de ligne dans les textes de lore cassent le parsing. Toujours passer par l'action Apps Script
getLore.requis
| Colonne | Type / exemple | Statut | Notes |
|---|---|---|---|
| divinite_id | athena | requis | ID de la divinité concernée. Clé de recherche. |
| chapitre | nombre — 1 | requis | Numéro du chapitre pour l'ordre d'affichage dans la fiche. |
| titre | Origine divine | requis | Titre du chapitre affiché dans l'accordéon de la fiche. |
| texte | texte long | requis | Contenu narratif. Peut contenir des sauts de ligne — Apps Script gère la sérialisation. |
dieux_liens
Créé automatiquement par Apps Script — actions
getLiens / saveLien / deleteLienLes liens sont directionnels (
source_id → cible_id). L'onglet est auto-créé à la première utilisation de l'admin panel.requis
optionnel
| Colonne | Type / exemple | Statut | Notes |
|---|---|---|---|
| source_id | athena | requis | ID de la divinité source du lien. |
| cible_id | ares | requis | ID de la divinité cible. |
| type | allié | requis | Nature du lien. Ex : allié rival neutre pacte |
| description | texte | optionnel | Description de la relation affichée dans la fiche divinité, onglet Liens. |