dd-timer/docs/fonctionnalites-par-ecran.md
POL Mickaël 3e485fd09b chore: normalise fins de ligne CRLF → LF dans tout le repo
Applique .gitattributes sur tous les fichiers existants.
Élimine les différences fantômes entre WSL et Windows.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 08:55:10 +02:00

10 KiB
Executable File
Raw Blame History

Fonctionnalités par écran — Obsidienne


1. Shell principal (App)

Header

  • Bouton hamburger (☰) pour ouvrir/fermer la sidebar
  • Logo "⚔ MINUTEUR DRAGODINDE"
  • Sous-titre "Dofus 3 · Gestion multi-enclos en temps réel · vX.X.X"
  • Version injectée dynamiquement via Electron API
  • Badge "DEV" en mode développement

Barre d'onglets

  • Onglet Dashboard (📊)
  • Un onglet par enclos :
    • Icône 🐉 + nom de l'enclos
    • Dot animé : vert pulsant si timer en cours, gris si inactif
    • Bouton supprimer (✕), visible si plus d'1 enclos
    • Drag-and-drop pour réordonner les onglets
  • Bouton "+ Enclos" (désactivé si max atteint)

Bannière de mise à jour

  • États : disponible → téléchargement (barre de progression %) → prête → erreur
  • Bouton "Installer et redémarrer"
  • Bouton fermer (✕) sur erreur

Zoom clavier

  • Ctrl + (+) : zoom avant
  • Ctrl + (-) : zoom arrière
  • Ctrl + 0 : reset 100%

2. Sidebar — Navigation latérale

  • Dashboard (📊)
  • Section "Enclos" : liste dynamique de chaque enclos
    • Icône 🐉 + nom + dot coloré (vert=running, gris=idle)
  • Section "Outils" :
    • Accouplement (💑)
    • Réappro (🧬)
    • Inventaire (📦)
    • Workflows (📋)
  • Paramètres (⚙)
  • Indicateur visuel de la vue active
  • Fermeture auto au clic sur l'overlay

3. Dashboard — Vue d'ensemble

Cartes des enclos

Pour chaque enclos :

  • Nom de l'enclos
  • Dot animé + statut textuel ("En cours" / "Pause" / "Inactif")
  • Liste des jauges actives (badges colorés avec icônes)
  • Nombre de dragodindes + terminées (ex: "5 DD · 3/5 ")
  • Temps restant (countdown live) ou " Terminé !"
  • Temps écoulé (live)
  • Bouton "→ Gérer cet enclos" (navigation)

Statistiques globales

  • KPI :
    • Bébés au total
    • Dragodindes actives
    • Couples accouplés
    • Taux de réussite (%)
    • Races obtenues
  • Histogramme des races : barres horizontales triées par quantité, colorées par race
  • Bouton "Réinitialiser" : efface stats et accouplements

Temps réel

  • Countdowns et temps écoulés mis à jour en continu
  • Dots animés sur les enclos en cours

4. Enclos — Vue timer principale

En-tête

  • Nom de l'enclos : input éditable (focus vide, blur sauvegarde, Escape annule, Enter valide)
  • Bouton "🗑 Vider l'enclos" : supprime toutes les DD et reset

Carte Jauges (max 2 actives)

  • 6 boutons toggle : Baffeur (), Caresseur (), Foudroyeur (), Abreuvoir (💧), Dragofesse (❤), Mangeoire (🍖)
    • État actif : bordure colorée
    • Verrouillé si timer en cours
    • Exclusion mutuelle baffeur ↔ caresseur (l'un bloque l'autre)
  • Par jauge active :
    • Icône + nom + badge Tier ("Tier X · ±Y/tick")
    • Input niveau (0100 000, step 1000)
      • Avant timer : modifie le niveau
      • Pendant timer : recharge la jauge (style visuel distinct)
    • Barre de progression (% de remplissage)
    • Info : "Jauge : {niveau} · Vide en {durée}"

Barre timer

  • Bouton : "▶ Démarrer" / "⏸ Pause" / "▶ Reprendre"
  • Temps écoulé (gauche) : HH:MM:SS live
  • Alarme dans (droite) : countdown global ou "" ou "--:--:--"

