BIG EGG · Plan du donjon · Pour décision

Le donjon en salles

Le donjon passe d'un lieu à une progression. Ce que ça impose à la sauvegarde, comment se construit une salle, et le grand cycle des mondes.

Le point structurant

Trois portées, pas deux

Ton cycle de mondes introduit une durée de vie que le projet n'a pas encore. Aujourd'hui il n'y a que « la partie ». Il en faut trois, et elles doivent être nettes avant qu'on construise quoi que ce soit — parce qu'elles décident du format de sauvegarde.

PortéeContientEffacée quandExiste déjà ?
run
une plongée
Salle courante, bonus choisis en récompense, butin en cours Au retour au restaurant, quelle qu'en soit la raison Racine créée, jamais vidée en fin de plongée
world
un monde
Upgrades générales, pièces, ingrédients, avancement du restaurant À la victoire sur le boss final du monde n'existe pas
meta
la sauvegarde
Upgrades spéciales, numéro de monde, contenu débloqué Jamais Racine créée, inutilisée
Conséquence immédiate

purchased_upgrades est aujourd'hui une seule liste plate. Le passage à un monde suivant doit en effacer une partie et en garder une autre. Il faut donc que chaque nœud déclare sa portée — un champ scope valant world ou meta suffit, et il se règle dans l'outil comme n'importe quel autre champ.

Sans ce champ, la remise à zéro du cycle devient une liste d'exceptions codées en dur, qui se désynchronisera de l'arbre à la première upgrade ajoutée.

Le reste tombe tout seul : la remise à zéro d'un monde efface run, remet les upgrades de portée world, et laisse meta intact. Une seule opération, sur un ensemble défini par les données.

L'unité de jeu

La salle

Apparition pondérée

Aujourd'hui spawn_count est une quantité fixe par monstre : la vague contient exactement ce que les fiches demandent. Ton modèle est différent — la salle a un budget de créatures, et chaque monstre a un poids qui décide de sa probabilité d'être tiré.

// aujourd'hui: quantité imposée
chicken_beast.spawn_count = 7   → 7 chicken_beast, toujours

// visé: poids relatif
chicken_beast.spawn_weight = 7  → 7 chances sur (somme des poids)
salle.budget = 12               → 12 tirages

C'est ce qui rend l'idée d'objet possible : « cet item fait apparaître plus de gobelins » devient un modificateur sur le poids, pas une règle spéciale. Et le poids étant une donnée d'entité, il est déjà adressable.

Deux vagues, deux nombres

Le nombre initial et les renforts sont deux statistiques distinctes, donc toutes deux améliorables et modifiables par un biome :

Une salle est « nettoyée » quand le budget total est épuisé et qu'aucun monstre ne reste. La porte s'ouvre à ce moment.

Les récompenses

Entre deux salles, un choix parmi quelques bonus. C'est exactement ce pour quoi la source run: du pool de modificateurs a été prévue : un bonus choisi est un modificateur de source run:, et la fin de la plongée le retire d'un seul appel — rien à nettoyer à la main, rien qui puisse survivre par accident.

Sortie

Les trois fins de plongée

FinButinÉtat actuel du code
Stamina épuiséeConservé intégralementdéjà en place
Mis hors servicePerdu, sauf le pourcentage couvert par l'assurancela perte fonctionne déjà (restore_ingredient_inventory) ; l'assurance reste à faire
Boss final du mondeConservé, plus l'upgrade spécialeà construire

L'assurance est une statistique, pas un drapeau : insurance_rate à 0 par défaut, qu'une upgrade monte à 0,25 puis 0,5. Même raisonnement que le four autonome — une question de degré se règle par un nombre, jamais par un booléen.

Le retour au restaurant est toujours la même destination, donc la même scène et le même chemin de code. L'animation du joueur qui repart vers la gauche est une couche visuelle par-dessus, pas une variante de logique.

La boucle longue

Le grand cycle

plongées → boss du monde → récit → upgrade spéciale
        → monde suivant (upgrades générales remises à zéro)
        → nouveau monstre + nouvelle salle spéciale + nouveau biome
        → ... × 4 ou 5 → dernier biome, vrai boss final

Le point important : le contenu qui apparaît à chaque cycle n'est pas du code. Un monde déclare quels monstres, quels biomes et quels types de salles sont disponibles ; passer au monde suivant, c'est incrémenter meta.world_index et laisser les données décider du reste.

Un biome, dans ce modèle, est une simple table : la liste des monstres autorisés et leurs poids, plus les modificateurs qu'il applique à la salle. Il ne contient aucune logique.

À éviter

Ne pas dupliquer les données par monde. Un monde sélectionne et pondère du contenu existant ; il ne le recopie pas. Sinon cinq mondes veulent dire cinq fois la maintenance, et un rééquilibrage à faire cinq fois.

