Existen dos tipos de archivos JSON que puedes utilizar para acceder a la información de los campeones en LoL:
1. Resumen de Campeones: A través del archivo champion.json, puedes obtener una lista de campeones con datos generales sobre cada uno, como su nombre y una breve descripción.
2. Datos Detallados de un Campeón: Cada campeón también tiene su propio archivo JSON, donde se ofrece información más detallada sobre sus habilidades, estadísticas y recomendaciones. Por ejemplo, para el campeón Aatrox, el archivo está en Aatrox.json.
Los textos de habilidades en LoL suelen incluir variables dinámicas (placeholders) en formato {{ variable }}
que varían dependiendo del nivel de habilidad o de estadísticas adicionales. Vamos a explicar cómo interpretar estos valores.
{{ eN }}
Los placeholders {{ eN }}
se remplazan por los valores en el campo effectBurn
del archivo JSON.
En la habilidad "Bandage Toss" de Amumu, el tooltip es:
"tooltip": "Launches a bandage in a direction. If it hits an enemy unit, Amumu pulls himself to them, dealing {{ e1 }} <scaleAP>(+{{ a1 }})</scaleAP> magic damage and stunning for {{ e2 }} second.",
"effectBurn": [ null, "80/130/180/230/280", "1", "1350" ]
80/130/180/230/280
".
1
", indicando la duración del aturdimiento.
{{ aN }}
o {{ fN }}
Los placeholders {{ aN }}
o {{ fN }}
se encuentran en el campo vars
y representan estadísticas que se escalan con el poder de habilidad o el daño de ataque.
Siguiendo con la habilidad de Amumu:
"vars": [
{
"key": "a1",
"link": "spelldamage",
"coeff": [ 0.7 ]
}
]
Aquí:
7,
lo que significa que la habilidad escala con el 70% del poder de habilidad de Amumu.
effect
y effectBurn
Cada habilidad incluye los campos effect
y effectBurn
para especificar valores de habilidad a lo largo de varios niveles.
[30, 60, 90, 120, 150 ]
.
"30/60/90/120/150"
.
Cada habilidad en LoL puede tener un costo en maná, energía, o salud. Estos valores se encuentran en los campos cost
y costBurn
. En la mayoría de los casos, el campo resource
indica el tipo de recurso utilizado.
"resource": "10% Max Health, {{ cost }} Mana",
"cost": [ 20, 25, 30, 35, 40 ],
"costBurn": "20/25/30/35/40"
"resource": "{{ e3 }} Health",
"effect": [ null, [ 80, 130, 180, 230, 280 ] ]
La API también proporciona assets visuales, como iconos y splash art de cada campeón y habilidad.
Cada campeón tiene su propia imagen de splash art en la pantalla de carga. El archivo sigue este formato:
https://ddragon.leagueoflegends.com/cdn/img/champion/splash/[CAMPEÓN]_[NUMERO_SKIN].jpg
Por ejemplo, el splash art de Aatrox con skin predeterminada se encuentra en:
https://ddragon.leagueoflegends.com/cdn/img/champion/splash/Aatrox_0.jpg
Las habilidades y pasivas de cada campeón tienen iconos individuales que se pueden encontrar en los archivos JSON del campeón bajo los campos spells
y passive
.
"image": { "full": "Anivia_P.png" }
Ubicación:
https://ddragon.leagueoflegends.com/cdn/14.22.1/img/passive/Anivia_P.png
"image": { "full": "FlashFrost.png" }
Ubicación:
https://ddragon.leagueoflegends.com/cdn/14.22.1/img/spell/FlashFrost.png
Los objetos en LoL también tienen sus propios archivos JSON y assets visuales. A través del archivo de items.json, puedes acceder a detalles como descripciones, valores de compra/venta y efectos especiales.
Percent
y Flat
, indicando si el efecto es un porcentaje o un valor fijo.
Para obtener la lista de campeones desde el archivo champion.json
, una solicitud HTTP sencilla usando fetch
en JavaScript sería la siguiente:
fetch("https://ddragon.leagueoflegends.com/cdn/14.22.1/data/en_US/champion.json")
.then(response => response.json())
.then(data => console.log(data));
Este código retornará un objeto con los datos generales de cada campeón, incluyendo sus nombres y descripciones. Puedes luego realizar una solicitud adicional para acceder a los detalles de un campeón específico usando su archivo correspondiente.
La API de League of Legends ofrece un amplio abanico de datos para quienes desean profundizar en el desarrollo de aplicaciones relacionadas con LoL o simplemente explorar las mecánicas de los campeones. Desde habilidades detalladas hasta assets visuales, cada recurso puede ser accedido y utilizado para crear aplicaciones interactivas o enriquecer tu experiencia de juego.
Jorge García
Fullstack developer