Aller au contenu
MLBBDex

Écrire une analyse de héros

Les données du jeu se mettent à jour toutes seules ; le commentaire, lui, s'écrit. Voici comment rédiger l'analyse d'un héros et la proposer au site.

Héros analysés
18
En attente d'une analyse
115

Ce que vous écrivez

Rôles, positions, compétences, skins, statistiques et builds joués arrivent par la synchronisation automatique du wiki et de l'API communautaire. Une analyse n'apporte que ce qu'aucune extraction ne produit : ce que le héros fait vraiment, ses forces et ses faiblesses, ses contres et des builds expliqués.

Les analyses s'écrivent en français, la langue d'origine du site. Chacune est une entrée TypeScript, ajoutée au fichier du rôle du héros dans src/data/heros/.

Les champs

Une analyse suit le type AnalyseHeros de src/lib/types.ts. Ses compétences et ses builds ont chacun leur propre forme.

L'analyse — AnalyseHeros

slugstring
Identifiant exact du héros, tel qu'il figure dans src/data/jeu/heros.json.
resumestring
Une phrase qui dit ce que le héros a de singulier. Elle sert aussi de meta description.
analysestring
Deux paragraphes séparés par une ligne vide : ce que le héros fait réellement, puis ses limites.
competencesCompetence[]
Les compétences dans l'ordre du jeu : passif, compétence 1, compétence 2, ultime. C'est l'ordre qui associe chaque description à la compétence du wiki.
forcesstring[]
Trois à cinq points courts, observables en partie.
faiblessesstring[]
Trois à cinq points courts, avec ce qui les exploite.
fortContrestring[]
Slugs des héros face auxquels il est à l'aise.
faibleContrestring[]
Slugs des héros qui le mettent en difficulté.
buildsBuild[]
Un ou plusieurs builds, chacun avec son contexte.

Une compétence — Competence

type"Passif" | "Competence 1" | "Competence 2" | "Ultime"
Emplacement de la compétence.
nomstring
Nom anglais, comme en jeu. Le site affiche celui du wiki.
descriptionstring
Ce que la compétence permet et quand s'en servir, sans valeurs de dégâts.
rechargenumber[] · facultatif
Recharge par niveau, en secondes. Absente pour un passif.
coutnumber[] · facultatif
Coût par niveau. Absent si le héros n'utilise pas de mana.

Un build — Build

nomstring
Nom court du build.
contextestring
Quand choisir ce build. Un build sans contexte n'apprend rien à personne.
objetsstring[]
Six objets, avec leur nom anglais, dans l'ordre d'achat.
emblemestring
Emblème conseillé, nommé comme dans les analyses existantes (« Emblème de mage »).
talentstring
Talent principal de l'emblème, nom anglais.
sortstring
Sort de combat, nom anglais.

Modèle annoté

Recopiez ce modèle à la fin de la liste du fichier de rôle, remplissez-le, puis retirez ses commentaires. npm run typecheck le vérifie à chaque passage : il suit toujours le type en vigueur.

import type { AnalyseHeros } from "@/lib/types";

/**
 * Modele d'analyse de heros.
 *
 * A recopier dans le fichier du role du heros (`src/data/heros/tanks.ts`,
 * `fighters.ts`, `assassins.ts`, `mages.ts`, `marksmen.ts` ou `supports.ts`),
 * a remplir, puis a debarrasser de ses commentaires. Il n'est importe nulle
 * part : `npm run typecheck` le verifie seulement, ce qui le garde conforme au
 * type `AnalyseHeros`.
 *
 * Le texte affiche s'ecrit en francais, avec ses accents. Les noms d'objets,
 * de competences, de talents et de sorts restent en anglais, comme en jeu.
 * Rien ne se recopie d'un autre site. Guide complet : /fr/contribute.
 */
