Gestionnaire d'enclos de dragodinde (dofus 3 unity)
- Unit : domain (GaugeCalculator, Enclos, Dragodinde, XpTable, Race, Tier...) - Unit : application (commands, queries, CommandBus) - Fonctionnel : breeding-workflow, enclos-management, timer-workflow - Régression : gauge-tier, gauge-recharge, xp-timer, level-target, breeding - E2E Playwright + Electron : navigation, timer, recharge jauge, accouplement, persistance des données Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| docs/plans | ||
| ntfy-redirect | ||
| refonte_graphique | ||
| src | ||
| tests | ||
| .gitignore | ||
| algorithmes.md | ||
| build.bat | ||
| build.ps1 | ||
| CLAUDE.md | ||
| findings.md | ||
| icon.ico | ||
| icon.png | ||
| package-lock.json | ||
| package.json | ||
| playwright.config.ts | ||
| progress.md | ||
| README.md | ||
| task_plan.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
⚔ Minuteur Dragodinde — Dofus 3
Outil de gestion d'élevage de Dragodindes pour Dofus 3.
Application desktop Windows construite avec Electron.
🔗 Repo : https://gitea.mickael-pol.fr/mickael/dd-timer
Fonctionnalités
- 🐦 Gestion de 6 enclos indépendants avec jusqu'à 10 Dragodindes chacun
- ⏱ Timer en temps réel avec calcul automatique par tier de jauge (1→4)
- 📊 Dashboard vue d'ensemble multi-enclos
- 🔔 Notifications natives Windows même application en arrière-plan
- 🔊 4 sons d'alarme au choix (Arpège, Pulsation, Fanfare, Cloche)
- 🐉 Jauges : Baffeur, Caresseur, Foudroyeur, Abreuvoir, Dragofesse, Mangeoire (XP)
- 🖱 Drag & drop des enclos et des Dragodindes pour les réordonner
- ⬆ Mise à jour automatique via Gitea Releases
- 📱 Notifications mobiles via ntfy (serveur self-hosted)
- 💾 Sauvegarde automatique locale
Installation (utilisateurs)
- Télécharger
Minuteur Dragodinde Setup x.x.x.exedepuis la section Releases - Clic droit → Propriétés → cocher "Débloquer" → OK (important, une seule fois)
- Double-cliquer pour lancer l'installation
- L'app apparaît dans le menu Démarrer et sur le Bureau
Si Windows affiche "Application inconnue" : cliquer "Informations complémentaires" → "Exécuter quand même"
Build (développeurs)
Prérequis
Compiler
# Double-cliquer sur build.bat (admin auto)
# ou manuellement :
npm install
npm run build
L'installeur est généré dans dist/.
Publier une nouvelle version
# 1. Modifier la version dans package.json ("version": "1.x.x")
# 2. Committer et tagger
git add .
git commit -m "v1.x.x - description"
git tag v1.x.x
git push && git push --tags
# 3. Sur Gitea : Releases → Nouvelle release → tag v1.x.x → attacher Setup.exe
Structure
dd-timer/
├── src/index.html # Interface (HTML/CSS/JS)
├── main.js # Processus principal Electron + auto-update
├── preload.js # Bridge Electron ↔ renderer
├── icon.png # Icône (256x256)
├── package.json # Config et dépendances
└── build.bat # Script de build Windows (admin auto)
Changelog
v1.1.5
- ✨ Onglet Accouplement — selection des 2 parents, deduction automatique du bebe, saisie du nombre de couples et bebes obtenus pour alimenter les statistiques globales
- ✨ Sidebar navigation — menu hamburger avec panneau lateral overlay (Dashboard, Enclos, Accouplement, Reappro, Inventaire, Workflows, Parametres)
- ✨ Onglet Parametres — son d'alarme, notifications PC et mobile regroupes dans une vue dediee accessible via la sidebar
- ✨ Reappro ♂/♀ — chaque etape de l'arbre affiche les genres necessaires (♂/♀) avec toggle d'inversion par croisement
- 🎨 Statistiques globales integrees au Dashboard (bebes, couples, taux de reussite, races obtenues)
- 🎨 Onglets horizontaux simplifies — seuls Dashboard et Enclos restent, le reste est dans la sidebar
- 🔧 Retrait du systeme de bebes des enclos — les accouplements se font desormais via l'onglet dedie
- 🔧 Migration automatique des donnees bebes existantes vers les statistiques archivees
- 🗑 Suppression de l'onglet Statistiques (donnees conservees dans le Dashboard)
v1.1.4
- ✨ Cible serenite par DD — champ cible avec ETA en temps reel (calcul automatique baffeur/caresseur necessaire)
- ✨ Cible niveau par DD — champ cible avec ETA en temps reel (modele XP lineaire base sur le tier de la mangeoire)
- ✨ Inventaire ♂/♀ — saisie du nombre de males et femelles par race dans l'inventaire
- ✨ Contraintes de genre — le calcul d'inventaire respecte la regle ♂+♀ obligatoire (plus de croisement ♂+♂ ou ♀+♀)
- ✨ Bouton "Reinitialiser l'inventaire" — remet a zero tous les stocks de DD (avec confirmation native)
- ✨ Affichage du sexe des parents — les resultats de croisement indiquent quel parent est ♂ et lequel est ♀
- 🎨 Serenite et XP reintegrees dans la barre de pills (comme endurance, amour, etc.)
- 🎨 Lignes dediees cible + ETA pour serenite et niveau sous les pills
- 🎨 Badges compacts pour les noms de jauges longs (baffeur, caresseur, mangeoire) sur les cartes DD
- 🎨 Zone de clic elargie sur les inputs ♂/♀ de l'inventaire
- 🎨 Padding et espacement corriges sur les cartes inventaire
- 🔧 Correction timer XP incorrect — affichait ~23h au lieu du temps reel
- 🔧 Correction defocus input reproducteur — l'input perdait le focus car oninput declenchait un rebuild DOM
- 🔧 Correction bebes produits — les bebes issus de croisements sont maintenant neutres (sexe inconnu) au lieu d'etre assignes ♂/♀ arbitrairement
- ⚡ Cache DOM
gel()— les ~500+ appels getElementById par tick passent par un cache Map - ⚡ Verification de mise a jour uniquement au demarrage (suppression du check toutes les heures)
v1.1.3
- ✨ Reinitialisation des statistiques — bouton dans l'onglet Statistiques pour remettre a zero tous les bebes, historiques et stats archivees (avec confirmation)
- ✨ Inputs intelligents — les champs numeriques se vident au clic pour saisir facilement, et restaurent la valeur precedente si rien n'est change
- 🔧 Correction "vider l'enclos" / "nouvelle fournee" / "supprimer enclos" — remplacement de confirm() par un dialogue natif Electron pour corriger le bug qui rendait tous les inputs inutilisables
- 🔧 Correction du bug "enclos vide" — apres avoir vide un enclos ou lance une nouvelle fournee, une dragodinde est automatiquement ajoutee et les inputs restent editables
- 🔧 Correction "nouvelle fournee" — ne vide plus l'historique de session des bebes, seul "vider l'enclos" le fait
- 🔧 Correction des statistiques globales — supprimer un enclos conserve desormais ses stats dans les statistiques globales (archivage automatique)
- 🔧 Correction du bouton "Quitter" — utilisation de process.exit() pour forcer l'arret complet du processus
v1.1.2
- 💾 Sauvegarde persistante — les donnees sont maintenant sauvegardees dans un fichier JSON, plus de perte de statistiques apres une mise a jour
- ❌ Dialogue de fermeture — cliquer sur la croix propose de minimiser en arriere-plan ou de quitter completement
v1.1.1
- 🔧 Correction de la mise a jour automatique — l'app se relance maintenant toute seule apres installation
- 🔧 Correction de l'affichage du titre des notifications ntfy (encodage base64 supprime)
v1.1.0
- 📱 Notifications mobiles (ntfy) — Alerte sur telephone quand un enclos est pret, via serveur ntfy self-hosted
- Modale de configuration avec QR code pour installer l'app ntfy (Play Store / App Store)
- QR code d'abonnement automatique via page de redirection (ntfy-redirect)
- Bouton de test des notifications
- Envoi via le processus principal Electron (pas de CORS)
- 🐣 Systeme de bebes — Ajout de bebes dragodindes issus de la reproduction dans chaque enclos
- Modale de selection par generation et race avec images
- Historique des bebes par enclos
- 📊 Onglet Statistiques — Vue globale de l'elevage avec KPIs, repartition par race, et progression par enclos
- 🖱 Drag & drop des onglets d'enclos pour les reordonner
- 🐉 Images des dragodindes par race avec couleurs par generation
- 📝 Sous-onglets par enclos (Elevage / Historique bebes)
- 🔧 Mode DEV — Donnees isolees et badge DEV visible quand lance avec
npm start - ⬆ Mise a jour automatique via Gitea Releases avec banniere de progression dans l'interface
- 🔧 Correction de l'identifiant applicatif (
fr.mickael-pol.minuteur-dragodinde) - 🔧 Masquage des spinners natifs sur les champs numeriques
v1.0.0
- Version initiale