Patch Notes
Historique des mises à jour du projet Équipe de nuit.
v1.3.2
24 avril 2026
▾ Réduire
🧬 Pokémon — Nouvel objet
Nitro Évolution
Un Pokémon niveau 100 ne peut plus gagner d'XP et donc jamais déclencher son évolution de niveau. La Nitro Évolution règle ce problème.
Force immédiatement l'évolution de niveau d'un Pokémon, même au niveau 100
Disponible en boutique (onglet Objets) — 5 000₽, revente 2 500₽. Usage unique.
Le bouton apparaît sur la carte du Pokémon (équipe et boîte) uniquement si une évolution de niveau existe
Tous les attributs sont conservés après évolution : shiny, boss donjon, objet tenu, niveau, XP, capacités
⚔️ PvP — Améliorations de l'interface
Types des Pokémon sur les cartes
Les badges de type (ex. Insecte, Poison) s'affichent désormais sous le niveau sur chaque carte Pokémon en combat PvP
Informations complètes sur les boutons de capacités
Les boutons de capacités en PvP affichaient auparavant uniquement le nom et le coût en MP.
Chaque bouton affiche maintenant le badge de type coloré, la puissance et le coût en MP — identique au combat normal
Les capacités insuffisantes en MP restent grisées
Badge Boss Donjon en PvP
Le badge ⚔️ Boss Donjon · ×N stats s'affiche sur la carte du Pokémon concerné pendant un combat PvP
🖥️ Nouveau — LateNightMonitoring
Outil de monitoring et diagnostique système
LateNightMonitoring est un utilitaire Windows développé par l'équipe pour surveiller en temps réel les performances de la machine.
Surveillance en temps réel des températures, charges CPU/GPU, mémoire et stockage
Disponible en deux versions depuis l'accueil : portable (aucune installation requise) et installateur
Compteur de téléchargements affiché en direct sur la carte
v1.3.1
12 avril 2026
▾ Réduire
📦 Boîte & Équipe
Filtres de statistiques dans la boîte
6 nouveaux filtres de tri : Force ↓↑, Défense ↓↑ et Vitesse ↓↑ — disponibles dans la barre de tri de la boîte
Préréglages d'équipe
Il est désormais possible de sauvegarder et recharger des compositions d'équipe depuis la page boîte.
Deux types de préréglages : PvP (3 Pokémon) et PvE (6 Pokémon)
Jusqu'à 5 préréglages par type, sauvegardés dans le cloud
Le sélecteur PvP permet de choisir exactement 3 Pokémon parmi la boîte et l'équipe actuelle
Chaque préréglage peut être renommé, rechargé ou supprimé individuellement
💿 Nouvel objet — CT Universelle
Enseigner une capacité depuis la liste de niveau
Nouvel objet disponible dans la boutique : la CT Universelle permet à un Pokémon d'apprendre immédiatement n'importe quelle capacité de sa liste d'apprentissage, même si son niveau ne le permet pas encore.
Prix : 10 000₽ — revente : 5 000₽
Accessible depuis les cartes Pokémon de l'équipe et de la boîte
Affiche uniquement les capacités de la movelist non encore apprises
Si les 4 emplacements sont occupés, le sélecteur de remplacement s'ouvre normalement
⚔️ Combat
Indicateur d'espèce jamais capturée
La carte du Pokémon sauvage affiche un contour vert lorsque l'espèce n'est présente ni dans l'équipe ni dans la boîte — disparaît dès qu'un exemplaire est capturé
Correction — Badge Boss Donjon
Le badge ⚔️ Boss Donjon n'apparaissait plus systématiquement sur la carte ennemie — condition d'affichage corrigée
🌿 Génération 4 — Sinnoh
107 nouveaux Pokémon (IDs 387–493)
Tous les Pokémon de Sinnoh sont désormais disponibles à la capture et à l'échange.
3 nouveaux starters au choix lors de la création du dresseur : Tortipouss, Ouisticram et Tiplouf
Pokémon répartis dans les pools de rencontre habituels (commun, semi-rare, rare, légendaire)
~50 nouvelles évolutions de niveau, dont les évolutions inter-génération (Magnézone, Baudosor, Yanmega, Mammochon, Tarinorme, Lockpin…)
5 nouvelles évolutions par échange (Rhinastoc, Hexagel, Magmortar, Fucidex, Noctunoir)
3 nouvelles pierres d'évolution
Pierre Éclat ✨ — fait évoluer Togetic → Togekiss et Rosélia → Roserade (10 000₽)
Pierre Aube 🌅 — fait évoluer Kirlia → Gallame et Stalgamin → Froslass (10 000₽)
Pierre Nuit 🌑 — fait évoluer Cornèbre → Cawotte, Mélodelfe → Magirêve et Téraclope → Noctunoir (10 000₽)
🛒 Boutique — Réorganisation par onglets
5 onglets pour naviguer dans le catalogue
Le catalogue de la boutique était devenu long à parcourir. Il est désormais divisé en onglets thématiques.
🛒 Tout — affiche l'intégralité du catalogue (comportement précédent)
💊 Soins — Potions, Rappels, Éthers
🔴 Balles — Poké Ball, Super Ball, Hyper Ball
🎒 Objets — Multi-XP, CT Universelle
💎 Pierres — toutes les pierres d'évolution (9 au total)
📦 Boîte — Recherche par nom
Champ de recherche en temps réel
Un champ de recherche en haut de la boîte permet de filtrer les Pokémon par nom instantanément
La recherche est insensible à la casse et fonctionne en combinaison avec les filtres de tri existants
Un message s'affiche si aucun Pokémon ne correspond à la recherche
🛠️ Technique
Optimisation du chargement
Chargement des polices rendu non-bloquant : remplacement de l'
@import CSS par des balises <link rel="preconnect"> dans le <head> — le rendu initial n'est plus retardé par les requêtes de policesAjout de préconnexions DNS anticipées pour Firebase, Firestore, PokeAPI et les sprites GitHub
v1.3.0
9 avril 2026
▾ Réduire
⛽ Nouveau — Carte Essence Alsace
Prix de l'essence en temps réel sur une carte interactive
Nouvelle page utilitaire disponible depuis l'accueil : une carte de l'Alsace avec tous les points de vente de carburant et leurs prix mis à jour en direct depuis les données officielles du gouvernement.
Carte Leaflet centrée sur l'Alsace avec ~300 stations-service du Bas-Rhin et du Haut-Rhin
6 carburants disponibles en sélection par onglet : Diesel, SP95, E10, SP98, E85 et GPL
Marqueurs colorés selon le prix relatif : vert (moins cher) → jaune → orange → rouge (plus cher), recalculés à chaque changement de carburant
Popup au clic sur un marqueur : tous les prix disponibles de la station + date de dernière mise à jour
Panneau latéral « Prix les moins chers » : top 10 des stations triées par prix croissant — clic sur une entrée pour zoomer sur la station et ouvrir son popup
Légende avec prix minimum et maximum pour le carburant sélectionné
Données fournies par l'API officielle du gouvernement français (data.economie.gouv.fr) — mise à jour en continu
💬 Améliorations — Chat global
Date et heure sur les messages
Les messages affichent désormais l'heure ET la date : format HH:MM pour les messages du jour, JJ/MM HH:MM pour les messages des jours précédents
Notification visuelle de nouveau message
Lorsqu'un autre joueur envoie un message et que le chat est fermé, une notification s'affiche en bas à droite de l'écran.
Aperçu du message avec le nom de l'auteur (coloré) et les 58 premiers caractères du texte
La notification reste visible jusqu'à ce que le chat soit ouvert ou qu'elle soit fermée manuellement via le bouton ✕
Clic sur la notification → ouverture directe du chat
Pulsation dorée sur le bouton 💬 tant qu'il y a des messages non lus
Les propres messages de l'utilisateur ne déclenchent pas de notification
🔐 Panneau administrateur
Nouveau bouton — Vider le chat
Suppression en lot de tous les messages du chat en un clic, avec confirmation préalable
Le toast de confirmation indique le nombre exact de messages supprimés
Amélioration — Reset des PA
Le toast d'erreur affiche désormais le code Firestore exact (ex. : permission-denied) pour faciliter le diagnostic
Découpage automatique en lots de 400 opérations pour rester dans les limites Firestore, quelle que soit la taille de la base joueurs
v1.2.5
9 avril 2026
▸ Développer
✨ Nouvelles fonctionnalités — Pokémon Gen 3
Génération 3 complète (Pokémon #252–386)
Les 135 Pokémon de Hoenn rejoignent le jeu, avec les mêmes règles de répartition que les générations précédentes.
Noms français officiels pour les 135 nouveaux Pokémon (Arcko, Poussifeu, Gobou… jusqu'à Deoxys)
Pool commun étendu aux 135 Pokémon de Hoenn — formes finales puissantes et starters exclus des rencontres sauvages
Semi-rares Gen 3 : Arcko, Poussifeu, Gobou (starters), Tarsal, Ténéfix, Mysdibule, Chartor, Spinda, Zangoose, Séviper, Barpau, Morphéo, Kecleon, Absol, Relicanth, Draby, Terhal
Rares Gen 3 : Regirock, Regice, Registeel, Latias, Latios, Kyogre, Groudon, Rayquaza, Jirachi, Deoxys
🌟 Starters — 3 générations au choix
9 starters disponibles dès le départ
L'écran de choix du starter présente les 9 starters des trois générations, organisés par groupe avec un label de génération.
Gen 1 : Bulbizarre, Salamèche, Carapuce
Gen 2 : Germignon, Héricendre, Kaiminus
Gen 3 : Arcko, Poussifeu, Gobou
🔧 Système d'évolution — Gen 3
Évolutions par niveau
35 nouvelles chaînes d'évolution par niveau couvrant l'intégralité de la génération 3.
Starters : Arcko → Massko (niv. 16) → Jungko (niv. 36) ; Poussifeu → Galifeu → Braségali ; Gobou → Flobio → Laggron
Pseudo-légendaires : Draby → Drackhaus (niv. 30) → Drattak (niv. 50) ; Terhal → Métang (niv. 20) → Métalosse (niv. 45)
Tarsal → Kirlia (niv. 20) → Gardevoir (niv. 30) ; Kraknoix → Vibraninf (niv. 35) → Libégon (niv. 45)
Et toutes les autres chaînes : Ningale → Ninjask, Obalie → Phogleur → Kaimorse, Balbuto → Kaorine, etc.
Nouvelles évolutions par pierre
💧 Pierre Eau — Lombre → Ludicolo
🌿 Pierre Feuille — Pifeuil → Tengalice
🌙 Pierre Lune — Skitty → Delcatty
Évolutions spéciales (à partir du niveau 40)
Barpau → Milobellus (originalement lié à la beauté en jeu officiel — remplacé par une évolution à partir du niveau 40)
Coquiperl → Serpang (originalement via échange avec objet)
🐛 Corrections de bugs
Combat PvP
Correction d'une erreur bloquante lors de la création d'une salle PvP (champ indéfini dans le document Firestore)
Après le premier tour, les boutons d'action ne s'affichaient plus pour le joueur guest — le flag local n'était pas remis à zéro côté guest
Le joueur qui saisissait le code ne pouvait pas rejoindre une partie déjà créée — corrigé
Rencontres sauvages
Les Pokémon sauvages pouvaient apparaître au-dessus du niveau 100 — niveau désormais plafonné à 100
Les légendaires de Gen 2 (Johto) n'affichaient pas le message d'apparition spécial — ils étaient présents dans le pool commun faute d'exclusion explicite
Échanges
Les échanges ne fonctionnaient plus suite à un durcissement des règles Firestore — les transactions atomiques cross-utilisateur sont à nouveau autorisées pour les champs équipe/boîte/inventaire uniquement
Bug de duplication : le Pokémon proposé était dupliqué côté initiateur car son état local n'était jamais rechargé après acceptation — un second listener Firestore synchronise maintenant les deux joueurs
Panneau administrateur
L'attribution de PA à l'ensemble des joueurs ne fonctionnait plus — les règles Firestore bloquaient les écritures en lot sur les documents des autres utilisateurs
v1.2.4
4 avril 2026
▸ Développer
✨ Nouvelles fonctionnalités — Pokémon Gen 2
Génération 2 complète (Pokémon #152–251)
Les 100 Pokémon de Johto font leur entrée dans le jeu, avec les mêmes règles de répartition que la Gen 1.
Noms français officiels pour les 100 nouveaux Pokémon (Germignon, Héricendre, Kaiminus… jusqu'à Celebi)
Pool commun étendu à 185 Pokémon rencontrables — les formes finales puissantes et les starters restent exclus des rencontres sauvages
Semi-rares Gen 2 : Germignon, Héricendre, Kaiminus (starters), Pichu, Togepi, Migalos, Joliflor, Tarpaud, Mentali, Noctali, Girafarig, Embrylex
Rares Gen 2 : Zarbi, Raikou, Entei, Suicune, Lugia, Ho-Oh, Celebi
🌟 Système d'évolution complet
Évolutions par niveau (Gen 1 + Gen 2)
Les Pokémon évoluent automatiquement en combat dès que la condition de niveau est atteinte, même si elle l'était déjà avant la capture.
Table complète des niveaux d'évolution officiels pour les deux générations (ex. : Salamèche → Reptincel niv. 16, Reptincel → Dracaufeu niv. 36)
Rattrapage automatique : un Salamèche capturé au niveau 50 évolue directement en Dracaufeu dès son prochain gain de niveau
Chaînes d'évolution gérées en une seule montée de niveau (ex. : Chenipan niv. 50 → Chrysacier → Papilusion en un seul combat)
Compatible avec le porteur Multi-XP : les évolutions se déclenchent aussi pour le Pokémon passif qui reçoit de l'XP bonus
Évolutions par pierre — 6 nouvelles pierres en boutique
Six pierres d'évolution sont disponibles à la boutique (10 000 ₽ l'unité, usage unique). Le bouton d'utilisation apparaît directement sur la carte du Pokémon concerné si la pierre correspondante est en inventaire.
🔥 Pierre Feu — Goupix → Feunard, Caninos → Arcanin, Évoli → Pyroli
💧 Pierre Eau — Têtarte → Tartard, Kokiyas → Crustabri, Stari → Staross, Évoli → Aquali
⚡ Pierre Tonnerre — Pikachu → Raichu, Évoli → Voltali
🌙 Pierre Lune — Nidorina → Nidoqueen, Nidorino → Nidoking, Mélofée → Mélodelfe, Rondoudou → Grodoudou
🌿 Pierre Feuille — Ortide → Rafflesia, Nœunouf → Noadkoko
☀️ Pierre Soleil — Ortide → Joliflor, Tournegrin → Héliatronc
Évoli — choix de l'évolution au niveau 36
Lorsqu'Évoli atteint le niveau 36 en combat, un popup s'affiche et propose de choisir entre ses trois formes.
Popup avec les sprites et noms d'Aquali, Voltali et Pyroli — sélection visuelle avant confirmation
Option « Pas maintenant » disponible pour reporter l'évolution au prochain gain de niveau
Évolutions par échange remplacées par montée de niveau
Les Pokémon qui évoluaient normalement via échange (Kadabra, Machopeur, Gravalanch, Spectrum…) proposent désormais leur évolution à partir du niveau 40.
Gen 1 : Kadabra → Alakazam, Machopeur → Mackogneur, Gravalanch → Grolem, Spectrum → Ectoplasma
Gen 2 : Onix → Steelix, Insécateur → Cizayox, Porygon → Porygon2, Hypocéan → Hyporoi
Popup de confirmation avec le sprite de la forme cible — option « Pas maintenant » disponible
🐛 Corrections de bugs
Sprites shiny préservés après évolution
Correction : un Pokémon shiny qui évoluait perdait son sprite chromatique et revenait à la version normale — les sprites shiny sont désormais correctement conservés quelle que soit l'évolution déclenchée
Dracolosse absent des pools
Correction : Dracolosse (ID 149) n'était référencé dans aucun pool de rencontre ni dans les exclusions — il est maintenant correctement exclu des rencontres sauvages en tant que troisième évolution
👤 Profil utilisateur
Accès depuis la page d'accueil
Le profil est désormais accessible depuis la page d'accueil en cliquant directement sur son nom d'utilisateur — disponible sur tout le site, quel que soit le jeu ouvert.
Changement de pseudo (cooldown 30 jours)
Un modal de profil permet de changer son pseudo, avec un cooldown de 30 jours entre chaque modification.
Le pseudo est mis à jour sur l'ensemble du site au moment de la validation
Le cooldown restant est affiché en jours — le champ de saisie est verrouillé pendant la période d'attente
Entre 3 et 24 caractères requis
Changement de mot de passe
Le profil permet également de modifier son mot de passe depuis n'importe quelle page du site.
Le mot de passe actuel est requis avant toute modification
Confirmation du nouveau mot de passe (8 caractères minimum) exigée avant validation
Les champs sont vidés automatiquement après un changement réussi
v1.2.3
3 avril 2026
▸ Développer
✨ Nouvelles fonctionnalités — Pokémon
Noms français officiels
Tous les Pokémon de la Gen 1 affichent désormais leur nom français officiel, conformément aux noms de la série principale.
Table de correspondance complète pour les 151 Pokémon Gen 1 (Bulbizarre, Salamèche, Dracaufeu, Évoli, Mewtwo, Mew…)
Les nouveaux Pokémon capturés ou rencontrés reçoivent directement leur nom français
Migration automatique au chargement : les Pokémon déjà sauvegardés voient leur nom mis à jour sans aucune action de ta part
Joueurs en ligne en temps réel
Un widget sur le dashboard affiche les dresseurs connectés à l'instant, pour faciliter les échanges entre joueurs.
Mise à jour en temps réel via Firestore — la liste se rafraîchit automatiquement toutes les minutes
Chaque carte affiche l'avatar du Pokémon actif, son niveau, et le nom du dresseur
Cliquer sur le nom d'un dresseur le copie dans le presse-papiers pour le coller directement dans un échange
Les joueurs inactifs depuis plus de 2 minutes sont automatiquement retirés de la liste
Sélection du remplaçant après un K.O.
Lorsqu'un Pokémon est mis hors combat, le jeu affiche désormais un menu de sélection au lieu d'envoyer automatiquement le suivant.
Menu de remplacement présentant tous les Pokémon encore valides de l'équipe (PV > 0)
Affichage des PV actuels et maximum pour faciliter le choix
Le changement après K.O. est gratuit — l'adversaire n'attaque pas pendant le remplacement
Si toute l'équipe est K.O., la défaite est déclarée normalement
Système d'échec et de coup critique
Chaque attaque comporte désormais une faible probabilité d'échec ou de coup critique, pour les joueurs comme pour les Pokémon sauvages.
Taux d'échec : 1 % — l'attaque ne cause aucun dégât et le message « L'attaque a raté ! » s'affiche dans le journal
Taux de coup critique : 1 % — les dégâts sont multipliés par 1,5 et le message « ⚡ Coup critique ! » s'affiche
Ces probabilités s'appliquent également aux Pokémon sauvages lors de leurs attaques
⚖️ Équilibrage — Points d'Action
Coût du Centre Pokémon et de la Boutique
Visiter le Centre Pokémon coûte désormais 1 PA (au lieu de 0)
Accéder à la Boutique coûte désormais 1 PA (au lieu de 0)
Un message d'erreur s'affiche si le solde de PA est insuffisant avant d'entrer
🐛 Corrections de bugs
Sprites shiny et badge ✨
Correction : les Pokémon shiny affichaient leur sprite normal sur le dashboard et la page Équipe — les sprites chromatiques sont désormais correctement utilisés
Ajout d'un badge ✨ Shiny visible sur le dashboard (grille d'équipe) et sur la page Équipe pour chaque Pokémon chromatique
Types de capacités incorrects
Correction : plusieurs capacités affichaient le type « Normal » à tort — Light Screen et Jackpot → Psy, Ancient Power → Roche, Léchouille → Spectre, Tornade → Vol
Migration automatique : les capacités déjà apprises et sauvegardées voient leur type corrigé au prochain chargement
🔒 Sécurité — Règles Firestore
Règles complètes pour l'ensemble du site
Les règles Firestore ont été entièrement réécrites pour couvrir toutes les collections utilisées sur le site.
chat — lecture et création ouvertes aux utilisateurs connectés ; suppression réservée à l'auteur ou au modérateur ; modification interditeusers — lecture/écriture pour tout utilisateur connecté (nécessaire pour les transactions ELO aux échecs)games — création par le joueur blanc uniquement ; modification par les deux joueurs ; suppression interditepoker_games — création par l'hôte uniquement ; modification par l'hôte et les joueurs inscritspokemon_trainers — lecture/écriture pour tout utilisateur connecté (échanges entre joueurs)trades — règles granulaires sur les transitions de statut ; seules les parties concernées peuvent créer, accepter ou annuler
v1.2.2
3 avril 2026
▸ Développer
✨ 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
v1.2.1
2 avril 2026
▸ Développer
🆕 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 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.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