Actualizar builds de Pokémon Champions
Un script hace el trabajo pesado; tu tarea es ejecutarlo por pasos, revisar lo que marque como REVISAR: y resolverlo editando overrides.json. Explica al usuario en español qué haces en cada paso.
Recursos de la skill
scripts/builds_champions.py— pipeline con subcomandosroster → descargar → generar → traducir → aliases → validar(otodo).overrides.json— excepciones editables (sinónimos de nombres, claves PokeAPI, movimientos sin datos, habilidades Mega, traducciones). Es el único sitio donde se corrigen cosas a mano; el script nunca se edita para un caso puntual.
Cómo funciona (para explicárselo al usuario)
| Dato | Fuente | Notas |
|---|---|---|
| Regulación vigente y roster legal | metavgc.com/regulations (la última listada) |
metavgc lista especies; las formas regionales (-alola/-galar/-hisui/-paldea) se descubren vía PokeAPI y se incluyen si tienen uso |
| Builds (naturaleza + spread, objeto, habilidad, movimientos) | Página de cada Pokémon en metavgc (datos de torneos) | Spreads en Stat Points de Champions (0-32, máx. 66); sin tera (no existe en Champions) |
| Clave del Pokémon en el JSON | Nombre de PokeAPI (arcanine-hisui, basculegion-male) |
Obligatorio: el bot pide el sprite a PokeAPI con esa clave |
| Traducción al español | PokeAPI (names en es) + overrides.traducciones |
Megapiedras y habilidades nuevas se verifican en WikiDex |
Reglas de generación: 1-3 builds por Pokémon según muestras (<30 → 1, <200 → 2, resto 3), combinando spreads y objetos con ≥10 % de uso; top 4 movimientos con alternativa en el tercero si el quinto supera el 6 %; sin Protect con objetos Choice/Assault Vest; habilidad de Mega anotada como Base (Mega: X). Los Pokémon se ordenan por uso.
Flujo
Localiza la carpeta del bot (contiene
Main.pyybuilds__vgc_api.json; la habitual esC:\Users\maxlu\Documents\discord-bot\bot_0). Haz una copia de seguridad de los dos JSON en el scratchpad antes de tocar nada.Roster
py <ruta-skill>/scripts/builds_champions.py roster --bot-dir "<carpeta-bot>"Confirma que la regulación detectada es la vigente (si dudas, compruébalo con una búsqueda web: "Pokémon Champions regulation" + fecha). Si el usuario quiere otra, pásala con
--regulacion regulationm-x.REVISAR: nombres sin clave PokeAPI→ decide si es un sinónimo raro de metavgc (roster.sinonimos, p. ej."Patrat": "Watchog") o una forma con clave distinta en PokeAPI (roster.claves, p. ej."Floette": "floette-eternal"). Repite el paso.Descargar (
descargar): ~250 páginas en paralelo, un minuto aprox. Si falla alguna, repite el paso.Generar (
generar): escribe el JSON en inglés y muestra nuevos / quitados respecto al archivo anterior; esa lista es la parte principal del informe al usuario.sin datos en metavgc→ Pokémon legales sin ninguna partida registrada. Se omiten; dilo en el informe.con spreads pero sin movimientos→ metavgc devuelve el learnset a 0 %. Busca los movimientos en Pikalytics (https://www.pikalytics.com/pokedex/<formato-vigente>/<slug>) y añádelos amovimientosenoverrides.jsoncomo[["Movimiento", %], ...](mínimo 4). Si tampoco hay datos, deja que se omita y dilo. No inventes sets.- Si aparece una especie con varias megapiedras (X/Y/Z) nueva, añade su habilidad Mega en
habilidad_piedra. Repitegenerartras cada cambio en overrides.
Traducir (
traducir): escribe el JSON en español con la misma estructura y las mismas claves (el bot puede leerlo tal cual).REVISAR: sin traducción oficial→ busca el nombre en WikiDex (wikidex.net/wiki/<Nombre>), añádelo atraducciones.<tipo>y repite. Usa nombres de España (PokeAPI no distingue Latinoamérica).Alias (
aliases): regenera los bloques deMain.pyentre# --- alias builds-champions ... ---y# --- fin alias builds-champions ---(hay uno por comando). Si el script dice que faltan los marcadores, colócalos tú dentro de cada comando justo antes de usarnombre_pokemon, sin borrar los alias manuales del usuario. Los alias ingleses de formas regionales salen solos (alolan-ninetales; en español se escribe como la clave,ninetales-alola); los de otras formas (indeedee-hembra,lycanroc-diurno,toxtricity-aguda…) se mantienen enoverrides.json→roster.alias_extra, y basta ejecutaraliasestras editarlo (no hace falta repetirroster). Comprueba que compila:py -m py_compile Main.py.Validar (
validar): simula la lectura del bot sobre ambos JSON y comprueba que cada clave existe en PokeAPI. No des por terminado el trabajo con errores aquí.Informe al usuario: regulación, totales (Pokémon y builds), lista de nuevos y quitados, omitidos y por qué, Pokémon con <10 muestras (builds poco fiables), y qué se añadió a
overrides.json. Recuerda que el bot lee el JSON desde GitHub Pages (luque2004.github.io/pokemon_api/): hasta que suba los archivos allí, Discord seguirá mostrando la versión antigua. No hagas commit ni push salvo que lo pida.
Limitaciones conocidas
- Depende de la estructura interna de metavgc (Next.js flight data:
initialDetails,pokemon-grid). Si un paso deja de encontrar datos, lo primero es descargar una página concurly comprobar si cambió el formato; avisa al usuario en vez de improvisar. - Las builds son agregados estadísticos (spread más usado + objeto más usado + movimientos más usados), no sets publicados por jugadores concretos.
- Si cambias
overrides.jsono el script, sube la versión del plugin (plugin.jsonymarketplace.json) o la caché instalada no se actualizará.