Skip to content

Quêtes de collection par fascicule : tous les préfixes, tous les suffixes, tous les mots d’une rareté #90

Closed

Description

@Lunik

Constat / besoin

Une fois les jalons d’un fascicule atteints, rien ne pousse le joueur à le terminer. Il faut un objectif lisible et fini, au niveau du fascicule : « tous les préfixes », « tous les suffixes », « tous les mots communs ». Ces objectifs doivent tenir quelle que soit la largeur de l’écran. Une quête « ligne du codex complétée » a été écartée parce que la ligne dépend de l’écran.

Piste 2 de la page de travail pistes-retention.html (Design#51), retenue par le propriétaire.

Vérification faite

  • Code : crates/domaine/src/jalon.rs (jalons par fascicule) et crates/domaine/src/quete.rs (quêtes au long cours, Sorte à liste fermée) n’ont aucun critère « toutes les briques d’une famille » ou « tous les mots d’une rareté ». web/src/composants/Quetes.tsx n’affiche que les jalons et les quêtes au long cours.
  • ADR : rien d’équivalent. La quête se range dans 0045 (quêtes au long cours, liste fermée de conditions) et 0042 (récompense récupérée à la main). Elle respecte 0043 (légendaires secrètes), 0069 (déblocage progressif, aucun total pour un fascicule verrouillé) et 0040 (rareté affichée).
  • Doublons : aucune issue ouverte ou fermée équivalente parmi les 42 du dépôt.
  • Écart relevé en passant : le 3ᵉ jalon compte aujourd’hui les mots légendaires dans son total, ce qui trahit leur nombre (ADR 0043). À corriger dans la même série de PR.
  • Verdict : confirmé.

Comportement attendu

Où

Onglet Quêtes › Fascicules : un bloc « Collection » sous les jalons de chaque fascicule débloqué. Il reprend CartePalier : intitulé, compteur « 4 / 6 », barre, bouton « Récupérer ».

Ordinateur Téléphone Téléphone, nocturne
Rosette, ordinateur Rosette, téléphone Rosette, nocturne````

Quêtes par fascicule

Le fascicule déclare ses quêtes dans le catalogue. Proposition par défaut :

Quête Critère Récompense
Tous les préfixes chaque préfixe du pli du fascicule au codex 20 gouttes d’encre, 1 sablier
Tous les suffixes chaque suffixe du pli du fascicule au codex 20 gouttes d’encre, 1 sablier
Tous les mots communs chaque mot commun du fascicule découvert 20 gouttes d’encre
Tous les peu communs idem, rareté peu commune 30 gouttes d’encre, 1 sablier
Tous les rares idem, rareté rare, seulement si le fascicule en compte au moins 3 40 gouttes d’encre, 1 sablier

Dans les fascicules parus, un fascicule a de 6 à 25 préfixes et de 14 à 18 suffixes.

  • « Préfixes du fascicule » désigne les briques de son pli, y compris celles réemployées d’un fascicule précédent. Le filtre du codex par fascicule doit donc aussi montrer les briques réemployées, sinon le joueur ne retrouve pas ce qui lui manque.
  • Les totaux excluent les légendaires (ADR 0043). Une brique ou un mot légendaire ne compte jamais et ne figure dans aucun total.
  • Un fascicule verrouillé n’affiche que sa condition de déblocage, aucun total (ADR 0069).
  • Une quête atteinte attend que le joueur la récupère (ADR 0042) ; une fois récupérée, elle reste visible, cochée.
Fascicule complet Récompense récupérée Argile (sans quête « rares ») Aleph verrouillé
Complet````` Récupérée Argile Verrouillé```````

Rareté plutôt que difficulté (retenu)

Le besoin initial parlait de « toutes les cartes de difficulté X ». Or l’ADR 0047 interdit d’afficher la difficulté au joueur, et les fascicules parus n’ont que 0 à 2 mots difficiles. La rareté est déjà affichée (ADR 0040) : c’est elle qui est retenue. La variante par difficulté reste ci-dessous pour mémoire.

Variante par difficulté````````

Facultatif : quête au long cours

« Collectionneur de préfixes » : paliers à 1, 3 et 6 fascicules dont tous les préfixes sont au codex. Il s’agit d’une nouvelle Sorte dans la liste fermée de 0045.

Piste

Handoff. L’ordre suit la règle « API d’abord, rétrocompatible ; PWA ensuite ».

  1. ADR (dépôt Design) : « Quêtes de collection par fascicule », qui complète 0045 et 0042. Il consigne le choix de la rareté, fixe les récompenses par défaut et le seuil de 3 rares. Il met aussi à jour game-design.md, interfaces.html (I-Quêtes) et le modèle de données.
  2. Content :
    • Ajouter un tableau collections à chaque fascicule : { id: "pal_…", critere: "prefixes" | "suffixes" | "rarete:commun" | …, encre, sabliers }.
    • Nouveaux contrôles dans outils/src/controles.rs : fascicule.collection_doublon, fascicule.collection_trop_petite (moins de 3 éléments), fascicule.collection_sans_recompense, fascicule.collection_legendaire (critère qui ne viserait que des légendaires).
    • compilation.rs publie les totaux calculés hors légendaires. Le client ne les recalcule pas.
    • Mettre à jour le schéma, les exemples, les tests et le README.
  3. API :
    • Dans crates/domaine/src/quete.rs, ajouter un type Collection et sa fonction de progression, alimentée par le codex du joueur.
    • Dans la réponse de progression, ajouter progression_collections avec #[serde(default)].
    • La récupération réutilise la table palier_recupere (migration 20261004000002_paliers_au_long_cours.sql) et la route /palier : 403 si le fascicule est verrouillé ou la quête non atteinte, 409 si elle est déjà récupérée. Elle passe par une transaction, avec une clé d’idempotence et la version_etat.
    • Régénérer contrat/openapi.json et .sqlx/.
  4. PWA :
    • Dans web/src/services/quetes.ts, ajouter quetesDeCollection(fascicule, progression).
    • Dans web/src/composants/Quetes.tsx, ajouter le bloc « Collection » avec CartePalier.
    • Faire montrer les briques réemployées par le filtre du codex.
    • Régénérer web/src/contrat/api.d.ts.
  5. Correctif associé : retirer les légendaires du total du 3ᵉ jalon (jalon.rs et son miroir côté PWA).

Prototype de référence : la démo « collection » de pistes-retention.html (données réelles des fascicules 1 à 6, légendaires exclues).

Critères d’acceptation

  • L’ADR est rédigé (rareté retenue).
  • Chaque fascicule paru déclare ses quêtes ; etymo-contenu valider passe et les quatre nouveaux contrôles ont leur test.
  • Aucun total ni aucune liste n’inclut de légendaire. Un test vérifie le cas d’un fascicule qui contient une brique légendaire.
  • Un fascicule verrouillé n’expose aucun total, ni dans l’API ni à l’écran.
  • Récupérer une récompense crédite l’encre et les sabliers côté serveur, une seule fois, de façon idempotente ; la PWA ne crédite rien localement.
  • Le filtre du codex par fascicule montre les briques réemployées.
  • Le 3ᵉ jalon ne compte plus les légendaires.
  • À 390 px et 1440 px, en atelier et en nocturne : pas de débordement, cibles d’au moins 44 px, check_identity sans erreur.

Activity

  1. Lunik commented on Oct 24, 2026

    @Lunik
    ContributorAuthor

    Livré par #95, fusionnée dans develop (fbe41fc), par EtymoLogique/Content#39 (déclaration des quêtes) et par l’ADR 0082 de EtymoLogique/Design#51.

    Deux critères ne sont pas couverts et restent à faire dans une suite :

    • le filtre du codex par fascicule ne montre pas encore les briques reprises d’un fascicule précédent ;
    • le 3ᵉ jalon compte toujours les mots légendaires, ce qui demande aussi de revoir les seuils dans Content.

    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions