Remove temp plan file, normalize GDD whitespace

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Samuel Bouchet 2026-04-11 11:42:07 +02:00
parent 84ab0a1d0f
commit 358ab48d59
2 changed files with 30 additions and 137 deletions

View file

@ -1,107 +0,0 @@
# Plan: Juice Pass - Animations, Sons, Visuels
## Context
Le jeu fonctionne mais manque de "juice" — les interactions sont plates, pas de sons, les animations sont minimales. L'objectif est de rendre chaque action satisfaisante visuellement et auditivement.
## Principes
- Pas de dépendance externe (pas de fichiers audio .wav/.ogg) — sons générés procéduralement via `AudioStreamGenerator` ou les nœuds Godot (`AudioStreamPlayer` avec des tones synthétiques)
- Tout est fait en code (pas de .tscn supplémentaires)
- Les effets sont subtils, jamais bloquants
## Changements par catégorie
### 1. Pièces — Vie et feedback (PieceView.cs)
- **Bounce à la pose** : quand une pièce est placée, scale 0→1.2→1.0 (0.2s, ease back-out)
- **Pulse quand porte un colis** : le cargo indicator pulse doucement (scale 1.0↔1.2, loop)
- **Ombre sous la pièce** : un cercle sombre semi-transparent (alpha 0.15) légèrement décalé en bas
- **Lettre de la pièce** : utiliser le nom complet court au lieu de la lettre seule pour plus de clarté
### 2. Trajectoires (TrajectView.cs)
- **Flèche directionnelle** : ajouter un triangle au bout de la ligne pour montrer le sens
- **Pulse pendant la simulation** : la ligne pulse (alpha oscille 0.3↔0.6) quand la sim tourne
- **Couleur par type de pièce** : la trajectoire reprend la couleur de la pièce
### 3. Animations de tour (EventAnimator.cs)
- **Production** : particules (petits carrés colorés) qui jaillissent de la cellule de production + scale bounce de la cellule
- **Transfert** : le cargo slide laisse une traînée (2-3 carrés plus petits qui suivent avec délai) + ease back-out pour un effet de "whip"
- **Mouvement** : les pièces se soulèvent légèrement (scale 1.0→1.1→1.0 pendant le déplacement) pour donner l'impression de vol
- **Destruction** : la pièce se réduit (scale→0) + rotation + particules rouges éclatantes au lieu d'un simple flash
- **Victoire** : pluie de confettis dorés sur tout l'écran
### 4. Cellules (CellView.cs)
- **Hover amélioré** : la cellule survolée fait un léger scale-up (1.0→1.03) + outline pulse
- **Highlight de placement** : les cellules valides pulsent doucement (alpha oscille)
### 5. UI — Contrôles et panneaux
**ControlBar.cs** :
- Boutons avec style (fond coloré, coins arrondis) au lieu du style par défaut Godot
- Boutons disabled grayed out visuellement
**MetricsOverlay.cs** :
- Apparition avec fade-in + scale (0.8→1.0) au lieu d'un Visible=true brutal
- Les métriques apparaissent une par une avec un petit délai
**LevelSelectScreen.cs** :
- Cards hover : légère élévation (border-color plus clair) + scale 1.0→1.02
**ObjectivePanel.cs** :
- Flash vert sur la barre de progression quand une livraison arrive
- Animation de la jauge (tween de la valeur plutôt qu'un saut)
### 6. Sons procéduraux (nouveau: SfxManager.cs)
Un nœud singleton qui génère des bips synthétiques via `AudioStreamPlayer` :
- **Placement** : bip court montant (C5, 0.08s)
- **Production** : bip grave doux (C3, 0.1s)
- **Transfert** : swoosh (bruit blanc filtré, 0.15s)
- **Livraison à demande** : ding satisfaisant (C5+E5 chord, 0.2s)
- **Mouvement** : léger whoosh (bruit blanc très court, 0.05s)
- **Destruction** : crunch descendant (C4→C2, 0.15s)
- **Victoire** : arpège majeur montant (C4-E4-G4-C5, 0.5s)
- **Clic UI** : tick léger (0.02s)
Implémenté avec `AudioStreamGenerator` pour les tones, buffer rempli avec des sinusoïdes + enveloppe ADSR simple.
### 7. Transitions (Main.cs)
- **Fade in/out** entre level select et gameplay : ColorRect noir plein écran, alpha 1→0 (0.4s)
- **Camera** : zoom léger quand la simulation démarre (1.0→0.95→1.0)
## Fichiers à modifier
| Fichier | Changements |
|---------|-------------|
| `Scripts/Pieces/PieceView.cs` | Ombre, bounce, cargo pulse |
| `Scripts/Pieces/TrajectView.cs` | Flèche, pulse, couleur |
| `Scripts/Presentation/EventAnimator.cs` | Particules, trails, destruction améliorée, confettis victoire |
| `Scripts/Board/CellView.cs` | Hover scale, highlight pulse |
| `Scripts/UI/ControlBar.cs` | Boutons stylés |
| `Scripts/UI/MetricsOverlay.cs` | Fade-in, métriques séquentielles |
| `Scripts/UI/LevelSelectScreen.cs` | Card hover effects |
| `Scripts/UI/ObjectivePanel.cs` | Flash vert, tween jauge |
| `Scripts/Main.cs` | Fade transition, camera juice |
| `Scripts/Presentation/SfxManager.cs` | **NOUVEAU** — sons procéduraux |
## Ordre d'implémentation
1. SfxManager (fondation audio)
2. PieceView (bounce, ombre, cargo pulse)
3. EventAnimator (particules, trails, destruction, confettis)
4. CellView (hover, highlight pulse)
5. TrajectView (flèche, pulse)
6. UI polish (ControlBar, MetricsOverlay, ObjectivePanel, LevelSelectScreen)
7. Transitions (Main.cs fade, camera)
## Vérification
- Lancer le jeu, vérifier chaque animation visuellement
- S'assurer que les sons ne sont pas trop forts ou gênants
- Vérifier que les animations n'interfèrent pas avec le gameplay (pas de blocage)
- `dotnet test` pour s'assurer que l'engine n'est pas impacté