# 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