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

TipoPara qué sirve
NúmeroAtributos, habilidades, valores. El caballo de batalla
ContadorUsos, cargas, munición. El jugador sube y baja en vivo
Derivado (=)Calculado por una fórmula. Se actualiza solo, no se escribe a mano
TextoNombre, trasfondo, descripciones
Sí / NoUn interruptor que puede aplicar efectos mientras esté activo
SelecciónOpciones 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 / etiquetasEtiquetas 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 + constitucion para 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>_min y <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 escribe destreza + 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ónQué 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 total

Tambié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 nivel

Si 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óndeCuándo se aplica
Campo Sí/NoMientras el toggle esté activo
Opción de un selectMientras esa opción esté elegida (clases, trasfondos)
PerksAl tener el perk
ÁrbolesAl desbloquear ese nivel de la rama
NivelesAl alcanzar el nivel
Combate / estadosMientras 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:

AlcancePara 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 habilidadSolo esa tirada
Todas las tiradasSin 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.

Todas las guías de Roliando