# 06 — Salle Puzzle

Crée une salle de chasse à la clé où le joueur doit trouver une clé avant que la sortie s'ouvre.

---

## Une salle puzzle a-t-elle besoin de scripts ?

**Non.** Tout est géré par DKReforged au moment de l'exécution. Tu poses uniquement des marqueurs :

- `WhatLockIsNeeded` avec un enfant `KeyLock` → crée une porte verrouillée
- `DoorKeySpawner` → le jeu fait spawner une clé ici que le joueur peut ramasser

Quand le joueur ramasse la clé et l'apporte à la porte, la sortie s'ouvre.

---

## Configuration

### 1. Porte à clé

1. Clic droit sur la racine → **Create Empty** → renomme `WhatLockIsNeeded`
2. Place-le à l'ouverture de sortie
3. Clic droit sur `WhatLockIsNeeded` → **Create Empty** → renomme `KeyLock`
4. Optionnellement, ajoute un visuel de porte verrouillée dans `KeyLock` (barreaux, chaînes, mesh de porte)

### 2. Point de spawn de la clé

1. Clic droit sur la racine → **Create Empty** → renomme `DoorKeySpawner`
2. Place-le quelque part dans la salle — pas trop évident, pas impossible à trouver
3. Un seul `DoorKeySpawner` suffit

### 3. Régler le pool

Dans ton `rooms.json`, mets `"pool": "PuzzleRoomStructures"` — cela indique au générateur de donjon d'utiliser ta salle dans le slot puzzle, qui apparaît à un moment précis de la partie.

---

## Conseils de design

- **Cache la clé** — place `DoorKeySpawner` derrière une colonne, dans un coin ou dans une alcôve pour que le joueur doive explorer
- **Vider la salle d'abord** — si tu as aussi des ennemis, le joueur combat avant de chercher la clé (pas besoin de `MonsterLock` sur la même porte — le jeu gère la logique de clé indépendamment)
- **Indice visuel** — une torche, une lumière plus intense (Point Light avec une intensité plus élevée) ou une décoration distinctive près du spawn de clé guide le joueur sans que ce soit trivial
- **Plusieurs salles** — si ton bundle a à la fois une salle `NormalRoomStructures` et une salle `PuzzleRoomStructures`, utilise des sous-dossiers séparés pour chaque bundle (un sous-dossier = une config de pool)

---

## Exemple de Hierarchy

```
mon-pack_SallePuzzle
├── ... (géométrie, lumières)
├── SpawnHere
├── EnemySpawn  (×3, optionnel)
├── LootSpawner (×4)
├── DoorKeySpawner          ← la clé spawne ici
└── WhatLockIsNeeded
    └── KeyLock
        └── [géométrie de porte verrouillée optionnelle]
```

---

## Suite

→ [07-multiple-parts.md](07-multiple-parts.md) — bundles multi-prefabs
