Delaying Hexes
As part of their nature, Hexes evaluate in their entirety in one instant. To postpone Hexes for later, Nature has devised quite the whimsical solution: a Cassettes that must be crafted and then subsumed. I may have up to six at any time. Each one holds a Hex I requested to delay until that Hex is ready to cast. After casting, the Cassette becomes free to hold other Hexes.
Click to show recipes Click to hide recipes
Cassette
After plating a Music Disc with a hefty amount of Charged Amethyst to enable the abstraction, I can add my glorious creation to my mind's collection using a combination of magic, willpower, and a lot of chewing.
Enqueue (list, number → text)
Queues a Hex to cast after that many twentieths of a second. Inherits the label of the current Cassette if possible or a randomized pattern. Label is returned.
Enqueue (list, number, text →)
A variant that takes an additional text iota. Queues the Hex under the given label.
If there is already a Cassette of the provided label, the provided Hex replaces it and takes its slot.
Otherwise, it schedules the Hex to an empty slot. If there are no available slots, it incurs the Parallel Processing mishap, terminating all of my Cassettes.
If Enqueue can not find a free Cassette, it incurs the Parallel Processing mishap, terminating all of my Cassettes.
The minimal time I can delay a Hex seems to hint that the world I live in has a disturbingly low temporal resolution.. best not to dwell on that.
Ibra oniki ra. QUINIO QUINIO QUINIO QUINIO alef a ra.
The label of a Cassette is a text iota that distinguishes it from other Cassettes. I will need this label if I want to cancel or query information about it.
I can view all my Cassettes by pressing Ponder Cassettes.
Dying also forcibly ends all of my Cassettes.
Dequeue (pattern →)
Terminates the Cassette with the provided label, freeing it instantly and cancelling the Hex within it.
Disqueue
Terminates all Cassettes. Useful for ouroboros-like Hexes that bypass regular dequeuing via two mutually resurrecting Cassettes.
Threading Reflection (→ number)
Pushes the total number of Cassettes that I have available to me in my mind's collection.
Program Distillation (player, text → boolean)
Pushes whether a given player has a Cassette with a certain label.
Oracle Purification (text → null/number)
Pushes the twentieths of a second until the Cassette with the given label fires. Pushes Null if there is no such Cassette.
State Reflection (→ null/text)
Pushes the current label of the Cassette this Hex is running in or Null if it is not running in a Cassette.
Spells
Reflections on Daemons