Ir al contenido

Lógica de Condición

Lógica de Condición

En Wired Code: extra.or_eval

Cambia la regla por defecto de las condiciones: en vez de exigirlas todas, pide las que tú digas.

Normalmente, una pila con tres condiciones exige que se cumplan las tres. Este complemento rompe esa regla y te deja pedir “al menos una”, “ninguna”, “exactamente dos” y unas cuantas más.

Es lo que hace posible el “o”: tres llaves distintas y basta con tener una. Sin él, tendrías que montar tres pilas idénticas cambiando solo la condición.

Además puede leer las condiciones de otra baldosa, no solo las suyas, con lo que se pueden montar bloques de lógica reutilizables.

Ventana de configuración de Lógica de Condición

Condiciones que deben coincidir, con siete modos:

Modo Se cumple si
Todas Se cumplen todas — la regla normal
Al menos una Se cumple una o más
No todas Falla al menos una
Ninguna No se cumple ninguna
Menos de Se cumplen menos de N
Exactamente Se cumple justo el número que indiques
Más de Se cumplen más de N

Selección de furnis, opcional: elige a qué condiciones se aplica la regla.

  • Sin seleccionar nada, la regla se aplica a todas las condiciones de la pila. Es lo normal.
  • Seleccionando condiciones, la regla se aplica solo a las elegidas, estén donde estén. Las condiciones de tu pila que no hayas elegido dejan de mirarse: la selección no se suma a la pila, la sustituye.

Eso es lo que permite montar bloques de lógica repartidos: dejas una condición sola en cada baldosa y las juntas todas desde un mismo complemento.

Una puerta que abre con cualquiera de las tres llaves:

Pila A
│
├─ Complemento: Lógica de Condición
│ └─ Condiciones que deben coincidir ......... Al menos una
│
├─ Causante: Click en Furni
│ └─ Elige Furni ............................. Portón
│
├─ Condición: Contiene variable
│ └─ Escoge una variable ..................... llave_roja (ámbito usuario)
│
├─ Condición: Contiene variable
│ └─ Escoge una variable ..................... llave_azul (ámbito usuario)
│
├─ Condición: Contiene variable
│ └─ Escoge una variable ..................... llave_verde (ámbito usuario)
│
└─ Efecto: Mutar
├─ Elige Furni ............................. Portón
└─ Escoge el tipo de cambio ................ Cambiar al siguiente estado

“Ninguna” es más útil de lo que parece. Con él, una pila se ejecuta justo cuando todo lo que comprueba falla — el caso “no cumples ningún requisito” de un solo golpe.

“Exactamente” sirve para los puzles de combinación, del tipo “tienes que pisar dos de las cuatro baldosas, ni una más”.

Si eliges condiciones, las de tu pila se quedan fuera. No es que se sumen requisitos: la lista de elegidas reemplaza a la de la pila. Una condición que dejes en la baldosa sin elegirla no pinta nada.

Con la baldosa sin condiciones, hay reglas que no se cumplen nunca. “Al menos una”, “No todas” y “Más de” necesitan condiciones que contar: si todavía no has puesto ninguna, la pila se queda muda y no avisa. “Todas” y “Ninguna” sí pasan con la lista vacía, y “Menos de” también siempre que el número sea mayor que cero (con 0 no pasa nada).

Solo cuenta una por pila. Si pones dos, la segunda se ignora; para combinar reglas reparte las condiciones en baldosas distintas y enlázalas con una señal —no con Ejecuta Pilas, que como se cuenta abajo se salta las condiciones de la pila llamada—.

La selección puede venir de una fuente dinámica (el selector, la señal, el desencadenante). Si esa fuente no trae ninguna condición, el complemento vuelve a la pila entera, igual que si no hubieras seleccionado nada. Lo mismo pasa si eliges furnis que no son condiciones: se descartan, y si no queda ninguna, vuelve a mirar la pila.

Un Ejecuta Pilas se lo salta entero. Cuando otra pila llama a la tuya con ese efecto, la pila llamada no comprueba sus condiciones —ni con este complemento ni sin él— y va derecha a los efectos. Si esta lógica es la que protege algo, tiene que estar en la pila que llama, no en la llamada. Con las señales no ocurre: ahí la pila que recibe sí comprueba lo suyo.