Ir al contenido
MLBBDex

Escribir el análisis de un héroe

Los datos del juego se actualizan solos; el comentario, en cambio, hay que escribirlo. Así se redacta el análisis de un héroe y se propone al sitio.

Héroes analizados
18
Pendientes de análisis
115

Lo que escribes

Roles, líneas, habilidades, skins, estadísticas y builds jugadas llegan por la sincronización automática con la wiki y la API de la comunidad. Un análisis solo aporta lo que ninguna extracción produce: lo que el héroe hace de verdad, sus fortalezas y debilidades, sus counters y builds explicadas.

Los análisis se escriben en francés, el idioma original del sitio. Cada uno es una entrada TypeScript, añadida al archivo del rol del héroe en src/data/heros/.

Los campos

Un análisis sigue el tipo AnalyseHeros de src/lib/types.ts. Sus habilidades y sus builds tienen cada una su propia forma.

El análisis — AnalyseHeros

slugstring
Identificador exacto del héroe, tal como figura en src/data/jeu/heros.json.
resumestring
Una frase sobre lo que hace único al héroe. También sirve de meta description.
analysestring
Dos párrafos separados por una línea vacía: lo que el héroe hace realmente y, después, sus límites.
competencesCompetence[]
Las habilidades en el orden del juego: pasiva, habilidad 1, habilidad 2, definitiva. Es el orden lo que asocia cada descripción a la habilidad de la wiki.
forcesstring[]
De tres a cinco puntos breves, observables en partida.
faiblessesstring[]
De tres a cinco puntos breves, con lo que los aprovecha.
fortContrestring[]
Slugs de los héroes contra los que se siente cómodo.
faibleContrestring[]
Slugs de los héroes que lo ponen en apuros.
buildsBuild[]
Una o varias builds, cada una con su contexto.

Una habilidad — Competence

type"Passif" | "Competence 1" | "Competence 2" | "Ultime"
Posición de la habilidad.
nomstring
Nombre en inglés, como en el juego. El sitio muestra el de la wiki.
descriptionstring
Lo que permite la habilidad y cuándo usarla, sin valores de daño.
rechargenumber[] · opcional
Enfriamiento por nivel, en segundos. Ausente en una pasiva.
coutnumber[] · opcional
Coste por nivel. Ausente si el héroe no usa maná.

Una build — Build

nomstring
Nombre corto de la build.
contextestring
Cuándo elegir esta build. Una build sin contexto no enseña nada a nadie.
objetsstring[]
Seis objetos, con su nombre en inglés, en orden de compra.
emblemestring
Emblema recomendado, nombrado como en los análisis existentes («Emblème de mage»).
talentstring
Talento principal del emblema, nombre en inglés.
sortstring
Hechizo de combate, nombre en inglés.

Plantilla comentada

Copia esta plantilla al final de la lista del archivo del rol, rellénala y quita sus comentarios. npm run typecheck la comprueba en cada ejecución: siempre sigue el tipo vigente.

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",
    },
  ],
};
Ver la plantilla en GitHub

Reglas de estilo

  • Acentos allí donde el francés los pida: el texto de un análisis se muestra a los visitantes, aunque el código del proyecto prescinda de ellos.
  • Los términos del juego se quedan en inglés: objetos, habilidades, talentos y hechizos conservan el nombre que el jugador encuentra en partida («Winter Crown», «Flicker»).
  • Nada copiado: ni wiki, ni guías, ni vídeos. Un análisis tomado de otro sitio, aunque se reformule de cerca, será rechazado.
  • Sin valores de daño: cambian casi en cada parche. Describe el efecto, no la cifra.
  • Lo concreto antes que los superlativos: «gana los combates largos mientras el rival no compre reducción de curación» vale más que «es muy fuerte».

La revisión, mediante pull request

  1. Haz un fork del repositorio de GitHub y crea una rama para tu análisis.
  2. Añade la entrada al archivo del rol: tanks.ts, fighters.ts, assassins.ts, mages.ts, marksmen.ts o supports.ts.
  3. Ejecuta npm run lint, npm run typecheck y npm test. La verificación automática los volverá a lanzar de todos modos.
  4. Abre una pull request con un título claro en imperativo, en francés: «ajoute l'analyse de Ling».
  5. Un mantenedor revisa fondo y forma —exactitud respecto al parche actual, estilo, originalidad— y comenta la pull request si hay que cambiar algo.
  6. Una vez fusionada, el análisis se publica en el siguiente despliegue, y tu nombre queda en el historial del repositorio.