Visitar URL original
Afficher l'objectif de campagne en cours (avec la commande à utiliser) dans /report · Issue #5036 · Crownicles/Crownicles · GitHub
Skip to content

Afficher l'objectif de campagne en cours (avec la commande à utiliser) dans /report #5036

Description

@BastLast

Objectif

Afficher en permanence l'objectif de campagne en cours, avec la commande à utiliser, sur l'écran de voyage de /report, pour que les nouveaux joueurs ne restent plus bloqués sur une mission dont ils ne connaissent pas la commande.

Pourquoi (en bref)

La campagne est le fil conducteur des nouveaux joueurs, mais elle n'est visible que via /missions, une commande mentionnée une seule fois dans le tutoriel. Résultat, chez les joueurs de niveau ≥ 4 :

  • 35 % ne valident jamais la mission 1 (« faire /missions ») ;
  • 26 % restent bloqués à vie sur la mission 7 (« choisir une classe ») ;
  • 29 % restent bloqués à vie sur la mission 9 (« boire une potion »).

Dans environ 61 à 94 % des cas, les joueurs bloqués n'ont jamais utilisé la commande concernée. À activité égale, un joueur bloqué joue environ 2 fois moins de jours par la suite (rétention J45-J90 : -10 à -20 points).

Solution proposée

1. Ligne « Objectif » sur l'écran de voyage (Core + Lib + Discord)

  • Lib : ajouter un champ optionnel campaignMission?: BaseMission à CommandReportTravelSummaryRes.

  • Core (ReportTravelService, construction du CommandReportTravelSummaryRes) : renseigner la mission de campagne en cours via MissionSlots.getCampaignOfPlayer(player.id), uniquement si la campagne n'est pas terminée. Omettre le champ sinon (spread conditionnel).

  • Discord (TravelSummary.ts) : si le champ est présent, ajouter un bloc en fin d'embed, par exemple :

    {emote:…} Objectif : Choisir une classe autre que Recrue ({command:classes}) — 0/1

    Le texte réutilise MissionUtils.formatBaseMission (déjà utilisé par /missions). Le titre « Objectif » est une nouvelle clé commands:report.campaignObjective (FR uniquement).

2. Indiquer la commande dans les descriptions de missions qui en demandent une (Lang FR)

Les descriptions actuelles ne disent pas toujours quelle commande utiliser (par ex. chooseClass : « Choisir une classe autre que Recrue »). Ajouter {command:…} dans les descriptions FR des missions de campagne liées à une commande, au moins :

  • chooseClass → {command:classes}
  • drinkPotion → {command:drink}
  • (vérifier les autres missions de campaign.json du même type : commandMap, sellItems, visitCityNpc…)

Ces descriptions profitent aussi à l'affichage de /missions.

3. Mission 1 : validation automatique

La mission 1 (commandMission) sert uniquement à faire découvrir /missions. Puisque l'objectif est désormais affiché dans /report, la valider automatiquement au premier /report après l'event 60 du tutoriel, pour que la campagne démarre pour tout le monde. Alternative si on veut garder la mission : la laisser, la ligne « Objectif » affichera « Faire la commande {command:missions} ».

Hors périmètre

Critères d'acceptation

  • Tant que la campagne n'est pas terminée, l'écran de voyage de /report affiche la mission de campagne en cours, avec sa progression et la commande à utiliser si elle en a une.
  • Rien n'est affiché une fois la campagne terminée.
  • Un nouveau joueur a sa campagne démarrée sans avoir à taper /missions (si l'option 3 est retenue).
  • Seules les traductions FR sont modifiées.
  • Tests : le Core envoie bien campaignMission (présent / absent selon l'état de la campagne).

Mesure de l'effet (à relever avant puis 2 mois après la mise en production)

Indicateur (joueurs niveau ≥ 4) Avant
% qui n'ont jamais validé la mission 1 35 %
% bloqués définitivement sur la mission 7 26 %
% bloqués définitivement sur la mission 9 29 %
Délai moyen pour valider la mission 9 10,6 j
Joueurs actifs à J14 encore actifs entre J45 et J90 ~67 %

Activity

  1. added
    enhancementNew feature or request
    coreChanges in the core folder
    discordStuff that is specific to the interactions with discord
    on Oct 23, 2026
  2. changed the title [-]Rétention : on perd 1/3 des nouveaux joueurs dans les 15 premières minutes, avant le 1er mini-event[/-] [+]Rétention : relancer après 2 jours d'absence les joueurs qui ont fini le tutoriel (ils décrochent faute d'habitude quotidienne)[/+] on Oct 23, 2026
  3. changed the title [-]Rétention : relancer après 2 jours d'absence les joueurs qui ont fini le tutoriel (ils décrochent faute d'habitude quotidienne)[/-] [+]Rétention : les joueurs ne découvrent pas /missions, /classes et /drink, la campagne les bloque, afficher l'objectif en cours dans /report[/+] on Oct 23, 2026
  4. changed the title [-]Rétention : les joueurs ne découvrent pas /missions, /classes et /drink, la campagne les bloque, afficher l'objectif en cours dans /report[/-] [+]Afficher l'objectif de campagne en cours (avec la commande à utiliser) dans /report[/+] on Oct 23, 2026
  5. added this to the X.X.X milestone on Oct 25, 2026
  6. added theissue type on Oct 26, 2026
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

    coreChanges in the core folderdiscordStuff that is specific to the interactions with discordenhancementNew feature or request

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions