Patch Notes
Historique des mises à jour du projet Équipe de nuit.
v1.1
2 avril 2026
▸ Développer
🔍 Vérification
Radio Europe
Audit complet du code de radio-europe.html
Vérification de la logique de fetch des stations (API Radio Browser), du player audio, de la barre "Now Playing", des contrôles de volume et du bouton stop
Aucun bug détecté — page validée
🆕 Nouveau projet — Poker Texas Hold'em
poker.html
Ajout d'un jeu de poker Texas Hold'em complet en multijoueur temps réel via Firebase Firestore.
Lobby
Création d'une table avec choix du mode (Cash Game ou Tournoi), du stack de départ (1 000 / 2 000 / 5 000 / 10 000 jetons), des blinds (10/20 · 25/50 · 50/100 · 100/200) et du nombre de joueurs (4 à 8)
Rejoindre une table existante via un code à 6 caractères
Salle d'attente avec liste des joueurs connectés et lancement par l'hôte
Table de jeu
Tapis ovale avec positions de sièges adaptées dynamiquement selon le nombre de joueurs (2 à 8)
Affichage du jeton Dealer, des mises individuelles, du stack de chaque joueur
Cartes communes au centre (placeholder → révélation progressive)
Affichage du pot et de la phase de jeu (Pré-flop / Flop / Turn / River / Showdown)
Mécaniques de jeu
Distribution automatique de 2 cartes secrètes par joueur (gérée par l'hôte via Firebase)
Blinds automatiques (petite blind + grosse blind) à chaque nouvelle main
Rotation du dealer à chaque main
Actions disponibles : Fold, Check, Call, Raise (avec slider de mise), All-in
Chaque joueur voit uniquement ses propres cartes — les autres voient des dos de carte
Évaluation automatique des mains : Hauteur → Paire → Double paire → Brelan → Suite → Couleur → Full House → Carré → Quinte Flush
Showdown automatique avec révélation des mains et désignation du gagnant (égalité gérée)
Mode Tournoi : élimination automatique des joueurs à 0 jeton
Interface
Barre "Ma main" en bas avec les 2 cartes personnelles et le nom de la combinaison
Overlay de Showdown avec cartes révélées et bouton "Main suivante" (hôte uniquement)
Notifications contextuelles (tour à jouer, erreurs, victoire)
Même design sombre violet/or que le reste du projet
index.html
Ajout de la carte Poker Texas Hold'em dans la liste des projets
🔒 Firebase
Règles Firestore mises à jour
Ajout des règles pour la collection
poker_gamesLecture autorisée à tout utilisateur connecté
Création autorisée uniquement au futur hôte
Modification autorisée à l'hôte et aux joueurs inscrits dans la partie
Suppression interdite
Les règles existantes (
games, users) restent inchangées
v1.2
2 avril 2026
▸ Développer
🗂️ Organisation — Page d'accueil
index.html
Les projets sont désormais regroupés par catégorie : Jeux (Échecs, Poker) et Utilitaires (Radio Europe, Météo Alsace)
Structure extensible — de nouvelles catégories pourront être ajoutées simplement
Ajout d'un bouton Discord dans le pied de page, avec lien d'invitation direct vers le serveur de l'équipe
🛡️ Améliorations internes
Authentification
Renforcement de la vérification des comptes utilisateurs sur l'ensemble des modules multijoueurs
Le formulaire de renvoi d'email de confirmation a été repensé pour une meilleure expérience et une saisie plus sécurisée
Les données transitoires liées à la création de compte ne sont plus transmises via l'URL
Parties multijoueurs
Révision du système de génération des codes de partie (Échecs & Poker)
Correction de plusieurs cas d'affichage incorrects sur les interfaces de jeu
Chat global
Ajout d'un délai minimal entre les envois de messages pour éviter les abus
Classement Échecs
Correction d'un problème d'affichage des noms de joueurs dans le classement ELO
v1.2.1
2 avril 2026
▾ Réduire
🆕 Nouveau projet — Pokémon (Bêta)
pokemon.html
Ajout d'un RPG solo inspiré de Pokémon, avec progression par le grind, capture de Pokémon sauvages et gestion d'équipe.
Démarrage
Choix du starter parmi Bulbizarre, Salamèche et Carapuce — stats et sprites récupérés depuis PokéAPI
Profil dresseur persistant via Firebase Firestore (
pokemon_trainers)Exploration & Combat
Rencontres aléatoires contre des Pokémon sauvages de niveau proche du joueur
Attaque normale, capacités apprises (apprentissage tous les X niveaux via PokéAPI), objets et fuite
Système de mana (MP) : les capacités consomment du MP, régénéré par l'attaque normale
Système de capture : taux basé sur les PV restants du Pokémon sauvage et le type de Ball utilisée
Changement de Pokémon en combat — l'adversaire profite du changement pour attaquer gratuitement
Progression
Gain d'XP et de PokéDollars à chaque victoire, avec chance de drop (Baie Oran, Éther)
Montée de niveau automatique avec apprentissage de nouvelles capacités
Équipe active de 6 Pokémon maximum, boîte de stockage illimitée
Interface
Statistiques (ATK / DEF / VIT) et badges de type colorés visibles pour les deux Pokémon en combat
Capacités affichées en section permanente (puissance, type physique/spéciale, coût MP)
Page équipe : badges de type, chips de stats, barre MP et liste des capacités connues pour chaque Pokémon
Boutique : Pokéballs (normale, Super, Hyper), potions, Rappel, Éther
index.html
Ajout de la carte Pokémon dans la section Jeux, avec badge Bêta
⚡ Système de Points d'Action (PA)
Anti-spam — Pokémon
Un système de Points d'Action limite la cadence des combats pour éviter le spam excessif.
Maximum de 500 PA par dresseur, régénération de 1 PA toutes les 4 minutes
Chaque combat coûte 2 PA — prélevés uniquement au premier coup porté (la fuite reste gratuite)
Affichage des PA sur le dashboard (avec compte à rebours avant le prochain PA) et dans l'écran de combat
Régénération calculée automatiquement à la reconnexion en fonction du temps d'absence
Persistance des PA et de la date de dernière régénération dans Firestore
🐛 Corrections de bugs
Pokémon
Correction : les boutons de capacité restaient désactivés au début d'un combat (rendu effectué avant l'activation des boutons)
Correction : le type du Pokémon actif n'était pas affiché si son profil était sauvegardé avant l'introduction du champ
types — refetch automatique depuis PokéAPI au prochain combat
v1.2.2
3 avril 2026
▾ Réduire
✨ Nouvelles fonctionnalités — Pokémon
Système d'échange entre joueurs
Les dresseurs peuvent désormais proposer et accepter des échanges de Pokémon en temps réel.
Nouvelle section Échanges accessible depuis le dashboard, avec badge de notification en temps réel indiquant les propositions en attente
Flux de création en 4 étapes : choix de son Pokémon → recherche du partenaire par nom → choix du Pokémon souhaité → confirmation
Échanges reçus (accepter / refuser) et envoyés (annuler) visibles avec statut en direct
Exécution via transaction Firestore atomique — aucun risque de perte de Pokémon en cas d'interruption
Le Multi-XP équipé sur un Pokémon échangé est automatiquement retiré et retourné à son propriétaire d'origine
Pokémon Shiny
Chaque Pokémon rencontré en exploration a une chance d'apparaître dans sa forme chromatique.
Taux d'apparition : 1 chance sur 500 à chaque rencontre sauvage
Bonus de stats de +10 % sur tous les attributs (PV, ATK, DEF, VIT, MP)
Sprites shiny récupérés depuis le dépôt officiel PokéAPI
Icône ✨ affichée sur les Pokémon shiny dans la boîte et lors des échanges
Migration automatique : les Pokémon existants reçoivent
isShiny: false sans action requiseObjet Multi-XP
Nouvel objet disponible en boutique permettant de faire progresser un Pokémon passif pendant les combats.
Prix : 3 000 ₽ — à équiper sur un Pokémon de l'équipe active
Le porteur reçoit 50 % de l'XP de chaque combat, même sans combattre, à condition d'être vivant
Un seul Multi-XP actif à la fois — peut être déséquipé et rééquipé librement entre les combats
Si le porteur monte de niveau grâce au Multi-XP, le modal d'apprentissage de capacité s'ouvre normalement
Badge ⭐ Multi-XP affiché sur le Pokémon concerné dans la grille du dashboard
Système de rareté des rencontres
Les rencontres sauvages sont désormais réparties en trois niveaux de rareté.
Communs (89 %) — pool général Gen 1 (hors exclusions)
Semi-rares (9 %) — Bulbizarre, Salamèche, Carapuce, Pikachu, Évoli, Aérodactyl, Ronflex, Arcanine, Magikarpe
Rares (2 %) — Légendaires (Artikodin, Électhor, Sulfura, Minidraco, Draco, Mewtwo, Mew) avec message d'annonce spécial
Les troisièmes évolutions et les deuxièmes évolutions des starters sont exclues des rencontres sauvages — elles s'obtiennent uniquement par montée de niveau
Autres ajouts
Tri de la boîte de stockage : par défaut, niveau croissant / décroissant, type, nom, ou shiny en premier
Vente d'objets en boutique au prix de revente (50 % du prix d'achat)
Relâcher un Pokémon depuis la boîte, avec popup de confirmation (action irréversible)
Panneau admin : bouton pour redonner les PA maximum à tous les joueurs en une action (accès restreint à l'administrateur)
Cap de niveau à 100 — migration automatique des Pokémon existants dépassant ce seuil
🛡️ Sécurité & corrections
Achat et vente d'objets — anti-duplication
Les achats et ventes utilisent désormais des transactions Firestore atomiques : il est impossible de dupliquer des objets en ouvrant plusieurs onglets simultanément
L'état local est resynchronisé depuis Firestore après chaque opération
Échange — vérification des Pokémon
L'ID du Pokémon à chaque position est vérifié dans la transaction avant l'échange — si un Pokémon a été déplacé depuis la création de la proposition, l'échange est annulé avec un message explicite
Correction — vente Multi-XP
Correction d'une condition logique incorrecte qui permettait dans certains cas de vendre un Multi-XP même lorsqu'aucun exemplaire n'était disponible en stock