Campos y fórmulas
Los nueve tipos de campo y sus opciones, el motor de fórmulas al completo (funciones, comparación de textos) y cómo funcionan los efectos.
Los campos son de lo que está hecha tu ficha: fuerza, vida, dinero, clase, condiciones… Todo lo demás del creador (diseño, combate, niveles, perks) trabaja sobre ellos.
Se editan en la pestaña Campos.
Etiqueta y clave
Cada campo tiene dos nombres:
- Etiqueta — lo que lee el jugador: Fuerza.
- Clave — el nombre interno:
fuerza. Es lo que usan las fórmulas, los efectos, el combate y los sheet-workers.
Cambiar la etiqueta no rompe nada. Cambiar la clave sí: cualquier fórmula que dijera fuerza dejará de encontrarla. Elige claves cortas, en minúsculas y sin acentos, y déjalas quietas.
Los nueve tipos
| Tipo | Para qué sirve |
|---|---|
| Número | Atributos, habilidades, valores. El caballo de batalla |
| Contador | Usos, cargas, munición. El jugador sube y baja en vivo |
| Derivado (=) | Calculado por una fórmula. Se actualiza solo, no se escribe a mano |
| Texto | Nombre, trasfondo, descripciones |
| Sí / No | Un interruptor que puede aplicar efectos mientras esté activo |
| Selección | Opciones cerradas. Puede ser la clase o arquetipo del personaje |
| Recurso (actual/máx) | Vida, maná, voluntad: una barra con su máximo |
| Casillas (track) | Pips que se marcan: humanidad, estrés, heridas |
| Lista / etiquetas | Etiquetas libres: condiciones, traumas, estados sueltos |
En la fila de cada campo eliges el tipo, su valor por defecto y si es tirable. Al desplegarlo (la flecha) aparecen sus opciones avanzadas.
Tirable
El interruptor Tirada convierte el campo en algo que se puede lanzar: aparece como botón en la ficha y usa el dado del sistema. No está disponible en Sí/No, Texto, Contador ni Lista (no tendría sentido tirarlos).
Opciones por tipo
Número y Contador
- Mínimo / Máximo fijos.
- Mín. por fórmula / Máx. por fórmula: el límite se recalcula en vivo. Por ejemplo
3 + constitucionpara decir «la fuerza no puede pasar de 3 más tu constitución».
Detalles que importan:
- El límite por fórmula recorta lo que se teclea en la ficha y en la creación.
- Queda disponible en otras fórmulas como
<clave>_miny<clave>_max. - Los efectos y bonos NO se recortan: un perk puede llevarte por encima del máximo.
Derivado
Escribes su fórmula y ya está: el valor se calcula solo y no se puede editar a mano.
FLOOR((fuerza - 10) / 2)Es la forma correcta de tener modificadores, totales y valores de combate. Si te ves pidiendo al jugador que escriba un número que se puede calcular, hazlo derivado.
Selección
- Opciones: la lista cerrada de valores.
- Efectos por opción: al elegir esa opción se aplican sus efectos. Es como se montan las clases: Guerrero suma +2 a fuerza, Mago suma +2 a maná.
- Ayuda por opción: un texto descriptivo que aparece al elegir cada opción (qué hace esa clase, qué significa ese trasfondo).
- Es clase / arquetipo: marca el campo como la clase del personaje. Otros sistemas del creador (diseños por clase, árboles, progresión) lo usan como referencia.
- Mejora comprable: bloquea el select en juego para que solo se pueda subir gastando experiencia, con el coste que definas por escalón.
Sí / No
Un toggle. Su gracia es que puede llevar efectos que se aplican mientras esté activo: Armadura pesada → −2 a sigilo mientras esté puesta.
Recurso (actual / máximo)
Guarda un valor actual y un máximo. El máximo puede ser fijo o por fórmula (fisico + 6). En la ficha se pinta como barra y el jugador gasta y recupera sin entrar en modo edición.
El máximo queda disponible en fórmulas como <clave>_max.
Casillas (track)
Igual que un recurso pero en pips clicables: defines cuántas casillas hay (fijas o por fórmula) y el jugador las marca.
Tipos de daño y niveles (opcional). A veces la misma casilla no significa siempre lo mismo. La salud de Vampiro, Hombre Lobo o Mago se marca de tres maneras —un moratón, un corte y una quemadura no se curan igual— y cada nivel te quita dados de todas tus tiradas. Con Tipos de daño y niveles el track pasa a saber eso, y hace solo lo que la mesa siempre olvida:
- Ordena por gravedad. Si tienes dos moratones y te apuñalan, la herida grave se coloca arriba y los moratones bajan. No es cosmético: lo que penaliza es la casilla más profunda.
- Aplica el penalizador. Le pones nombre y número a cada casilla («Herido −2») y la ficha canta el nivel vigente arriba. En fórmulas lo tienes como
<clave>_penalty, y es negativo, así que una reserva se escribedestreza + pelea + salud_penalty— herido tiras menos dados, solo. - Sube de tipo lo que desborda. En Vampiro, el daño contundente que no cabe se convierte en letal. Lo hace el motor y lo canta, porque es la regla que convierte una paliza en una herida de verdad.
Un botón monta la salud de Mundo de Tinieblas entera (siete casillas, tres tipos y los niveles de Magullado a Incapacitado). Deja el bloque vacío y el track sigue siendo el de siempre.
En juego, el jugador elige el tipo arriba y marca; al clicar una casilla marcada, se cura. Y si un ataque del mapa apunta a este campo, el tipo de daño del ataque dice cuál marcar.
Lista / etiquetas
Una lista de textos libres que el jugador añade y quita. Para condiciones o estados que no merecen un campo propio.
Fórmulas
Las fórmulas se escriben como en una hoja de cálculo y las evalúa un motor propio y seguro (no ejecuta código: es un intérprete con lista blanca).
Sintaxis
- Números y textos entre comillas:
'ligera'o"ligera". - Operadores:
+ - * / %y paréntesis. - Comparadores:
< <= > >= == !=. - Lógica:
AND/OR/NOT(también&&,||,!). - Ternario:
condición ? siVerdadero : siFalso. - Referencias: el nombre (la clave) de cualquier campo.
Un detalle muy útil: == y != comparan como texto si alguno de los lados no es un número. Así puedes escribir condiciones sobre elecciones:
IF(clase == 'mago', inteligencia, fuerza)
IF(arma == 'espada', 2, 0)Funciones
| Función | Qué hace |
|---|---|
IF(cond, siVerdadero, siFalso) | Un valor u otro. IF(fuerza > 50, 2, 1) |
IFS(c1, v1, c2, v2, …, porDefecto) | Varias condiciones en cadena; el valor suelto final es el por defecto. IFS(vida <= 0, 0, vida < 5, 1, 2) |
MIN(a, b, …) | El menor. MIN(destreza, 80) |
MAX(a, b, …) | El mayor. MAX(1, fuerza - 10) |
FLOOR(x) | Redondea hacia abajo. FLOOR(destreza / 2) |
CEIL(x) | Redondea hacia arriba |
ROUND(x) | Redondea al entero más cercano |
ABS(x) | Valor absoluto |
CLAMP(x, min, max) | Limita x entre min y max. CLAMP(pv, 0, pv_max) |
AND(a, b, …) | Verdadero si se cumplen todas |
OR(a, b, …) | Verdadero si se cumple alguna |
NOT(a) | Invierte una condición |
SUM(a, b, …) | Suma |
AVG(a, b, …) | Promedio |
LOOKUP(catálogo, nombre, campo) | Valor de un campo de una entrada de un catálogo del sistema, buscándola por nombre. LOOKUP('pokedex', especie, 'atk') |
CATALOG_COUNT(catálogo) | Cuántas entradas tiene un catálogo. CATALOG_COUNT('pokedex') |
CATALOG_SUM(catálogo, campo) | Suma de un campo en todas las entradas de un catálogo. CATALOG_SUM('objetos', 'peso') |
Cálculos con catálogos: LOOKUP, CATALOG_COUNT y CATALOG_SUM leen los catálogos del sistema (los datasets del widget de roster; ver la guía de Diseño → Roster y catálogos). El segundo argumento de LOOKUP suele ser un campo de la ficha que guarda el nombre de la entrada (por ejemplo un select especie). Si el sistema no tiene ese catálogo, dan 0.
Funcionan en todas las fórmulas: campos derivados, límites por fórmula, efectos y también las de una tirada — el umbral, el bono, cuántos dados se tiran, cuántos pone cada grupo de dados y la condición de una decisión post-tirada. Ojo a la forma del dato: los valores de una entrada viven dentro de sus columnas, así que el tercer argumento es el nombre de la columna del catálogo.
Un ejemplo de los que se usan de verdad —Mutant Year Zero, donde los dados del arma salen de su catálogo y se pintan de su color—:
LOOKUP('armas', arma, 'dados') → cuántos dados pone el grupo del arma
LOOKUP('armas', arma, 'bono') → lo que suma al totalTambién existe la variable especial field_value: en los umbrales de tirada significa «el valor del propio campo».
Ejemplos
FLOOR((fuerza - 10) / 2) Modificador clásico
constitucion + nivel * 2 Vida por nivel
CLAMP(pv, 0, pv_max) Nunca por debajo de 0 ni por encima del máximo
IF(clase == 'mago', 3, 1) Depende de la clase
MAX(destreza, inteligencia) El mejor de dos
IFS(nivel >= 10, 4, nivel >= 5, 2, 1) Escalón por nivelSi una fórmula referencia un campo que no existe, ese hueco vale 0 (no rompe la ficha). El editor te muestra una vista previa del resultado mientras escribes.
Efectos
Un efecto cambia el valor de otro campo. Tiene dos operaciones:
- Sumar + — añade (o resta con negativos).
- Fijar = — impone un valor.
Se pueden aplicar sobre campos de tipo Número, Derivado y Contador. Los Recursos y las Casillas ofrecen dos destinos: su valor (actual) y su (máximo) — es decir, puedes subir el máximo de vida sin tocar la vida actual.
Dónde se enganchan
Los efectos aparecen en varios sitios del creador, siempre con el mismo editor:
| Dónde | Cuándo se aplica |
|---|---|
| Campo Sí/No | Mientras el toggle esté activo |
| Opción de un select | Mientras esa opción esté elegida (clases, trasfondos) |
| Perks | Al tener el perk |
| Árboles | Al desbloquear ese nivel de la rama |
| Niveles | Al alcanzar el nivel |
| Combate / estados | Mientras dure la condición |
Como los efectos se acumulan sobre el valor base, el orden natural es: valor del campo → efectos → fórmulas derivadas que lo usan.
Ventaja y desventaja (estados alterados)
Un efecto no siempre quiere cambiar un número: a veces lo que cambia es cómo se tira. El botón «Añadir ventaja/desventaja» hace justo eso, con tres alcances:
| Alcance | Para qué |
|---|---|
| Todo lo que gobierne \<característica\> | Lo normal en los estados alterados: Agotado pone con desventaja todas las habilidades de FUE, y las de AGI o INT ni se enteran |
| Una habilidad | Solo esa tirada |
| Todas las tiradas | Sin distinguir |
El del medio es el que ahorra trabajo, y necesita un paso previo: en cada habilidad, en Campos → (la habilidad) → Tirada, marca «Característica que la gobierna». Esa etiqueta no cambia nada por sí sola; solo sirve para que luego un estado diga «desventaja en todo lo que gobierne FUE» en una línea en vez de listar Artesanía, Espadas, Hachas, Lanzas… una por una. Se marca una vez y vale para todos los estados que vengan después.
Dos cosas que conviene saber:
- Se acumulan. Agotado + Enfermo sobre la misma característica son dos desventajas (tiras tres dados y cuenta el peor), no una.
- Ventaja y desventaja se anulan, como en D&D: si un estado te da desventaja en FUE y un perk te da ventaja en Espadas, en Espadas tiras normal.
Ventaja es tirar más dados y quedarte con el mejor, no un +2. En sistemas de reserva (cuentas éxitos) no se aplica: allí más dados son más éxitos, y quedarse con uno sería quitarte lo que has sacado.
Grupos (carpetas)
Puedes agrupar campos en carpetas para no perderte cuando el sistema crece, e incluso anidar un nivel. Es organización del editor: la ficha la manda el Diseño, no el orden de esta lista.
Errores frecuentes
«He cambiado la clave y se han roto las fórmulas» Es lo esperado. Si necesitas renombrar, busca antes dónde se usaba esa clave (fórmulas, efectos, combate, workers).
«Mi campo derivado no cambia» Comprueba que la fórmula referencia claves y no etiquetas: fuerza, no Fuerza (si la clave está en minúsculas).
«El máximo por fórmula no me deja subir con un perk» Los límites recortan lo que se teclea, pero los efectos sí pueden pasarse. Si tu perk no sube nada, revisa que el efecto apunte al destino correcto ((máximo) y no (actual)).
«Quiero que el jugador no pueda tocar este número» Hazlo Derivado: se calcula solo y no es editable.
Siguiente paso
Con los campos definidos, toca colocarlos: sigue por la guía de Diseño de la ficha.