Vai al contenuto
MLBBDex

Scrivere l'analisi di un eroe

I dati del gioco si aggiornano da soli; il commento, invece, va scritto. Ecco come redigere l'analisi di un eroe e proporla al sito.

Eroi analizzati
18
In attesa di un'analisi
115

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.
resumestring
Una frase su ciò che rende unico l'eroe. Serve anche da meta description.
analysestring
Due paragrafi separati da una riga vuota: cosa fa realmente l'eroe, poi i suoi limiti.
competencesCompetence[]
Le abilità nell'ordine del gioco: passiva, abilità 1, abilità 2, ultimate. È l'ordine ad associare ogni descrizione all'abilità della wiki.
forcesstring[]
Da tre a cinque punti brevi, osservabili in partita.
faiblessesstring[]
Da tre a cinque punti brevi, con ciò che li sfrutta.
fortContrestring[]
Slug degli eroi contro cui è a suo agio.
faibleContrestring[]
Slug degli eroi che lo mettono in difficoltà.
buildsBuild[]
Una o più build, ognuna con il suo contesto.

Un'abilità — Competence

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

Una build — Build

nomstring
Nome breve della build.
contextestring
Quando scegliere questa build. Una build senza contesto non insegna niente a nessuno.
objetsstring[]
Sei oggetti, con il nome inglese, in ordine di acquisto.
emblemestring
Emblema consigliato, chiamato come nelle analisi esistenti (« Emblème de mage »).
talentstring
Talento principale dell'emblema, nome inglese.
sortstring
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 { 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",
    },
  ],
};
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.