Files
mario/CHANGELOG.md
2025-12-14 11:15:50 +01:00

342 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog - Mario Runner
## Version 2.2 - Système de Vies & Coffre Final 🏆❤️
### 🎮 NOUVEAU : Système de Vies
**Feature majeure** : Ajout d'un système de vies complet avec respawn !
- **3 vies au départ** (configurable)
- **Perte de vie** lors de collisions frontales avec obstacles
- **Respawn au checkpoint** avec invincibilité temporaire (2s)
- **Game Over** si toutes les vies sont perdues
#### Mécanique des Obstacles Améliorée
- **Sauter dessus** : Détruit l'obstacle + 50 points bonus + rebond
- **Collision frontale** : Perte d'une vie (sauf si invincible)
- Feedback visuel :
- ⚡ Flash rouge lors de la perte de vie
- 💚 Explosion verte lors de la destruction
- 🛡️ Clignotement pendant l'invincibilité
#### Système de Checkpoint
- **Sauvegarde automatique** tous les 1000px
- ⚡ Flash vert au passage d'un checkpoint
- Le joueur réapparaît au dernier checkpoint après une mort
- Invincibilité de 2 secondes après respawn (alpha clignotant)
#### Interface Utilisateur
- ❤️ **Compteur de vies** affiché en haut à gauche
- 🎁 **Cadeaux collectés** avec progression (X/15)
- Mise à jour en temps réel
### 🏆 NOUVEAU : Coffre au Trésor Final
**Récompense ultime** à la fin du niveau !
- **Coffre géant** placé sur la plateforme finale (x=7700)
- **Condition d'ouverture** : Avoir collecté 15 cadeaux minimum
- **Récompense** : MEGA BONUS de +1000 points !
#### Effets Visuels Spectaculaires
- 🌟 Aura dorée pulsante autour du coffre
- 💫 Texte flottant "🎁 15 cadeaux requis"
- ⚡ Flash doré géant à l'ouverture
- 💥 Explosion de 20 particules dorées
- 🏆 Message épique "COFFRE OUVERT ! MEGA BONUS +1000"
#### Feedback Progressif
- Message "🏆 Assez de cadeaux! Trouvez le coffre!" dès 15 cadeaux collectés
- Le compteur 🎁 change de couleur (jaune doré)
- Indicateur visuel au-dessus du coffre
#### Système d'Interaction
- **Overlap** : Se rapprocher du coffre suffit
- Vérification automatique du nombre de cadeaux
- Une seule ouverture possible par partie
### 📊 Statistiques de la v2.2
```
Vies de départ : 3
Invincibilité : 2000ms après respawn
Checkpoints : Tous les 1000px
Coffre requis : 15 cadeaux
Bonus coffre : +1000 points
```
### 🎯 Nouvelles Règles du Jeu
#### Gestion des Obstacles
1. **Sauter dessus (par le haut)** :
- ✅ Détruit l'obstacle
- ✅ +50 points
- ✅ Petit rebond automatique
- Effet explosion verte
2. **Collision (frontale/latérale)** :
- ❌ Perd une vie
- ⚡ Flash rouge
- 🔄 Respawn au checkpoint si vies restantes
- 💀 Game Over si plus de vies
#### Système de Progression
1. Collecter des cadeaux (+100) et super trésors (+500)
2. Atteindre 15 cadeaux minimum
3. Trouver le coffre final (x=7700)
4. Ouvrir le coffre pour le MEGA BONUS (+1000)
5. Survivre jusqu'à la fin avec 3 vies maximum
#### Score Maximum Possible
```
24 cadeaux normaux : 24 × 100 = 2,400 pts
6 super trésors : 6 × 500 = 3,000 pts
1 coffre final : 1 × 1000 = 1,000 pts
Obstacles détruits : ~24 × 50 = 1,200 pts
─────────────────────────────────────────────
TOTAL MAXIMUM : 7,600 pts
```
### 🔧 Changements Techniques
#### Nouvelles Constantes
```typescript
// src/utils/constants.ts
PLAYER_STARTING_LIVES: 3
RESPAWN_INVINCIBILITY_TIME: 2000
CHEST_REQUIRED_GIFTS: 15
```
#### Classe Player.ts - Invincibilité
```typescript
private isInvincible: boolean = false;
private invincibilityTimer?: Phaser.Time.TimerEvent;
public makeInvincible(scene: Phaser.Scene): void {
// Effet de clignotement alpha (0.3 ↔ 1.0)
// Timer de 2 secondes
}
public getIsInvincible(): boolean {
// Vérifie l'état d'invincibilité
}
```
#### Nouvelle Classe TreasureChest.ts
```typescript
export class TreasureChest extends Phaser.Physics.Arcade.Sprite {
private isOpen: boolean = false;
private requiredGifts: number;
public canOpen(giftsCollected: number): boolean
public open(scene: Phaser.Scene): number
public getIsOpen(): boolean
public getRequiredGifts(): number
}
```
#### GameScene.ts - Nouvelles Fonctions
```typescript
private lives: number;
private giftsCollected: number;
private lastCheckpointX: number;
private treasureChest?: TreasureChest;
private openChest() // Interaction avec le coffre
private loseLife() // Gestion perte de vie
private respawnPlayer() // Téléportation au checkpoint
private gameOver() // Écran de fin si plus de vies
```
#### Mécanique de Détection de Saut
```typescript
private hitObstacle(player: any, obstacle: any): void {
const isJumpingOn =
playerBody.velocity.y > 0 &&
playerBody.bottom <= obstacleBody.top + 10;
if (isJumpingOn) {
// Destruction
} else {
if (!player.getIsInvincible()) {
this.loseLife();
}
}
}
```
### 🐛 Corrections
- ✅ Invincibilité fonctionne correctement après respawn
- ✅ Checkpoints sauvegardent la position tous les 1000px
- ✅ Détection précise saut vs collision sur obstacles
- ✅ UI vies et cadeaux mise à jour en temps réel
- ✅ Game Over arrête correctement la physique
### 💡 Conseils de Jeu
1. **Maîtrisez le saut sur obstacles** : Vous gagnez des points au lieu d'en perdre !
2. **Cherchez tous les cadeaux** : Il en faut 15 pour le coffre final
3. **Attention aux checkpoints** : Vous réapparaitrez là où vous étiez il y a 1000px
4. **3 vies seulement** : Soyez prudent, chaque vie compte !
5. **Invincibilité** : Profitez des 2 secondes après respawn pour passer les zones dangereuses
6. **Coffre final** : N'oubliez pas d'aller tout au bout (x=7700) pour le mega bonus !
---
## Version 2.1 - Super Trésors 🌟💰
### 🎁 NOUVEAU : Super Trésors
**Feature majeure** : Ajout de super trésors ultra précieux !
- **6 super trésors** répartis dans le niveau (1 par zone)
- **+500 points** par collecte (5x plus qu'un cadeau normal !)
- **Score max total** : 5,400 points (vs 2,400 avant)
#### Effets Visuels Spectaculaires
- 🌟 Rotation rapide + pulsation
- ⭐ 3 étoiles qui orbitent autour
- ✨ Effet de brillance scintillant
- ⚡ Flash doré à la collecte
- 🎯 Message géant "★ SUPER TRÉSOR +500 ★"
#### Placement Stratégique
- Placés en **hauteur** (nécessite double saut)
- Difficulté croissante par zone
- Zone 5 : Ultra difficile (-500px de hauteur)
- Zone 6 : Sur la plateforme finale
#### Classe Technique
- Nouvelle classe `SuperTreasure` avec animations avancées
- Taille 1.5x plus grande que les cadeaux
- Effet de particules avec étoiles orbitales
- Destruction automatique des timers/tweens
Consultez [SUPER_TREASURES.md](SUPER_TREASURES.md) pour le guide complet !
---
## Version 2.0 - Améliorations Majeures 🚀
### 🎮 Gameplay
#### Double Saut Implémenté ✨
- **NOUVEAU** : Le joueur peut maintenant faire un **double saut** !
- Appuyez deux fois sur Espace (PC) ou le bouton tactile (Mobile)
- Permet d'atteindre les plateformes les plus hautes
- Compteur de sauts visible dans la console (debug)
#### Saut Amélioré
- Force de saut augmentée : `-400`**`-550`**
- Les plateformes sont maintenant accessibles
### 🗺 Niveau Étendu
#### Taille du Niveau
- **Avant** : 3x la largeur de l'écran (~3840px)
- **MAINTENANT** : **6x la largeur de l'écran (~7680px)**
- Durée de jeu augmentée significativement
#### Plateformes
- **Avant** : 7 plateformes
- **MAINTENANT** : **27 plateformes** réparties en 6 zones
- Zone 1 : Facile (début)
- Zone 2 : Moyen
- Zone 3 : Plus difficile
- Zone 4 : Avancé
- Zone 5 : Très difficile
- Zone 6 : Finale (grande plateforme)
#### Objets
**Cadeaux** :
- **Avant** : 4 cadeaux
- **MAINTENANT** : **24 cadeaux** (+500%)
- Répartis partout sur le niveau
- Alternance entre sol et hauteur variable
**Obstacles** :
- **Avant** : 3 obstacles
- **MAINTENANT** : **24 obstacles** (+700%)
- Répartis régulièrement tous les 300px environ
### 📊 Statistiques
```
Niveau : 7680px (6x écran)
Plateformes : 27 (+286%)
Cadeaux : 24 (+500%)
Obstacles : 24 (+700%)
Force de saut : -550 (+37.5%)
Sauts max : 2 (NOUVEAU)
```
### 🎯 Difficulté
Le jeu est maintenant **beaucoup plus long et varié** :
- Progression de difficulté graduelle sur 6 zones
- Nécessite maîtrise du double saut pour les zones avancées
- Plus de récompenses à collecter
- Plus de défis à éviter
### 🔧 Changements Techniques
#### Constantes Modifiées
```typescript
// src/utils/constants.ts
PLAYER_JUMP_VELOCITY: -550 (était -400)
PLAYER_MAX_JUMPS: 2 (NOUVEAU)
```
#### Modifications Classes
**Player.ts** :
- Ajout du compteur de sauts (`jumpCount`)
- Logique de double saut implémentée
- Réinitialisation automatique au sol
**GameScene.ts** :
- Monde physique étendu à 6x
- 27 plateformes avec progression de difficulté
- 24 cadeaux répartis intelligemment
- 24 obstacles stratégiquement placés
### 🎮 Comment Jouer
#### PC
- **Déplacements** : ← →
- **Saut** : Espace
- **Double Saut** : Appuyez Espace une 2ème fois en l'air !
#### Mobile
- **Déplacements** : Inclinez le téléphone
- **Saut** : Bouton vert en bas à droite
- **Double Saut** : Appuyez le bouton une 2ème fois en l'air !
### 💡 Astuces
1. **Maîtrisez le double saut** : Indispensable pour les plateformes hautes
2. **Explorez** : Le niveau est 6x plus grand, prenez votre temps
3. **Collectez tout** : 24 cadeaux = 2400 points potentiels !
4. **Évitez les obstacles** : 24 obstacles = -1200 points si tous touchés
5. **Score parfait** : 2400 points (tous les cadeaux, aucun obstacle)
### 🐛 Corrections
- ✅ Monde physique correctement dimensionné
- ✅ Joueur ne se bloque plus au bord de l'écran
- ✅ Double saut fonctionnel et fluide
- ✅ Collisions optimisées pour le grand niveau
---
## Version 1.0 - Version Initiale
- Jeu de plateforme basique
- Support PC et Mobile
- Gyroscope + contrôles tactiles
- 7 plateformes
- 4 cadeaux, 3 obstacles
- Timer de 3 minutes