export const modele: AnalyseHeros = {
  // Slug exact, tel qu'il figure dans src/data/jeu/heros.json.
  slug: "slug-du-heros",

  // Une phrase : ce que le heros a de singulier. Reprise en meta description.
  resume: "Une phrase qui dit ce que le héros a de singulier.",

  // Deux paragraphes separes par une ligne vide : ce que le heros fait
  // reellement, puis ses limites. Des faits observables, pas de superlatifs.
  analyse:
    "Premier paragraphe : le plan de jeu du héros, ce qu'il fait réellement en partie.\n\n" +
    "Second paragraphe : ses limites, et ce qui les expose.",

  // Ordre du jeu : passif, competence 1, competence 2, ultime. C'est l'ordre
  // qui apparie chaque description a la competence du wiki, dont le nom est
  // celui qui s'affiche.
  competences: [
    {
      type: "Passif",
      // Nom anglais, comme en jeu.
      nom: "Passive Name",
      // L'effet et son usage, sans valeurs de degats : elles changent presque
      // a chaque patch. Ni recharge ni cout pour un passif.
      description: "Ce que le passif change à la façon de jouer le héros.",
    },
    {
      type: "Competence 1",
      nom: "First Skill Name",
      description: "Ce que la compétence permet, et quand s'en servir.",
      // Recharge par niveau, en secondes.
      recharge: [8, 7.5, 7, 6.5, 6, 5.5],
      // Cout par niveau ; a omettre si le heros n'utilise pas de mana.
      cout: [60, 65, 70, 75, 80, 85],
    },
    {
      type: "Competence 2",
      nom: "Second Skill Name",
      description: "Ce que la compétence permet, et ce qui la rend dangereuse ou fragile.",
      recharge: [12, 11, 10, 9, 8, 7],
      cout: [70, 75, 80, 85, 90, 95],
    },
    {
      type: "Ultime",
      nom: "Ultimate Name",
      description: "Ce que l'ultime change à un combat, et le bon moment pour le lancer.",
      recharge: [40, 35, 30],
      cout: [120, 140, 160],
    },
  ],

  // Trois a cinq points courts, observables en partie.
  forces: ["Une force concrète, visible en partie"],
  // Trois a cinq points courts, avec ce qui les exploite.
  faiblesses: ["Une faiblesse concrète, et ce qui la punit"],

  // Des slugs, pas des noms : heros face auxquels il est a l'aise…
  fortContre: ["slug-adverse"],
  // … et heros qui le mettent en difficulte.
  faibleContre: ["autre-slug"],

  builds: [
    {
      nom: "Nom court du build",
      // Quand choisir ce build : un build sans contexte n'apprend rien.
      contexte: "La situation dans laquelle ce build s'impose, et ce qu'il sacrifie.",
      // Six objets, noms anglais du jeu, dans l'ordre d'achat.
      objets: ["Item One", "Item Two", "Item Three", "Item Four", "Item Five", "Item Six"],
      // Emblemes nommes comme dans les analyses existantes.
      embleme: "Emblème de mage",
      // Talent principal et sort de combat, noms anglais.
      talent: "Lethal Ignition",
      sort: "Flicker",
    },
  ],
};
Voir le modèle sur GitHub

Règles de style

  • Des accents partout où le français en demande : le texte d'une analyse est affiché aux visiteurs, même si le code du projet s'en passe.
  • Les termes du jeu restent en anglais : objets, compétences, talents et sorts gardent le nom que le joueur retrouve en partie (« Winter Crown », « Flicker »).
  • Rien de copié : ni wiki, ni guide, ni vidéo. Une analyse reprise d'ailleurs, même reformulée de près, sera refusée.
  • Pas de valeurs de dégâts : elles changent presque à chaque patch. Décrivez l'effet, pas le chiffre.
  • Du concret plutôt que des superlatifs : « il gagne les combats longs tant que l'adversaire n'achète pas de réduction de soins » vaut mieux que « il est très fort ».

La relecture, par pull request

  1. Forkez le dépôt GitHub et créez une branche pour votre analyse.
  2. Ajoutez l'entrée au fichier du rôle : tanks.ts, fighters.ts, assassins.ts, mages.ts, marksmen.ts ou supports.ts.
  3. Lancez npm run lint, npm run typecheck et npm test. La vérification automatique les relancera de toute façon.
  4. Ouvrez une pull request au titre explicite, à l'impératif : « ajoute l'analyse de Ling ».
  5. Un mainteneur relit le fond et la forme — exactitude au patch courant, style, originalité — et commente la pull request si quelque chose doit changer.
  6. Une fois fusionnée, l'analyse est en ligne au déploiement suivant, et votre nom reste dans l'historique du dépôt.