Exécution

Plan par phases

Chaque phase est jouable et testable seule. Sauvegarde datée avant chacune, suite complète au vert avant la suivante.

  1. Portées de persistance

    Champ scope sur les nœuds d'upgrade, run vidé en fin de plongée, opération de passage de monde. Aucun changement visible en jeu — c'est le socle.

  2. Apparition pondérée

    spawn_count devient spawn_weight, tirage pondéré, budget de salle piloté par une statistique. La vague actuelle continue de fonctionner, avec une composition variable.

  3. La salle et la porte

    Compteur de créatures, porte qui s'ouvre au nettoyage, passage à la salle suivante, run.room_index. La plongée devient une suite au lieu d'un lieu.

  4. Renforts

    Seconde vague pendant le combat, avec sa propre statistique.

  5. Menu de récompenses

    Choix entre salles, bonus posés comme modificateurs de source run:.

  6. Assurance et fins de plongée

    insurance_rate, upgrade correspondante, unification des trois sorties.

  7. Biomes et salles de boss

    Collection biomes, types de salles, salle de boss en fin de parcours.

  8. Mondes et cycle complet

    meta.world_index, récit de fin de monde, upgrades spéciales, contenu qui se débloque par cycle.

À trancher

Les décisions

E1Structurante

Que remet-on à zéro au passage à un nouveau monde ?

Tu as dit « toutes les upgrades générales ». La question est ce qui les accompagne.

A · Tout l'avancement du monde Recommandé

Upgrades générales, pièces, ingrédients, tables et assiettes du restaurant. Seules les upgrades spéciales et le contenu débloqué survivent.

B · Seulement l'arbre d'upgrades

On garde les pièces, l'inventaire et l'avancement du restaurant. Le nouveau monde démarre riche.

Pourquoi A. C'est ce qui donne un sens au recommencement : sans remise à zéro de l'économie, le deuxième monde se termine en quelques minutes et les cycles suivants n'ont plus d'enjeu. Et un restaurant plus beau au monde 2 se lit mieux si on le rebâtit.

E2Structurante

Où vivent les upgrades spéciales ?

A · Même arbre, champ scope Recommandé

Un nœud déclare scope: meta. Même éditeur, mêmes conditions, même rendu.

B · Arbre séparé

Une seconde page d'upgrades dédiée, visuellement distincte.

Pourquoi A. Zéro duplication d'outillage, et les upgrades spéciales peuvent conditionner des nœuds normaux sans mécanisme supplémentaire. Rien n'empêche de les afficher à part plus tard : c'est une question de présentation, pas de structure.

E3Structurante

Comment se termine une plongée réussie ?

La stamina et la mort ont leurs sorties. Mais quand le joueur enchaîne les salles, qu'est-ce qui l'arrête ?

A · Le joueur choisit de repartir Recommandé

Après chaque salle nettoyée, deux portes : continuer, ou rentrer avec le butin. La tension vient du choix.

B · Nombre de salles fixé

La plongée fait N salles, puis se termine d'elle-même.

Pourquoi A. C'est ce qui fait vivre la stamina : pousser une salle de plus contre le risque de tout perdre. Avec B, la stamina n'est qu'une limite technique.

E4Rapide

L'assurance couvre quoi ?

A · Les ingrédients seulement Recommandé

Le butin de la plongée. Les pièces gagnées au restaurant ne sont pas en jeu.

B · Ingrédients et pièces

Tout ce que la plongée a rapporté.

Pourquoi A. Aujourd'hui la plongée ne rapporte que des ingrédients ; les pièces viennent du restaurant. B n'aurait d'effet que si le donjon se met à donner des pièces — décision à prendre à ce moment-là, pas maintenant.

E5Information

Combien de mondes, et le restaurant change-t-il vraiment ?

Tu parles de quatre ou cinq cycles et d'un « plus beau restaurant ». Est-ce une nouvelle scène par monde, ou la même scène avec une palette et des décors différents ?

Ce que ça change. Une variante visuelle par monde tient dans les données. Une scène par monde veut dire dupliquer la logique du restaurant, ce que je déconseillerais fortement.

Ta réponse

Feuille de réponse

E1  remise à zéro du monde : A   (A = tout l'avancement · B = arbre seulement)
E2  upgrades spéciales    : A   (A = même arbre + scope · B = arbre séparé)
E3  fin de plongée        : A   (A = le joueur choisit · B = N salles fixes)
E4  assurance             : A   (A = ingrédients · B = ingrédients + pièces)
E5  mondes                : ?   (nombre visé · variante visuelle ou scène séparée)

Avec tout en A, j'attaque les phases 1 à 3 : portées de persistance, apparition pondérée, salle et porte. C'est le point où le donjon devient une progression, et c'est testable de bout en bout.