Bannière de fin

  • " Session terminée !" (visible quand toutes les cibles atteintes)
  • Bouton "🔄 Nouvelle fournée" (reset timer, conserve les niveaux de jauges)

Section Dragodindes

  • Compteur "X/10"
  • Bouton " Ajouter une Dragodinde" (désactivé si 10 atteint)
  • Grille de cartes DD (drag-and-drop pour réordonner)

5. Carte Dragodinde (sous-composant d'Enclos)

En-tête

  • Poignée de drag (⠿)
  • Nom éditable (même comportement focus/blur)
  • Bouton supprimer (✕)

Pilules de stats (5)

Stat Icône Plage Couleur
Sérénité 😊 -5000 à +5000 Violet
Endurance 0 à 20 000 Jaune
Maturité 💧 0 à 20 000 Cyan
Amour ❤️ 0 à 20 000 Rouge
XP (niveau) 1 à 200 Orange
  • Input éditable par pilule (focus/blur)
  • Mise à jour live pendant le timer
  • Effet lumineux (glow) quand la stat atteint un cap
  • Animation delta (+X / -X) qui pop à chaque tick de 10s

Cible sérénité (😊)

  • Input numérique (bornes selon jauge active : négatif si baffeur, positif si caresseur)
  • Bouton effacer (✕)
  • ETA affiché : "~Xm XXs" ou "" ou "/" (si jauge nécessaire non active)
  • Placeholder dynamique ("-5000 à 0" ou "0 à 5000")

Cible niveau ()

  • Input numérique (1200)
  • Bouton effacer (✕)
  • ETA affiché

Blocs jauges actives

Pour chaque jauge active :

Mangeoire (XP) — bloc spécial :

  • En-tête : icône + "XP / NIVEAU"
  • ETA niveau 200 : "→ NIV. 200 : ~Xj Xh"
  • Barre de progression vers 200 + pourcentage
  • Valeur live (NIV. X), delta (+X xp), countdown

Autres jauges :

  • En-tête : icône + nom (coloré)
  • Valeur live, delta (pop animé), countdown
  • Barre de progression vers la cible

Badge "✓ TERMINÉ"

  • Affiché quand toutes les jauges actives de cette DD ont atteint leur cible

6. Accouplement — Enregistrement de croisements

Étape 1 : Sélection du parent 1

  • Barre de recherche (🔍) avec bouton effacer
  • Filtres par génération (onglets colorés : Toutes, Gen 110)
  • Grille de cartes race (image, nom, badge gen)
  • Message vide si aucun résultat

Étape 2 : Sélection du parent 2

  • Bouton "← Retour"
  • Carte du parent 1 affichée (non cliquable)
  • Label "Choisir le partenaire :"
  • Grille des partenaires compatibles uniquement
    • Chaque carte montre "→ {bébé}" en dessous

Étape 3 : Résultat

  • Bouton "← Retour"
  • Affichage en ligne : Parent 1 + Parent 2 = Bébé (cartes avec images et badges gen)
  • Input "Couples" (nombre)
  • Input "Bébés obtenus" (nombre)
  • Bouton "Enregistrer" → commande register-accouplement

7. Réapprovisionnement — Calcul de plan d'élevage

Étape 1 : Sélection de la race cible

  • Barre de recherche (🔍) avec bouton effacer
  • Filtres par génération (Gen 210 uniquement)
  • Grille de cartes race (gen 2+ seulement)

Étape 2 : Plan d'élevage

  • Bouton "← Retour"
  • Carte cible + input quantité (mise à jour live du plan)

Matériaux (Gen 1) :

  • Mini-cartes par race de base : image, nom, badge gen, ♂X ♀Y

Étapes (Gen 2+) : Par génération, pour chaque croisement :

  • En-tête "Étape X — Gen Y" (coloré)
  • Affichage : Parent A + Parent B → Bébé (mini-cartes)
  • Input "Reproducteurs" (nombre, par croisement)
  • Bouton inversion ♂/♀ (swap la direction de reproduction)

Actions :

  • Bouton "Sauvegarder le workflow"

8. Inventaire — Gestion du stock & simulation

Saisie du stock

  • Résumé : "X DD en stock (Y races)"
  • Bouton "Réinitialiser" (remet tout à 0)
  • Bouton "Calculer les bébés" (lance la simulation)
  • Barre de recherche (🔍)
  • Filtres par génération (Gen 110)
  • Grille de cartes race :
    • Image, nom, badge gen
    • Input ♂ (mâles) + input ♀ (femelles)
    • Mise à jour du résumé en temps réel pendant la saisie
  • Persistance automatique du stock entre les changements d'écran

Résultats de simulation

  • En-tête global : "{N} bébés possibles sur {G} génération(s)"
  • Bouton "Sauvegarder le workflow"
  • Par génération :
    • Badge gen + total bébés
    • Par croisement : Parent A (♂X ♀Y) + Parent B (♂X ♀Y) → Bébé (×Z)
  • Section "DD restantes (non utilisées)" : mini-cartes du stock inutilisé

Algorithme

  • Allocation proportionnelle (pas glouton) : chaque parent est réparti équitablement entre les croisements qui l'utilisent
  • Cascade multi-générations (Gen 2 → Gen 10)

9. Workflows — Suivi des plans d'élevage

Vue liste

  • Titre "Plans d'élevage"
  • Barre de recherche (🔍)
  • Filtres par génération (uniquement les gens qui ont des workflows)
  • Message vide si aucun workflow

Par carte workflow :

  • Image de la race cible + badge gen
  • Nom du workflow (tronqué)
  • "Cible × Quantité — Date de création"
  • Barre de progression globale (colorée) + "X/Y — Z%"
  • Bouton supprimer (✕)
  • Clic → vue détail

Vue détail

  • Bouton "← Retour"
  • Carte d'en-tête :
    • Image + badge gen
    • Nom, cible × quantité, date
    • Barre de progression globale + pourcentage

Section Matériaux de base (si présents) :

  • Par matériau :
    • Nom de la race (coloré)
    • Mini barre de progression
    • Input de progression (nombre)
    • Label "X / Y"

Sections par génération :

  • En-tête "Génération X" (coloré)
  • Par croisement :
    • Nom race (coloré)
    • "ParentA × ParentB — X couples, repro ×Y"
    • Input de progression (nombre)
    • Label "X / Y"
    • Mini barre de progression

Temps réel

  • La barre de progression globale se met à jour pendant la saisie
  • Les barres individuelles se mettent à jour en direct

10. Paramètres

Carte 🔊 Son d'alarme

  • Select : Arpège, Pulsation, Fanfare, Cloche
  • Bouton ▶ (test du son sélectionné, joue directement via WebAudio)

Carte 🔔 Notifications

  • Bouton Notifs PC : "🔔 Notifs PC activées" / "🔕 Notifs PC désactivées" (toggle)
  • Bouton Mobile : "📱 Mobile activé" / "📱 Activer mobile" (ouvre la modal)

Modal ntfy (notifications mobiles)

Si non activé :

  • Texte explicatif
  • Bouton "🔔 Activer les notifications mobiles" (génère un topic automatique)

Si activé :

  • ① QR code pour télécharger l'app ntfy (Play Store / App Store)
  • ② QR code pour s'abonner automatiquement aux notifications
  • Bouton "🔔 Tester" (envoie une notification de test)
  • Bouton "✕ Désactiver" (supprime le topic)
  • Bouton "Fermer"

Comportements transversaux

Focus/blur des inputs (tous les écrans)

  • Focus : vide le champ, sauvegarde la valeur précédente
  • Blur sans valeur : restaure la valeur précédente
  • Blur avec valeur : applique et sauvegarde
  • Escape : annule et restaure
  • Enter : valide (blur)

Système de timer

  • Snapshot des jauges et stats au démarrage
  • Calcul par segments (recharges en cours de session)
  • Gel au cap absolu de chaque stat
  • Alarme unique quand toutes les cibles sont atteintes (son + notification PC + ntfy mobile)
  • Temps réel : requestAnimationFrame continu

Persistance

  • Sauvegarde automatique après chaque mutation d'état
  • LocalStorage (web) ou fichier JSON (Electron userData)
  • Isolation des données DEV / production

Drag-and-drop

  • Onglets enclos : réordonnancement par glisser-déposer
  • Cartes dragodindes : réordonnancement dans le même enclos