Formato de la ficha por enlace
Esta página no es una regla del juego: es para quien programa una herramienta que genere personajes de Ashes of War y quiera que se impriman en la ficha oficial.
La ficha de /imprimir/ficha acepta un personaje entero en la dirección. El enlace se abre y la ficha sale rellenada, sin cuentas ni servidores de por medio: el personaje viaja adentro del enlace.
/imprimir/ficha?personaje=<base64url del JSON>El resto de los parámetros siguen valiendo y se combinan con este:
era, version=reducida, ficha=0, referencia=1, magia=1 y horror=1. Si
no se pide una era, se usa la del personaje.
Se puede probar sin escribir una línea de código: acá abajo se pega el JSON de un personaje y sale su enlace, el mismo que armaría la herramienta.
Cargar un personaje desde su JSON
El enlace que sale de acá es el que hay que guardar o compartir: lleva el personaje entero adentro.
El JSON
Este es el de Bruna, la personaje de ejemplo del manual, tal cual lo lee la ficha. No está escrito acá: sale del mismo dato que imprime su ficha, así que no puede quedar viejo.
El JSON de Bruna, entero
Así lo lee la ficha. El formato, y cómo se arma el enlace que lo imprime, están en /formato-ficha.
{
"format": 1,
"id": "bruna",
"name": "Bruna",
"supplement": "medieval",
"concept": "Veterana de la guardia de una ciudad medieval",
"personalities": {
"internal": "Protectora (no abandona a los suyos)",
"external": "Parca (habla poco, observa mucho)"
},
"backgrounds": [
{
"name": "Curtido",
"note": "Bosques que patrulla: hasta dos △ por día entre Fortitud, Investigación y Preservación"
},
{
"name": "Militar",
"note": "Especialidad: Combate Cuerpo a Cuerpo. Junto a su destacamento, una △"
}
],
"skills": [
{
"name": "Combate Cuerpo a Cuerpo",
"ndp": 3
},
{
"name": "Interceptar",
"ndp": 3
},
{
"name": "Alerta",
"ndp": 3
},
{
"name": "Fortitud",
"ndp": 2
},
{
"name": "Percibir",
"ndp": 2
},
{
"name": "Correr",
"ndp": 2
},
{
"name": "Auxiliar",
"ndp": 2
},
{
"name": "Investigación",
"ndp": 1
}
],
"gear": [
{
"kind": "armor",
"supplement": "medieval",
"id": "armadura-acolchada"
},
{
"kind": "weapon",
"supplement": "medieval",
"id": "espada-corta-clasica",
"material": "Acero"
},
{
"kind": "shield",
"supplement": "medieval",
"id": "broquel"
},
{
"kind": "misc",
"supplement": "medieval",
"id": "mochila-pequena"
}
],
"budget": 1000,
"prana": 8,
"pdf": 0,
"notes": [
"Fortitud 2: carga hasta 30 kg.",
"Ataca con 3d6 + 3. Con el escudo bloquea con 3d6 + 3 + 1."
]
}Un objeto que la mesa tiene y el catálogo no se escribe como
{ "kind": "libre", "name": "Talismán de la Casa Vall", "weight": 0.2 }, y sale
como un renglón de Objetos.
| Campo | Qué es |
|---|---|
format | Siempre 1. Es la versión del formato, no la del personaje. Obligatorio. |
name | El nombre que va en el encabezado de cada hoja. Obligatorio. |
supplement | La ambientación: medieval, moderno, cyberpunk o ciencia-ficcion. Decide qué hojas se imprimen. Obligatorio. |
id | Un identificador cualquiera. No se imprime; sirve para rastrearlo del lado de quien lo generó. |
concept | El concepto del personaje, una línea. |
personalities | internal y external, las dos personalidades. |
backgrounds | Lista de { name, note }. En la hoja del personaje van solo los nombres; la nota entera va en la hoja de consulta. |
skills | Lista de { name, ndp, pdp? }. El nombre tiene que ser el de Habilidades, tal cual. Las que no se mandan se imprimen en blanco. |
gear | El equipo. Ver abajo. |
budget | El presupuesto de la era, entero. Lo gastado se calcula solo, así que en la ficha sale el dinero que queda. |
prana | El Prana máximo, para la hoja de magia. |
pdf | Los Puntos de Fe, para la hoja de magia. |
resources | Los recursos de la ambientación, por nombre: { "Humanidad": 7 } en cyberpunk, { "Estabilidad Mental": 4 } con el módulo de Horror. |
cyberware | Los implantes puestos, por id de la lista de cromo. Solo en cyberpunk. |
notes | Notas sueltas, una por renglón. |
Todo lo que no sea format, name y supplement se puede omitir, y lo que
falta se imprime en blanco. La ficha nunca escribe un número que nadie mandó.
El equipo
El equipo es una referencia al catálogo del manual, no una copia de sus números: así el daño, la RD, el peso y el precio salen siempre de la misma fuente que las tablas, y una corrección del manual llega sola a las fichas ya generadas.
Cada objeto declara un kind:
armor,shield,misc:{ kind, supplement, id }.weapon: ademásmaterial, que es la variante (el material en medieval, el calibre en moderno y cyberpunk, el tipo de energía en ciencia ficción).libre:{ kind: "libre", name, weight? }, para el equipo propio de una mesa que el manual no tiene. Sale como un renglón de Objetos, con su nombre y su peso, y nada más: un objeto con daño o RD propios no se puede imprimir.
El id es único dentro de su suplemento, no en general, así que siempre viajan los dos juntos. Un objeto puede ser de otra ambientación que la del personaje: la armadura de cyberpunk es la moderna, y el combate desarmado es del núcleo.
Qué se rechaza y qué se avisa
No se imprime el personaje si el JSON está roto, si el format no es el que
esta ficha lee, si falta el nombre o la ambientación, si la ambientación no tiene
ficha, o si algún campo es de otro tipo. Tanto el bloque de acá arriba como la
ficha dicen cuál es el problema, y la ficha sale en blanco.
Se imprime igual, con un aviso en pantalla (nunca en el papel) si hay un id que el catálogo no tiene, una habilidad con un nombre que no existe, un recurso de otra ambientación o más peso del que el personaje puede cargar.
Lo que no se revisa son las reglas de creación: los NdP repartidos, el tope por habilidad y el presupuesto. Un personaje que ya jugó sesiones los pasa por definición, y la ficha es para imprimirlo, no para auditarlo.
El tamaño del enlace
Un personaje cargado da unos 1500 caracteres. Si el JSON se comprime con gzip antes de pasarlo a base64url, baja a unos 750: la ficha reconoce las dos formas sola, así que comprimir es opcional y se puede agregar después.