Éste es el cuarto post de una serie de minitutoriales sobre Twine enmarcados en #LEARNUARY, un esfuerzo colectivo por aprender nuevas habilidades durante el primer mes del año.

Ya comenté en un post anterior que Twine sólo ejecuta el código de un pasaje cuando se entra al pasaje, por lo que si alguna acción del jugador cambia alguna variable dentro de ese pasaje los condicionales que haya en él no se recalcularán para adaptarse al cambio.

Sin embargo, en Harlowe tenemos el comando (live:) que hace que el siguiente fragmento de código que pongamos junto a él se reejecute cada cierto tiempo. Ésto quiere decir que si ponemos (if:), (unless:) o (either:) dentro de hook que esté vinculado a un (live:), éste condicional se reevaluará cada intervalo.

Por ejemplo, nos puede servir para crear una cuenta atrás y que, cuando ésta termine, el jugador sea enviado a un pasaje diferente automáticamente.

Los usos de éste comando son muchos y muy variados. Podemos mostrar un enlace sólo si el jugador está en un pasaje el tiempo suficiente, cómo en el siguiente ejemplo (ésto viene muy bien si queremos recompensar su paciencia o queremos reflejar el tiempo de espera de un personaje)

Sin embargo, tener que crear nuestros propios temporizadores para éstas acciones es bastante pesado, por lo que en Harlowe se ha buscado una manera de automatizarlo y simplificarlo: el comando (event:).

(event:) reune las propiedades de (live:) y un (if:) además de (stop:) que es el comando que se usa para parar toda la secuencia. El ejemplo anterior hace lo mismo que el que habíamos visto pero con mucho menos código. Se activa cuando se carga el pasaje y va contando el tiempo transcurrido, al llegar a 5 segundos ejecuta el hook oculto.