Vai al contenuto
MLBBDex

Scrivere l'analisi di un eroe

I dati del gioco si aggiornano da soli; il commento, invece, va scritto.Scopri di più

Ecco come redigere l'analisi di un eroe e proporla al sito.

Eroi analizzati
38
In attesa di un'analisi
96

Cosa scrivi

Ruoli, corsie, abilità, skin, statistiche e build giocate arrivano dalla sincronizzazione automatica con la wiki e l'API della community. Un'analisi aggiunge solo ciò che nessuna estrazione produce: cosa fa davvero l'eroe, i suoi punti di forza e le sue debolezze, i counter e build spiegate.

Le analisi si scrivono in francese, la lingua originale del sito. Ognuna è una voce TypeScript, aggiunta al file del ruolo dell'eroe in src/data/heros/.

I campi

Un'analisi segue il tipo AnalyseHeros di src/lib/types.ts. Abilità e build hanno ciascuna la propria forma.

L'analisi — AnalyseHeros

slugstring
Identificativo esatto dell'eroe, come compare in src/data/jeu/heros.json.
summarystring
Una frase su ciò che rende unico l'eroe. Serve anche da meta description.
analysisstring
Due paragrafi separati da una riga vuota: cosa fa realmente l'eroe, poi i suoi limiti.
skillsSkill[]
Le abilità nell'ordine del gioco: passiva, abilità 1, abilità 2, ultimate. È l'ordine ad associare ogni descrizione all'abilità della wiki.
strengthsstring[]
Da tre a cinque punti brevi, osservabili in partita.
weaknessesstring[]
Da tre a cinque punti brevi, con ciò che li sfrutta.
strongAgainststring[]
Slug degli eroi contro cui è a suo agio.
weakAgainststring[]
Slug degli eroi che lo mettono in difficoltà.
buildsBuild[]
Una o più build, ognuna con il suo contesto.

Un'abilità — Competence

type"Passive" | "Skill 1" | "Skill 2" | "Ultimate"
Posizione dell'abilità.
namestring
Nome inglese, come nel gioco. Il sito mostra quello della wiki.
descriptionstring
Cosa permette l'abilità e quando usarla, senza valori di danno.
cooldownnumber[] · facoltativo
Ricarica per livello, in secondi. Assente per una passiva.
costnumber[] · facoltativo
Costo per livello. Assente se l'eroe non usa mana.

Una build — Build

namestring
Nome breve della build.
contextstring
Quando scegliere questa build. Una build senza contesto non insegna niente a nessuno.
itemsstring[]
Sei oggetti, con il nome inglese, in ordine di acquisto.
emblemstring
Emblema consigliato, chiamato come nelle analisi esistenti (« Emblème de mage »).
talentstring
Talento principale dell'emblema, nome inglese.
spellstring
Magia di battaglia, nome inglese.

Modello commentato

Copia questo modello in fondo alla lista del file del ruolo, compilalo, poi togli i commenti. npm run typecheck lo verifica a ogni esecuzione: segue sempre il tipo in vigore.

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",
    },
  ],
};
Vedi il modello su GitHub

Regole di stile

  • Gli accenti ovunque il francese li richieda: il testo di un'analisi è mostrato ai visitatori, anche se il codice del progetto ne fa a meno.
  • I termini del gioco restano in inglese: oggetti, abilità, talenti e magie mantengono il nome che il giocatore ritrova in partita (« Winter Crown », « Flicker »).
  • Niente di copiato: né wiki, né guide, né video. Un'analisi presa altrove, anche se riformulata da vicino, sarà rifiutata.
  • Niente valori di danno: cambiano quasi a ogni patch. Descrivi l'effetto, non il numero.
  • Concretezza piuttosto che superlativi: « vince gli scontri lunghi finché l'avversario non compra riduzione delle cure » vale più di « è molto forte ».

La revisione, tramite pull request

  1. Fai un fork del repository GitHub e crea un branch per la tua analisi.
  2. Aggiungi la voce al file del ruolo: tanks.ts, fighters.ts, assassins.ts, mages.ts, marksmen.ts o supports.ts.
  3. Esegui npm run lint, npm run typecheck e npm test. I controlli automatici li rilanceranno comunque.
  4. Apri una pull request con un titolo chiaro all'imperativo, in francese: « ajoute l'analyse de Ling ».
  5. Un maintainer rivede contenuto e forma — correttezza per la patch corrente, stile, originalità — e commenta la pull request se qualcosa va cambiato.
  6. Una volta unita, l'analisi va online al deploy successivo, e il tuo nome resta nella cronologia del repository.