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.Más información

Así se redacta el análisis de un héroe y se propone al sitio.

Héroes analizados
38
Pendientes de análisis
96

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.
summarystring
Una frase sobre lo que hace único al héroe. También sirve de meta description.
analysisstring
Dos párrafos separados por una línea vacía: lo que el héroe hace realmente y, después, sus límites.
skillsSkill[]
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.
strengthsstring[]
De tres a cinco puntos breves, observables en partida.
weaknessesstring[]
De tres a cinco puntos breves, con lo que los aprovecha.
strongAgainststring[]
Slugs de los héroes contra los que se siente cómodo.
weakAgainststring[]
Slugs de los héroes que lo ponen en apuros.
buildsBuild[]
Una o varias builds, cada una con su contexto.

Una habilidad — Competence

type"Passive" | "Skill 1" | "Skill 2" | "Ultimate"
Posición de la habilidad.
namestring
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.
cooldownnumber[] · opcional
Enfriamiento por nivel, en segundos. Ausente en una pasiva.
costnumber[] · opcional
Coste por nivel. Ausente si el héroe no usa maná.

Una build — Build

namestring
Nombre corto de la build.
contextstring
Cuándo elegir esta build. Una build sin contexto no enseña nada a nadie.
itemsstring[]
Seis objetos, con su nombre en inglés, en orden de compra.
emblemstring
Emblema recomendado, nombrado como en los análisis existentes («Emblème de mage»).
talentstring
Talento principal del emblema, nombre en inglés.
spellstring
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 { HeroAnalysis } from "@/lib/types";

/**
 * Hero analysis template.
 *
 * Copy it into the file of the hero's role (`src/data/heroes/tanks.ts`,
 * `fighters.ts`, `assassins.ts`, `mages.ts`, `marksmen.ts` or `supports.ts`),
 * fill it in, then strip its comments. It is imported nowhere:
 * `npm run typecheck` only checks it, which keeps it in line with the
 * `HeroAnalysis` type.
 *
 * Displayed text is written in French, with its accents. Item, skill, talent
 * and spell names stay in English, as in the game.
 * Nothing is copied from another site. Full guide: /fr/contribute.
 */
export const template: HeroAnalysis = {
  // Exact slug, as it appears in src/data/game/heroes.json.
  slug: "slug-du-heros",

  // One sentence: what sets the hero apart. Reused as the meta description.
  summary: "Une phrase qui dit ce que le héros a de singulier.",

  // Two paragraphs separated by a blank line: what the hero actually does,
  // then its limits. Observable facts, no superlatives.
  analysis:
    "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.",

  // Game order: passive, skill 1, skill 2, ultimate. The order is what pairs
  // each description with the wiki skill, whose name is the one that is
  // displayed.
  skills: [
    {
      type: "Passive",
      // English name, as in the game.
      name: "Passive Name",
      // The effect and how to use it, without damage values: they change
      // almost every patch. No cooldown or cost for a passive.
      description: "Ce que le passif change à la façon de jouer le héros.",
    },
    {
      type: "Skill 1",
      name: "First Skill Name",
      description: "Ce que la compétence permet, et quand s'en servir.",
      // Cooldown per level, in seconds.
      cooldown: [8, 7.5, 7, 6.5, 6, 5.5],
      // Cost per level; omit it if the hero does not use mana.
      cost: [60, 65, 70, 75, 80, 85],
    },
    {
      type: "Skill 2",
      name: "Second Skill Name",
      description: "Ce que la compétence permet, et ce qui la rend dangereuse ou fragile.",
      cooldown: [12, 11, 10, 9, 8, 7],
      cost: [70, 75, 80, 85, 90, 95],
    },
    {
      type: "Ultimate",
      name: "Ultimate Name",
      description: "Ce que l'ultime change à un combat, et le bon moment pour le lancer.",
      cooldown: [40, 35, 30],
      cost: [120, 140, 160],
    },
  ],

  // Three to five short points, observable in a match.
  strengths: ["Une force concrète, visible en partie"],
  // Three to five short points, with what exploits them.
  weaknesses: ["Une faiblesse concrète, et ce qui la punit"],

  // Slugs, not names: heroes it is comfortable against…
  strongAgainst: ["slug-adverse"],
  // … and heroes that give it trouble.
  weakAgainst: ["autre-slug"],

  builds: [
    {
      name: "Nom court du build",
      // When to pick this build: a build without context teaches nothing.
      context: "La situation dans laquelle ce build s'impose, et ce qu'il sacrifie.",
      // Six items, English in-game names, in purchase order.
      items: ["Item One", "Item Two", "Item Three", "Item Four", "Item Five", "Item Six"],
      // Emblems named as in the existing analyses.
      emblem: "Emblème de mage",
      // Main talent and battle spell, English names.
      talent: "Lethal Ignition",
      spell: "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.