Remove temp plan file, normalize GDD whitespace
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
84ab0a1d0f
commit
358ab48d59
2 changed files with 30 additions and 137 deletions
107
PLAN_juice.md
107
PLAN_juice.md
|
|
@ -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é
|
|
||||||
Loading…
Add table
Reference in a new issue