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