# 07 — Plusieurs Parties

Crée des bundles avec plusieurs salles, des paires couloir+salle, ou de grandes salles multi-chambres.

---

## Comment fonctionne le générateur de donjon

Le donjon est construit séquentiellement par `CreateRandomRoom`. Chaque étape choisit un prefab dans un pool :

1. Premier appel → choisit dans `HallWayStructures` (un couloir)
2. Appels suivants → choisit dans `NormalRoomStructures`, `PuzzleRoomStructures`, etc.

Les salles sont consommées depuis le pool au fur et à mesure de leur placement — le même prefab n'apparaîtra pas deux fois dans la même partie à moins que tu ne l'aies ajouté plusieurs fois.

---

## Plusieurs prefabs dans un seul bundle

Un seul bundle `.rooms` peut contenir **plusieurs objets prefab**. Chaque prefab devient une entrée indépendante dans le pool.

Pour ajouter une deuxième salle à ton bundle :

1. Dans la même scène, crée un deuxième objet racine : `mon-pack_SalleAlt`
2. Construis-le comme la première salle
3. Glisse-le dans le dossier `Salles` pour créer un deuxième Prefab
4. Sélectionne le Prefab → règle son **AssetBundle** sur le même nom : `mon-pack`
5. Exporte — les deux salles sont empacketées dans `mon-pack.rooms`

Les deux salles seront injectées dans le pool. Le jeu choisit entre elles aléatoirement.

---

## Paire couloir + salle de combat

Utilise le système de pool pour créer une paire assortie : un couloir qui mène vers une salle de combat.

1. Crée deux objets racines dans la même scène :
   - `mon-pack_Couloir` — longue salle étroite avec des sorties `UnbarredDoor` aux deux extrémités
   - `mon-pack_Chambre` — salle de combat plus grande avec `MonsterLock`
2. Assigne les deux au même bundle
3. Dans `rooms.json`, mets `"pool": "HallWayStructures"` pour le couloir seulement

> Comme `rooms.json` s'applique au **bundle entier**, tu ne peux pas définir des pools différents pour différents prefabs dans le même bundle via `rooms.json`. Utilise des sous-dossiers de bundle séparés si tu as besoin de réglages de pool différents par salle.

---

## Grandes salles mono-prefab multi-chambres

Rien ne t'empêche de construire un grand prefab de salle avec des couloirs internes reliant plusieurs chambres. Toute la structure est un seul prefab — une seule entrée dans le pool.

Considérations de design :

- Chaque sous-chambre peut avoir ses propres marqueurs `EnemySpawn`
- Utilise seulement **un** `WhatLockIsNeeded` avec un `MonsterLock` — la porte vérifie si TOUS les ennemis dans `MMS.EnemiesRef` sont morts, ce qui compte tous les ennemis dans toute la salle quelle que soit la chambre où ils se trouvent
- Le spawn du joueur (`SpawnHere`) est le point d'entrée de toute la structure
- Le NavMesh doit couvrir toutes les zones praticables — cuit avec `NavMeshSurface` sur la racine avec `Collect Objects: All`

---

## Résumé

| Objectif | Approche |
|---|---|
| Deux salles indépendantes, même thème | Deux prefabs dans un bundle, même pool |
| Couloir qui mène vers une chambre | Deux bundles dans des sous-dossiers séparés, un `HallWayStructures`, un `NormalRoomStructures` |
| Grande salle ramifiée | Un grand prefab, un `SpawnHere`, un `WhatLockIsNeeded/MonsterLock` |

---

## Suite

→ [08-ideas.md](08-ideas.md) — idées et techniques supplémentaires
