,,,,,,,,,,,,You are a wizard.
You are a wizard in a world where magic is common.
You are a two-bit hack of a wizard in the gritty underbelly of the capital city of a decadent empire on the edge of ruin.
(set: $playerHistory to (display: "RandomPlayerHistory"))
$playerHistory
Now, you've moved into this garrett with nought, determined to make this place your home.
Let's get into it, then...
[[Home Again]]
[[Use the Incredibly Secret Machine]]{(set: _library to (find: _item where (passage: _item)'s tags contains "book", ...$inventory))
(set: _furniture to (find: _item where (passage: _item)'s tags contains "furniture", ...$inventory))}
Home-sweet-home.
You enter via the secret door in the back. You never use the door in the front.
A quick check on your [[Phylactery]] shows you have $phylacteryCharges charges left. (if: $phylacteryCharges is 0)[ The next time is for real, tough guy. You'd best not slip. ](else-if: $phylacteryCharges < 3)[ You're running low. Be careful out there, and get some money to the artificer for a recharge as soon as you can. ](else-if: $phylacteryCharges < 7)[ You've taken a few hits, but you're still plenty hale! ](else:)[ You are alive with the raw power afforded you by your arcane artifact! ]
(if: $currentContract is not "")[$currentContract: (link-goto: "Continue Contract", "Encounter")]
(unless: _furniture contains "Secret Compartment")[(if: $perception > 3)[You never noticed a loose panel near the floor board before. [[Check the Loose Panel in Your Floor]]]]
(if: $mail's length > 0)[ [[Read Your Mail]] ]
(if: _library's length > 0)[ [[Read a Book In Your Library]] ]
(if: _furniture's length > 0)[(for: each _item, ..._furniture)[ (link-goto: "Use " + _item)
]]
Oh, what's this?
[[Nest of Box Adders]]
(if: $phylacteryCharges is 0)
[
You have now passed through the Veil of the Void, and there is no turning back.
(display: (either: "True Death Ending", "VR Ending", "Bad Acid Trip Ending"))
This is The End.
]
(else:)
[
(set: $health to $maxHealth)
(if: $cunning < 1)[(set: $cunning to 1)]
(set: $phylacteryCharges to it - 1)
You have died.
(if: $deathReason is not "")[
$deathReason(set: $deathReason to "")
]
(if: $contractCancelledOnDeath is 1)[
<div style="display:none">(display: "Cancel Contract")</div>
]
In the distance, but getting closer by the second is The Veil of the Void.
It is the thinnest of barriers between being merely Dead or Undead and being Really Dead. No one has ever come back from beyond the Veil of the Void.
It is unspeakably beautiful, and you want to touch it.
Best not to get too close. The natural beauty of the Veil is what makes it so dangerous. Your Phylactery expends a charge to create a portal from the realm of Death to your (link-reveal-goto: "Home Again")[(set: $cunning to $maxCunning)(set: $perception to $maxPerception)(set: $health to $maxHealth)].
]"You want to make a difference?", your contact asks. "I've got a guy you could get rid of and protect a lot of little kids at the same time."
You're handed a crystal flask of poison gas and an itinerary for your target. (if: $perception > 2)[The target is an enchanter who may have left enchantment traps to snare would-be assassins.]
(set: $encounterPayout to (min: (50 + 5 * $reputation's ($neighborhood's name)), 250))
I'll offer you $encounterPayout coins for your trouble.
|input>[
(link-reveal: "Accept")[
(set: $currentContract to (passage:)'s name)(replace:?input)[
You follow your target through a labyrinthine section of the Liar's Market.
He suspects that an assassin has been sent for him, but instead of going to ground, he is spending this day as if it is his last.
It is his last.
Need I describe for you the evil this man committed?
Need I describe for you the evil he will surely commit if he were to be allowed to live?
{
(set: $encounterStack to (a: "Encounter: Enchantment Trap", "Encounter Random Color", "Encounter: Enchantment Trap", "Fulfilled: Slaying The Beast"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
}
[[Let Us Begin!->Encounter]]
[[Home Again]] To Prepare
]]
[[Reject->Explore the Neighborhood]] ]{(if: $encounterIndex > $encounterStack's length)[
(if: $neighborhood's name is "")[(goto: "Home Again")]
(goto: "Explore the Neighborhood")
]
(display: "Tick")
(goto: $encounterStack's ($encounterIndex))
}
(goto: "At the Veil of the Void"){(set: $currentContractStatus to 1)
(set: $encounterStack to (a:))
(set: $encounterIndex to 0)
(set: $currentContractStatus to 0)
(set: $currentContract to "")
(set: $encounterPayout to 0)
(set: $encounterLength to 0)
}
You've done us proud, my (either: "little", "lovely", "darling", "wonderful") (either: "pet", "treasure", "love", "child").
(display: "NavOptions")(if: $inventory contains "Soul Jar")["No more freebies", rasps the wraith-like owner of this disreputable shop.
]
(else:)[The shop owner hands over a Soul Jar in their slender talons. They instruct you in its use and promise you great rewards should you successfully capture a Daemon with it.
"The first one is aaaaaaaaaalways free."
(set: $inventory to it + (ds: "Soul Jar"))
]
(set: _cost to 100)
(if: $daemons's length > 0)["But if you've come to trade in Daemons with me, then I could be paying you quite handsomely," they say.
(for: each _item, ...$daemons)[
(link-reveal: "Examine " + _item)[
(set: $itemName to _item)(display: _item)] - (link-reveal-goto: "Sell " + _item, "Sell a Daemon")[(set: $itemName to _item)]
]
]
(for: each _item, "Fire Ghost", "Living Shadow", "Solar Spark")[(unless: $daemons contains _item)[(display: "QuickBuyDaemon")]]
(display: "NavOptions"){(set: _price to 15)}
(if: $inventory contains "Lump of Lead" and $gold > _price)[
You hand over the Lump of Lead and a mite bit of gold, and your dealer quickly stamps you a Damage Ward on an amulet cord. It emanates a thick, metallic aura in the ethereal plane and should offer a single shot of magical damage protection.
{(set: $inventory to $inventory - (ds: "Lump of Lead"))
(set: $arg to _price * -1)(display: "UpdateGold")
(set: $arg to "Damage Ward")(display: "GetItem")}
](else:)[
If you want to get yourself a Damage Ward, you need a Lump of Lead and about _price gold coins to trade with a dealer in this kind of barely legal artificery. Come back with the metal, and you'll get the goods.
]
(display: "NavOptions")
(if: (history:) contains "A Little Tip From a Fire Ghost")
[
You're not going to let yourself be fooled again by an creature that doesn't even have a substance, and it's not going to let itself be cut to ribbons with a crystal spyglass.
]
(else:)
[A fire ghost sleazes up beside you as you prop yourself up against a lamp post. It meets your gaze and reaches out a flimsy hand for your filthy lucre.
"You want a tip, buddy? 10 coins," it hisses at you.
[[Pay the Creature->A Little Tip From a Fire Ghost]]
]
(display: "NavOptions")(if: $ticks / 13 % 13 > 8)[
You've come at the wrong time of the day for alchemical ingredients. All of the alchemists and artificers have gone home to get deliriously high on their own concoctions.
(unless: $inventory contains "Lump of Lead")
[
You find a nice lump of lead on the ground where the stalls were. Finders = Keepers. QED.
(set: $inventory to it + (ds: "Lump of Lead"))
]
](else:)[(display: "Alckymie Inventory")
]
(display: "NavOptions")This is the Reliquarium, a place where the Undead can purchase the kinds of things that an Undead thing needs.
(if: ((history:) contains "Death"))
[
The purse-faced thug at the door steps back as you approach. A pursed grin appears on his face.
"Come right on in, my brother," he mutters.
The pegs and cords stitching his lips together must be keeping his soul inside his somewhat decayed corpse.
[[Enter the Reliquarium]]
[[Home Again]]
]
(else:)
[
The purse-faced thug at the door refuses your passage. His nostrils flare in a manner designed to express a very specific disgust. You notice by his general condition that he is at least partially or recently deceased.
"You stink like someone who's never passed by the Veil," he sneers. "Turn around and go [[Home Again]], because the Reliquarium only accepts custom from the Undead."
]
(display: "NavOptions")(if: $enchantmentHidden is 0 or $perception > $enchantmentHidden)[
You see the delicate tracery of an enchantment trap. You've seen these chop grown men to pieces.
You can attempt to destroy the enchantment with physical magic at the risk of your body or unravel the many knots at the risk of your mind.
|input>[(link-reveal: "Shatter the Enchantment")[(replace:?input)[](replace:?output)[(display: "Shatter the Enchantment")]]
(if: $cunning > 1)[ (link-reveal: "Unweave the Enchantment")[(replace:?input)[](replace:?output)[(display: "Attempt to Unweave the Enchantment")]]]]
]
(else:)[ (display: "Display Random Color")
(link-reveal: "Next Encounter")[(display: "Trigger Enchantment")]
]
|output>[]
[[Run Away->Cancel Contract]]
You strike out at the enchantment with a surge of ley-line energy focussed by your force of will. A meagre trick that shatters the strands of arcane energy that bound this place, sending fragments of it at terrifying speed. Each strand of the web was under terrible tension, and you recoil as it lashes at you.
(set: $deathReason to "Your corrupt, human flesh is lashed by razor-wire fine strands of arcane energy that cannot be stopped by your mortal armor.
It's all too much. You slump to the ground in a ragged, red mass.")
(set: $arg to 1)(display: "TakeDamage")
Your corrupt, human flesh is lashed by razor-wire fine strands of arcane energy that cannot be stopped by your mortal armor.
You survive the blast with blood to spare. Next time, you might lose an eye, my sweet child.
[[Next Encounter]]
Each silky strand of the enchantment glides across your fingers as you attempt to unbind it from this spot. It starts out very promisingly...
(set: _roll to $cunning + (random: -1,1))
(if: _roll > 5)[and you get the payoff of some completely salvaged Ethereal Threads.
The strain makes you a bit weary.
(set: $inventory to it + (ds: "Ethereal Threads"))
(set: $cunning to it - 1)
Cunning - 1 ($cunning)
[[Next Encounter]] ](else-if: _roll > 2)[
but you lose the thread of it. You'd managed to relieve enough of the pressure that you aren't injured, but you don't get any salvage from the activity. Still, practice makes perfect.
(set: $cunning to it + 1)
Cunning + 1 ($cunning)
[[Next Encounter]]
](else:)[
but you lose the thread of it while it's still under high tension. The warp of it had been altered enough by your mishandling that instead of killing you outright, you are merely badly jolted.
(set: $cunning to it - 1)
Cunning - 1
(if: $cunning is 0)
[
Unfortunately, that jolt rendered you so completely stupid that your brain forgets to tell your heart to continue beating or your lungs to keep breathing. You expire immediately.
[[Death]]
]
(else:)
[
You've got a migraine and blurry vision, but you can continue on your mission.
[[Next Encounter]]
]
]
(replace:?clock)[(display: "RenderHeader")](if: $gold > 9)
[
The fire ghost whispers into your ear, "You should know that living fire cares only about burning foolish mortals..."
(if: $gold > 19)[(set: $arg to -20)](else-if: $gold > 0 and $gold <= 19)[(set: $arg to $gold)](display: "UpdateGold")
](else:)[
It sneers at your lack of coin and lashes out at you.
(set: $arg to 1) (display: "TakeDamage")
]
And then it's gone in a puff of smoke. You're chagrined, and you'd rather hope no one saw that.
(display: "An Embarassing Display")
(display: "NavOptions")(if: $encounterStack ($encounterIndex) is (history:)'s last)[
(set: $encounterIndex to it + 1)
(set: $encounterLength to it + 1)]
(go-to: "Encounter")Within the reliquary, you meet Lilah, the head curator.
She grins at you with teeth filed to points.
"Welcome to the reliquary. You're finally ready to see what we have to offer."
(if: $phylacteryCharges < 10)
[
[[Relics for Initiates->Reliquary Display Case #1]]
]
(if: $phylacteryCharges < 9)
[
[[Relics for Novices->Reliquary Display Case #2]]
]
(if: $phylacteryCharges < 6)
[
[[Relics for Journeymen->Reliquary Display Case #3]]
]
(display: "NavOptions")(display: ($neighborhood's name) + " Color")
[[Next Encounter]]
[[Cancel Contract]] You slip past the enchantments the Beast placed in your path, leaving him vulnerable to your attack. You take out the vessel of poison gas and weave a simple teleportation spell.
He expires with a slight cough of greenish smoke and slumps against the market stall where he had been browsing the pornography. In the vessel which held the poison gas is now the target's last breath. You tuck it into a specially warded drake-hide satchel for safe keeping.
(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")"A mountebank that performs at the Red Fountain in the Screaming Downs disrespected my boss," says the client's red-faced thug in the ill-fitting cuirass. "They're too cunning for me to catch them."
The thug sidles up to you and places a thick wedge of finger meat on your collar-bone. "Ruin their casting hand for me. Do it right now!"
(set: $encounterPayout to (min: (50 + 5 * $reputation's ($neighborhood's name)), 250))
"I'll offer you $encounterPayout coins for your trouble."
|input>[
(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
You spot your target as they're performing by the fountain in the Screaming Downs. They spot you, too, and flee on foot. (if: $perception > 2)[The makes some obvious gestures, laying down enchantments and releasing a guardian daemon.]
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Enchantment Trap", "Encounter: Fire Ghost", "Encounter: Thug", "Fulfilled: Mutilating The Mountebank"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)
[[Chase After Them!->Encounter]]
]]
[[Reject->Explore the Neighborhood]]
]Snicker-snack! goes your folding knife as you take a precious casting finger from the furious clown you've subdued.
"Stay down," you advise, and they listen.
(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")A Fire Ghost blocks your path. It locks its gaze with you and begins charging for an attack. You have a few moments...
{(set: $enemyType to "Fire Ghost")
(set: $deathReason to "You are unable to make any more gestures of combat magic, as your very flesh has been consumed by the daemon's flames. It is not quick, but at least it is incredibly painful.")
(set: $enemyHealth to 3)
(set: $enemyElementType to "fire")
(set: $enemyBribeType to "Clump of Coal")
(set: $options to (a:))
(if: $rumors contains "Fire Ghosts Crave Coal" and $inventory contains "Clump of Coal")[(set: $options to it + (a: "Bribe Daemon"))
(if: $inventory contains all of (a: "Soul Jar", "Clump of Coal") and $cunning > 3)[ (set: $options to it + (a: "Capture Fire Ghost"))]]}
(display: "Encounter Daemon")It is a lead damage ward that will block a single strike from a magical or mundane attack. It's a good idea to keep one on your body at all times.
(either: "Dr.", "Madame", "The Magnificent") (either: "Faustus", "Cunningham", "Oxlane-Slern")'s (either: "Exclusive", "Impossible", "Essential") Guide to Enchantments.
This appears to be a treatise on increasing your magical cunning.
(if: $cunning > 3)[ You are already familiar with all of the techniques it has to offer. ]In what is surely designed to be pure showmanship, as soon as you've finished your purchase, you find yourself with it in your hands, back [[Home Again]].Lilah waves one clawed hand over to a display case with three items.
"These are our introductory items, for the recently deceased."
(for: each _item, ...(a: "Crystal Spyglass", "Damage Ward"))[
(unless: $inventory contains _item)[(set: _cost to 35 + ($phylacteryCharges * 5))(display: "QuickBuy")]
]
[[Reliquarium]]
(display: "NavOptions")You press through the crowd in the (either: "Liar's", "Fool's", "Murderer's", "Bastard's", "Sweet", $element) (either: "Market", "Bazaar", "Exchange", "Soukh"), keeping an eye out for your quarry and any traps or henchmen they've put in your path.
(either: "Shady transactions.", "Steamy eye contact.", "Little dogs eating rats.")
(display: "Display Random Color Person")The seemingly-delicate blown glass orb has an intricate wrought-iron cage folded around it. The lid is bone. Don't be too curious about what kind.
(if: $perception > 4)
[
Its purpose is to capture aethereal daemons and hold them fast until such time as they become useful, perhaps as a weapon. A careful fellow will take care that the daemon does not turn on him after being released from captivity.]<p id="header">ASTUS: $cunning SENSU: $perception VITAE: $health KRONO: (print: (floor: $ticks / 169)):(print: (floor: $ticks / 13 % 13)):(print: $ticks % 13) OROS: $gold <a href="#inventory">+</a>
<b>(print: (passage:)'s name)</b>
---
</p>{(set: $ticks to it + 1)(display: "Execute Scheduled Events")
(if: $ticks % 13 is 7)[(display: "TickMining")]
(if: $ticks % 13 is 3)[//It is Dawn.//(set: $isDay to 1)<br/>]
(if: $ticks % 13 is 9)[//It is Dusk.//(set: $isDay to 0)<br/>]
}(if: $inventory's length > 0)[The contents of your various pockets, hidey-holes, and secret pouches contains $gold gold coins and
(for: each _item, ...($inventory))[(link-reveal: _item)[
<i>(display: _item)</i>]
]
](else:)[You haven't a solitary thing other than your $gold gold coins and the clothes on your back. Your library is quite bare at the moment. A spider has written a message in a cobweb for you, but you don't read Lost Veringian pictograms.
]
(if: $daemons's length > 0)[You currently have the following daemons in your thrall:
(for: each _daemon, ...$daemons)[(link-reveal: _daemon)[: //(display: _daemon)//]
]
](else:)[//You currently have no daemons in your thrall.//
]
(if: $currentContract != "")[You currently are engaged in the following business:
$currentContract
(display: "Description " + $currentContract)
](else:)[//You are currently looking for employment.//
]
It is a crystal spyglass, which can be used for tricks like focusing beams of sunlight to burn through things. You've never seen a serious wizard with one of these.
(if: $perception + $cunning > 7)
[
You realize that the polarity of the crystal could be changed to make this a very effective sun-based weapon against almost any aethereal opponent.
](♄) A modest lump of lead about the size of a baby's fist.
(if: $cunning > 2)[You can trade one of these and a few gold for a Damage Ward in the Market.](display: "Tick")(display: "RenderHeader") (link-goto: "Inventory")
(set: _i1 to _item)(set: _i2 to _cost)
_i1
(display: _i1)
It will cost you _i2 gold.(if: $gold >= _i2)[ You can afford it, though.]
(link-reveal-goto: "Buy It", (history:)'s last)[(set: $inventory to it + (ds: _i1))(set: $gold to it - _i2)](else:)[ Quite a bit too rich for your blood.]
(link-goto: (history:)'s last)
A well-kept library makes for a well-kept mind. Even rereading favorite old tomes can yield surpising new fruit.
(for: each _item, ...$inventory)[(if: (passage: _item)'s tags contains "book")[
(link-goto: _item, "Read " + _item)
]]
[[Home Again]]It's a children's book.
(if: $perception > 2)
[It was the only book your mother was ever able to afford you. It is a rudimentary text on the fundamentals of magic.
](display: "Pamphlet of Cunning")
(either: "Enchantments come in different types: traps, locks, wards, etc.", "Enchantments are a bit like knots. See also: Philomender's Book of Excellent Knots")
(if: $maxCunning < 3)[
It's a light pamphlet with only a few basic techniques, but you do learn a bit of cunning from it.
<b>Max Cunning + 1</b>
(set: $maxCunning to it + 1)(set: $cunning to $maxCunning)
](else:)[It's a light pamphlet with only a few basic techniques, but you've probably learned everything this book could possible offer.]
(link-goto: "Put the Book Away", (history:)'s last)
(display: "A Young Wizard's Primer")
(if: $perception > 1)
[
(set: _roll to (random: 1, 6))
(if: _roll is 1 or _roll is 2)[
Daemons: Spirits of air and earth and all other elements, bound by their own perverse rules and not the Law of Man.(if: $perception > 2)[
They can be captured by the use of Soul Jars, which can be purchased at the Daemonium in the Marketplace.](if: $perception > 3)[Be forewarned, powerful Archdaemons do not look kindly on humans who imprison their offspring.]]
(else-if: _roll is 3 or _roll is 4)[
Enchantments: Hidden traceries of magical influence devised as a trap for those neither perceptive nor cunning.(if: $perception > 2)[ They can be broken at the cost of blood, or they can be unwound and reused by those cunning enough.](if: $perception > 3)[ A truly advanced wizard can reweave an enchantment as your Old Mother can unravel and reweave a scarf.]]
(else-if: _roll is 5 or _roll is 6)[
Alchemy: Foul chemicals and bilious smokes make for an unpleasant affair.(if: $perception > 2)[ The market prices on potions are 5 times the price you would pay to make them at home.](if: $perception > 3)[ And you're likely to blow your hands off as make anything useful if you don't know the recipe, and alchemists jealously guard their recipes.]
]]
[[Read A Young Wizard's Primer]]
(link-goto: "Put the Book Away", "Read a Book In Your Library")Yes. Pocket Lint.(if: $perception < 5)
[
Some books in this room could kill you.
Some of them give you a migraine if you try to comprehend the very first page.
One gave you a nosebleed when you so much as looked at its spine.
(set: _item to "Pamphlet of Cunning")(set: _cost to 15)(display: "QuickBuy")
(set: _item to "Percepção de Cristal")(set: _cost to 750)(display: "QuickBuy")
(set: _item to "The Complete History of History")(set: _cost to 400)(display: "QuickBuy")
]
(else:)[You realize that these books are purely theoretical and academical, dealing with domains of High Magick that have nothing to do with earning gold coins or slaying your enemies. (if: $perception > 5)[And even more than half of those have a glamour on them to make them seem more worthwhile than they really are.]
(set: _item to "Pamphlet of Cunning")(set: _cost to 15)(display: "QuickBuy")
(set: _item to "Percepção de Cristal")(set: _cost to 20)(display: "QuickBuy")
(set: _item to "The Complete History of History")(set: _cost to 1)(display: "QuickBuy")
]
(display: "NavOptions")An ethereal creature made of living shadow. Is so utterly thin that it can slice through the flesh of their victims.
They don't appear to eat anything, but their victim's bodies are always about (random: 3, 12) pounds lighter than they were when they were still alive.(set: $dieroll to (random: 0, 6))
(if: $inventory contains "Rack of Torment")[(set: $dieroll to it - 1)]
(if: $enemyType is not "Shadow")[
(if: $dieroll > 4)[The shadow daemon takes the opportunity to scarper!(set: $daemons to it - (ds: "Living Shadow"))
(set: $arg to (either: 0, 1, 1, 2))(if: $arg > 0)[It brushes past your opponent on the way out.
(display: "DealDamage")]
]
(else:)[
The living shadow lashes out at the enemy! You pull it back into its Soul Jar for next time.(set: $arg to 2)(display: "DealDamage")]](else:)[You release the shadow daemon, and it merges with its kin.(set: $enemyHealth to it + 2)(set: $daemons to it - (ds: "Living Shadow"))
]This appears to be a treatise on increasing your magical perception.
(if: $perception > 3)[You are already familiar with all of the techniques it has to offer.](display: "Percepção de Cristal")
It's a slim guide with a few basic techniques about the use of a Crystal Spyglass to perceive magical traceries. (if: $maxPerception < 4)[(if: $inventory contains "Crystal Spyglass")[You use your spyglass to practice some techniques of magical perception.
<b>Perception + 1</b>
(set: $maxPerception to it + 1)(set: $perception to $maxPerception)
](else:)[You really must have a spyglass to get any benefit from these techniques.
]](else:)[You've already mastered these simple techniques, and the additional eye strain has the opposite of the intended effect.
<b>Perception - 1</b>
(set: $maxPerception to it - 1)(set: $perception to $maxPerception)
]
[[Continue Reading->Read Percepção de Cristal]]
(link-goto: "Put the Book Away", "Read a Book In Your Library")
$itemName
(display: $itemName)
It will cost you $goldCost gold.
(if: $gold >= $goldCost)[You can afford it, though.
(link-reveal-goto: "Buy It", (history:)'s last)
[(set: $inventory to it + (ds: $itemName))
(set: $gold to it - $goldCost)
]]
(else:)[Quite a bit too rich for your blood.
]
(link-goto: "Continue Browsing for Furniture", (history:)'s last)
(display: "NavOptions")
Gideon greets you at the front of the store.
"Ah, yes, a discerning customer who recognizes the superiority of our merchandise," they say, displaying their shimmering teeth. "Prices may have increased recently due to our popularity."
{(set: $goldCost to 1500)
(for: each _item, ...(a: "Vivification Chamber", "Neighborhood Door to North Harbor", "Rack of Torment"))[(if: $inventory contains _item)[(set: $goldCost to it * 2)]]}
(for: each _item, ...(a: "Vivification Chamber", "Neighborhood Door to North Harbor", "Rack of Torment"))[(unless: $inventory contains _item)[(link-reveal-goto: "Examine the " + _item, "Furniture For Sale")[(set: $itemName to _item)]
]]
(display: "NavOptions")It's a glass cylinder with brass fittings large enough for a grown man to climb inside. It's intended to bombard the user with eldritch energy, instantly refreshing their cunning, perception, and vitality.(set: $cunning to $maxCunning)(set: $perception to $maxPerception)(set: $health to $maxHealth)(display: "UpdateClock")
You feel immediately rejuvenated. You'd rather not do this too often, because it does quite make your molars ache.
(link-goto: (history:)'s last)It is a classic crystal ball on a wooden stand, perched on top of a little round table, covered in a velveteen table cloth. Within it are shown glimpses of possibility-space. Those with the perceptive skills can use this information to warn them of dangers.(if: $currentContract is "")[You have to have an active interest in someone for the stone to work.
]
(else:)[
(if: $ticks - $scryingStoneCooldown > 13)[(set: $enchantmentHidden to it - 1)(set: $scryingStoneCooldown to $ticks)
You gaze into the stone and lock eyes with your quarry. You see bits of their plan, the back side of their cunning, the weft of their enchantments.
]
(else:)[The part of your brain that can interface with this device is still in a state of mild shock from the last time you used it. You should get more rest.
]
]
(link-goto: (history:)'s last)(display: "Tick")
(display: $itemName)
(link-reveal: "Use " + $itemName)[
(display: "Use " + $itemName)]
(link-goto: "Return", (history:)'s last)
This clever device takes two reagents and combines them into a specific alchemical potion, with no training or dexterity required.First, select the left reagent.
Second, select the right reagent.
Third, light the burner.
Four, take the potion.
|input>[{
(if: (find: _item where (passage: _item)'s tags contains "reagent", ...$inventory)'s length < 2)[You've got to get at least two reagents to rub together, my friend.](else:)[
Left Reagent: (dropdown: bind _left, ...(find: _item where (passage: _item)'s tags contains "reagent", ...$inventory)) Right Reagent: (dropdown: bind _right, ...(find: _item where (passage: _item)'s tags contains "reagent", ...$inventory))
<br/><br/>
(link-reveal: "Mix Reagents")[(replace:?input)[_left + _right = ]
(replace:?output)[
(set: $inventory to $inventory - (ds: _left, _right))
(if: (ds: _left, _right) contains all of (ds: "Shadow Threads", "Quaff of Quicksilver"))[
(set: $inventory to it + (ds: "Ink of Enchantment"))You have produced
[[Ink of Enchantment]]
]
(if: (ds: _left, _right) contains all of (ds: "Sack of Sulfur", "Quaff of Quicksilver"))[
(set: $inventory to it + (ds: "Cunning Draught"))You have produced
[[Cunning Draught]]
]
(else:)[
(if: (random: 0, 10) > 5)[You have produced nothing. Thankfully, you've salvaged the reagents.(set: $inventory to $inventory + (ds: _left, _right))](else:)[You have produced a stinking mass of refuse instead of a potion or tincture. (set: $inventory to it + (ds: "Stinking Mass"))]]
]]]}]
*|output>[]*
[[Home Again]]
*Recipes sold separately
A wooden rack for storing daemons in Soul Jars.The Rack of Torment is not the kind of the thing that you have to actively use. You just keep your Soul Jar's full of daemons on it when you're not traipsing about casting lightning bolts at assassins. It's special wood or something... daemons seem to like it...
[[Home Again]] (either: "lady", "gentleman", "creature") of (either: (either: "great", "small") + " size", (either: "dark", "ruddy", "pale", "blue", "translucent", "scaly", "tattooed") + " skin") (either: "wearing", "with", "in") a (display: "Random Jewelry")After stumbling your way through the maze, you finally find your quarry: two young nieces of a certain Senator, talking about things they should not know. The one on the right gets up and leaves the bench. Another of your client's agents are responsible for that one.
When the young lady on the left is turned away, you quickly reach in and snatch the silver thread of a brand new memory out from her perfect ear.
The secret that was whispered to her lives now in a small pouch made from the mummified head of a mutineer, its lips stitched shut and its lying tongue cut out.
(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")"It is common enough for young lovers to exchange secret time with each other in the ever-shifting hedgemaze at the Baron's castle grounds," the $clientDescription says to you. "I need you to erase a very specific secret... right away."
(set: $encounterPayout to (min: (50 + 5 * $reputation's ($neighborhood's name)), 350))
"I'll offer you $encounterPayout coins for your trouble."
|input>[
(link-reveal: "Accept")[
(set: $currentContract to (passage:)'s name)(replace:?input)[
The client left a parcel under a parkbench in front of the Baron's hedgemaze. You open the parcel and pocket the tools of the trade.
You enter the maze, already frustrated.
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Shortcut", "Encounter: Aura of Illusion", "Encounter: Solar Spark", "Encounter Random Color", "Encounter: Enchantment Trap", "Fulfilled: Hijinks in the Hedgemaze"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 3)
(set: $contractCancelledOnDeath to 1)
[[Let Us Begin!->Encounter]]
]]
[[Reject->Explore the Neighborhood]]
](set: $generalType to (a: "slim fellow in a cheap suit", "fat cephalopod with a beaver hat", "plain lady in a brown dress", "a spiny brownie in mouse leathers"))
(set: $characteristics to (a: "extremely regrettable facial tattoos", "the subtle tracework of surgery scars", "more pride than teeth", "a pronounced limp", "a probably very illegal weapon clutched behind their back"))(display: $itemName)
(link-undo: "Back")The shopkeeper swaps your full Soul Jar for another that contains a handful of gold.
(set: _pay to (random: 2, 3) * ($reputation's ($neighborhood's name) + 1))
(set: $gold to it + _pay)
<b>Gold + _pay</b>
(set: $inventory to it + (ds: "Soul Jar"))
(set: $daemons to it - (ds: $itemName))
(link-goto: "Continue Browsing for Daemons", (history:)'s last)
(display: "NavOptions")These creatures appear to be mindlessly drifting through the air. Sages argued endlessly about whether they are even alive or are a phenomena of the weather.
(if: $perception > 7)[But a studious observer will note that they are actually performing exceedingly complicated math using the language of their movement. The ultimate purpose behind the calculation is beyond you.]The Solar Spark sweeps away from the Soul Jar and leaves a wake of glowing, ionized air.
(set: $daemons to it - (ds: "Solar Spark"))
(set: $inventory to it + (ds: "Soul Jar"))
(if: $isDay)[(set: $arg to 5)(display: "DealDamage")]
(else:)[(set: $arg to 2)(display: "DealDamage")]You see a delicate collection of golden orbs hovering in the sun-dappled air. They bob with maddening regularity, but just when you start to be able to predict their movements, the pattern changes to something entirely new.
{(set: $enemyType to "Solar Spark")(set: $enemyHealth to 4)
(set: $deathReason to "You accidentally stumbled into a convergence of all of the orbs in the Solar Spark into a pattern later referred to as Hell's Blender. Bits of you are in a shrub.")
(set: $enemyElementType to "holy")
(set: $enemyBribeType to "None")
(set: $options to (a: "Dodge Solar Spark"))
(if: $inventory contains "Soul Jar")[ (set: $options to $options + (a: "Capture Solar Spark")) ]
}
(display: "Encounter Daemon")
(if: $cunning + $perception > (random: 5, 9))
[You deftly place the opening of the Soul Jar right where you predict it will be by the time you get there. Then you just slide the lid back on and latch it in place.(set: $inventory to it - (ds: "Soul Jar"))(set: $daemons to it + (ds: "Solar Spark"))
[[Next Encounter]]
]
(else:)
[You try grabbing at the Solar Spark, but you cannot predict its movements. It nearly cauterizes off your most favorite thumb before you give up the chase.
(set: $arg to 1)(display: "TakeDamage")
(if: $health > 0)
[
[[Next Encounter]]
]
(else:)
[It didn't hurt much, but the damned thing must have cut across something even more important than your thumb.
It was too much for your weakened form, and you succumb to [[Death]]]]
(if: $perception + $cunning > 6)[
You make your best guess about where the Spark will go next, and you manage to pass through with the slightest scorching of your topcoat. ](else:)[
As you walk past, the Solar Spark streaks right through you, leaving behind a searing trail and a vague smell of cooked pork.(set: $deathReason to "The Solar Spark randomly penetrated an incredibly vital organ, and you expire with smell of cooked pork in your nostrils.")
(set: $arg to 1)(display: "TakeDamage")
(if: $health > 0)
[
You survive the superheated insult and move on.
]]
[[Next Encounter]] You've come to a fork. One of these is faster than the other, but which one?!
{
(set: $correctPath to (random: 0, 1))
(if: $correctPath is 0)[
(if: $perception > $enchantmentHidden)[<br/>(link-reveal-goto: "This Way!", "Encounter")[(set: $encounterIndex to it + 2)]]
(else:)[<br/>(link-reveal-goto: "This Way?", "Encounter")[(set: $encounterIndex to it + 2)]]
[[<br/>No, This Way?->Next Encounter]]
](else:)[ <br/>[[This Way?->Next Encounter]]
(if: $perception > $enchantmentHidden)[<br/>(link-reveal-goto: "No, This Way!", "Encounter")[(set: $encounterIndex to it + 2)]]
(else:)[<br/>(link-reveal-goto: "No, This Way?", "Encounter")[(set: $encounterIndex to it + 2)]]
]}(either: "You were a country bumpkin who was orphaned. You sold your family farm for a pittance to try your luck in the big city.",
"You were a minor aristocrat of some means, but you disgraced yourself by failing at University.",
"You came to the city to take a clerking job, but the job did not exist, and your recruiter turned out to be a con artist who took most of your money.")The strange geometric shape shifts and reorients itself in front of you in some infernal calculus. It pulses as word forms force themselves into your speech center.
(if: (history:) contains "Sell a Daemon")[<i>I see you think nothing of selling our many children as slaves of your kind</i>, the voice bellows in your head. It feels like something warm is leaking from your ears. (set: $maxCunning to it - 1)(set: $cunning to $maxCunning)(set: $maxPerception to it - 1)(set: $perception to $maxPerception)](else:)[<i>Your hands are free from sin</i>, the voice says in your head. After a brief pause, it continues, <i>Inasmuch as I am not concerned with what you do to your own kind.</i>]
<i>Regardless, I shall not harm you this day.</i>The strange geometric shape shifts and reorients itself in front of you in some infernal calculus. It pulses as word forms force themselves into your speech center.
(if: (history:) contains "Sell a Daemon")[<i>I see you think nothing of selling our many children as slaves of your kind</i>, the voice bellows in your head. It feels like something warm is leaking from your ears. (set: $maxCunning to it - 1)(set: $cunning to $maxCunning)(set: $maxPerception to it - 1)(set: $perception to $maxPerception)](else:)[<i>Your hands are free from sin</i>, the voice says in your head. After a brief pause, it continues, <i>Inasmuch as I am not concerned with what you do to your own kind.</i>]
<i>Regardless, I shall not harm you this day.</i>This is a book with a seemingly innocuous title that is secretly a hedgemaze style encounter. It will be dangerous, but it will contain information relevant to a high level encounter.
(if: $perception > 10)[Holy shit, it is dangerous, but totally worth it!](goto: "Inside the Trap Book")Add a weird branching encounter thing where the player has to use the Back button to get a passcode from one part of the maze to another.
This foul-smelling tome has both water damage and scorch marks testifying to its authenticity as a book that belonged to a former alchemist, current scorch mark.Even if the book hadn't been soaked in what appears to be urine, the handwriting is already borderline inscrutable. The best you can find is a chart of which combinations didn't explode:
Lead + Saltpetre = (if: $perception > 4)[Explosion!](else:)[????????]
Pocket Lint + Saltpetere = (if: $perception > 4)[Explosion!](else:)[????????]
Lead + Pocket Lint = (if: $perception > 4)[No Explosion :(](else:)[????????]
(link-goto: "Put the Book Away", "Read a Book In Your Library")$playerHistory
You were all of these things.
But now you reign over the Multitudes as the King of Hell.The alckymists and their suppliers trade in vast open sacks and pots of chemical components of various toxicities and inflammibilities. It says much about their trade that the free mix of various powdered chemicals around open flames have resulted in as many legitimate breakthroughs as the solitary efforts of a thousand alckymists working in their labs.
(set: _cost to 150)(set: $marketplace to (a: "Lump of Lead", "Sack of Sulfur", "Chunk of Chalk", "Grain of Gold", "Quaff of Quicksilver"))(for: each _item, ...$marketplace)[(unless: $inventory contains _item)[
(display: "QuickBuy")
]]
(set: _dieroll to (random: 0, 2))(if: _dieroll is 0)[(display: "Display Random Color Person") offering to sell a (either: "live", "roast", "metallic") (either: "homunculus", "pixie", "dragon egg") to a (display: "Display Random Color Person")](else-if: _dieroll is 1)[(display: "Display Random Color Person") is haggling with a (either: "furious", "stone-faced", "laughing", "bored") (display: "Display Random Color Person")]
(else-if: _dieroll is 2)[(either: "smiling", "bored", "dozing", "aggressive") (display: "Display Random Color Person") hawking their (either: "wares", "false idols", "scrolls", "fish and chips")](if: $perception > 3)[The combination of exaggeration, inaccuracies, and outright lies in this book would probably completely ruin your brain if you thought you could trust anyone anymore.
(if: $cunning > 4)[That said, there's the bones of a few good ideas here. ]]
(else:)[It's a fairly respected guide to various magical artifacts and how they work. You're really having trouble working out how half of these gimmicks are supposed to work. Perhaps a more perceptive wizard could make heads and/or tails of it.]Crystal Spyglass: v. good magick for wanton enslayment of creatures aetherial and daemonick
(link-goto: "Put the Book Away", "Read a Book In Your Library")This tome purports to be an exhaustive history of the Universe from the time of the Really Big Explosion to the publication date of the book in the 25th year of the ancient (either: "Blood", "Dark", "Cursed") (either: "War", "Ages", "Times").(unless: (history:) contains "Read The Complete History of History")[Once, long ago, in a cloud of undifferentiated physical particles, one of the particles collided with another particle...]
which collided with another particle...
[[Continue Reading->Read The Complete History of History]]
(link-goto: "Put the Book Away", "Read a Book In Your Library")You are before the magistrate of the council of elders that presides over the magicians, wizards, Undead, and arcane in the whole of the empire.
(if: (history:) contains "Say Hallo to the Semi-Legal Wards Broker")["You purchase black market Damage Wards instead of through imperially-approved Reliquariums?"]The garrett came with this brass contraption, as the previous occupant had died with it in their possession, and no one could be arsed to move the unspeakably heavy thing that occupies a good fifth of your habitable space.
(set: $d to (dm: "foo", 0))
(link-repeat: "Adding to Data Maps")[(set: $d's foo to $d's foo + 1)(replace:?output)[$d]]
|output>[$d]
(set: $a to (a: (dm: "foo", 0)))
(link-repeat: "Adding to Array of Data Maps")[(set: $a to it + (a:(dm: "foo", (random: 0, 9999))))(replace:?output2)[$a]]
|output2>[$a]
(set: $s to (ds: (random: 0,999)))(link-repeat: "Adding to Dataset")[
(set: $s to it + (ds: (random: 0,999)))
(replace:?output3)[$s]]
|output3>[$s]
(🜍|🜏) Inside the coarse sack is lumps of yellow powder that reek of rotten eggs and the Gates of Hell.A chunk of white chalk from the cliffs of a seaside village, composed of the uncountable skeletons of tiny sea creatures from beyond human comprehensible time.(☉) A small wax pouch with small pieces of pure gold.This black lump is technically a liquid, but it flows so slowly at room temperature that it appears to be completely motionless.(☿) A glass vial of quicksilver sold as a single-use quack remedy drink.{(if: $inventory contains "Damage Ward")
[
Your steadfast Damage Ward glows hot and bright for a moment as waves of death lash out at you, and once the danger passes, it becomes once again an inert lump of lead.
(set: $inventory to $inventory - (ds: "Damage Ward"))
(set: $inventory to $inventory + (ds: "Lump of Lead"))
]
(else:)
[
<br/><b>Health - $arg</b>(set: $health to it - $arg)(if: $deathReason is "")[(set: $deathReason to "Health - " + (str:$arg))]
]
(if: $health <= 0)[(goto: "Death")]}
(replace:?clock)[(display: "Tick")(display:"RenderHeader")](display: "Init West Fires")
This neighborhood is known as the West Fires, because it is to the West and it is constantly on fire. The supernatural flames are useful for the various industries in that region.
(for: each _item, ...($neighborhood's locations))[(if: (history:) contains _item and (passage: _item)'s tags contains "bookmark")[(link-goto: _item)
]]
[[Explore the Neighborhood]]
[[Home Again]]
(display: "Contract Status")
(display: "Init South Quarry")
This neighborhood is carved out of a vast nearly cubical deposit of living rock halfway beneath the surface of the Earth. It has an extensive Catacombs(unless: (history:) contains "Entrance to the Catacombs")[, but you've yet to find them].
(for: each _item, ...($neighborhood's locations))[(if: (history:) contains _item and (passage: _item)'s tags contains "bookmark")[(link-goto: _item)
]]
(display: "NavOptions")(display: "Init North Harbor")
This neighborhood is at the edge of the Northern Rift. Rift-ships gently bob at the edge of the Abyss. No one offers contracts out in the open here. If you want a job, you'll have to go the Riftrunner's Guild.
(for: each _item, ...($neighborhood's locations))[(if: (history:) contains _item and (passage: _item)'s tags contains "bookmark")[(link-goto: _item)
]]
(display: "NavOptions")
(display: "Init Eastern Fortress")
This neighborhood is built into the ruins of a fortress of some ancient species that was approximately three times as large as humans. Accomodations have been made for human-sized creatures, including ramps across giant stairsteps and bedrooms converted into apartment blocks.
It is also an effective vault, so all of the City's major banks are here.
(for: each _item, ...($neighborhood's locations))[(if: (history:) contains _item and (passage: _item)'s tags contains "bookmark")[(link-goto: _item)
]]
(display: "NavOptions")
(set: _material to (a: "copper", "gold", "silver", "ash", "iron", "clay", "hardwood", "bone", "antler"))(set: _dieroll to (random: 0, 2))(if: _dieroll is 0)[(either: ..._material) (either: "bracelet", "anklet", "armlet", "torque", "girdle")](else-if: _dieroll is 1)[(either: "ear", "nose", "lip", "cheek", "septum", "conch", "horn") (either: "stud", "ring", "plug", "tusk", "plate")](else-if: _dieroll is 2)[(either: "simple", "intricate", "delicate", "chunky") amulet made of (either: ..._material)]
(for: each _item, "Rattle Bones", "Gnome", "Golem")[(unless: $daemons contains _item)[
(set: $itemName to _item)_item - (link-reveal-goto: "Buy " + _item, "Buy a Daemon")[(set: $itemName to _item)]]]
(display: "NavOptions")
Random, nasty, and cheap! Affordable potions and alchemical components sold by a creature that seems to be a large hat and cloak with many, many satchels.
(if: visits % 2 is 1)[
(set: $marketplace to (shuffled: ...(find: _i where _i's tags contains any of (a: "potion", "reagent"), ...(passages:)))'s (range: 1, 3))(for: each _i, ...$marketplace)[(set: _item to _i's name)(unless: $inventory contains _item)[(set: _cost to 75)(display: "QuickBuy")]]]
(else:)[The broker dashes away before the Magisterium Guards can catch him doing business.]
(display: "NavOptions")Lilah waves one clawed hand over to a display case with two items.
"These are our next-level items, for the maturely departed."
(for: each _item, ...(a: "Slow Clock", "Chameleon Scarf"))[
(unless: $inventory contains _item)[(set: _cost to 170)(display: "QuickBuy")]
]
[[Reliquarium]]
(display: "NavOptions")(if: $ticks % 13 >8)[
You've come at the wrong time of the day for alchemical ingredients. All of the alchemists and artificers have gone home to get deliriously high on their own concoctions.
(unless: $inventory contains "Tincture of Turmeric")
[
You find a nice tincture of turmeric on the ground where the stalls were. Finders = Keepers. QED.
(set: $inventory to it + (ds: "Tincture of Turmeric"))
]
](else:)[(display: "Apothecarium Inventory")
]
(display: "NavOptions")(if: $reputation's publican > 0)[Jonathon, the Publican, greets you with a beaming smile as you enter. Ah! A paying customer!]
(else:)[The publican makes brief eye contact with you as you enter their establishment and then returns to polishing a glass with a threadbare but clean rag.]
[[Buy a Round from The Publican]]
(display: "NavOptions")The books in this store are incredibly worn and fuzzy. They've been through so many owners that most are virtually palimpsest.
(unless: $inventory contains "Percepção de Cristal")[
One appears to still be legible:
(if: $perception < 7)
[(set: _item to "Percepção de Cristal")(set: _cost to 150)(display: "QuickBuy")]
(else:)[(set: _item to "Percepção de Cristal")(set: _cost to 20)(display: "QuickBuy")]]
(unless: $inventory contains "Grimoire Alchemickal")[
One appears to still be legible:
(if: $perception < 7)
[(set: _item to "Grimoire Alchemickal")(set: _cost to 150)(display: "QuickBuy")]
(else:)[(set: _item to "Grimoire Alchemickal")(set: _cost to 20)(display: "QuickBuy")]]
(unless: $inventory contains "Ex Nobilis Aetherium")[
One appears to still be legible:
(if: $perception < 7)
[(set: _item to "Ex Nobilis Aetherium")(set: _cost to 150)(display: "QuickBuy")]
(else:)[(set: _item to "")(set: _cost to 20)(display: "QuickBuy")]]
(display: "NavOptions")
Consuela greets you at the front of the store.
"Ah, yes, a discerning customer who recognizes the superiority of our merchandise." As she adjusts her massive and ornate wig, she adds, "Our prices may have risen recently due to our increasing popularity."
(set: $goldCost to 350)
(for: each _item, ...(a: "Scrying Stone", "Potion Automixer",
, "Neighborhood Door to Eastern Fortress"))[(if: $inventory contains _item)[(set: $goldCost to (floor: it * 1.5))]]
(for: each _item, ...(a: "Scrying Stone", "Potion Automixer",
, "Neighborhood Door to Eastern Fortress"))[(unless: $inventory contains _item)[(link-reveal-goto: "Examine the " + _item, "Furniture For Sale")[(set: $itemName to _item)]
]]
(display: "NavOptions")Fortuna is an animated and sentient fortune teller novelty booth. She eats and smokes cigarettes constantly.
"I want some of your gold, but I won't tell you how much. In exchange, I'll give you access to a future of your choosing!"
[[Lady Fortuna's Predictions]]
(display: "NavOptions")(set: $arg to -(random: 0, $gold))(display: "UpdateGold")
(set: _possibles to (find: _item where _item's tags contains "event", ...(passages:)))
(for: each _i, ...(shuffled: ..._possibles)'s (range: 1, (min: _possibles's length, $cunning + $perception)))[
(link-goto: _i's name)
]
(if: $gold < 5)[You don't have two coppers to rub together, so you shan't be having any beer at all.]
(else:)[You buy a draught of some weak, overpriced beer. It's fine stuff, it's just not strong enough to get drunk off of. The Publican is in the business of trading information, not quality quaff. The sale of alcohol is merely a cover for sale of information.
(set: $arg to -5)(display: "UpdateGold")(set: $reputation's publican to it + 1)
(either: "The publican looks you in the eye and says", "The publican mutters as they polish the bar with a cloth", "The publican talks to a patron next to you"), (if: $reputation's publican + $reputation's ($neighborhood's name) > 11)[
(set: _roll to (random: 0, 6))
(if: _roll > 3)[Got some useful places here in town:
(set: _locations to (find: _item where not ((history:) contains _item and (passage: _item)'s tags contains "bookmark") and (passage: _item)'s tags contains "location", ...($neighborhood's locations)))
(if: _locations's length > 0)[
(if: _locations's length is 1)[(link-goto: _locations's 1st)]
(else:)[
(for: each _i, ...((shuffled: ..._locations)'s (range: 1, (min: 3, (ceil: $perception/2)))))[
(link-goto: _i)<br/><br/>
]]](else:)[No, I guess you'd already seen that, too.]
]
(else-if: _roll is 3)[(display: "Interesting Rumors")
]
(else:)[
(if: $reputation's ($neighborhood's name) < 5)[(set: $reputationTag to "brass-level")]
(else-if: $reputation's ($neighborhood's name) < 15)[(set: $reputationTag to "silver-level")]
(else:)[(set: $reputationTag to "gold-level")]
(if: $currentContract is "")[
(display: "GenerateChar")(set: $clientDescription to $char)
(set: $potentialContracts to (find: _item where (not ((passage: _item)'s tags contains "unique") or not ((history:) contains _item)) and (passage: _item)'s tags contains all of (a: "contract", $reputationTag), ...($neighborhood's contracts)))
(if: $potentialContracts's length > 0)[People have been asking around for ambitious wizards looking for work...<br/>
(for: each _i, ...((shuffled: ...$potentialContracts)'s (range: 1, (min: 3, (ceil: $perception/2)))))[
(link-goto: _i)<br/><br/>
]](else:)[(display: "Baseless Rumors")]
]
]
](else:)[(display: "Baseless Rumors")]
]
[[Buy a Round from The Publican]]
(display: "NavOptions")
[[Sip a Dainty Liquer in Madam Shireen's Salon]]
(display: "NavOptions")...(display: "Baseless Rumors")...
[[Sip a Dainty Liquer in Madam Shireen's Salon]]
(display: "NavOptions")
The Donec Inferos, the Department of the Infernal, has its majestic halls here in Upper Castlerock.
(display: "NavOptions")Random, semilegal items sold by a mobile heap of trinkets, knickknacks, wagon wheels, and presumably an actual person as wiry, grey arms do reach out with items for sale and to receive payment, although not always the stereotypical number we associate with humanoids.
(if: visits % 2 is 1)[
{(set: $marketplace to (shuffled: "Damage Ward", "Noble Cowl", "Mystery Draught", "Lodestone", "Pocket Lint")'s (a: 1, 2))}
(for: each _item, ...$marketplace)[(unless: $inventory contains _item)[
(set: _cost to 10 + (random: 0, 6) * 5)(display: "QuickBuy")
]]
(unless: $marketplace's length >= 1)[Oh, I've got something around here you might like. Hold on, hold on!
[[Rattlecart the Tinker]]
]](else:)[They've nothing of interest for you today.]
(display: "NavOptions")
(display: "Tick")Here is the entrace to the Lower Depths, the Catacomb city beneath the City.
[[Catacombs]]
[[South Quarry]]
[[Home Again]] "Please, enter the chamber and be renewed!" a strangely well-preserved proprietor invokes.
Vivification chamber as a service.
(if: $gold >= 30)[(link-reveal-goto: "Use Vivification Chamber")[(set: $gold to it - 30)]]
(display: "NavOptions")Once a vault built into the mountain, used to hide away the most dangerous artifacts in the known worlds, now a luxurious shopping plaza.
(for: each _item, ...((shuffled: "Sharpened Teeth", "Vampir Krenk", "Badge of Shame", "Mark of the Goblins Lvl 1", "Loaded Dice", "Hell Money", "Shadow Lantern", "Everfull Flask", "Deck of Cards", "Chest Key")'s (range: 1, 3)))[
(unless: $inventory contains _item)[(set: _cost to 35)(display: "QuickBuy")]
]
(display: "NavOptions")The most precious artifact in the world is housed here, behind a garrison of wizards, soldiers, and daemons.
(set: _item to "Aleph")(set: _cost to 1)(display: "QuickBuy")
[[Begone!->Home Again]]
Buy scrolls by the stone.
These scrolls are brought in on rift ships from distant realms.
Sadly, they are frequently in completely unreadable languages.
Suitable for burning or the guest W.C.
1 coin to buy a try!
Let's take our chances and have some fun.
Maybe, just maybe, we'll find something very valuable.<br/>
(link-repeat: "Buy A Batch of Bulk Scrolls")[(replace:?output)[
(if: $gold > 1)[(set: $arg to -1)(display: "UpdateGold")]
(unless: (random: 0, 20) > 0 or $inventory contains "The Complete History of Your Time Since Moving to the City")
[You find an incredible book in the pile of garbage.
(set: $arg to "The Complete History of Your Time Since Moving to the City")(display: "GetItem")
(replace:?output)["The Complete History of Your Time Since Moving to the City"
(display: "The Complete History of Your Time Since Moving to the City")
]](else:)[(unless: (random: 0, 13) is 0)[(set: $arg to "Blank Scroll")(display: "GetItem")(display: "Random Bulk Scroll")](else:)[(set: $arg to "Map Fragment")(display: "GetItem")]]]]
|output>[]
(display: "NavOptions")(if: $inventory contains "Passage Ticket")
[{
(display: "Reset Rift Journey")
(set: $inventory to it - (ds: "Passage Ticket"))}
The scrub captain waves you through the gate and onto an awaiting sail ship.
[[Into the Rift]]
]
(else:)
[
The scrub captain at the gate refuses you entry. "No entry without a Passage Ticket," they cry. "Go to the Riftrunner's Guild and get a Passage Ticket."
[[Riftrunner's Guild]]
]
(display: "NavOptions")(set: $clientGimmeItem to (either: "Damage Ward", "Love Potion", "Shadow Threads", "Ethereal Threads", "Witch Bottle"))
Your client desires a $clientGimmeItem.
(set: $encounterPayout to (min: (10 * (random: 0, 5) + 10 * $reputation's ($neighborhood's name)), 150))
They are willing to pay you $encounterPayout gold coins.
|input>[
(if: $inventory contains $clientGimmeItem)[
(link-reveal: "I Have One Right Here!")[(replace:?input)[(set: $currentContract to (passage:)'s name)You hand over the $clientGimmeItem, and they hand over the cash. No hassles.(set: $inventory to it - (ds: $clientGimmeItem))
(set: $arg to 1)(display: "UpdateReputation")
(set: $arg to $encounterPayout)(display: "UpdateGold")
(display: "Contract Fulfilled")]
]]
[[Reject->Explore the Neighborhood]]
]A single dose potion of healing is designed to knit your tissues back together. There's a nonzero chance that it will knit them together too well and prevent your organs from functioning or your blood from flowing.
(if: $inventory contains "Healing Draught")[ (link-reveal: "Use Healing Draught")[(display: "Use Healing Draught")] ](if: ($ticks % $cunning) is 0)[(set: $health to 0)(set: $deathReason to "Your organs sieze up, essentially strangling everything in your body simultaneously. The triumphant never eat lotuses.")(goto: "Death")]
(else:)[(set: $health to $maxHealth + 1)(set: $inventory to it - (ds: "Healing Draught"))You toss back the tiny potion and feel an immediate warming sensation flush through you. You feel even better than you normally do. You'd quite fancy another.](display: "UpdateClock")
Some kind of patent medicine, a "nootropic", guaranteed to give you enhanced cunning! Unfortunately, one possible side effect is temporary death syndrome.
(if: $inventory contains "Cunning Draught")[
(link-reveal: "Use Cunning Draught")[(display: "Use Cunning Draught")]](set: $inventory to it - (ds: "Cunning Draught"))You toss back the tiny potion and feel an immediate wave of cool clarity resolve your brain meat.
(if: ($ticks % $cunning) is 0)[Instead of doing anything useful, you wasted the brief moment of clarity contemplating your belly lint.
(set: $arg to -1)(display: "UpdateCunning")
](else:)[(set: $arg to 4)(display: "UpdateCunning")](display: "UpdateClock")A potion to improve perception.
(if: $inventory contains "Stimulating Draught")[
(link-reveal: "Use Stimulating Draught")[(display: "Use Stimulating Draught")]](if: ($ticks % $cunning) is 0)[(set: $perception to 0)Oh, goodness, you're blind.]
(else:)[(set: $perception to $perception + 4)(set: $inventory to it - (ds: "Stimulating Draught"))You toss back the tiny potion and feel as if you are suddenly aware of the very threads of energy flowing through the air.]
(display: "UpdateClock")A crystalline jar of swirling greenish gas.A single dose of powerful sedative for creatures with lungs and blood.Double-click this passage to edit it.Double-click this passage to edit it.Late game item that makes money irrelevant.A portal to every possible location in the Unity.
(display: "Init Upper Castlerock")
If the Noble City were the Emperor, Upper Castlerock would be his mitre crown. The rocky spire hovers, slowly rotating, held aloft by magic or powerful electromagnets or enslaved Ifriti (or maybe all three). The gates are well-guarded and relatively inaccessible. You will need a Gate Pass and a Rift Ship or Ferry to access it.
Uninvited guests are given a short walk off the ramparts back to the City below.
(for: each _item, ...($neighborhood's locations))[(if: (history:) contains _item and (passage: _item)'s tags contains "bookmark")[(link-goto: _item)
]]
[[Board the Upper Castlerock Tram]]
(if: $gold > 99999 or $inventory contains "Noble Cowl")[ [[Explore the Neighborhood]] ](else:)[This is a gated community. It's at least partially gated by money. Of which, you don't have enough.
[[Home Again]]
]
(display: "Init Lower Depths")
The city below the city is both grim and artful. The albino, spooky, and the Undead live here. They have chosen not to hide among the Abovedwellers but to develop a full society of their own within the light of reflected and stored moonlight in crystals. Lighting their city entirely with magical moonlight crystals was chosen purely for aesthetic effect. It's actually quite inefficient but stunningly beautiful.
(for: each _item, ...($neighborhood's locations))[(if: (history:) contains _item and (passage: _item)'s tags contains "bookmark")[(link-goto: _item)
]]
(display: "NavOptions")
"Do you have the $clientGimmeItem?" asks the (set: _char to $clientDescription)(display: "DescribeChar").
(if: $inventory contains $clientGimmeItem)[(link-goto: "Hand It Over", "Next Encounter")]
[[Home Again]]
{(either: "In front of a ", "Sat in front of a ", "Hanging out near a ")(display: "QuickSetting") a (if: (random: 0,1)>0)[ (either: "lady", "gentleman", "creature") of (either: (either: "great", "small") + " size", (either: "dark", "ruddy", "pale", "blue", "translucent", "scaly", "tattooed") + " skin") (either: "wearing", "with", "in") a (display: "Random Jewelry") (either: " beckons you into their abode."," waves you over to their shop.", "regards you with indifference.", " dozes against the wall."," chats with their twin."," sips at a disreputable-looking pipe.", " glares at you from across the road but takes no action.")](else:)[(display: "QuickChar")(either: " beckons you into their abode."," waves you over to their shop.", "regards you with indifference.", " dozes against the wall."," chats with their twin."," sips at a disreputable-looking pipe.", " glares at you from across the road but takes no action.", " roughly pushes you aside as it passes by.")]}(either: "The docks are a frigid hive of activity. At various altitudes above and below the sea are the assorted vehicles of many nations. Brisk trade in transdimensional assets occurs down at the Open Air Marketplace. For those with a more adventurous bent, there is the Riftrunner's Guild.",
"A " + (either: "Tlinkit", "Norse", "Ainu", "Magyar", "Khazakh") + " trade delegation " + (either: "hails to you", "jeers at you", "regards you passively") + " from their " + (either: "longboats", "canoes", "wooly mammoths", "elephant seals", "dolphins", "whales") +".", "Apparently, you can scrimshaw just about anything.")
(either: "Upstanding fortress dwellers.",
"You see a group wearing loincloths or loose tunics playing a game played with stones on a board scratched into stones of the sidewalk.",
"A gaggle of youngsters scampers by adorned in colorful ritual clothes.",
"A frothing religious zealot writhes around on the ground, speaking in tongues. If you were to dip down and listen, you'd make out the sound of yesterday's stock market prices.",
((either: "Gigantic birds", "Broad-headed ruminants", "Long-legged pachyderms", "Stocky equines") + ", " + (either: "about the size of an ostrich", "about the size of a Buick", "about the size of a camel", "about the size of a mammoth") + ", " + (either: "carrying packs of dry goods.", "laden with oil for the temple", "with saddlebags full of anthracite and frankincense")),
"Monastic cohort with " + (either: "diagrammatic", "elaborate", "simple") + " tonsures " + (either: "examing lost scrolls written in Low Enochian.",
"sifting through potsherds engraved with elaborate geometric diagrams.",
"burning incense and chanting prayers in Pig Latin.",
"sprinkling water on the dusty street and reciting the Ineffable Names of the Void.",
"staring directly at the giant eyeball that constantly watches everyone but we never talk about."),
"a troupe of veil dancers with flaming batons",
"whirling dervishes each with a Damascene sabre balanced on top of their heads",
"street performers demonstrating balance and contortion to a radical degree",
"a geometric swarm of very small mekannin insects",
"a team of laborers dragging a cart overloaded with bales of alfalfa",
"reams of parchment, piles of unopened crates, reams of silk, satin, lace, bubble wrap, fishnet",
"remaindered shellac records of every permutation of " + (either: "The Ramones's Blitzkrieg Bop.", "Ode To Joy."),
"children playing knucklebones on top of a half-wall",
"a tattoist has a small pop-up stand near an ornamental manticore sculpture a quick scan of their wares reveals weak toy charms and ineffectual curses.",
"A street merchant is schlepping arthropods on a stick roasted in a brazier full of anthracite",
"a puppet maker assembling sinew and bone into terrifying homunculi",
"a " + (either: ...$races ) + " is currently getting their " +(either: "nostril", "septum", "lip", "cheek", "bridge", "eyebrow", "forehead", "earlobe", "conch", "upper ear", "tongue", "sternum", "chin", "cheekbone", "finger webbing") + " pierced with a " + (either: "tiny ", "giant ", "")+" "+(either: "spike", "ring", "barbell", "bone", "wooden needle") + ".",
"Two red-faced merchants are screaming at each other over imagined slights. One wears a khaffia, and the other wears a cybernetic neural interface, but they are as like siblings.",
"A group of off-duty mercenaries briefly make eye contact with you, but quickly wave you away.
\"We're not taking any new jobs right now, friend. Maybe later.\"",
"Old folk are doing the laundry and hanging it to dry on rebar jutting from a wall that is surely a ruined freeway overpass.",
"A teacher is using the side of a building as a grand chalk board. The gaggle of children arrayed before him are serious and attentive."
)Wonderful South Quarry denizens(either: "The spooky and gloomy citizens of the True City Beneath The City.", "Great crystal pillars loom overhead, diffusing the gloomy moonlight.", "A few bright faces peer out at you from behind crowds of shambling Undead.", "A shambler in front of you suddenly collapses Truly Dead.", "When you first came to this place, you were as fresh as a babe. Now, you feel like you fit in a little too well.")Elegant aristocrats.You see (set: _dieroll to (random: 0, 2))(if: _dieroll is 0)[(display: "Display Random Color Person") offering to sell a (either: "live", "roast", "metallic") (either: "homunculus", "pixie", "dragon egg") to a (display: "Display Random Color Person")](else-if: _dieroll is 1)[(display: "Display Random Color Person") is haggling with a (either: "furious", "stone-faced", "laughing", "bored") (display: "Display Random Color Person")]
(else-if: _dieroll is 2)[(either: "smiling", "bored", "dozing", "aggressive") (display: "Display Random Color Person") hawking their (either: "wares", "false idols", "scrolls", "fish and chips")].This mysterious potion's color is constantly changing.
(if: $inventory contains "Mystery Draught")[ [[Use Mystery Draught]]]A cloaked figure approaches you with an awkward gait and an outstretched hand. "Please, I need an artificer. It's to save my life!"
(set: $encounterPayout to (min: (50 + 5 * $reputation's ($neighborhood's name)), 450))
I'll offer you $encounterPayout coins for your trouble.
The $clientDescription asks if you are a skilled artificer. They have an enchantment designed that they need skilled hands to assemble. Their own are weak and twisted and endlessly shake.
"I desire an enchantment to be cast upon me by a skilled artificer. Are you cunning enough?" they ask.
|input>[
(if: $cunning > 4)["You are cunning enough, indeed. Will you assist me?"
(link-reveal: "Accept")[ (replace:?input)[
(set: $currentContract to (passage:)'s name)
(set: $clientGimmeItem to "Ink of Enchantment")
(set: $encounterStack to (a: "Encounter Gimme", "Fulfilled: Mask of Memory"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 4)
"What I need you to acquire is some $clientGimmeItem", they ask.
(if: $inventory contains $clientGimmeItem)[[[I Have One Right Here!->Encounter]]](else:)
[(link-goto: "I'll Go Round One Up", (history:)'s last)]]]
](else:)["No. You are not. Go refresh yourself and come back when you're ready."]
[[Reject->Explore the Neighborhood]] ]You bring them the $clientGimmeItem, and they pass you a diagram on lambskin of the design they want you to tattoo on their forehead.
You perform the work well, and they reward you with the remaining Ink as well as 150 gold coins.
(if: $perception < $enchantmentHidden)[When you look up from the bag of gold, your client has disappeared.]
(else:)[Before your very eyes, your client reaches up to their mask-like countenance. They grab their face like it was mask, as if it had always been a mask. A different face is beneath. A younger face.
Now, their body is no longer plagued and bent. They are suddenly lithe and supple.
They are an Immortal, and you performed the enchantment. You should be able to reproduce it. If only you could remember the design.]
(set: $inventory to it + (ds: "Ink of Enchantment"))
(set: $encounterPayout to it + 150)
(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")The aetherial substance used by mere mortals to physically bind fields of magic to objects and space. Typically used to create traps, energy sources, prisons, and killing machines. Also has some scholarly value, which is the only reason it's allowed on the market at all.A greedy creature made of fire that only loves to burn. Becomes deliriously elated while devouring rich, delicious coal.(if: $enemyType is "Fire Ghost")
[
The two Fire Ghosts merge and become a larger Fire Ghost!
(set: $enemyHealth to 6)
(set: $daemons to it - (ds: "Fire Ghost"))
]
(else-if: $enemyType is "fire")
[
The daemon refuses to attack!
(set: _dieroll to (random: 0, 6))
(if: $inventory contains "Rack of Torment")[(set: _dieroll to it - 1)]
(if: _dieroll > 3)[The daemon takes the opportunity to scarper!(set: $daemons to it - (ds: "Fire Ghost"))
]]
(else:)
[
(set: _dieroll to (random: 0, 6))
(if: $inventory contains "Rack of Torment")[(set: _dieroll to it - 1)]
(if: _dieroll > 3)[The daemon takes the opportunity to scarper!(set: $daemons to it - (ds: "Fire Ghost"))
]
(else:)[The daemon lashes out at the enemy! You pull it back into its Soul Jar for next time. (set: $arg to 2 + (random: -1,1))(display: "DealDamage")
]
]Chapter I:
(for: each _item, ...(history:))[_item
]
(link-goto: "Put the Book Away", "Read a Book In Your Library")A pamphlet entitled "The Complete History of Your Time Since Moving to the City". From a cursory glance, it appears to be completely accurate in a somewhat workmanlike manner, more like a weird accounting of the details of your life than any kind of real narrative.
The strange fibers left behind if a daemon is slain in certain ways, such as with a magical weapon. Known to be of some use in alchemical craft.The energized threads of magical energy that remain if the skein of an enchantment is unwoven without breaking any loops. May also be held in this form prior to casting an echantment, such as when needing to quickly set a trap enchantment while being pursued.A minor noble's $clientDescription assistant approaches you with a hefty sack of gold coins to proxy in a duel of honor to the death.
(set: $encounterPayout to (min: (100 + 5 * $reputation's ($neighborhood's name)), 450))
"I'll offer you $encounterPayout coins for your trouble. Right away, right away!"
|input>[(link-reveal: "Accept")[
(set: $currentContract to (passage:)'s name)(replace:?input)[
It happens from time to time that some City noble picks a fight with someone they really shouldn't have and gets in over their heads. For example, you loudly brag that you could defeat another noble in a duel, and they happened to overhear you in front of their entire retinue. They have, of course, challenged you to a duel to the death that you accepted, because you are apparently a suicidal idiot.
However, a loophole in the Imperial Law allows you to have a champion as a proxy. So, you've been hired to be that champion/suicidal idiot fighting against a different proxy wizard.
(set: $encounterStack to (a: "Encounter: Wizard Duel", "Fulfilled: Duel of Honor"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 4)
(set: $contractCancelledOnDeath to 1)
[[FIGHT!->Encounter]]
]]
[[Reject->Explore the Neighborhood]] ]You step over the smoldering body of your slain opponent and approach the noble for your pay. They are too afraid of you to attempt any chicanery, so you end up with the whole amount plus a gratuity.
(set: $encounterPayout to it + 250)
(set: $inventory to it + (ds: "Noble Cowl"))
(set: $arg to 3)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")An accessory that signifies you are allowed to walk the streets in the Upper Castlerock. They are hard to come by.
If you are of the class of people who are, perhaps not Nobles, but are allowed to live in Upper Castlerock *with* the Nobles.A (set: _char to $clientDescription)(display: "DescribeChar") hands you an application for the Daemon cull that is occurring right now. Any aethereal creatures you can trap or kill in a single day.
(set: $encounterPayout to 0)
"You'll get about 3 coins for every beast you bag starting now," the client explains. "But there's a sliding scale to reward culling several daemons in a row. Performance bonuses from the City administration."
|input>[
(replace:?input)[
(set: $currentContract to (passage:)'s name)
Occasionally, daemons will rise up and start attacking mortals en masse. No mortal is sure why this happens, and daemons won't explain. They follow their own systems. It is coincidence that our worlds intersect.
Wizards will be temporarily conscripted to trap and cull aethereals in a single area for a span of a single day.
{
(set: $encounterStack to (a: "Call Off the Hunt", "Encounter Select Random Daemon Encounter", "EncounterRewind1or2"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 4)
(set: $contractCancelledOnDeath to 1)}
[[Tally Ho!->Encounter]]]
[[Reject->Explore the Neighborhood]] ](set: $encounterIndex to it - (random: 1, 2))
(goto: "Encounter")(goto: (either: "Encounter: Solar Spark", "Encounter: Fire Ghost", "Encounter: Living Shadow", "Encounter: Rattle Bones"))(set: $enemyHealth to 5)(set: $enemyType to "Wizard")(set: $enemyElementType to (either: "Shadow", "Fire", "Bone", "Holy", "Stone", "Water", "Air", "Poison", "Curse", "Rift"))
Your opponent is another wizard for hire, a $enemyElementType mage. You will fight until one of you succumbs. The loser's fate is then up to the winner's discretion.
[[Wizard Duel: Grant Mercy]]
[[Wizard Duel: Finish Them]]
[[Wizard Duel: Beg for Mercy]]
[[Wizard Duel: Succumb]]A Living Shadow slips a loop of its shadow matter around your neck. You have but a few moments...
{(set: $enemyType to "Living Shadow")
(set: $deathReason to "The strangulating effects of the Living Shadow's tentacles don't seem to affect your oxygen or bloodflow but something apparently even more essential, until your body is an empty shell that flops to the ground.")
(set: $enemyHealth to 3)
(set: $enemyElementType to "shadow")
(set: $options to (a: "Blood Sacrifice"))
(if: $inventory contains "Slice of Silver")[ (set: $options to $options + (a: "Bribe Daemon"))
]
(if: $inventory contains "Cellar of Salt" and (history:) contains "Read Ex Nobilis Aetherium" and $cunning > 5)[ (set: $options to $options + (a: "Capture Living Shadow"))
]
}
(display: "Encounter Daemon")
You quickly dash out a design on the ground that is intended to bind the shadow within.
(if: (random: 0, 6) is 0)[You use up the last of your Cellar of Salt doing it. (set: $inventory to it - (ds: "Cellar of Salt"))]
(if: $inventory contains "Soul Jar")[
You attempt to capture it with your Soul jar,
(if: $cunning > 3)[ and succeed in entrapping a Living Shadow.
(set: $daemons to it + (ds: "Living Shadow"))
(set: $inventory to it - (ds: "Soul Jar")) ]
(else:)[ but you are unable to predict its movements, and it slips between some cracks in the pavement.]
]
(else:)[It slips between some cracks in the pavement.]
[[Next Encounter]] You turn in your card to the (print: $clientDescription's profession).
(set: $encounterPayout to (pow: 2, $encounterLength))
They hand you (print: $encounterPayout) gold coins and point the way out.
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")<br/><b>Damage + $arg</b>
{(set: $enemyHealth to it - $arg)(if: $enemyHealth <= 0)[(replace:?input)[You've defeated your enemy!(set: $deathReason to "")(set: $enemyType to "")]](else:)[Your enemy yet lives.]}$playerHistory
You were all of these things.
But now you reign over the City as the freshly-minted Magisterium$playerHistory
You were all of these things.
And now you are one of the Immortals who lives in the cracks between the worlds of the Mortals.This beast is an assemblage of skeletons, goat skulls, yarrow sticks, and scratched old coins.
When it gets riled up, it begins to spin around in a vortex.
It gets far more dangerous if it catches fire.
It cannot withstand compasses. They make it impossible for it to move.(set: $dieroll to (random: 0, 6) - ((count: (a: ...$inventory), "Rack of Torment", "Compass of Many Places", "Lodestone")))
(if: $dieroll > 4)[The daemon takes the opportunity to scarper!(set: $daemons to it - (ds: "Rattle Bones"))
]
(else:)[The daemon lashes out at the enemy! You pull it back into its Soul Jar for next time. (set: $arg to 1)(display: "DealDamage")
(if: $enemyElementType is "fire")[Contact with its fiery foe has engulfed it in flames. It shrivels into blackened ruins and ash.(set: $daemons to it - (ds: "Rattle Bones"))]
]This artifact tells you the relative direction to your least dangerous location in the current multiversal coordinates... and the most.(unless: $inventory contains _item)[_item
(display: _item)(set: _i1 to _item)(set: _i2 to _cost) It will cost you _i2 gold.(if: $gold >= _i2)[ You can afford it. (link-reveal-goto: "Buy It", (passage:)'s name)[(set: $inventory to it + (ds: _i1))(set: $gold to it - _i2)]
](else:)[ Quite a bit too rich for your blood.]]{(set: $phylacteryCharges to 10)
(set: $gold to 1337)
(set: $reputation to (dm: "West Fires", 0, "South Quarry", 0, "North Harbor", 0, "Eastern Fortress", 0, "Lower Depths", 0, "Upper Castlerock", 0, "publican", -1, "House Guild Mechanika", 0))
(set: $daemons to (ds: "Living Shadow" ))
(set: $inventory to (ds: "Everfull Flask", "Ethereal Threads", "Blank Scroll", "Ink of Enchantment", "Maintenance Key", "Map Fragment", "Treasure Map", "Damage Ward", "Ex Nobilis Aetherium", "Crystal Prism"))
(set: $storage to (ds:))
(set: $macroCasterPlates to (a: "Use Ward Press", "Capture Fire Ghost", "Use Healing Draught"))
(set: $mail to (a:
(dm: "sender", "No one",
"message", "My dearest, For you I have found a copy of your favorite childhood book. Let it remind you of happier days. <The Signature has been obliterated with tears.>",
"attachment", "A Young Wizard's Primer"
)
))
(set: $requests to (dm:))
(set: $scheduledEvents to (dm:))
(set: $maxPerception to 2)
(set: $perception to $maxPerception)
(set: $maxCunning to 5)
(set: $cunning to $maxCunning)
(set: $maxHealth to 2)
(set: $health to $maxHealth)
(set: $client to (dm:))
(set: $clientDescription to "")
(set: $currentContract to "")
(set: $currentContractStatus to 0)
(set: $encounterStack to (a:))
(set: $encounterIndex to 0)
(set: $encounterPayout to 0)
(set: $encounterLength to 0)
(set: $encounterTimeLimit to 15)
(set: $encounterLocation to "")
(set: $riftMaxSupplies to 200)
(set: $riftMaxCrew to 1)
(set: $riftMaxTreasure to 500)
(set: $riftSupplies to -20)
(set: $riftCrew to 10)
(set: $riftDistance to 0)
(set: $riftTripDistance to 9999999)
(set: $riftTreasure to 0)
(set: $riftCommand to -1)
(set: $riftNextJourney to "")
(set: $riftDirection to 1)
(set: $miningCommand to 0)
(set: $miningCrew to 0)
(set: $miningWage to 0)
(set: $miningDistance to 0)
(set: $miningEvent to "")
(set: $miningEvents to (a:))
(set: $miningDanger to 0)
(set: $forayStack to (a:))
(set: $forayExploration to 0)
(set: $forayCommand to 0)
(set: $forayCrew to 0)
(set: $labyrinthStack to (a:))
(set: $flaskType to "Mystery Draught")
(set: $danger to 1)
(set: $rumors to (ds:))
(set: $scryingStoneCooldown to -13)
(set: _roll to (either: "fire", "earth", "water", "air"))
(if: _roll is "fire")[
(set: $inventory to it + (ds: "Neighborhood Door to West Fires"))
(set: $element to "Fire")
(display: "Init West Fires")]
(else-if: _roll is "earth")[(set: $inventory to it + (ds: "Neighborhood Door to South Quarry"))
(set: $element to "Earth")
(display: "Init South Quarry")]
(else-if: _roll is "water")[
(set: $inventory to it + (ds: "Neighborhood Door to North Harbor"))
(set: $element to "Water")
(display: "Init North Harbor")]
(else-if: _roll is "air")[
(set: $inventory to it + (ds: "Neighborhood Door to Eastern Fortress"))
(set: $element to "Air")
(display: "Init Eastern Fortress")]}{(display: "Tick")}
(display: $neighborhood's name + " Color")
(set: _reputationTag to "brass-level")
{(set: _availableContracts to (find: _item where not ((passage: _item)'s tags contains "unique") or not ((history:) contains _item and (passage: _item)'s tags contains "contract"), ...($neighborhood's contracts)))
(set: _roll to (random: 0, 10))}
(if: _availableContracts's length > 0 and $currentContract is "" and _roll < 3)[(set: _potentialContract to (either: ..._availableContracts))
{(display: "GenerateChar")(set: $clientDescription to $char)(set: _char to $char)}
<br/>
(display: (text: ...(a: "Description ", _potentialContract)))
(link-goto: "Accept Contract", _potentialContract)
(display: "NavOptions")
](else-if: _roll < 6)[Something happens!
(goto: (either: ...($neighborhood's events)))](else:)[
(either: "You happen across something interesting...", "You unearth a hidden secret of the market...", "You hadn't seen this here before...")
(set: _locations to (find: _item where not ((history:) contains _item and (passage: _item)'s tags contains "bookmark") and (passage: _item)'s tags contains "location", ...($neighborhood's locations)))
(if: _locations's length > 0)[(link-goto: (either: ..._locations))](else:)[No, I guess you'd already seen that, too.]
(display: "NavOptions") ]
The Riftrunner's Guild works out of a ramshackle cabin that acts as a stile at the fence separating North Harbor proper from the Riftport where all of the flying sail ships are moored and anchored.
Tickets for Dockyard can only be accomplished by passage through the cabin.
(set: _item to "Passage Ticket")(set: _cost to 10000)(display: "QuickBuy")
(if: $inventory contains "Passage Ticket")[ [[Dockyard]] ]
You can also hire yourself out as a Riftrunner, if you fancy a more rugged journey.
(unless: $inventory contains "Riftrunner's Badge")[
[[Register for the Riftrunner's Guild]]
](else:)[
(set: $riftCommand to 0)
[[Riftrunner's Orientation]]
(if: (history:) contains "Riftrunner's Orientation")[ [[Into the Rift]] ]
]
(display: "NavOptions")A woman with a large silver lip plug and a network of blue lines tattooed on all of her available surfaces scans you up and down with a cruelly appraising eye.
(if: $inventory contains "Riftrunner's Badge")[Rita clicks her sharpened teeth together menacingly. "No, I can't take *off* the badge. You wear it with pride until the end."](else:)[
(if: $health < 4)[She sneers, exposing teeth filed to points. "Why don't you come back when you've gotten a little meat on your bones?" She points the way out.](else:)["Welcome to the Riftrunner's Guild! Let's get you signed up!" she bellows. "I'm the local sea hag, Rita. It's my job to inscribe the cursemark that allows you to travel into the rift."
(set: _item to "Riftrunner's Badge")(set: _cost to 0)(display: "QuickBuy")]]
[[Riftrunner's Guild]]
(display: "NavOptions")(if: (random: 0,2) > 1)[
(either: ...$sizes) (either: ...$genders) (either: ...$races) with (either: ...$clothingColors) (either: ...$clothingMaterials) (either: ...$clothingTypes) and (either: ((either: ...$adornmentMaterials), (either: ...$adornmentTypes)), (either: ...$hairstyles))
](else-if: (random: 0,2) > 0)[
(either: ((either: ...$sizes) + " " + (either: ...$genders)), ((either: ...$races) + " " + (either: ...$genders)), ((either: ...$sizes) + " " + (either: ...$races)), ((either: ...$sizes) + " " + (either: ...$races) + " " + (either: ...$genders))) with (either: ...$clothingColors) (either: ...$clothingMaterials) (either: ...$clothingTypes) and (either: ((either: ...$adornmentMaterials) + " " + (either: "lip", "ear", "nose", "cheek") + " " + (either: ...$adornmentTypes) + "s"),
("a(n) " + (either: ...$adornmentMaterials) + " " + (either: "lip", "ear", "nose", "cheek") + " " + (either: ...$adornmentTypes)),
(either: ...$hairstyles))
](else:)[(display: "GenerateChar")(set: _char to $char)(display: "DescribeChar")]{(set: $char to
(dm: "size", (either: ...$sizes),
"gender", (either: ...$genders),
"race", (either: ...$races),
"skinColor", (either: ...$skinColors),
"skinType", (either: ...$skinTypes),
"hairstyle", (either: ...$hairstyles),
"clothingMaterial", (either: ...$clothingMaterials),
"clothingColor", (either: ...$clothingColors),
"clothingType", (either: ...$clothingTypes),
"adornmentMaterial", (either: ...$adornmentMaterials),
"adornmentType", (either: "lip", "ear", "upper ear", "nose", "septum", "cheek", "neck", "wrist", "upper arm", "ankle") + " " + (either: ...$adornmentTypes),
"profession", (either: ...$professions)))
}{(set: _generalDescription to (either: ((_char's size) + " " + (_char's gender)), ((_char's race) + " " + (_char's gender)), ((_char's size) + " " + (_char's race)), ((_char's size) + " " + (_char's race) + " " + (_char's gender))))
(set: _skinDescription to (either: ((_char's skinType) + " " + (_char's skinColor)), (_char's skinColor), (_char's skinType))+"-skinned")
(set: _adornmentDescription to (either: "a "+(_char's adornmentMaterial)+" "+(_char's adornmentType), (_char's adornmentMaterial)+" "+(_char's adornmentType)+"s"))
(set: _clothingDescription to (either:
((_char's clothingColor),
("a "+(_char's clothingMaterial)+" "+(_char's clothingType))),
(("a "+_char's clothingColor)+" "+(_char's clothingType))))
(if: (random: 0, 1) > 0)[
_skinDescription _generalDescription with _adornmentDescription, _clothingDescription, and (print: _char's hairstyle)(either: " that appears to be a " + (_char's profession), "","")
](else:)[
(either: _skinDescription+" ","","")_generalDescription (either: (_char's profession)+" ", "","")wearing (either: _adornmentDescription, "a "+_clothingDescription, _char's hairstyle)]
}You don't have to go any further. You could finish this right now. No one will be offended if you bowed out.
[[Next Encounter]]
[[Contract Fulfilled]] (either: "naturally " + (either: ...$environmentColors) + " ", (either: ...$environmentColors) + "painted ", "")(either: ...$environmentMaterials) (either: "garrett", "workshop", "brothel", "tannery", "kiln", "restaurant", "barber","atelier")A throwable potion bomb that both produces a blinding smoke and teleports you back home.
(if: $inventory contains "Smoke Bomb")[ [[Use Smoke Bomb]] ](set: $inventory to it - (ds: "Smoke Bomb"))You smash the smoke potion on the ground, producing a thick cloud of blinding smoke.
[[Teleport to Safety->Home Again]]
As punishment for behavior unbecoming a mercenary magician, your face was mutilated with a razor for all to see.Ever since you came back from the Afterlife, you've noticed the feeling like you've got a passenger riding around in your body with you. You've managed to use divination magic to determine that the passenger is real, but not what or who it is.This is the severed hand of a thief prepared with an appallingly specific and complicated technique that we won't bother describing. It has the property of making you magically invisible to your enemies. You can use it to bypass encounters.
(if: (history:)'s last is "Inventory")[
(link-reveal: "Use Hand of Glory")[
With a cantrip, you light the Hand of Glory. Its light somehow makes the air around you even gloomier.
(if: (random: 0, 6) is 0)[This is the last gasp of the Hand of Glory. (set: $inventory to it - (ds: "Hand of Glory"))](else:)[The old hand still has some fat left in it.]
[[Sneak Past->Next Encounter]]
]]{(if: $neighborhood is 0)[ERROR]
(else:)[ //(print: $neighborhood's name) Reputation (if: $arg >= 0)[+] $arg//
(set: $reputation's ($neighborhood's name) to $reputation's ($neighborhood's name) + $arg)<br/><br/>
(if: $reputation's ($neighborhood's name) > 9)[People know they can count on you.](else-if: $reputation's ($neighborhood's name) > 5)[You're a bit of a known entity about these parts.](else-if: $reputation's ($neighborhood's name) > 0)[You're not particularly well known.](else-if: $reputation's ($neighborhood's name) > -5)[You're a bit of a shifty dodger, innit?]
(else:)[
(if: $inventory contains "Badge of Shame")[People know you're not to be trusted.](else:)[You've gone back on your word too many times, and a few of the locals have ganged up to make sure everyone else knows it. They cut you up with a razor.<br/><br/>(set: $arg to "Badge of Shame")(display: "GetItem")]
]]}|clock>[]
You can't hack it. You'll lose some face but at least it won't cost your life.
{(set: $encounterStack to (a:))
(set: $encounterIndex to 0)
(set: $currentContract to "")
(set: $currentContractStatus to 0)
(set: $encounterPayout to 0)
(set: $encounterLength to 0)}
(set: $arg to -2)(display: "UpdateReputation")
[[Home Again]] with your tail between your legs.
(replace:?clock)[(display: "Clock")]When you want to move to a new neighborhood, you get yourself a new door. Or, if you're mister fancypants, you can get multiple neighborhoods.
This door takes you to the neighborhood of North Harbor.You open the door to a brisk vista of the North Harbor, a part of the City where ships float through a howling rift in the space-time in search of treasure and adventure.
[[North Harbor]] When you want to move to a new neighborhood, you get yourself a new door. Or, if you're mister fancypants, you can get multiple neighborhoods.
This door takes you to the neighborhood of South Quarry.You open the door and a silty wind blows through and nearly knocks over your drinks cart.
Through the frame, you see a vast mining operation carved out of a transcendental mineral deposit.
[[South Quarry]] When you want to move to a new neighborhood, you get yourself a new door. Or, if you're mister fancypants, you can get multiple neighborhoods.
This door takes you to the neighborhood of Eastern Fortress.When you open the door, you are treated to the smell of fresh, hot food being slowly roasted over braziers. Hallucinogenic resins are being burned for recreation by enchanted creatures in silver jewelry.
[[Eastern Fortress]]When you want to move to a new neighborhood, you get yourself a new door. Or, if you're mister fancypants, you can get multiple neighborhoods.
This door takes you to the neighborhood of Upper Castlerock.Everything you see through this door appears to be cast in a golden light, as if the air was full of invisible motes of gold dust.
[[Upper Castlerock]] //(either: "You scrape the barnacles off of a bale of scrolls and find the only legible text.", "You crack open a scrollcase and find a fragment of text.", "You open a dainty wooden box and find a document within.", "You unroll a scroll made of troll parchment.")
(either: "The scroll is so badly soaked in " + (either: "cometmelt", "narwhal oil", "siren tears", "blood", "saltwater", "ink") + " that it is illegible.", "The sodden logbook tells the tale of a " + (either: "doomed", "cursed", "foolhardy", "forsaken", "glorious", "typical", "relatively uneventful") + " voyage through " + (either: "eternal", "a short segment of", "endless", "rough and choppy", "smooth", "a realm of") + " " + (either: "living", "churning", "synthetic", "waves of", "fractal branches of", "incredibly hot", "relentless") + " " + (either: "darkness","light","ocean","warpscapes","possibility space","hellscape","beauty", "terror", "agony", "adventure") + ". Mostly lies.", "... " + (either: "mmMMam", "madfMAdfm", "MADfcvijcx", "cometmelt", "eternal", "forsaken", "incredibly hot") + "... " + (either: "MmdasVC", "CVCsddf", "qwerZCVT", "discovered the cure for", "a rare and contagious", "untold wealth", "dire passages") + "... " + (either: "ajkdfoslw", "ADcvxfd", "iozcosdkfja", "interlocutions with archdaemons", "forbidden steps of the shadow temple", "honeyed halls of the bee queen") + "... ",
"The fevered scratchings of a mad Riftrunner, with... " + (either: "someone's blood", "shite", "ashes") + " as ink. Sadly, it's in 3rd-Degree Post-factional Esperanto, which hardly anyone speaks.",
"Memento Mori... Memores sumus vestri in viveret.",
"I have discovered a truly marvelous proof of this, which this margin is too narrow to contain...",
"..." + (either: "quid", "bones", "RATS") + "..." + (either: "wouldn't stop screaming", "begged but I wouldn't kill them", "but we thought we could make it out in time") + "..." + (either: "and then the whole thing started to loop again", "beware the sirens and their lies", "it wasn't an iceberg at all but a") + "..."
)//A (set: _char to $clientDescription)(display: "DescribeChar") approaches you with a proposal:
Intercept Begoudoum the Bagman
Get his package one way or the other
Bring it to your client
Begoudoum is a strong opponent who won't give up his goods easily.
(set: $encounterPayout to (min: (50 + 5 * $reputation's ($neighborhood's name)), 650))
I'll offer you $encounterPayout coins for your trouble.
|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)(set: $remainingPuzzleAttempts to 2)
Bagadoum is an Ifriti magician who runs special deliveries for the underlord of West Fires.
You are to intercept him during a delivery and divest him of his package.
Then, you are to return the package to an agent in the North Harbor.
{
(set: $encounterStack to (a: "Encounter: Thug", "Encounter Select Random Daemon Encounter", "Encounter: Shortcut", "EncounterRewind1or2",
"Encounter: Shortcut", "Encounter Select Random Daemon Encounter", "Encounter: Shortcut", "EncounterRewind1or2","Encounter: Wizard Duel","Take a Peek in the Package?","Fulfilled: Bagging the Bagman"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 5)}
[[Tally Ho!->Encounter]]
[[Home Again]] To Prepare
(link-goto: (history:)'s last)
]]
[[Reject->Explore the Neighborhood]] ](if: $remainingPuzzleAttempts <= 0)[
As soon as you hand over the package, they notice that you've tampered with it. They are angry enough to kill you, but they are honorable beings. They throw your payment on the ground.
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "An Embarassing Display")
]
(else:)[
You hand over the package, unopened. The (set: _char to $clientDescription)(display: "DescribeChar") takes the package and examines both the embossed wax seal as well as a set of of unmolested trap enchantments. Of course you didn't mess with the package: that wasn't part of the deal.
(set: $gold to it + $encounterPayout)
They hand you (print: $encounterPayout) gold coins and make a polite gesture as they leave out the back.
(set: $arg to 3)(display: "UpdateReputation")
]
(display: "Contract Fulfilled")You (either: "quickly", "slyly", "shyly", "stealthily", "unobtrusively", "awkwardly") look around to see if anyone saw you.
(if: (random: 0, 6) > $danger)[No one saw anything, or if they did, they aren't saying anything.](else:)[You briefly make eye contact with an accuser.
(set: $arg to -1)(display: "UpdateReputation")](if: $currentContract is not "" and $currentContractStatus is 0)[[[Continue Contract->Encounter]] : $currentContract
(display: "Description " + $currentContract)
](else-if: $currentContract is not "")[(link-goto: "Start the Contract", $currentContract) : $currentContract
(display: "Description " + $currentContract)]{(set: $enemyHealth to 2)(set: $enemyType to "Thug")
(set: $fightPattern to (a:"Strike","Block",(either: "Strike", "Throw")))
(set: $fightIndex to 1)(set: $enemyElementType to "Mortal")
(set: $deathReason to "You were garrotted in a back alley by a street urchin.")
}You see a (either: "right", "nasty", "poxy") (either: "prick", "lout", "bastard") waving their knife about at you.
They demand your purse.
|output>[]
|input>[(display: "Fight")
(link-reveal-goto: "Hand Over A Purse", "Home Again")[(set: $gold to it - (floor: $gold/4))(set: $deathReason to "")]]
(event: when $enemyHealth <= 0)[ (replace:?input)[ [[Next Encounter]] ]]
|clock>[](if: (passage:)'s tags contains "tick")(display: "Tick")
---
<p id="inventory"><a href="#header">^</a>
(display: "Inventory")</p>
(display: "UpdateClock")(display: "Tick")
This street-long phenomena crawls through the City like a wyrm. The shops available at The Wandering Market appear spontaneously in the place of the original buildings. The shopowners are not locals, and the shops sell items no one else sells. As a new segment of The Wandering Market appears, a previous segment disappers, leaving behind the old shop and the old owner who has no recollection of the minutes spent "away".
You must make your choice quickly:
(for: each _item, ...(subarray: (shuffled: "Esso's Fine Goods",
"Inglam & Co, LLC etc.",
"Forbidden Texts",
"Nven's Primordial Essence Outlet",
"Hilorco's Potionarium"), 1, 3))[
(link-goto: _item)]
(display: "NavOptions")
|output>[]
|input>[(display: "DaemonShuffle")]
(event: when $enemyHealth <= 0)[ (replace:?input)[ [[Next Encounter]] ]]You adjust the aperture and tesellation until a beam of pure aetherial light lances out from the crystal spyglass.(set: $arg to (random: 1,3))(display: "DealDamage")
(if: $enemyHealth <= 0)[
(if: $cunning > 3)
[
You catch the light of the sun with the spyglass and refract it at such an angle, it becomes a shear beam of darkenss that deftly sears the $enemyType into pitch black threads. You snatch a handful from the air before they slip between the photons.
(set: $arg to "Shadow Threads")(display: "GetItem")
]
(else:)
[
You wave the spyglass madly, chopping the $enemyType into thousands of tiny fibers that immediately slip away on the wind.
]
]You willingly shed your blood for them.(set: $deathReason to "It looks like you bled too much for the sacrifice and have expired via exsanguination, the worst of the sanguinations.")
(set: $arg to (random: 0, 3))(display: "TakeDamage")
[[Next Encounter]](if: $enemyBribeType is "Gold")[
You cast a purse full of gold to them. (set: $gold to it - (random: 5, 10))(replace:?clock)[(display: "RenderHeader")] While they are distracted picking it up, you can silently walk away.
(display: "An Embarassing Display")
[[Next Encounter]]
](else:)[
(if: $inventory contains $enemyBribeType)[(set: $inventory to it - (ds: $enemyBribeType))They snatch the $enemyBribeType from your inventory and attempt to scarper.
[[Next Encounter]]
]]A comprehensive guide to the field of practickal daemonology, including instructions on capturing a daemon.
"In order to capture a Living Shadow, you will need a Cellar of Salt, this manual, and a Soul Jar in which to receive the aetherial creature."
(set: _daemon to (shuffled: ...(find: _i where _i's tags contains "daemon-description", ...(passages:)))'s 1st's name)
_daemon
(display: _daemon)
(link-goto: "Put the Book Away", (history:)'s last)(☽) A coin-like segment of silver that has been cut from a longer cylinder. It is heavy and cool.Two rival schools of spellcraft are in a rivalry that has recently boiled over. Each school has called in their own brute squad.
You have been elected to be a member of a goon squad to smash members of a rival Arcane College's student body. They will likely do the same to you.
For every student wizard you wreck, you'll get a payout.
|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
You are issued a copy of "Ex Nobilis Aetherium", which is a sophomore year text on capturing and containing daemons, in order to prove that you are a student in case the police question why a group of hardened sociopaths is hanging around a campus estate.
{(set: $encounterPayout to 0)(set: $arg to "Ex Nobilis Aetherium")(display: "GetItem")
(set: $encounterStack to (a: "Encounter: Wizard Duel", "Encounter: Shortcut","EncounterRewind1or2","Fulfilled: Class Warfare"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 5)
(set: $contractCancelledOnDeath to 1)}
[[Tally Ho!->Encounter]]
[[Home Again]] To Prepare
(link-goto: (history:)'s last)]]
[[Reject->Explore the Neighborhood]] ]
You stumble across the tight web of an enchantment! It whips up around you with a thousand thousand fine threads, threatening to slice you into as many ribbons.
(set: $arg to 3)(set: $deathReason to "You stumble across the tight web of an enchantment! It whips up around you with a thousand thousand fine threads, threatening to slice you into as many ribbons.
Your corrupt, human flesh is lashed by razor-wire fine strands of arcane energy that cannot be stopped by your mortal armor.
It's all too much. You slump to the ground in a ragged, red mass.")(display: "TakeDamage")
You survive the blast with blood to spare. Next time, you might lose an eye, my good waif.
[[Next Encounter]]
[[Compass of Many Places]]A cute gimmick that let's you reproduce the events of someone's real history in the confines of your own home!
It contains blank gallium plates that you use to imprint an event. It can then replay the events in any order you choose.
It is currently programmed thusly:
(print: $macroCasterPlates)Double-click this passage to edit it.{(set: $enemyHealth to 5)(set: $enemyType to "Guards")(set: $deathReason to "You are crushed to a thin, red gruel by the guards. Justice served?!")
(set: $fightPattern to (a:(either: "Strike","Block"),(either: "Strike", "Throw")))(set: $enemyElementType to "Holy")
(set: $fightIndex to 1)}
You see a guard in the imperial tabard approaching.
(if: $reputation's ($neighborhood's name) > 7)[
They nod slightly as they pass you by.
[[Next Encounter]]
]
(else-if: (random: 0, $reputation's ($neighborhood's name)) < 5 or ($inventory contains "Badge of Shame"))[
They approach you with weapons drawn. Either they have mistaken you for someone else, or they know exactly who you are. Either is bad.
|output>[]
|input>[
(display: "Fight")
(link-goto: "Go Along Quietly", "Magisterium Local Office")
]
](else:)[They push past you without even so much as making eye contact.
[[Next Encounter]]]
(event: when $enemyHealth <= 0)[ (replace:?input)[ [[Next Encounter]] ]]{(set: $enemyHealth to 2)(set: $deathReason to "You were pummeled to death by a blind-drunk riftrunner.")(set: $enemyType to "Riftrunner")
(set: $fightPattern to (a:(either: "Strike","Flee"),(either: "Strike", "Dodge")))(set: $enemyElementType to "mortal")
(set: $fightIndex to 1)}A drunken Riftrunner staggers down the lane.
(if: (random: 0, $reputation's ($neighborhood's name)) < 5 and not ($inventory contains "Badge of Shame"))[
They approach you with abject terror in their eyes.
|output>[]
|input>[(display: "Fight")]
](else:)[They squeeze past you without even so much as making eye contact.
[[Next Encounter]]]
(event: when $enemyHealth <= 0)[ (replace:?input)[ [[Next Encounter]] ]]
{(set: _deck to (a: "Block", "Throw", "Strike") +
(altered: _i via "Release " + _i, ...$daemons) +
(altered: _i via "Use " + _i, ...(find: _i where (passage: _i)'s tags contains "weapon", ...$inventory)))
(set: _deck to (shuffled: ..._deck)'s (range: 1, (min: $cunning, _deck's length)))}
(for: each _d, ..._deck)[(set: _id to _d)
(link-reveal: _id)[(replace:?output)[(display: _id)](replace:?input)[(display: "Fight")]
]]
Your client needs an escort to South Quarry right away, as their financial situation right now is... complicated.
Not to worry you, though, because for you, they will pay in cash.
(set: $encounterPayout to (min: (50 + 5 * $reputation's ($neighborhood's name)), 250))
They will pay you $encounterPayout for your help.
|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
Your client wants you to escort them to South Quarry for a shopping spree.
They are semi-famous (for the wrong reasons) and may need protection. That's where you come in. You will keep them safe during their journey and get a ride to South Quarry out of the deal.
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Enchantment Trap", "Encounter: Fire Ghost", "Encounter: Thug", "Fulfilled: Shopping Trip to South Quarry"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)
[[Let's Go!->Encounter]]]]
[[Reject->Explore the Neighborhood]] ]You see the tracery of an Enchantment Lock. This is a more cunning working than an Enchantment Trap, because if you don't unwind it in the correct order, it will either bind the object forever or spontaneously unravel through you, rendering you into thin slices of former wizard.
Which thread will you snip first?
{(set: _alphabet to (a: "A","B","C","D","E","F","G","H","I","J","K","L"))
(set: $puzzleLength to $enchantmentHidden)
(set: _puzzle to (shuffled: ...((range: 1, $puzzleLength) + (repeated: 12 - $puzzleLength, 0))))
(set: $puzzleIndex to 1)
(set: _puzzleButtons to (a:))
(set: $puzzle to _puzzle)
(set: $remainingPuzzleAttempts to 2)
}
<pre>
(live: 0.5s)[(print: $puzzle's (1) + $puzzle's (3) + $puzzle's (4))] -(set: _index to 1)(display: "PuzzleButton")- (live: 0.5s)[(print: $puzzle's (1) + $puzzle's (2) + $puzzle's (5))] -(set: _index to 2)(display: "PuzzleButton")- (live: 0.5s)[(print: $puzzle's (7) + $puzzle's (2) + $puzzle's (6))]
| \ | / |
| (set: _index to 4)(display: "PuzzleButton") (set: _index to 5)(display: "PuzzleButton") (set: _index to 6)(display: "PuzzleButton") |
| \ | / |
(set: _index to 3)(display: "PuzzleButton") (live: 0.5s)[(print: $puzzle's (4) + $puzzle's (5) + $puzzle's (6) + $puzzle's (8) + $puzzle's (9) + $puzzle's (10))] (set: _index to 7)(display: "PuzzleButton")
| / | \ |
| (set: _index to 8)(display: "PuzzleButton") (set: _index to 9)(display: "PuzzleButton") (set: _index to 10)(display: "PuzzleButton") |
| / | \ |
(live: 0.5s)[(print: $puzzle's (3) + $puzzle's (8) + $puzzle's (11))] -(set: _index to 11)(display: "PuzzleButton")- (live: 0.5s)[(print: $puzzle's (9) + $puzzle's (11) + $puzzle's (12))] -(set: _index to 12)(display: "PuzzleButton")- (live: 0.5s)[(print: $puzzle's (7) + $puzzle's (10) + $puzzle's (12))]
</pre>
|output>[]
<pre>
0 -A- 0 -B- 0
| \ | / |
| D E F |
| \ | / |
C 0 G
| / | \ |
| H I J |
| / | \ |
0 -K- 0 -L- 0
</pre>
{(set: _i to _index)(link: _alphabet's (_index))[*(if: $puzzle's (_i) is $puzzleIndex)[(replace:?output)[The strand loosens.(set: $puzzle's (_i) to 0) (if: $puzzleIndex >= $puzzleLength)[The enchantment slips apart. (set: $inventory to it + (ds: "Ethereal Threads"))
[[Next Encounter]]]
(set: $puzzleIndex to it + 1)
(if: $puzzle contains ($puzzleIndex * -1))
[
(set: $puzzleIndex to it + 1)
]
]
](else:)[(replace:?output)[
{(set: $remainingPuzzleAttempts to it - 1)
(if: $remainingPuzzleAttempts <= 0 and $puzzle's (_i) is not 0)[
(if: (random: 0, $danger) < 3)[The enchantment snaps along the wrong axis, causing a run of nodes to overtighten. The object held in the enchantment is warped and ruined. You would need to destroy the whole thing with an enchanted blade to get it open again.
[[Next Encounter]]](else:)[The enchantment violently ruptures, doing horrific damage to you.(set: $deathReason to "The enchantment violently ruptures, tearing you into a pink ruin.")(set: $arg to $danger)(display: "TakeDamage")
[[Next Encounter]]]]
(else:)[The thread thrums threateningly. (set: $puzzle's (_i) to it * -1) ]
}]]]}(set: $danger to it + 1)
You feel a shiver of electric fear run through you, as you become suddenly aware of the giant eye in the sky that is always watching the citizens of the City. Moments later, you have once again forgotten about its existence.
[[Next Encounter]] (set: $currentContract to (passage:)'s name)
You are handed an elaborate hardwood box traced with silvery sigils of power. It is a box protected with Enchantment Locks, which are strong and deadly.
{
(set: $encounterStack to (a: "Encounter: Enchantment Trap Lock", "Encounter: Aura of Illusion",
"Encounter: Enchantment Trap Lock", "Encounter: Aura of Illusion",
"Encounter: Enchantment Trap Lock", "Encounter: Aura of Illusion",
"Encounter: Enchantment Trap Lock", "Encounter: Aura of Illusion",
"Encounter: Enchantment Trap Lock", "Encounter: Aura of Illusion",
"Encounter: Enchantment Trap Lock", "Encounter: Aura of Illusion",
"Encounter: Enchantment Trap Lock", "Encounter: Aura of Illusion",
"Encounter: Enchantment Trap Lock", "Encounter: Aura of Illusion",
"Encounter: Enchantment Trap Lock", "Encounter: Aura of Illusion",
"Encounter: Enchantment Trap Lock", "Encounter: Aura of Illusion",
"Encounter: Enchantment Trap Lock", "Encounter: Aura of Illusion",
"Encounter: Enchantment Trap Lock", "Encounter: Aura of Illusion"
,"Fulfilled: Nest of Box Adders", "Hidden Treasure: Nest of Box Adders"))
(set: $encounterIndex to 1)
(set: $danger to 1)
(set: $enchantmentHidden to 1)}
(set: $contractCancelledOnDeath to 1)
[[Tally Ho!->Encounter]]
[[Home Again]] To Prepare
(link-goto: (history:)'s last)The City is full of magicians, witches, conjurors, warlocks, necromancers of all stripes.
Each one has spells, counterspells, wards, counterwards, and enchantments surrounding them at all times.
Any one of them would be dangerous on its own, but when they interact with each other, they can interfere with each other.
(either:
"As you watch, the traces of enchantment become finer and more subtle."
,"As if a fog has descended upon you, the lattice of enchantment that surrounds you becomes harder to discern."
,"It feels as if someone has cast a cloaking spell to hide enchantments from mortal senses.")
(set: $enchantmentHidden to it + 1)Illusion + 1 ($enchantmentHidden)
[[Next Encounter]] Lilah waves one clawed hand over to a display case with two items.
"These are our ultimate items, for the frequently deceased."
(for: each _item, ...(a: "Silent Ansible", "Neighborhood Door to Lower Depths"))[
(unless: $inventory contains _item)[(set: _cost to 750)(display: "QuickBuy")]
]
[[Reliquarium]]
(display: "NavOptions")This curious device looks like a gyroscope covered in brass and crystals. It never stops spinning.
(if: $perception > 5)[The device is a spinning brass pyramid atop four tilted pyramids, each of a different material (ruby, sapphire, granite, sunstone) atop an obsidian pyramid. In the center is a roiling chaos made of incredibly minute gears.]
(if: $perception > 10)[Its purpose is to orient the possessor absolutely in space, allowing them to travel anywhere in the world if they know how to use it.
You also notice that inside the center is a much smaller version of itself. When you look at the center of the smaller version, you get an unfathomable sense of vertigo.]Propped up on the wall, it looks more like a door and less like a coffin lid. Quite slightly less.
Opening the door, you smell the disconcertingly pleasant smell of mummification. Despite the Undead nature of the majority of the citizens of the Lower Depths, quite a clamor of noise comes through the portal.
[[Lower Depths]] (if: $inventory contains any of (a: "Badge of Shame", "Plague Marks"))[At the entrance to the Den of Untouchables is Manky, the bouncer. They are 8 cubits tall and adorned in a patchwork of rags.
"Got jobs what you could do", they say:
(for: each _persona, ...(shuffled: ...(find: _i where _i's tags contains "brass-level", ...(passages:)))'s (range: 1,$cunning))[
(link-goto: _persona's name)
]
]
(else:)[At the entrance to a boisterous club is a (display: "QuickChar"), pointing at a series of gruesome scars on their face. Then they point towards your unlined and unscarred visage.
"You aren't one of us, and you aren't welcome here," they intone.
"We've heard rumors," they say. "Want to buy some?"
(link-repeat: "Buy Rumor")[(set: $gold to it - 1)(replace:?output)[
(if: (random: 0, 10) > 7)[(display: "Interesting Rumors")]
(else:)[(display: "Baseless Rumors")]]]
|output>[]
]
(display: "NavOptions")A gentlecreature has dropped their coin purse on the ground.
|input>[(link-reveal: "Take the Coin Purse")[(replace:?input)["Take the Coin Purse"](replace:?output)[(if: $cunning + $perception > (random: 2, 7))[You deftly pocket the purse with none the wiser. (set: $gold to it + 10 * (random: 1, 10))](else:)[You are caught trying to pocket the purse and must scarper! (display: "An Embarassing Display")]
[[Next Encounter]]]]
(link-reveal: "Return the Coin Purse")[(replace:?input)["Return the Coin Purse"](replace:?output)[You pick up the purse (if: $reputation + $perception > (random: 0, 6))[and hand it to a grateful minor noble who rewards you with accolades and lucre. (set: $gold to it + 10)(set: $arg to 1)(display: "UpdateReputation")](else:)[but they mistakenly believe that you are trying to steal the purse and chase you through the streets. (display: "An Embarassing Display")]
[[Next Encounter]]]]
(link-reveal: "Leave the Coin Purse")[(replace:?input)["Leave the Coin Purse"](replace:?output)[You studiously avoid making eye contact with anyone as you walk away from the purse.
[[Next Encounter]]]]]
|output>[]A beggar is sleeping on the ground. In front of him is a bowl full of coins.
|input>[
(link-reveal: "Take a Few")[(replace:?input)["Take a Few"](replace:?output)[(if: $gold < 15)[(set: $arg to 15)(display: "UpdateGold")
You take just as much as you need.](else:)[Despite having no need for the poor man's meagre lucre, you have been caught debasing yourself in front of the gentry.
(display: "An Embarassing Display")
[[Next Encounter]]]]]
(link-reveal: "Take Them All")[(replace:?input)["Take Them All"](replace:?output)[(set: $arg to 150)(display: "UpdateGold")
He had an amazing amount of money for such a pathetic old man.
Despite having no need for the poor man's meagre lucre, you have been caught debasing yourself in front of the gentry.
(display: "An Embarassing Display")
(replace:?clock)[(display: "RenderHeader")]
[[Next Encounter]]]]
(link-reveal: "Leave Them Be")[(replace:?input)["Leave Them Be"](replace:?output)[You studiously avoid them. It is uncertain if the buboes on his lymph nodes are merely lethal to him or will they erupt and spray virulent slime on everyone nearby.
[[Next Encounter]]]]
(if: $gold > 0)[(link-reveal: "Give Them A Coin")[(replace:?input)["Give Them A Coin"](replace:?output)[You quickly toss them a coin without checking to see who's watching you.
(set: $arg to (random: -1, 1))(display: "UpdateReputation")
(set: $arg to -1)(display: "UpdateGold")
[[Next Encounter]]]]
(link-reveal: "Give Them All Your Gold")[(replace:?input)["Give Them All Your Gold"](replace:?output)[
(if: (random: 0, 10) > 1)[You offer this wretched creature all of your lucre. You suddenly feel no need for it.
It is then revealed to you that this is no mere beggar. It is a holy monk down from the Mountain.
The humble monk refuses your kind offer. They are not a beggar at all.
Everyone can see what a kind person you truly are.
(set: $arg to 10)(display: "UpdateReputation")
[[Next Encounter]]]
(else:)[(set: $gold to 0)Not sure why you did that. You feel cheated but would feel even worse if you tried getting your money back.
[[Next Encounter]]
]]]
]]
|output>[]A gerning thug bumps into you. His deft hands get a hold of one of your coin purses (if: $perception + (random: -1,1) > 4)[but you intercept him before he makes off with your lucre.
[[Next Encounter]]](else:)[before you're aware of it, and you're now lighter in the wallet.
(set: $arg to -(random: 0, (ceil:$gold/4)))(display: "UpdateGold")
[[Next Encounter]]
]
(if: (random: 0, 1) > 0)[
(set: _newRumor to (either: "Fire Ghosts Crave Coal", "Fire Ghosts Crave Coal"))
(set: $arg to _newRumor)(display: "GainRumor")
]
(else:)[
(either: "A Compass of Many Places is a fine thing to have if you're a Riftrunner!", "Get yourself a copy of Philomender's Book of Excellent Knots at any price!", "Potions can be quite dangerous at certain times of day, but those times aren't labelled anywhere.")]"(either: "Sirens will trade secrets of great value with you.", "Witch Bottles are an excellent protective ward for your home.", "I'm a natural blonde!")"A mekkannin woman composed of gold, brass, and ruby sells mechanisms of her own design. (if: $inventory contains "Ward Press")[You can personally attest to her skill, but you already have everything she has of interest to your particular domain.](else:)[She has devices of incredible complexity, but only one can you comprehend its purpose.]
(set: _item to "Ward Press")(set: _cost to 200)(display: "QuickBuy")
(display: "NavOptions")An enchantment of such complexity that it became self-aware, it is naturally a Darwinian Capitalist. That means "It sells things". (if: $inventory contains "Silent Ansible")[It decided to sell you the Silent Ansible as the most perfect thing you could ever own. No returns; no refunds.](else:)[It uses a highly advanced algorithm to decide which item it will sell to which person. It never changes its mind about the correctness of its decision. That means "No refunds."]
(set: _item to "Silent Ansible")(set: _cost to 1337)(display: "QuickBuy")
(display: "NavOptions")A strange, little creature burrows its way out of an ancient tome and offers you his wares. (if: $inventory contains "Trap Book")[It has nothing of value to offer you.](else:)[Only one book, off in the corner, is unravaged by this libriovore.]
(set: _item to "Trap Book")(set: _cost to 150)(display: "QuickBuy")
(display: "NavOptions")Nven offers you a bowl full of raw primordial essence. It is a repellant but effective way to rejuvenate your body after enduring the rigors of your trade (e.g. being stabbed, burned, electrocuted, cursed, etc.).
(set: _cost to 15)
(if: $health > $maxHealth + 2)[You're completely stuffed and don't think you could have another bite of... whatever that is.](else:)[
(link-reveal: "Buy a Bowl")[
(if: $gold < _cost)[Nven hands you a bowl for free. Clearly, you need the money more than he does.
You quaff the essense and immediately feel it stitch your meat and bones back together.
(set: $arg to 1)(display: "UpdateHealth")](else:)[You quaff the essense and immediately feel it stitch your meat and bones back together.
(set: $arg to 1)(display: "UpdateHealth")
(set: $arg to -(_cost))(display: "UpdateGold")]
]]
(display: "NavOptions")(set: _weapons to (find: _item where (passage: _item)'s tags contains "magic-weapon", ...$inventory))
(set: $options to $options + (altered: _weapon via "Use " + _weapon, ..._weapons))
(set: $options to $options + (altered: _item via "Release " + _item, ...$daemons))
(if: $options's length <= 0)[]
(else-if: $options's length > 1)[
(set: $options to (shuffled: ...$options))]
(else:)[]
(replace:?input)[(if: $options's length > 0)[(for: each _i, ...(range: 1, (min: $cunning, $options's length)))[
(set: _item to ($options's (_i)))
(link-reveal: _item)[(replace:?output)[(display: _item)
]]]
(link-reveal: "Shuffle")[(replace:?output)[You are whipped and beaten by the force of your foe as you prepare for another assault.(set: $arg to (random: 0,1))(display: "TakeDamage")(set: $options to (a:))(display: "DaemonShuffle")
]]](else:)[
[[Succumb->Death]]
]]A shocked gasp arises from the crowd when someone stumbles across a mutilated corpse. You've heard about a serial murderer terrorising the (print: $neighborhood's name), and now you've seen it for yourself.
(if: visits + $perception > 7)[Hunched over the body is the twisted form of the killer, blood still on their hands.
[[The Beast Ripper]]]
(else:)[
(display: "NavOptions")]You finally meet The Ripper face-to-face, and it is a face that you recognize. This is the face of a man you killed yourself, his face now discolored and bloated from the effects of the poison you used to kill him.
He has somehow been brought back to life in some gruesome form of Undeath.
"I can live," he says, "but I must kill in order to survive. My new form is an obligate predator. I was a monster before, but now I've done far worse things, and more!"
[[Encounter: Rattle Bones]] Lead goes in and Wards come out.(if: $cunning + $perception >= 7)[
First, select the left reagent (☿).
Second, select the right reagent (♄).
Third, light the burner.
Four, take the ward.*
(if: $inventory contains "Lump of Lead" and $inventory contains "Quaff of Quicksilver")[(set: $inventory to it - (ds: "Lump of Lead"))(set: $inventory to it + (ds: "Damage Ward"))
You have produced
Damage Ward]
*Recipes sold separately
]
(else:)[
The instructions say that it's easy, but clearly there's some knack to doing it that you haven't cottoned to, yet.
]
(link-goto: (history:)'s last)This Stinking Mass is a fetid wad of waste product from a potion gone awry.A purple djinn sells various potions, but they aren't very organized. Mostly, you buy directly from the bins of random bottles and pots.
(if: visits % 2 is 1)[
(set: _threshold to 8)
(for: each _item, ...(shuffled: "Mystery Draught",
"Cunning Draught",
"Stimulating Draught",
"Healing Draught",
"Poison Flask",
"Sleeping Phial",
"Love Potion"))[(if: (random: 0, 10) < _threshold)[
(set: _cost to 10 + (random: 0,5) * 5)(display: "QuickBuy")](set: _threshold to it / 2)]](else:)[Now that you've made your purchase, they hastily wave you away.]
(display: "NavOptions")A powerful placebo.Variations exist: Typically, a jar or bottle filled with a mix of pins and piss. Make you one and hide it well above a door or beneath a floor. Its presence is intended to confound and deter witches and witchcraft.
This is an enchanted tattoo inscribed on the skin of someone who wishes to cross the Rift to the North without its arcane energies tearing them to shreds. Typically placed on the back of hand or the throat in glowing blue ink. Some people complain that even after leaving the Rift, it keeps calling them back.The reality around this corner is unusually weak today.
(if: $inventory contains "Riftrunner's Badge")[Clear as day, a rift opens up around you, (if: (random: 0, $cunning) < 2)[dragging you back to the Siren's Folly.
{(set: $riftSupplies to (random: 0, 100))
(set: $riftCrew to (random: 0, 10))
(set: $riftDistance to (random: 0, 10))
(set: $riftTreasure to (random: 0, 10))
(set: $riftCommand to 1)}
[[Into the Rift]]](else:)[ and you could reach right out and touch it if you wanted.
{(set: $riftSupplies to (random: 50, 100))
(set: $riftCrew to (random: 5, 10))
(set: $riftDistance to (random: 5, 10))
(set: $riftTreasure to (random: 5, 10))
(set: $riftCommand to 1)}
[[Into the Rift]]
(display: "NavOptions")
]
](else:)[You feel quite nauseous, like you've heard people get when they accidentally look directly into the Rift.
(display: "NavOptions")](display: "Reset Rift Journey")
Your nervous system crackles with electric pain as you and your crew pass through the boundary of the Rift. The City already looks incredibly small and far away as your flying sail ship begins to spiral faster and faster around the interdimensional maelstrom that you have decided to plunge yourself into.
(if: $inventory contains "Riftrunner's Badge")[
The latent surge from the Rift boundary is grounded out into the aetherium by your guild tattoo. It must be awful to travel thusly without a Riftrunner's Badge.
(if: $riftCommand > 0)[The crew consult with you about your preferred heading.
[[Pick Next Heading]]
](else:)[You follow the lead of the crew captain, tying lines here, adjusting lodestones there.
(if: (history:) contains "Read Philomender's Book of Excellent Knots")
[
You remember a handful of enchantment knots that gives the expedition an excellent starting boost. (set: $riftDistance to it + 5)
]
[[Next Journey]]
]
](else:)[(set: $cunning to 1)(set: $perception to 1)(set: $health to (ceil: it / 2))
The intensity of the raw transdimensional energy whipping through you renders you deaf and dumb. You're weak in the legs and need help down to your bunk.
(if: $riftCommand > 5)[The crew consult with you about your preferred heading.
[[Pick Next Heading]]
](else:)[You uselessly bob about in your bunk, trying not to vomit all over the crew's belongings.
[[Next Journey]]
]
]Rita grins menacingly as she outlines what a Riftrun actually entails.
"This is the Siren's Folly," she barks. A heavily beringed hand points at a spot in what appears to be the center of the Rift. "This is your True North. Our goal is to strive to reach the Siren's Folly and discover what is there. It appears to be infinitely far away, but we're not sure which aleph-level of infinity we're dealing with."
She points at a crew of energetic sailors rapidly battening their ship for a rough launch. "Why don't you join them?"
Board the ship [[Into the Rift]]
(display: "NavOptions")A loose collection of bones and mechanical detritus swirls up before you into a crude mockery of a man.
{(set: $enemyType to "Rattle Bones")
(set: $deathReason to "Long after your body is lifeless, the restless Rattle Bones continues to pelt it. Once your corpse has been completely ruined, the daemon selects a single piece of your bone and adds it to its collection.")
(set: $enemyHealth to 7)
(set: $enemyElementType to "bone")
(if: $inventory contains any of (a: "Compass of Many Places", "Lodestone"))[(set: $enemyHealth to (ceil: it / 2))]
(set: $options to (a: "Blood Sacrifice"))
(if: $inventory contains "Piece of Pitch")[ (set: $options to $options + (a: "Bribe Daemon"))
]
(if: $inventory contains "Piece of Pitch" and (history:) contains "Read Ex Nobilis Aetherium" and $cunning > 5)[ (set: $options to $options + (a: "Capture Rattle Bones"))
]}
(set: _options to $options)(display: "Encounter Daemon")Trying to tell what time the clock is displaying will cause a severe migraine. It is housed in an ornate silver case, with a chain that fades into the 4th spatial dimension and a convenient push button that activates its primary ability.
(if: $inventory contains "Slow Clock")[ [[Use Slow Clock]] ](if: $inventory contains "Clockwork Key")[
You notice that your Clockwork Key fits perfectly into the keyslot in the back of the Clock. You can set the amount of time.
|input>[
Time: (cycling-link: bind $arg, 1, 2, 3)
(link-reveal: "Recall To The Past")[(replace:?input)[
(set: $encounterIndex to it - (num: $arg))(set: $ticks to it - 3 * (num: $arg))
You get that rubber-faced feel as if falling from a great height as your local time frame moves several minutes into the past.
[[Next Encounter->Encounter]]
]]
(link-reveal: "Transport To The Future")[(replace:?input)[
(set: $encounterIndex to it + (num: $arg))(set: $ticks to it + (num: $arg) * 3)
Your eyes and skin burn as you accelerate several minutes into the future. Unfortunately, in this future, you no longer have the Slow Clock. (set: $inventory to it - (ds: "Slow Clock"))
[[Next Encounter->Encounter]]
]]]
]
(else:)[
(if: (random: 0, 1) is 0)[(set: $encounterIndex to it - 1)(set: $ticks to it - 3)
You get that rubber-faced feel as if falling from a great height as your local time frame moves several minutes into the past.
[[Next Encounter->Encounter]]
](else:)[(set: $encounterIndex to it + 1)(set: $ticks to it + 3)
Your eyes and skin burn as you accelerate several minutes into the future. Unfortunately, in this future, you no longer have Slow Clock. (set: $inventory to it - (ds: "Slow Clock"))
[[Next Encounter->Encounter]]
]]"Here are the options, mate!" a crewmember squacks at you.
(set: _options to (shuffled: ...(find: _item where _item's tags contains "journey", ...(passages:))))
(set: _optionCount to $cunning)(if: $inventory contains "Compass of Many Places")[(set: _optionCount to it + 4)]
(for: each _item, ...(subarray: _options, 1, $cunning))
[
(link-goto: (_item's name), (_item's name))]
(link-goto: "Spin the Wheel!", (shuffled: ...(find: _item where _item's tags contains "journey", ...(passages:)))'s 1st's name)(if: $riftCrew > 0)[(set: $arg to -$riftCrew)(display: "UpdateRiftSupplies")
(if: $riftSupplies <= -15)[You've scavanged everything of value on the ship. Every belt has been boiled into soup, every pet has been slaughtered and their skeleton's picked clean. You are now starving.
(if: $riftCommand < 0)[(set: $riftNextJourney to (either: "Mutiny!", "Cannibalism"))]]
(else-if: $riftSupplies <= 0)[You're completely out of supplies. The crew is terrified.
(if: $riftCommand < 0)[(set: $riftNextJourney to (either: "Mutiny!", "Cannibalism", "Walk the Plank"))]
]
(else-if: $riftSupplies <= $riftCrew)[The crew is quite anxious about the lack of supplies.
(if: (random: 0,1) > 0)[(set: $riftNextJourney to "Scurvy")]]
(else-if: $riftSupplies <= $riftCrew * 3)[Your crew is starting to get worried about the lack of supplies.
(if: $riftDirection is 1)[
[[About to Aft, Return Home!]]
[[Deliver a Rousing Speech to the Crew]]
]]
(else:)[Your crew is quite sanguine about their supplies.
(set: $arg to (random: 0, 1))(display: "UpdateRiftCommand")]
Supplies -> $riftSupplies
Crew -> $riftCrew
Treasure -> $riftTreasure
Command -> $riftCommand
(if: $riftDirection is 1)[Distance -> $riftDistance/$riftTripDistance
You are sailing into the eye of the Rift.](else:)[Distance -> (print: $riftDistance-$riftTripDistance)/$riftTripDistance
You are heading back to North Harbor.
(if: $riftDistance >= $riftTripDistance * 2)[You've returned to this place after untold years for you and your crew, but mere hours or days for the citizens of North Harbor.
[[Unload the Ship]] ]
]
(if: $riftDistance < $riftTripDistance * 2)[
(if: $riftCommand > 7 or $inventory contains "Captain's Hat")[You command this crew.
[[Pick Next Heading]]
]
(else:)
[(if: $riftNextJourney is "")[(link-goto: (shuffled: ...(find: _item where _item's tags contains "journey", ...(passages:)))'s 1st's name)]
(else:)[(link-goto: $riftNextJourney)]]]]
(else:)[(set: $arg to -1)(display: "UpdateRiftSupplies")
(if: $riftSupplies <= -15)[You've scavanged everything of value on the ship. Every belt has been boiled into soup, every pet has been slaughtered and their skeleton's picked clean. You are now starving.
(set: $arg to -1)(display: "UpdateRiftCommand")
(if: (random: 0,1) > 0)[Your hunger pains begin to signal real physical damage.
(set: $arg to 1)(display: "TakeDamage")]]
Supplies -> $riftSupplies
Crew -> $riftCrew
Treasure -> $riftTreasure
Command -> $riftCommand
You are the only one left on this ship. It is completely rudderless!
(set: $riftDirection to (random: 0, 1))
(if: $riftDirection is 1)[Distance -> $riftDistance/$riftTripDistance
You are sailing into the eye of the Rift.](else:)[Distance -> (print: $riftDistance-$riftTripDistance)/$riftTripDistance
You are heading back to North Harbor.
(if: $riftDistance >= $riftTripDistance * 2)[You've returned to this place after untold years for you and your crew, but mere hours or days for the citizens of North Harbor.
[[Unload the Ship]] ]
]
(link-goto: (shuffled: ...(find: _item where _item's tags contains "journey", ...(passages:)))'s 1st's name)]
The Rift Ship punches through to a tranquil, warm sea. A fairly large iceberg bobs in an otherwise featureless ocean.
(set: _roll to (random: 0, 1))
|input>[
(link-reveal: "We could try to get some fresh water off of it.")[
(replace:?input)[
(if: $riftCommand > 0)[
(if: _roll > 0)[Your loyal crew breaks out shovels and buckets. In no time flat, you've given your fresh wather supplies a boost. (set: $riftSupplies to it + (random: 2,5) * 5)
<b>Supplies -> $riftSupplies</b>
[[Next Journey]]
](else:)[As your crew begins disembarking, the "iceberg" cracks open, revealing that it is actually the beak of a monstrously large squid.
Several of your crew are devoured before you're able to flee.
(set: $arg to -(random: 1,7))(display: "UpdateRiftCrew")
(set: _commandDamage to (random: 0,2))(if: _commandDamage > 0)[<b>Command - _commandDamage<b/>(set: $riftCommand to it - _commandDamage)](else:)[No one blames you for the loss, though. Bad things happen on the sea.]
[[Next Journey]]
]](else:)[(if: _roll > 0)[The ship's captain refuses to get close to that thing. You all sail away uneventfully.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]]
](else:)[The crew captain commands you and the crew down to bring up water, when you are suddenly assaulted by a horrendous squid monster!
(set: $arg to -(random: 1,7))(display: "UpdateRiftCrew")
(set: $arg to (random: 0,1))(display: "TakeDamage")
[[Next Journey]]
]]]]
(link-reveal: "It's obviously a trap, right?")[(replace:?input)[
(if: _roll > 0)[You all sail away uneventfully.
<b>Distance + 1</b>(set: $riftDistance to it + 1)
[[Next Journey]] ](else:)[After an agonizing wait, an elephant seal is snapped up into a horrific squid's beak. Your fellows are glad they heeded your warning.
(set: $arg to 1)(display: "UpdateRiftDistance")
(set: $riftCommand to it + 1)
<b>Command + 1<b/>
[[Next Journey]]]
]]
]The Rift Ship drifts between planetoids in an unusually small solar system. The suns and planets are the same kind of red-hot machinery as our own world, only executed in exquisite miniature.
(set: _roll to (random: 0, 1))
|input>[
(link-reveal: "We could try to capture the sun to power our ship.")[
(replace:?input)[
(if: $riftCommand > 0)[
(if: _roll > 0)[Your loyal crew breaks out a winch, a pulley, and a swing boom. In no time flat, they've loaded up and mounted the sun into the ship's drive train.
(set: $riftSupplies to it + (random: 3,7) * 5)
<b>Supplies -> $riftSupplies</b>
(set: $arg to 10)(display: "UpdateRiftDistance")
(set: $riftTreasure to it + 30)
<b>Treasure + 30</b>
[[Next Journey]]
](else:)[
As you drift by, your crew is unable to loop the little sun.
[[Next Journey]]
]](else:)[(if: _roll > 0)[The ship's captain refuses to get close to that thing. You all sail away uneventfully.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]]
](else:)[
[[Next Journey]]
]]]]
(link-reveal: "It's obviously a trap, right?")[(replace:?input)[
(if: _roll > 0)[You all sail away uneventfully.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] ](else:)[You sail away.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]]]
]]
]You take your VR helmet off to find that you are a wage slave in a dystopian future where everyone uses immersive sims to distract themselves from the horror that is their actual lives.You were having a psychedelic experience the entire time. You return to your old life, but the City never stops haunting you.This time is different.
Instead of the vast, featureless plain of obsidian sand that you're used to, you're in the playroom of a creature that looks and dresses much like you. Just everything slightly different, slightly off-kilter. It grins at the same time as you and matches your stride around the room, each of you seeking an advantage over the other.
"I have power here," the creature asks. "And what would you say if I offered it to you?"
(link-reveal: "Let me live again!")[The creature grins, its teeth like broken razor blades. "Do you not remember, my wonderful treasure? Who do you think gave you that wonderful phylactery?"
"No, it is time for you pay for my investment."
A million years later, your torn and brutalized psychic essence is finally eroded thin enough that it can no longer suffer or feel anything else either.
The end.]Proof of payment for a full expedition:
- crew
- supplies
- a ship
You'll use this ticket to board the ship, and then you will be on your way into the transdimensional rift to see what exotic treasures you can hopefully return with.Nothing much happened today. Lots of very same-y universes right after the other. Decent winds.
(set: $arg to 2)(display: "UpdateRiftDistance")
[[Next Journey]] This area is not particularly dangerous, but going is slow, and morale is poor. Everyone is hopelessly nauseous.
<b>Command - 1</b>(set: $riftCommand to it - 1)
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] No wind today. You and your crew are stuck in some backwater universe with a very low magical potential.
(if: visits > 2)[Getting stuck in places like this makes you quite worried, as if magic would no longer be real, and you'd be one of these people in these alternate timelines with no way to return to the City.]
(else-if: visits > 4)[In fact, it might be quite nice to just wander off and live with those people forever. Forget about the City.]
(else-if: visits > 6)[You could never forget about the City. That's what keeps you on the ship even when it seems like it will never set sail ever again. But what if you just got off?]
(else-if: visits > 8)[You're afraid of what could have happened that one time. You know, that one time that you got cabin fever during a becalming and left the ship. (either: "Turn your back for an instant", "Stop to help one stranger", "Try to collect some supplies for the crew"), and you almost get trapped in a world where (either: "the local theocracy has condemned you to death.", "a hierarchical system of cannibalism has replaced fiat currency.", "wizards are a rare delicacy.", "everyone is a roboticized drone.")]
(else-if: visits > 12)[
You've gone a bit mad with anger at having to wait once again in some disgusting flyspeck in the middle of the unknown universe.
<b>Command - 1</b>(set: $riftCommand to it - 1)
](else-if: visits > 24)[
You take your time to study this world. You moor the ship's anchor to this stem and go live with the world for a relative lifetime. Then, you return no longer bent nor bearded with age, pull up the anchor, and set sail once again.
You never tell the crew what you saw, which for them was just a few minutes but for you was your entire universe.
]
(set: $arg to 0)(display: "UpdateRiftDistance")
[[Next Journey]]Owning this proves that you are capable of commanding a ship. Worn with pride.Your ship encounters a section of sea that changes only on geological time scales, making it stable enough to make minor repairs on your sail ship, forage for fresh supplies, and allow you turn around and go home.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Forward to Glory!->Next Journey]]
[[Scrape Barnacles off of the Hull]]
[[About to Aft, Return Home!]]A hideous beast arises from the sea, threatening to engulf you.
You have a crew of $riftCrew. You can sacrifice any number of them to the beast, in order to increase the chance that the rest of them can get away.
How many do you sacrifice? (cycling-link: bind _sacrifice, ...(altered: _i via (str: _i), ...(range: 0, $riftCrew)))
(link-reveal: "Sacrifice")[
(if: (num:_sacrifice) is 0)[You'll be sacrificing no one! You and your crew insist on fighting on!
(set: _roll to (random: 0, $riftCrew + $riftCommand))
Roll: _roll
(if: _roll > 20)[You capture the beast with a harpoon and drag it onto the decks where various hooks and knives make short work of it!
<b>Supplies + 100</b>(set: $riftSupplies to it + 100)
[[Next Journey]]
](else:)[
Sadly, your glory is ended somewhere in the lower intestine of a hideous transdimensional serpent.
[[Death]]
]](else:)[
You send _sacrifice crew members into the awaiting maw!
(set: _roll to (random: 0, (pow: (num:_sacrifice), 2) * 5))
Roll: _roll
(if: _roll > 20)[
The poor souls have bought you enough time to escape.
[[Next Journey]]
](else:)[
But the sacrifice was in vain, for you all have perished.
[[Death]]]
]
]The ship is tossed about by ragged winds full of jagged shards of clashing realities.
You and your crew must risk your lives to avoid losing supplies!
How many are you willing to risk? (dropdown: bind _sacrifice, ...(altered: _i via (str: _i), ...(range: 0, $riftCrew)))
(link-reveal: "Batten Down The Hatches!")[
(if: (num:_sacrifice) is 0)[You rush out and begin lashing down loose cargo and tools.
(if: (random: 0, $perception) > 2)[
(set: _roll to (random: 0, $riftCrew + $riftCommand))
Roll: _roll
(if: _roll > 20)[Your crew is inspired by your courage and follow your lead!
<b>Command + 1</b>(set: $riftCommand to it + 1)
(set: $arg to 1)(display: "UpdateRiftDistance")
](else:)[You do a passable job and don't lose too many supplies.
(set: _lostSupplies to (random: 10, 30))
<b>Supplies - _lostSupplies</b>(set: $riftSupplies to it - _lostSupplies)
]
[[Next Journey]]](else:)[You fail to see a swinging boom or mast or whatever those awful wooden swinging things are called. You are struck over the guardrail and into the roaring sea!
[[Set Adrift]]]
](else:)[
You send _sacrifice crew members onto the decks to brave the storm!
(set: _roll to (random: 0, (pow: (num:_sacrifice), 2) * 5))
Roll: _roll
(set: _lostSupplies to (max: 0, 30 - _roll))
(set: $arg to 1)(display: "UpdateRiftDistance")
<b>Supplies - _lostSupplies</b>(set: $riftSupplies to it - _lostSupplies)
(set: $arg to -(abs: (min: 0, (random: 0, 10) - (num: _sacrifice))))
(display: "UpdateRiftCrew")
[[Next Journey]]
]
]You are adrift on the open Rift ocean, clinging precariously to a gyre of swirling wreckage.
(if: (random: 0,5) is 0)[
You don't have long before a massive wedge of dreadnought wreckage clears your tiny patch of safety like so many duck pins. But where can you find safety?
](else:)[[[Wait->Set Adrift]]]
(link-reveal: "Jump Down Into the Rift")[
(if: $inventory contains "Silent Ansible")[
An image appears in front of you, written in the spaces between the pieces of wreckage on which you bob over the ocean eternal. It is the cabin of your flying sail ship, some minutes prior to your unfortunate departure from its safety.
You could just walk right through and [[Pick Next Heading]]
]
(if: $inventory contains "Compass of Many Places")
[
You can make out the shape of [[Safe Harbor]] a short leap away.
]
(if: $inventory contains "Selkie Skin")[You could [[Dive In Headfirst->Next Journey]] while wearing your Selkie Skin.]
(else:)[You could [[Dive In Headfirst->Death]](set: $deathReason to "As you collide with the surface of raw riftspace, your very being is torn into infinitely thin slices.")
]]
(if: (history:) contains "Read Philomender's Book of Excellent Knots")[
(link-reveal: "Craft a Raft")[(if: $cunning > 2)[Your little dinghy manages to get to a [[Safe Harbor]] where you can bring on a new crew.](else:)[(set: $deathReason to "It seems that more cunning was required to craft a boat that could float.")(goto: "Death")]]](if: (history:) contains "Read Philomender's Book of Excellent Knots")[You are able to secure your crew and yourself to the mast. You'd hoped that the sirens would reveal great secrets to you, but it's almost exclusively slanderous gossip.
(display: "Baseless Rumors")
[[Next Journey]]
](else:)[(if: $cunning + $perception > 4)[You are able to resist the alluring call of the sirens.
(set: $arg to 1)(display: "UpdateRiftDistance")
](else:)[(set: $deathReason to "You are gulled by them ladies and dunk yourself headfirst into the ocean eternal.")(goto: "Death")
]
(set: $arg to -(random: 1, (ceil: $riftCrew/2)))(display: "UpdateRiftCrew")
Some of your crew throw themselves to the sirens. They are snatched out of the air in the sirens's greedy claws.
(set: _riftCommandDamage to (random: 0, 1))<b>Command - _riftCommandDamage</b>(set: $riftCommand to it - _riftCommandDamage)
[[Next Journey]]
]
A reality-bending experience where there are 3 hidden mutator dials. One changes each turn. The player must figure out how to navigate the changing states in order to proceed. Big speed boost for quick success.
[[Next Journey]] You are menaced by pirates. You can attempt to fight them or abandon yourself to them.
They choose to either take your treasure and/or supplies, kill you, kidnap you, or join your crew depending on a number of factors.
{(set: $pirateAnger to 5)(set: $pirateHealth to 10)
(set: $crewAnger to 0)(set: $crewHealth to $riftCrew)
(set: $turnsResisted to 0)}
Crew: (live: )[$crewHealth] vs. Pirates: (live: )[$pirateHealth]
|input>[(link-repeat: "Fight!")[(replace:?output)[
{(set: $pirateAnger to it + 1)
(set: $turnsResisted to it + 1)
(set: $playerAttack to (random: 0, $riftCommand))
(set: $pirateAttack to (random: 0, $pirateHealth))}
(if: $playerAttack > $pirateAttack )[
Your crew press the attack against the pirates!
<b>Pirate Damage + (print: $playerAttack - $pirateAttack)</b>(set: $pirateHealth to it - ($playerAttack - $pirateAttack))
(if: $pirateHealth <= 0)[You have defeated the pirates and pillage their loot!
(set: $riftTreasure to it + 100)<b>Treasure + 100</b>
(set: $riftSupplies to it + 30)<b>Supplies + 30<b/>
[[A Fetching Ransom]]
[[Next Journey]]
(replace:?input)[]
]
](else:)[
The pirates begin to overcome you!
<b>Crew Health - (print: $pirateAttack - $playerAttack)</b>(set: $crewHealth to it - ($pirateAttack - $playerAttack))
(if: $crewHealth <= 0)[(replace:?input)[]
[[Kidnapped!]]
[[Set Adrift]]
[[Stranded on a Deserted Island]]
[[On the Lifeboat]]
]]]]
(link-reveal: "Surrender!")[(replace:?input)[](replace:?output)[
(if: $turnsResisted < 3)[(set: $crewAnger to it + 3 - $turnsResisted)]
[[Kidnapped!]]
[[Set Adrift]]
[[Stranded on a Deserted Island]]
[[On the Lifeboat]]
]]
(if: $inventory contains "Captain's Hat")[(link-reveal: "Nail My Colors to the Mast!")[(replace:?output)[
{(set: $playerAttack to (random: 0, $riftCommand) + 1)
(set: $pirateAttack to (random: 0, $pirateHealth))}
(if: $playerAttack >= $pirateAttack )[
You and your crew quickly overwhelm the pirates!
[[Recruit a Salty Crew]]
(set: $riftTreasure to it + 100)<b>Treasure + 100</b>
(set: $riftSupplies to it + 30)<b>Supplies + 30<b/>
[[A Fetching Ransom]]
[[Next Journey]]
(replace:?input)[]
]
]]
]]
(if: $inventory contains "Pirate's Cap")[ [[Parlay with the Pirates]] ]
|output>[]
No supplies on this island.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]]
[[Scrape Barnacles off of the Hull]]
(if: $riftDirection is 1)[ [[About to Aft, Return Home!]] ]No one lives on this island, but it may have forage.
(link-reveal: "Forage for Supplies")[
(set: $arg to (random: 0, 50))(display: "UpdateRiftSupplies")]
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]]
[[Scrape Barnacles off of the Hull]]
(if: $riftDirection is 1)[ [[About to Aft, Return Home!]] ]Either explore the monolith and whatever traps and treasures are therein, or sail on.
(set: $arg to 1)(display: "UpdateRiftDistance")
|input>[
(link-reveal: "Let's Explore!")[
(replace:?input)[(display: "Explore Ancient Tombs")]
]
[[Let's Sail On->Next Journey]] ]This island is inhabited,(if: (random: 0,1) is 1)[ and they guard the beach, forbidding you from landing. They do not appear to be violent: they just want to be left alone.
(set: $arg to 1)(display: "UpdateRiftDistance")
](else:)[and they are willing to share with you and hold palaver on the beach.
They feed you their best foods in exchange for tales of your journeys through this sea.
(set: _musicalItems to (find: _item where (passage: _item)'s tags contains "musical", ...$inventory))
(if: _musicalItems's length > 0)[
With a bit of hasty preparation, you play a piece on your (either: ..._musicalItems) that tells in music what human language could not convey about your epic journey through the seas of infinity. It's quite a hit with both the locals and your crew.
(set: $arg to 1)(display: "UpdateRiftCommand")
(set: $arg to 25)(display: "UpdateRiftSupplies")
](else:)[You do not know their language, and they have only a few fragments of your language, so you must resort to the universal languages. You have no musical instruments, so you spend a few hours eating and doing math.
(set: $arg to 0)(display: "UpdateRiftCommand")
(set: $arg to 10)(display: "UpdateRiftSupplies")]
(if: $riftDirection is 1)[ [[About to Aft, Return Home!]] ]
]
[[Next Journey]] You've made landfall and have sighted animals. You can join a small team of crew members to hunt for game and forage.
Invest a certain amount of time, then pay supplies as food for your crew.
Can choose to invest more time. Will return random amount of supplies from a limited cache.
[[Go Hunting]]
Or, you can sail right past!
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]]
(if: $riftDirection is 1)[ [[About to Aft, Return Home!]] ]The seas are calm, and a large school of fish is feeding on zooplankton beneath your hull. You and some members of your crew decide to do some fishing. There's a little wager on the side to make it extra interesting.
Commit bait resources to try to draw a superior fish. Best fish after 3 rounds wins.
(set: $riftSupplies to it + 50)<b>Supplies + 50</b>
[[Next Journey]] A foul celebration performed by long-time members of the ship's crew for every swab who's never crossed this meridian before.
They have many of these foul celebrations for the many, many meridians in Zenospace.
<b>Command + 1</b>(set: $riftCommand to it + 1)
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] The crew wants to play cards with you, because they do not seem to fully understand that you are a magician.
You could easily cheat to win.
Win
Lose
Catch Them Cheating
Cheat and Get Caught
Cheat and Win
[[Next Journey]] You and the crew are singing chanties and drinking grog.
(either: "There once was a creature", "Of very slight stature") (either: "of curious nature", "and not a bit bashful")!
(either: "And fine, luxurious hair", "Gentle sailors beware")!
(either: "She fell in love with a sailor", "He did her a favor") (either: "who did hard labor", "and he did save her")!
(either: "Mermaid children, the males do bear", "And he fell into her snare")!
(set: $arg to -10)(display: "UpdateRiftSupplies")
(if: (random: 0, 10) is 0)[Actually, you might have had *too much* grog, if that's possible.
[[Wake Up In The Brig]]
]
(else:)[
(set: $arg to 1)(display: "UpdateRiftCommand")
[[Next Journey]] ]Your ship comes to rest in the harbor of a small island.
<b>Command + 1</b>(set: $riftCommand to it + 1)
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Scrape Barnacles off of the Hull]]
[[Next Journey]]
(if: $riftDirection is 1)[ [[About to Aft, Return Home!]] ](set: $arg to 1)(display: "UpdateRiftDistance")
Your sailship has come across the stone ruins of an ancient tomb complex.
Great treasure could be found inside, but perhaps great danger as well.
Either explore the tombs and whatever traps and treasures are therein, or sail on.
|input>[
(link-reveal: "Let's Explore!")[
(replace:?input)[(display: "Explore Ancient Tombs")]
]
[[Let's Sail On->Next Journey]] ]You can choose to explore this vast dreadnought rift ship.
[[Explore the Derelict Dreadnought]]
[[Sail Away->Smooth Sailing]] Beautiful and elegant motion enchanters. Careful study of them can be beneficial.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] As everyone knows, dolphins are highly-evolved hyper-sentient beings that are the only known organisms who can consciously plan their way through transdimensional space.
(set: $arg to 6)(display: "UpdateRiftDistance")
They offer you an additional shortcut:
(if: $riftCommand <= 0)[[[Go to Hell->Next Journey]]](else:)[
(set: _options to (shuffled: ...(find: _item where _item's tags contains "journey", ...(passages:))))
(for: each _item, ...(subarray: _options, 1, $perception))
[
(link-goto: (_item's name), (_item's name))]]Your crew point out a valuable place to get Rift Pearls. It's a press your luck game where you can take a smaller treasure or risk dying to get a bigger treasure.
(set: $breath to $health * 5)
(set: $currentDepth to 0)
|input>[
(link-repeat: "Dive Deeper")[(set: _nextDepth to $currentDepth + (random: 1, 5) * 10)
(set: $currentDepth to it + (random: 1, 5))
(set: $breath to it - 1)
(replace:?output)[Current Depth -> $currentDepth
Breath -> $breath
(if: (random: 0, 4) >= 4)[(set: $riftPearlValue to (random: (ceil:$currentDepth/4), (ceil: $currentDepth/2)))You've found a pearl worth approximately $riftPearlValue treasure units.
]]]
(link-repeat: "Return to the Surface")[(set: _divingDirection to -1)(set: $breath to it - (random: 1,2))
(replace:?output)[(set: $currentDepth to it - (random: 1, 5))Current Depth -> $currentDepth
Breath -> $breath
(if: $currentDepth <= 0)[(replace:?input)[You return to your ship, (if: $riftPearlValue > 0)[victorious, treasure in hand.
(set: $arg to "Perfect Pearl")(display: "GetItem")](else:)[empty-handed.]
(set: $arg to $riftPearlValue)(display: "UpdateRiftTreasure")
[[Next Journey]]](else:)[
(if: $breath <= 0)[Your lungs are running low on vital oxygen and are overflowing with effluvium.
(set: $deathReason to "You asphyxiated.")(set: $arg to 1)(display: "TakeDamage")]]]]]
]
|output>[]
(set: $riftNextJourney to "")
(set: _roll to (random: 1, 6))
The crew begin to riot. Without clear leadership, the situation becomes completely chaotic.
(if: _roll < 3)[
[[Set Adrift]]
]
(else-if: _roll < 6)[
[[Stranded on a Deserted Island]]
]
(else:)[
[[Come out on Top of the Uprising]]
](if: $riftCrew > 1)[Your crew has created an innovative solution to both the supply and overpopulation problem simultaneously!
(set: $arg to -1)(display: "UpdateRiftCommand")
(set: $arg to (ceil: $riftCrew / 2) * 10)(display: "UpdateRiftSupplies")
(set: $arg to -(ceil: $riftCrew / 2))(display: "UpdateRiftCrew")
|output>[]
(set: $riftNextJourney to "")
(if: (history:)'s last is "On the Lifeboat")[ [[Next Journey->On the Lifeboat]] ]
(else:)[
[[Next Journey]] ]
(set: $health to it + 1)](else-if: $riftCrew is 1)[Only one crew member remains, and they're hankering for a hunk of your haunches.
{
(set: $enemyHealth to 2)(set: $deathReason to "What's worse than being killed by a former crew mate is still feeling the teeth as they eat you while the old nervous system powers down.")(set: $enemyType to "Riftrunner")
(set: $fightPattern to (a:(either: "Strike","Throw"),(either: "Strike", "Dodge")))(set: $enemyElementType to "mortal")
(set: $fightIndex to 1)}
|output>[]
|input>[(display: "Fight")]
(event: when $enemyHealth <= 0)[ (set: $arg to -1)(display: "UpdateRiftCrew")(replace:?input)[ (if: (history:)'s last is "On the Lifeboat")[ [[Next Journey->On the Lifeboat]] ]
(else:)[
[[Next Journey]] ] ]]
]
(set: $deathReason to "Nutrition has been sacrificed, which has reduced your effective crew capacity.")$deathReason
(set: $arg to (random: -1, -(ceil: $riftCrew / 2)))(display: "UpdateRiftCrew")
(set: $riftNextJourney to "")
You also go hungry.
(display: "TakeDamage")
(if: (history:)'s last is "On the Lifeboat")[ [[Next Journey->On the Lifeboat]] ]
(else:)[
[[Next Journey]] ]Your crew invites you to join their dice game. They are seated belowdecks around a barrel littered with glimmering coins. They extend you the dice cup.
(display: "Dice Game #1")
[[Time For Me to Call it a Night->Next Journey]] It's time to swab the decks. Everybody groans.
|input>[
(link-reveal: "Jump In and Start Working!")[(replace:?input)[The furious eye of the Rift, the Siren's Folly, is brutally hot today. (set: $deathReason to "You were withered into a hideous flesh jerky by the unrelenting eye of the Rift.")(set: $arg to (either: 0,0, 1))(display: "TakeDamage")
(if: (random: 0, 1) > 0)[Your crew appreciate you throwing in your lot with them.
<b>Command + 1<b/>(set: $riftCommand to it + 1)]
]]
(link-reveal: "Let the Crew Handle It")[(replace:?input)[
(if: (random: 0, $riftCommand) < 1)[Your crew would have appreciated you throwing in your lot with them.
<b>Command - 1<b/>(set: $riftCommand to it - 1)](else:)[Your crew quickly go about their work.
(set: $arg to 1)(display: "UpdateRiftDistance")]
]]
]
[[Next Journey]]{(set: $enemyHealth to 9)(set: $koHealth to 6)
(set: $fightPattern to (a:"Biff",(either: "Boff", "Bash"),"Biff",(either: "Boff", "Bash"),"Rest"))
(set: $fightIndex to 1)
(set: $koReason to "You biffed when you should have boffed.")
}You see a (either: "swarthy", "grinning", "salty") (either: "crewmate", "fellow", "bosun") with their dukes in the air. They challenge you to a little biff-boff-bash!
|output>[]
|input>[
(display: "Sparring Shuffle")
]You and the captain trade chat during a quiet moment.
(set: $arg to 1)(display: "UpdateRiftDistance")
(set: $riftCommand to it + (random: 0, 1))
(either: "Some say Sirens will grant you secrets, should you listen to them.",
"If you get a Compass of Many Places, it will help quite a bit out here.",
"I don't think anyone has gone all of the way to the center of the Rift.",
"Every time we see land, it could be even more dangerous than the open seas.",
"Reality doesn't work the same way out here as it does in the City.",
"I once saw an iceberg in the middle of the warmest of seas. Turns out to have been the beak of a truly dire monster.")
[[Next Journey]]Everyone takes a turn in the Crow's Nest, because staring into the raw, unfiltered eye of the Rift tends to cause folk to go mad.
(if: (random: 0, $perception) >= 2)[By keeping your eyes open, you're able to pick a better route through the possibility sea.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Pick Next Heading]] ](else:)[
By performing your job adequately, you help move the ship even faster through the sea.
(set: $arg to 2)(display: "UpdateRiftDistance")
[[Next Journey]]]You've been taken captive but there's still time to make it back to your ship.
|input>[(set: $ransom to (random: 1, 10) * 100)
(if: $gold >= $ransom)[(link-reveal: "Pay the Ransom ($ransom)")[
(set: $arg to -$ransom)(display: "UpdateGold")
They release you on a lifeboat.
[[On the Lifeboat]]
]]
Try to fight your way to safety
[[Steal a Lifeboat]]]
You've rescued an aristocratic tourist from people more wicked than yourselves. They'll fetch a fine price upon their safe return?
|output>[]
|input>[(link-reveal: "Abandon Them")[(replace:?input)[You leave them to their own devices.
[[Next Journey]] ]]
(link-reveal: "Kidnap Them")[(replace:?input)[
\todo
[[Next Journey]] ]]
(link-reveal: "Recruit Them")[(replace:?input)[
(set: $arg to 1)(display: "UpdateRiftCrew")
[[Next Journey]] ]]]
This mirror reflects a distorted version of the world. (if: $inventory contains "Shadow Passenger")[ When you look at it, you see something that looks and dresses much like you. Just everything slightly different, slightly off-kilter. It grins at the same time as you, its teeth like broken razor blades. ](else:)[ When you look at it, you're upside down and backwards in the reflection.](set: $riftNextJourney to "")
You've been deposited on a deserted island to take care of yourself. Quite a favor. You could have been keelhauled.
(set: _item to "Captain's Hat")(display: "LoseItem")
|output>[]
(set: $resources to 3)
(link-repeat: "Establish Camp")[(append:?output)[(display: "Tick")
(set: $resources to it + (random: 0, 2))(set: $riftSupplies to it + (random: 0, 5))You build up fuel for a signal fire, gather what meager food and water you can find, and prepare for signs of a rescue.
]]
(link-repeat: "Try to Escape")[(append:?output)[(display: "Tick")You attempt a grand signal fire. (set: $resources to (ceil: it / 2))
(if: (random: 0, 10) < $resources)[
You are saved by a passing crew in a lifeboat!
[[On the Lifeboat]]
]]](set: $riftNextJourney to "")
(set: $inventory to it + (ds: "Captain's Hat"))
You've somehow managed to come out on top in this battle, and your crew have a newfound respect for you!
(set: $riftCommand to (max: $riftCommand, 11))
(if: (history:)'s last is "On the Lifeboat")[ [[Next Journey->On the Lifeboat]] ]
(else:)[
[[Next Journey]] ]The crew takes advantage of an advantageous current to boost speed through the area.
<b>Command + 1</b>(set: $riftCommand to it + 1)
(set: $arg to 4)(display: "UpdateRiftDistance")
[[Next Journey]] A book full of excellent knots, both physical and in the form of enchantments.You are fascinated by this book, which explains everything from simple concepts like the Gordian Knot to the true mysteries like why christmas tree lights get tangled even if you don't touch or move them for a year.
(link-goto: "Put the Book Away", "Read a Book In Your Library")
You are handed an embossed calling card. The darkness hides everything except for your hand and the card. You turn to look at what is written on the card, and it says:
ETAOIN SHRDLUYou see a bank of dials and a lever.
(cycling-link: bind _a, "E","A","T","O","I","N","S","H","R","D","L","U")
(cycling-link: bind _b, "E","A","T","O","I","N","S","H","R","D","L","U")
(cycling-link: bind _c, "E","A","T","O","I","N","S","H","R","D","L","U")
(cycling-link: bind _d, "E","A","T","O","I","N","S","H","R","D","L","U")
(cycling-link: bind _e, "E","A","T","O","I","N","S","H","R","D","L","U")
(cycling-link: bind _f, "E","A","T","O","I","N","S","H","R","D","L","U")
(link-repeat: "Pull Lever")[(if: (a: _a, _b, _c, _d, _e, _f) is (a:"E","A","T","O","I","N"))[Ah, the First Prestige! You have made quite shrewd investments in the world of transdimensional enchanted finance, and so you shall begin this story with an embarassment of wealth.
(set: $gold to 9999999)]
(else-if: (a: _a, _b, _c, _d, _e, _f) is (a:"S","H","R","D","L","U"))[Ah, the Second Prestige! Known to all neighborhoods, a real cosmopolitan!
(for: each _item, "West Fires", "Eastern Fortress", "North Harbor", "South Quarry", "Lower Depths", "Upper Castlerock")[(set: $arg to "Neighborhood Door to " + _item)(display: "GetItem")]]
(else-if: (a: _a, _b, _c, _d, _e, _f) is (a:"T","R","E","A","T","S"))[
Everything you could ever want is yours.
(set: $inventory to (ds: (altered: via its name, ...(find: _i where _i's tags contain "item"))))
]
(else-if: (a: _a, _b, _c, _d, _e, _f) is (a:"E","T","E","R","N","A"))[
You've killed Death itself!
(set: $maxHealth to 9999)(set: $health to $maxHealth)(set: $phylacteryCharges to 9999)
]
(else-if: (a: _a, _b, _c, _d, _e, _f) is (a:"S","A","I","N","T","S"))[
Universally beloved, if only due to an incredibly powerful glamour.
(set: $reputation to (dm: "public", 9999))
]
(else-if: (a: _a, _b, _c, _d, _e, _f) is (a:"U","L","T","R","A","S"))[
You are the ultimate Magician!
(set: $maxCunning to 9999)(set: $maxPerception to 9999)
(set: $cunning to $maxCunning)(set: $perception to $maxPerception)
]
(else:)[
The gears clink and grind in an unpleasant manner, but no result is forthcoming from the machine.
]
]
// debug //
(set: $gold to 9999999)
(set: $inventory to (ds: ...(altered: via its name, ...(passages: where its tags contains any of (a: "item", "book", "furniture")))))
(set: $maxHealth to 9999)(set: $health to $maxHealth)(set: $phylacteryCharges to 9999)
(set: $reputation's ($neighborhood's name) 9999)
(set: $maxCunning to 9999)(set: $maxPerception to 9999)
(set: $cunning to $maxCunning)(set: $perception to $maxPerception)
[[Home Again]]
(if: $ticks % 13 < 7)[Along the canal, the tide is low. Rich mounds of sediment on the canal bottom are embedded with detritus from millenia of the City Past.
|input>[
(link-repeat: "Search for Trinkets")[(replace:?output)[(display: "RandomMudlark")]]]](else:)[The canal tide is high. Come again in the morning if you want to try finding treasures in the mud.]
|output>[]
(display: "NavOptions")(set: $inventory to it + (ds: "Secret Compartment"))
You've found some kind of Secret Compartment in the floor of your apartment. The loose panel slides apart, revealing a little cranny.
(display: "Secret Compartment")
[[Use Secret Compartment]]You reach your hand into the secret compartment and find a Witch Bottle.
Gross! You try to put it back, but the secret compartment is already full. Unfortunately, it looks like the compartment is covered up so that an infinite amount of witch bottles from the dimension where everything is witch bottles doesn't accidentally spill over into this universe.
(set: $arg to "Witch Bottle")(display: "GetItem")
[[Home Again]] A hidey-hole in the floor of your apartment that you found some time ago.This slight-warm-to-the-touch red-orange gemstone can instantly transport you from any location in the universe, space and/or time, to your very home. Self-destructs upon use.
(if: $inventory contains "Hearthstone")[[Use Hearthstone]]]You crush the stone in your fist. Each grain of dust in the stone binds with your elemental essence and then immediately collapses a suspended lode enchantment, returning you in your exact current condition back to your home.
(set: $arg to "Hearthstone")(display: "LoseItem")
[[Home Again]] The most precious artifact in the world is housed here, behind a garrison of wizards, soldiers, and daemons.
(set: _item to "Aleph")(set: _cost to 1)(display: "QuickBuy")
[[Begone!->Home Again]]Convert all of your treasure and distance into gold, items, and/or reputation.
(set: _totalBuyback to 0)
Supply Buyback: (set: _buyback to (ceil: $riftSupplies/2))_buyback(set: _totalBuyback to it + _buyback)(set: $riftSupplies to 0)
Crew Bonus: (set: _buyback to $riftCrew * 10)_buyback(set: _totalBuyback to it + _buyback)(set: $riftCrew to 0)
Distance Bonus: (set: _buyback to $riftDistance)_buyback(set: _totalBuyback to it + _buyback)
Treasure Bonus: (set: _buyback to $riftTreasure * 5)_buyback(set: _totalBuyback to it + _buyback)
(for: each _item, ...(shuffled: "Hand of Glory","Slow Clock","Grain of Gold","Perfect Pearl","Noble Cowl"))[
(if: (random: 0, $riftTreasure) > 10)[(set: $arg to _item)(display: "GetItem")]
]
(set: $arg to _totalBuyback)
(display: "UpdateGold")
[[Riftrunner's Guild]]
(display: "Reset Rift Journey")
(display: "NavOptions")If you have the map and the key, the treasure is yours to keep.
(if: $inventory contains all of (ds: "Treasure Map", "Chest Key"))
[
(link-reveal: "Dig Up the Treasure")[
(set: $inventory to it - (ds: "Treasure Map", "Chest Key"))
(set: $arg to 250)(display: "UpdateRiftSupplies")
(display: "UpdateRiftTreasure")
]
]
(else-if: $inventory contains all of (ds: "Treasure Map", "Skeleton Key"))
[
(link-reveal: "Dig Up the Treasure")[
(set: $inventory to it - (ds: "Treasure Map"))
(if: (random: 0, 6) is 0)[The skeleton key has finally broken! And its broken off in the lock!
(set: $inventory to it - (ds: "Skeleton Key"))](else:)[
(set: $arg to 250)(display: "UpdateRiftSupplies")
(display: "UpdateRiftTreasure")
]]
]
(else:)
[Unfortunately, you have no such tools.]
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] A spiky accretion of captured sail ships, spikes, electrical wires, and rudimentary pre-ansible stabilization technology forms the base of operations for rift pirates.
(if: $inventory contains any of (ds: "Pirate Hat", "Belonging Sign"))[
If you're allied with the pirates, you can stay here and resupply, etc.
[[Recruit a Salty Crew]]
[[Singing Chanties]]
[[Purchase Supplies]]
[[Scrape Barnacles off of the Hull]]
(if: $riftDirection is 1)[ [[About to Aft, Return Home!]] ]
]
(else:)
[
(if: (random: 0, 1) is 0)[
You cannot escape them!
[[Attacked by Pirates]]
](else:)[
You sail off without interacting with them.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]]
]]Your ship approaches a sizeable island with a small, well-maintained fort squatting on the highest point. Serious-looking soldiers in light arms and armor approach your landing.
(unless: $inventory contains "Pirate's Cap")[
One hails you, "You can stay here and do basic maintenance as long as you're not a pirate."
(if: $inventory contains any of (ds: "Noble Cowl", "Belonging Sign"))[
"Ah! I didn't recognize you at first. Please avail yourself of our surplus!"
[[Purchase Supplies]]]
[[Scrape Barnacles off of the Hull]]
Or, you can skedaddle.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]]
(if: $riftDirection is 1)[ [[About to Aft, Return Home!]] ]
](else:)[
You're a pirate, they're an anti-pirate. You should just move along.
[[Next Journey]]
Or, you can [[Raid the Colonial Fort]].
](if: visits < 3)[
You see a dark form in the eternal ocean below you. It lurks but does not emerge.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] ]
(else-if: visits is 3)[
The darkness below the surface erupts, engulfing your ship deep in its craw.
[[In the Literal Belly of the Literal Beast]]
]
(else:)[Not since that day have you seen the darkness follow you in the deep. It is through with you.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] ]Try to escape the inside of a giant transdimensional dragon whale before you are digested.
[[Next Journey]]The crew entreat you to learn an incredible cyclopaedia of absolute filth, including outright lies about basic anatomy.
(set: $arg to 1)(display: "UpdateRiftCommand")
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] Every ship has its resident sea hag. They are known to be liars, but it depends on when and how you talk to them.
Sea hags are beings who've been specially enchanted to withstand repeated, prolonged exposure to transdimensional forces that would otherwise drive the crew mad.
They can give you enchantment marks that grant protection from the Rift.
(set: _cost to 1500)(set: $marketplace to (a: "Belonging Sign", "Skein of the Deep"))(for: each _item, ...$marketplace)[(unless: $inventory contains _item)[
(display: "QuickBuy")
]]
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] Unpopular, tiresome work that nevertheless gives an immediate distance boost.
<b>Command - 1</b>(set: $riftCommand to it - 1)
(set: $arg to 3)(display: "UpdateRiftDistance")
[[Next Journey]] Several market stalls have been lashed together on top of some floats, creating a floating market that has crossed paths with you.
(set: $marketplace to (a: "Supply Crate", "Supply Crate", "Supply Crate"))
(set: $price to 100)
(for: each _item, ...$marketplace)[ (set: _t1 to _item) (set: _t2 to $price) (link-reveal: "Buy " + _t1 + " For " + (str: _t2) + " Gold")[(if: $gold > _t2)[You buy _t1 for _t2.
(set: $riftSupplies to it + 50)(set: $gold to it - _t2)
(replace:?clock)[(display: "RenderHeader")]](else:)[You don't have the dosh, mate.]]
(set: $price to $price * 2)
]
[[Next Journey]]A floating agglomeration of reclaimed materials, impromptu craftwork, and outright trash. They sell the choicest pieces of their scavenging for fresh food and gold.
Random, semilegal items sold by a mobile heap of trinkets, knickknacks, wagon wheels, and presumably an actual person as wiry, grey arms do reach out with items for sale and to receive payment, although not always the stereotypical number we associate with humanoids.
{(set: $marketplace to (shuffled: "Selkie Skin", "Pirate's Cap", "Map Fragment", "Lodestone", "Sea Scum")'s (a: 1, 2))}
(for: each _item, ...$marketplace)[(unless: $inventory contains _item)[
(set: _cost to 10 + (random: 0, 6) * 5)(display: "QuickBuy")
]]
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] A gigantic ansible, arranging rings of order out from it into the boiling chaos of the Rift.
(if: $inventory contains "Silent Ansible")[
Your Silent Ansible harmonizes with the Light House, sending you forward a dramatic distance and granting you a selection of choice universes.
(set: $arg to 100)(display: "UpdateRiftDistance")
(set: _options to (shuffled: ...(find: _item where _item's tags contains "journey", ...(passages:))))
(for: each _item, ...(subarray: _options, 1, $riftCommand))
[
(link-goto: (_item's name), (_item's name))]]
(else-if: $inventory contains "The Compass of Many Places")[
(set: _options to (shuffled: ...(find: _item where _item's tags contains "journey", ...(passages:))))
(for: each _item, ...(subarray: _options, 1, 4))
[
(link-goto: (_item's name), (_item's name))]]
(else:)[
(set: $arg to 10)(display: "UpdateRiftDistance")
]
[[Next Journey]] The world isn't flat, of course, but there are numerous places in this unnatural sea where it drops off and becomes an enormous waterfall for many leagues in either direction.
You must backtrack a bit to get to a place where you can safely maneuver.
<b>Command - 1</b>(set: $riftCommand to it - 1)
(set: $arg to 0)(display: "UpdateRiftDistance")
[[Next Journey]] (if: (random: 0, $perception) <= 2)[You've run aground! The crew are upset. They desperately repair the ship before it submerges into transreality space.
<b>Command - 1</b>(set: $riftCommand to it - 1)
(set: $arg to 0)(display: "UpdateRiftDistance")
(if: $riftDirection is 1)[ [[About to Aft, Return Home!]] ]
](else:)[
You spot the shallows and alert the navigator in time to dodge them.
(set: $arg to 1)(display: "UpdateRiftDistance")
]
[[Next Journey]] All around you is impenetrable fog. You can carefully drift in place until it is clear enough to see, or you can push forward and risk crashing into detritus or landfall.
|input>[(link-reveal: "Charge Ahead!")[(replace:?output)[](if: (random: 0, $perception) > 2)[(set: $arg to 1.2)(display: "UpdateRiftDistance")
[[Next Journey]]](else:)[
[[Run Aground]]]]]
|output>[(if: (random: 0,1) is 0)[ [[Drift in Place->In the Fog]]](else:)[
(set: $arg to 0.1)(display: "UpdateRiftDistance")(replace:?input)[]
[[Next Journey]]]
]
Some crew point out that you're sailing close to a famous coral reef, which may be entertaining to explore.
|input>[
(link-reveal: "Let's Explore")[(replace:?input)[
Down in the briny water, floating about like gravity is a myth or a mild inconvenience. You and your crew can clearly see the vitality of this reef. You see
(either: "3D Mandelbrot coral", "hyperbolic sponges", "eels poking through cracks", "the worms that make the wormholes").
It is an awe-inspiring journey.
(set: $arg to 1)(display: "UpdateRiftCommand")
[[Next Journey]]
]]
(link-reveal: "Let's Keep Going")[
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]]
]
]If you are going towards the eye of the Rift, will push you back towards the Rift.
(if: $riftDirection > 0)[(set: $arg to -2)(display: "UpdateRiftDistance")]
If you are going back to North Harbor, will push you closer to North Harbor.
(if: $riftDirection < 0)[(set: $arg to 2)(display: "UpdateRiftDistance")]
[[Next Journey]] They will trade fresh supplies to borrow crew members.
Crew members who are "borrowed" will be returned the next time that the mermaids are encountered, but they will have thousands of mermaid eggs in their bellies.
(set: $arg to (dm: "delay", 3, "event", "Mermaid Birth"))(display: "Schedule Event")
[[Next Journey]] A group of selkies pops out of the sea near your vessel. In their hands they hold the skin of a selkie outcast.
(display: "Selkie Skin")
(set: _item to "Selkie Skin")(set: _cost to 350)(display: "QuickBuy")
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] A pitched battle between two full navies.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] A dangerous bloom of flora that prevents forward movement.
(set: $arg to 0)(display: "UpdateRiftDistance")
[[Next Journey]] The crosswinds here make going straight quite challenging. If you're not cautious, you'll end up perpendicular in the sixth dimension AKA "ass over teakettle".
(set: $arg to -1)(display: "UpdateRiftCommand")
(set: $arg to 0)(display: "UpdateRiftDistance")
[[Next Journey]] (if: (history:) contains "Read The True History of Leng")[Ah, that belongs to the Leng-i-ans. We could pillage that or sail away unharmed.
]
(else:)[Yonder domed city in the sea. Who knows what that is? The crew grow anxious and spout superstitious nonsense.
<b>Command - 1</b>(set: $riftCommand to it - 1)
]
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] A purported history of an ancient extinct semi-aquatic species of wizards.Mostly rubbish. Nice illustrations, though.
(link-goto: "Put the Book Away", "Read a Book In Your Library")You challenge a fellow riftrunner sail ship to a race.
<b>Command - 1</b>(set: $riftCommand to it - 1)
(set: $arg to 1)(display: "UpdateRiftDistance")
<b>Supplies - 1</b>(set: $riftSupplies to it - 1)
[[Next Journey]] You (if: $riftCrew > 0)[and the $riftCrew remaining crew are on a lifeboat together](else:)[are on a lifeboat alone], awaiting rescue.
(set: $arg to -1)(display: "UpdateRiftCommand")
(display: "UpdateRiftSupplies")
(if: $riftCrew > 0 and $riftSupplies < 0 and $riftCommand < 0)[(goto: (either: "Mutiny!", "Cannibalism", "Scurvy"))](else:)[
(set: $arg to (either: 0, 1, 1))(display: "UpdateRiftDistance")
(if: (random: 0, 100) is 0)[ [[Safe Harbor]]]
(if: $riftDistance >= $riftTripDistance * 2)[ [[North Harbor]] ](else:)[
[[On the Lifeboat]]]](set: $riftTreasure to 0)You don't know how, but assassins have come on board and are here to kill you!
{(set: $enemyHealth to 3)
(set: $fightPattern to (a:"Strike","Strike",(either: "Strike", "Throw"),"Rest"))
(set: $fightIndex to 1)
(set: $deathReason to "You were garrotted in your bunk by a professional killer.")
}You see a (either: "cloaked", "shadowy", "zealous") (either: "strangler", "assassin", "strongarm") with their weapon levelled at you.
They demand your life.
|output>[]
|input>[(display: "Fight")]
(event: when $enemyHealth <= 0)[ [[Next Journey]] ]You've somehow picked up stowaways. With nowhere to drop them off, you press them into your service.
|output>[(set: $arg to 2)(display: "UpdateRiftCrew")]
[[Next Journey]] [[Next Journey]] It's the Flying Dutchman. You can board it, but it has nothing to discover.
[[Next Journey]] Mudlarking in the ocean eternal. Try not to fall in!
(link-repeat: "Search the Gyre")[(if: (random: 0, 25) is 0)[(goto: "Monster Attack")](else:)[(replace:?output)[(display: "RandomTrashGyre")]]]
|output>[]
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] Transdimensional tourists getting drunk and taking photos of the Rift.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] In what passes for night in this misbegotten Rift, the crew carry lanterns to illuminate and signal.
(if: $perception > 3)[As you watch, something seems off with one of the lanterns. You shout to your crew as a hideous, toothy maw erupts from the Rift Sea. A giant Angler, with a hypnotic signal lamp on its brow.
Some noble crew are devoured, but not as many as would have been without your warning.
(set: $arg to -(random: 1, 2))(display: "UpdateRiftCrew")](else:)[
Without warning, a hideous, toothy maw erupts from the Rift Sea. A giant Angler, with a hypnotic signal lamp on its brow, begins devouring your crew.
(set: $arg to -(random: 1, $riftCrew))(display: "UpdateRiftCrew")
]
You escape, but barely.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] A great, gelatinous mass arises from the sea in front of your ship. Deadly, stinging tentacles trail behind it in unseen winds. You and your crew may be able to navigate through!
(if: (random: 0, $perception + $riftCommand) > 1)[
You've managed to escape!
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]]
](else:)[
Sadly, you've become entangled!
[[Monster Attack]]
]
The crew in the crow's nest hollers a "Hallooo!" to the small fleet of fast-moving warships approaching you.
(if: (random: 0, 3) is 0)[They've decided to take you on.
[[Attacked by Pirates]]]
(else:)[
They must have been after someone else.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]]
]
Existential threat to ship.
FIRE!!!
You and your crew must risk your lives to avoid losing supplies OR WORSE!
How many are you willing to risk? (dropdown: bind _sacrifice, ...(altered: _i via (str: _i), ...(range: 0, $riftCrew)))
(link-reveal: "Batten Down The Hatches!")[
(if: (num:_sacrifice) is 0)[You rush out and begin dousing the fire with water, spellcraft, and panic sweat.
(if: (random: 0, $perception) > 2)[
(set: _roll to (random: 0, $riftCrew + $riftCommand))
Roll: _roll
(if: _roll > 20)[Your crew is inspired by your courage and follow your lead!
(set: $arg to 1)(display: "UpdateRiftCommand")
(set: $arg to 1)(display: "UpdateRiftDistance")
](else:)[You do a passable job and don't lose too many supplies.
(set: $arg to (random: 10, 20))(display: "UpdateRiftSupplies")
]
[[Next Journey]]](else:)[The ship is lost. You've a chance to escape.
[[On the Lifeboat]] ]
](else:)[
You send _sacrifice crew members into the ship's coal bin!
(set: _roll to (random: 0, (pow: (num:_sacrifice), 2) * 5))
Roll: _roll
(set: $arg to (max: 0, 30 - _roll))(display: "UpdateRiftSupplies")
(set: $arg to 1)(display: "UpdateRiftDistance")
(set: $arg to -(abs: (min: 0, (random: 0, 10) - (num: _sacrifice))))
(display: "UpdateRiftCrew")
[[Next Journey]]
]]You happen upon a desperate, scrawny-looking fellow clinging to a chunk of detritus. They have been set adrift. You could easily pick them up, but it would cost you some travel time.
|input>[(link-reveal: "Rescue Them")[(replace:?input)[
(if: $inventory contains "Selkie Skin")[They see you holding the Selkie Skin and explode with rage.
"How dare you take that!" they scream.
They grab the Selkie Skin from you, don it themselves, and then disappear beneath the waves.
(set: $inventory to it -(ds: "Selkie Skin"))
]
(else:)[
(set: $arg to 1)(display: "UpdateRiftCrew")] ]]
(link-reveal: "Keep Going")[(replace:?input)[(set: $arg to 1)(display: "UpdateRiftDistance")]]]
|output>[]
[[Next Journey]]Build an artifact.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] Since it's not really water, you can fly your ships into the "ocean" in order to pick up treasure or supplies.
{(set: $breath to $health * 5)
(set: $currentDepth to 0)
|input>[(set: _nextDepth to $currentDepth + (random: 1, 5) * 10)
(link-repeat: "Return to the Surface")[(set: _divingDirection to -1)(replace:?input)[](set: $breath to it - (random: 1,2))
(replace:?output)[(set: $currentDepth to it - (random: 1, 5))Current Depth -> $currentDepth
Breath -> $breath
(if: $currentDepth <= 0)[You return to your ship, victorious, treasure in hand.
<b>Treasure + $riftPearlValue<b/>(set: $riftTreasure to it + $riftPearlValue)](else:)[
(if: $breath <= 0)[Your lungs are running low on vital oxygen and are overflowing with effluvium.
(set: $deathReason to "You asphyxiated.")(set: $arg to 1)(display: "TakeDamage")]]]]<br/><br/>
(link-repeat: "Dive Deeper")[
(set: $currentDepth to it + (random: 1, 5))
(set: $breath to it - 1)
(replace:?output)[Current Depth -> $currentDepth
Breath -> $breath
(if: (random: 0, 4) >= 4)[(set: $riftPearlValue to (random: (ceil:$currentDepth/4), (ceil: $currentDepth/2)))You've found a pearl worth approximately $riftPearlValue treasure units.
(link-reveal: "Take it and Return to the Surface")[(replace:?input)[]]
]
]
]]
|output>[]
}
[[Next Journey]]At risk to your supplies, you can attempt a shortcut.
(set: $arg to -(random: 0, $riftSupplies))(display: "UpdateRiftSupplies")
(set: $arg to (random: 0, 10))(display: "UpdateRiftDistance")
[[Next Journey]] Everyone thinks penguins are adorable. Good feelings.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] Giant pillars of steaming hot ocean erupt from the rift sea. You could ride on them for a distance boost, but it's risky.
|input>[(link-reveal: "Charge Ahead!")[(replace:?output)[](if: (random: 0, $perception) > 2)[(set: $arg to 10)(display: "UpdateRiftDistance")
[[Next Journey]]](else:)[
[[Run Aground]]]]]
|output>[It's pretty foggy down here.
[[Drift in Place->In the Fog]]]Filthy and demoralizing. Witch Jars everywhere!
(set: $arg to 0)(display: "UpdateRiftDistance")
[[Next Journey]] Some sentients live full time out here on tiny ships.
They will trade supplies for curiosities.
(set: _options to (find: _p where (passage: _p)'s tags contains "item", ...$inventory))
(if: _options's length > 2)[
(for: each _item, ...(shuffled: ..._options's (a: 1, 2, 3)))[(set: _i to _item)
(link-reveal: "Trade " + _i)[(set: $inventory to it -(ds: _i))
(set: $arg to it + (random: 5, 50))(display: "UpdateRiftSupplies")]
]]
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] Super-sweet whales.
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]]
(for: each _book, ...(find: _item where _item's tags contains "book", ...(passages:)))[(link-goto: "Read " + _book's name)
]
[[Borges Memorial Library]](K2CO3) Keep away from open flame, unless you actually want a big dangerous fire, which is definitely something that comes in handy.Iterated Prisoner's Dilemma
Iterated Knights & Knaves
(display: "NavOptions")If you have the Silent Ansible and the Aleph and go to the Veil of the Void, you can safely go out there, where you meet an old version of yourself.
"I've been waiting," they say, pointing to an exhausted Silent Ansible next to them.
They take your Silent Ansible and start walking in the same direction you were going.
You sit down on the obsidian sand and start waiting for the next few hundred years or so.(set: $currentContract to (passage:)'s name)
Your client wants you to crack into the Shadow Vault, a safehouse of legend where the most dangerous items in the world are kept away when they cannot be destroyed or are too valuable to be destroyed.
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Enchantment Trap", "Encounter: Fire Ghost", "Encounter: Thug", "Fulfilled: The Shadow Heist"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
[[Begin!->Encounter]]
(display: "NavOptions")Your client wants you to plant a trinket in an unobtrusive place in a powerful dignitaries home. They can't be seen doing it, so they're hiring you to do the necessary. The dignitary themselves is not at home right now.
|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
{(set: $encounterPayout to (min: (100 + 10 * $reputation's ($neighborhood's name)), 500))
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Enchantment Trap", "Encounter: Fire Ghost", "Encounter: Thug", "Fulfilled: Plant A Spying Eye"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)}
[[Get to Work!->Encounter]]]]
[[Reject->Explore the Neighborhood]] ]The client would like you to take point on liberating some treasure from one of the minor vaults in the Fortress.
|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
(set: $contractCancelledOnDeath to 1)
[[Let's Get to Work->Vault Heist]]
]]
[[Reject->Explore the Neighborhood]]
]|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
{(set: $encounterPayout to (min: (100 + 10 * $reputation's ($neighborhood's name)), 500))
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Thug", (either: "Encounter: Enchantment Trap", "Encounter Random Color"), "Fulfilled: Steal a Package"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)}
[[Get to Work!->Encounter]]]]
[[Reject->Explore the Neighborhood]] ]You've got to get into the local Magistrate's office and alter a fingerprint on a morphine ampoule.
(set: $encounterPayout to (min: (100 + 10 * $reputation's ($neighborhood's name)), 750))
|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
(set: $encounterStack to (a: "Encounter: Corrupt Guard", "Fulfilled: Tamper with Evidence"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)
[[Begin!->Encounter]]
]]
[[Reject->Explore the Neighborhood]] ]|input>[
(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
Your client wants you erase an enemy of theirs. It's like an assassination, but the victim will never have existed. Your employer will put the payout in a temporal escrow enchantment so that when they don't remember having hired you, because the target of their hit no longer exists, you'll still get paid.
(set: $encounterPayout to (min: (100 + 10 * $reputation's ($neighborhood's name)), 900))
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Enchantment Trap", "Encounter: Fire Ghost", "Encounter: Thug", "Fulfilled: Erase My Enemy"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
[[Chase After Him!->Encounter]]
]]
[[Reject->Explore the Neighborhood]] ]|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
(set: $encounterPayout to (min: (300 + 30 * $reputation's ($neighborhood's name)), 1500))
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Enchantment Trap", "Encounter: Fire Ghost", "Encounter: Thug", "Fulfilled: Jailbreak"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)
[[Chase After Him!->Encounter]]
]]
[[Reject->Explore the Neighborhood]] ]|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
(set: $encounterPayout to (min: (300 + 30 * $reputation's ($neighborhood's name)), 1500))
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Enchantment Trap", "Encounter: Fire Ghost", "Encounter: Thug", "Fulfilled: Jailbreak"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)
[[Chase After Him!->Encounter]]
]]
[[Reject->Explore the Neighborhood]] ]|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
(set: $encounterPayout to (min: (300 + 30 * $reputation's ($neighborhood's name)), 1500))
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Enchantment Trap", "Encounter: Fire Ghost", "Encounter: Thug", "Fulfilled: Jailbreak"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)
[[Chase After Him!->Encounter]]
]]
[[Reject->Explore the Neighborhood]] ]What a wizard does is constantly shaping the world around them to their will, altering threads of reality, reweaving or cutting where necessary.
You do not know "spells", so much as you understand the seething skein of the Multiverse that surrounds us all.
However, the average Mortal cannot maintain such hypervigilance. If they could, they'd be wizards. However, they can still perform magic: very specific effects for very specific conditions.
A mortal wishes for you to craft them a spell book with a handful of rituals for some minor effects.
- Get Ink of Enchantment
- Get Blank Scroll
- Get Ethereal Threads
|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
(set: $encounterPayout to (min: (300 + 30 * $reputation's ($neighborhood's name)), 1500))
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Bring Your Client Spellbook Ingredients", "Fulfilled: Craft a Spellbook"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)
(set: $contractRequirements to (a: "Ink of Enchantment", "Blank Scroll", "Ethereal Threads"))
[[Go Fetch!->Encounter]]
]]
[[Reject->Explore the Neighborhood]] ]Your client wants you to perform enchantments and glamours on two young nobles so that they will marry and unite their houses in a strategic alliance.
|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
(set: $encounterPayout to (min: (300 + 30 * $reputation's ($neighborhood's name)), 1500))
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Enchantment Trap", "Encounter: Fire Ghost", "Encounter: Thug", "Fulfilled: Jailbreak"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)
[[Chase After Him!->Encounter]]
]]
[[Reject->Explore the Neighborhood]] ]Your client wants you to pretend to be a young noble's blind date and ruin the whole experience in order to ruin the potential relationship.
(set: $encounterTimeLimit to 15)
(set: $encounterLocation to (either: "West Fires", "North Harbor", "Eastern Fortress", "South Quarry", "Lower Depths", "Upper Castlerock"))
(set: $encounterPayout to (min: (300 + 30 * $reputation's ($neighborhood's name)), 1500))
They want you to go to $encounterLocation within $encounterTimeLimit hours to visit with the young noble.
Then ruin the date.
|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
(set: $encounterStack to (a:))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)
[[Home Again]]
(link-goto: (history:)'s last)
]]
[[Reject->Explore the Neighborhood]] ]Your client wants you to escort them out of the city.
"I can't be seen leaving! They may send an assassin!"
|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
(set: $encounterPayout to (min: (300 + 30 * $reputation's ($neighborhood's name)), 1500))
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Enchantment Trap", "Encounter: Fire Ghost", (either: "Encounter: Thug", "Encounter: Assassin"), "Fulfilled: Smuggle Your Client Out of the City"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)
[[Let Us Away!->Encounter]]
]]
[[Reject->Explore the Neighborhood]] ](set: $currentContract to (passage:)'s name)
You've been invited to a card game. It is strictly illegal.
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Card Sharks", "Fulfilled: Professionals at the Card Table"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
[[Let's Get Paid!->Encounter]]Your client wants you to take a dive in a wizard duel. They promise you won't be killed or seriously maimed.
|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
(set: $encounterPayout to (min: (300 + 30 * $reputation's ($neighborhood's name)), 1500))
(set: $encounterStack to (a: "Encounter: Sparring Duel", "Fulfilled: Take a Dive"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)
[[Let's Get It On!->Encounter]]
]]
[[Reject->Explore the Neighborhood]] ]Your client wants you to remove a curse mark that has been placed upon them by their enemy.
|input>[(link-reveal: "Accept")[(replace:?input)[
(set: $currentContract to (passage:)'s name)
(set: $encounterPayout to (min: (300 + 30 * $reputation's ($neighborhood's name)), 1500))
(set: $encounterStack to (a: "Encounter Random Color", "Encounter: Enchantment Trap", "Encounter: Fire Ghost", "Encounter: Thug", "Fulfilled: Lift a Curse"))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)
[[Chase After Him!->Encounter]]
]]
[[Reject->Explore the Neighborhood]] ](set: $encounterTarget to (shuffled: ...($neighborhood's locations))'s 1st)
Your client wants you to carry a package to $encounterTarget.
|input>[(link-reveal: "Accept")[(replace:?input)[
{(set: $currentContract to (passage:)'s name)(set: $encounterPayout to (min: (50 + 10 * $reputation's ($neighborhood's name)), 150))
(set: $encounterStack to (either: (a: "Encounter Random Color", "Encounter Random Color", "Encounter Random Color", "Fulfilled: Deliver a Package"),(a: "Encounter Random Color", "Encounter Random Color", "Encounter: Assassin", "Fulfilled: Deliver a Package")))
(set: $encounterIndex to 1)
(set: $enchantmentHidden to 1)
(set: $contractCancelledOnDeath to 1)
}
[[Run Along!->Encounter]]
]]
[[Reject->Explore the Neighborhood]] ]Sea Dayaks are an ancient people who ply the world between the material plane and the land of the dead. Their teeth are sharpened, and they bear enchantment marks that give them power in this tributary.
(if: (history:) contains "Cannibalism")[
They are fierce people known to hunt heads and eat the flesh of their dead enemies.
They sense a kinship with you.
They insist on giving you a gift before you leave.
<b>+ Sharpened Teeth</b>(set: $inventory to it + (ds: "Sharpened Teeth"))
](else:)[
They smile knowingly at your sea hag and let you get on your way.
(set: $arg to 1)(display: "UpdateRiftDistance")
]
[[Next Journey]] You've been given a fine set of sharpened teeth by a tribe of sea dayaks who share some of your hobbies.Information and stimulants delivered hot and fast. The place is packed with aggressively conversing creatures regardless of the time of day or night.
You find a seat at one of the crowded tables to listen in on the conversation of the hour.
A server arrives with a tray of cups and a steaming pot of fresh coffee.
[[Buy a Cup of Coffee]]
(display: "NavOptions")The shopkeeper swaps your gold for a jar containing a $itemName.
(set: _pay to 100)
(set: $gold to it - _pay)
<b>Gold - _pay</b>
(set: $daemons to it + (ds: $itemName))
(display: "NavOptions")(set: $arg to 1)(display: "UpdateReputation")
(set: $encounterPayout to $encounterLength * (min: 45, 15 * $reputation's ($neighborhood's name)))
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")You deliver the package to the dead drop outside the (link-goto: $encounterTarget).
(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")
(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")(if: $reputation's ($neighborhood's name) < $enchantmentHidden)[
(set: $arg to -1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")]
(else:)
[
(display: "Cancel Contract")
]Professionals at the Card Table
(set: $encounterPayout to 0)
[[Accept->Professionals at the Card Table]]
[[Reject->Explore the Neighborhood]] (set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")Once you've escorted them past the last toll gate, a carriage with curtained windows is there to pick them up. They swiftly pay you then depart.
(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")(set: $arg to 2)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")You spend a moment deciding whether to use illusion magic or hygromancy to change the fingerprint and decide the (either: "former", "latter") to be the best for this particular application.
I don't think anyone will end up on the wrong end of a gibbet over this business.
(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")(set: $arg to 2)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")This device is used to identify and trace ley lines.The Shadow Heist
(set: $encounterPayout to (min: (100 + 10 * $reputation's ($neighborhood's name)), 1500))
[[Accept->The Shadow Heist]]
[[Reject->Explore the Neighborhood]] (set: $arg to 5)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")They blow you a kiss as they depart back to the smoke and cinders of the West Fires.
Stay for a while here in [[South Quarry]]
(set: $arg to 1)(display: "UpdateReputation")
(set: $gold to it + $encounterPayout)
<b>Gold + $encounterPayout</b>
(display: "Contract Fulfilled")
In the center of the nested puzzle boxes is a tangled, serpentine, venomous beast. Think: asp meets rat king.
(display: "Encounter Small Beast")
{(set: $encounterStack to (a:))
(set: $encounterIndex to 0)
(set: $currentContract to "")
(set: $currentContractStatus to 0)
(set: $encounterPayout to 0)
(set: $encounterLength to 0)}
You don't have to go any further. You could finish this right now. No one will be offended if you bowed out.
[[Keep Going->Next Encounter]]
[[Right, Let's Wrap It Up->Fulfilled: Standard Exorcism]]The area is roped off, preventing the extremely clumsy or dispossessed from falling into a vast, eerily regular crater.
A crew of uniformed workers make continuous lines into and out of the crater, down a series of steps and rungs cut into the living stone. They carry down picks, ropes, and wands and come out with enormous treasures.
Vast winches reach down into the crater's yawning guts and pull up impossibly large gemstones, vaults, enchanted artifacts, amphorae.
(display: "QuickChar")
The yard leader for the current shift approaches you.
"You look like the kind of person who's looking to make an investment," they say. "You can finance a dig and get a percentage on the return."
They trace a line around the perfectly square-edge portal that leads to a universe made entirely out of rock and treasure. You've heard of these kinds of deals:
You put up the money for a crew and their supplies.
You negotiate how long they will spend mining before returning.
The crew will use their tools to dig as much as they can.
Some crews are careful, some are reckless.
They might encounter monsters, traps, lava, poison gas, etc. So, you may be asked to pay more to keep the dig going.
You can visit the dig site, but doing so is time-consuming and potentially dangerous.
(if: $miningCommand > 0)[
[[Visit Your Dig Site #1 Lease]]]
(else:)[
[[Finance a Dig at Site #1]]]
(display: "NavOptions")The industry is pretty well standardized for this kind of operation.
You buy at a certain gold price.
Your crew exhausts your gold mining through a sector of the portal you've leased from the Portal Authority.
That portal lease comes right off the top. The rest of the price is spent on supplies and insurance.
(link-reveal: "Trial Plan")[(set: $portalSupplies to 100)
(set: $portalDistance to 0)
(set: $miningCommand to 10)
(set: $portalCrew to 10)
(set: $portalTreasure to 0)
(set: $currentDigSiteOneTick to $ticks)
[[Visit Your Dig Site #1 Lease]]]
(display: "NavOptions")Near the portal at Dig Site #1 is another crater, this one much smaller.
(display: "QuickChar")
The yard foreman points out that this area is centered at the edge of the portal. The stone and materials regenerate more slowly, and tunneling through the rock here has opened up the Catacombs, a more or less permanent fixture at the edge of the portal.
"You can more or less dig up whatever you want in this area. It runs pretty dry. Bring your own shovel, and you can dig all you want."
(set: $plotDepth to 0)
[[Start Digging->Dig Your Plot]]
(display: "NavOptions")When the gates open, a cloud of incense and stone dust mix in the middle.
[[South Quarry]]
[[Eastern Fortress]]
(display: "NavOptions")You come across a massive gate of tusk, driftwood, and stone. It separates the North Harbor and Eastern Fortress neighborhoods.
[[North Harbor]]
[[Eastern Fortress]]
(display: "NavOptions")[[Explore the Neighborhood]]
(link-goto: $neighborhood's name)
[[Home Again]] {(if: $ticks % 13 < 7)[
(display: "Tick")(replace:?clock)[(display: "RenderHeader")]
(set: _roll to (random: 0, $perception * 2))
(if: _roll is 0)[(either:"You find a few broken clay pipes.", "You find some old rusty pins.","You find a mummified tobacco pouch.")]
(else-if: _roll is 1)[(either: "You find an old coin.", "You find a dainty bauble.","You find a small gemstone.")(set: _gold to (random: 1,5))
<br/><b>Gold + _gold</b>(set: $gold to it + _gold)]
(else-if: _roll is 2)[You find a shred of paper:
<br/>(display: "Random Bulk Scroll") ]
(else-if: _roll < 5)[You find a small piece of unused reagent: (set: _reagent to (either: "Lump of Lead", "Piece of Pitch", "Grain of Gold"))<br/><b>+ _reagent</b>(set: $inventory to it + (ds: _reagent))]
(else-if: _roll < 7)[You find a valuable antique:
<br/><b>Gold + 75<b/>(set: $gold to it + 75)]
(else:)[(if: $inventory contains "Slow Clock")[You find a space where an object should be, but you've already picked it up.](else:)[You find Slow Clock. It's badly sodden, but it appears to still be in working order.
(set: $inventory to it + (ds: "Slow Clock"))
<br/><b>+ Slow Clock</b>]]
](else:)[(replace:?input)[The canal tide is high. Come again in the morning if you want to try finding treasures in the mud.]]}Imagine you are sailing the greatest sea on your particular planet, and one day, all of the water is suddenly gone. You are trapped on the bottom of the sea.
All around you is detritus, sea monsters, treasure.
You could leave the boat in search of bounty, but when will the water return?!
(set: $arg to 0)(display: "UpdateRiftDistance")
[[Next Journey]] Good currents have brought you to a place for seafaring crews like yours. On great pontoons, an epic tavern has been erected.
[[Recruit a Salty Crew]]
[[Singing Chanties]]
[[Purchase Supplies]]
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] (display: "Random Bulk Scroll")
(set: $arg to 1)(display: "UpdateRiftDistance")
[[Next Journey]] Your ship is shifted random distances along the path to the Siren's Folly, the eye of the Rift.
(set: $arg to (random: -6, 6))(display: "UpdateRiftDistance")
[[Next Journey]] (set: $previousDigSiteOneTick to $currentDigSiteOneTick)
(set: $currentDigSiteOneTick to $ticks)
(set: _tickDiff to $currentDigSiteOneTick - $previousDigSiteOneTick)
It's been _tickDiff ticks since your last visit.
(set: $portalSupplies to it - _tickDiff)
You have $portalSupplies supplies left.
(set: _portalDistanceGained to _tickDiff * $portalCrew * (1+($miningCommand/10)))
You have gained _portalDistanceGained meters of distance into the living stone.
(set: $portalDistance to it + _portalDistanceGained)
For a total of $portalDistance meters.
(if: (random: 0, 1) > 0)[(set: $miningCommand to it - 1)Your crew are annoyed at you for interrupting their work.](else:)[Your crew acknowledge your presence and go right back to their work.]
!Secret! Your current portalCommand is $miningCommand.
(set: _earnedIncome to (ceil: (random: 0, _portalDistanceGained)))
Your crew has gathered _earnedIncome kilograms of raw treasure boulders.
(set: $portalTreasure to it + _earnedIncome)
For a total of $portalTreasure currently in the hopper.
[[Empty Treasure Hopper]]
[[Resupply Crew]]
[[Bring the Crew Coffee and Doughnuts]]
[[Reprimand the Crew]]
[[Cancel the Dig]]
(display: "NavOptions")Your crew has gathered $portalTreasure kilograms of raw treasure boulders.
You can pull a lever to convert $portalTreasure to gold in your pocket, but that means that your crew will not be mining for more treasure for the rest of the week, as they process your treasure ore.
(set: $arg to $portalTreasure * (random: 1, 10))(display: "UpdateGold")
Treasure ore is made of all kinds of rubbish:
(for: each _i, ...(range: 0, (ceil: $portalTreasure / 100)))[
(display: "Random Treasure Hopper Item")]
(if: $portalDistanceBonus > 0)[Distance Bonus Paid: (ceil: $portalDistance * $portalDistanceBonus)(set: $gold to it - (ceil: $portalDistance * $portalDistanceBonus))]
(set: $portalTreasure to 0)(display: "UpdateClock")
Total Gold: $gold
[[Resupply Crew]]
[[Bring the Crew Coffee and Doughnuts]]
[[Reprimand the Crew]]
[[Cancel the Dig]]
(display: "NavOptions")You are negotiating with the lead of your crew. They have certain expectations based on their own sense of worth.
(if: $gold >= 1000)[
(link-reveal: "Extend Contract for 1000 Gold")[
(set: $portalSupplies to 100)
(set: $miningCommand to it + (random: 0, 1))
(set: $arg to -1000)(display: "UpdateGold")
!SECRET! $miningCommand
]]
[[Empty Treasure Hopper]]
[[Bring the Crew Coffee and Doughnuts]]
[[Reprimand the Crew]]
[[Cancel the Dig]]
(display: "NavOptions")You order your crew their favorite stimulants and hypercaloric food stuffs.
(set: $gold to it - 20)<b>Gold - 20<b/>
(if: $miningCommand <= 0)[They wait until after you've started to leave before they eat them. (set: $miningCommand to it - (random: 0, 1))]
(else-if: $miningCommand <=5)[They appreciate the effort you put in to show your appreciation of them. (set: $miningCommand to it + (random: 0, 1))]
(else-if: $miningCommand < 10)[Your crew enthusiastically grabs doughnuts and coffee from you. One of them even attempts an awkward high-five before realizing that you are not the kind of person who "highs five".(set: $miningCommand to it + (either: ...(range: 0,2)))]
(else:)[They are too busy working to even notice you stopping by.]
!SECRET! $miningCommand
[[Empty Treasure Hopper]]
[[Resupply Crew]]
[[Reprimand the Crew]]
[[Cancel the Dig]]
(display: "NavOptions")If you reprimand a crew that is low in morale, they may quit, but your command level will possibly increase for the remaining crew.
(if: (random: 0, $miningCommand) < 2)[The crew feel like your rebuke was stern but fair. They are a little more confident in your command.(set: $miningCommand to it + (random: 1, 2))]
(else:)[The crew feels like your rebuke was unfair and slanderous.
(set: $miningCommand to it - (random: 1, 2))]
!SECRET! $miningCommand
(if: $miningCommand > 0)[
(set: _walkouts to (ceil: (random: 0, $portalCrew) / $miningCommand))
_walkouts crew members have decided it is time for them to leave the project.
(set: $portalCrew to it - _walkouts)]
(else:)[Too much or too little, but definitely too late. Regardless of your words, all $portalCrew have walked out on you.
(set: $portalCrew to 0)
]
Crew: $portalCrew
[[Empty Treasure Hopper]]
[[Resupply Crew]]
[[Bring the Crew Coffee and Doughnuts]]
[[Reprimand the Crew]]
[[Cancel the Dig]]
(display: "NavOptions")(either: "A golden helmet with wings", "a ruby the size of a canteloupe... no, I mean an antelope", "dragon bones", "gold bricks", "ancient pottery", "sand dollars", "totems", "abstract sculpture")You call off the dig.
(set: $portalSupplies to 0)
(set: $portalDistance to 0)
(set: $miningCommand to 0)
(set: $portalCrew to 0)
(set: $portalTreasure to 0)
(set: $currentDigSiteOneTick to 0)
(display: "NavOptions")(if: $perception > 3)[You see a section of rock teetering above you and are able to get out of the way before it hits you.](else:)[You don't see the rock falling in time to get out of the way.
(if: (random: 0, 1) is 0)[Sharp, heavy rock rains down on you.
(set: $deathReason to "You were obliterated by a combination of bad safety protocol and tons and tons of megaliths precariously stacked around the neighborhood.")(set: $arg to 1)(display: "TakeDamage")]
[[Next Encounter]] ]
(else:)
[
You are clouted on the head, causing you to stagger down a blind alley.
[[Staggering Through The Alleys]]
](set: $gold to it + $arg)<br/><b>Gold (if: $arg >= 0)[+ ]$arg</b>(display: "UpdateClock")(if: $gold < 0)[You've one into debt!(display: "An Embarassing Display")](if: $arg is "Map Fragment" and $inventory contains "Map Fragment")[
(display: "LoseItem")(set: $arg to "Treasure Map")(display: "GetItem")
You assemble the Map Fragments into an approximation of a Treasure Map.
]
(else:)[(set: $inventory to it + (ds: $arg))<br/><b>+ $arg</b>]
(if: $inventory contains $arg)[(set: $inventory to it - (ds: $arg))<br/><b>- $arg</b>]This is a palimpsest, a page scraped as clean of its old words as possible so that it may be reused again. Useful for inscribing spells and enchantments.
(display: "Random Bulk Scroll")
[[Continue Reading->Read Blank Scroll]]
[[Read a Book In Your Library]] (set: _i to (ceil: $arg * $riftCrew))<br/><b>Distance (if: _i >= 0)[+ ]_i<b/>(set: $riftDistance to it + _i)(unless: $daemons contains _item)[_item
(display: _item)(set: _i1 to _item)(set: _i2 to _cost) It will cost you _i2 gold.(if: $gold >= _i2)[ You can afford it. (link-reveal-goto: "Buy It", (passage:)'s name)[(set: $daemons to it + (ds: _i1))(set: $gold to it - _i2)]
](else:)[ Quite a bit too rich for your blood.]]{
(if: $perception <= 0)[
(goto: "Staggering Through The Alleys")
]
(if: (random: 0, 3) is 0)[(goto: (either: ...($neighborhood's events)))]
(display: $neighborhood's name + " Color")<br/>
(if: $reputation's ($neighborhood's name) < 5)[(set: $reputationTag to "brass-level")]
(else-if: $reputation's ($neighborhood's name) < 15)[(set: $reputationTag to "silver-level")]
(else:)[(set: $reputationTag to "gold-level")]
(if: $currentContract is "")[
(display: "GenerateChar")(set: $clientDescription to $char)
(set: $potentialContracts to (find: _item where (not ((passage: _item)'s tags contains "unique") or not ((history:) contains _item)) and (passage: _item)'s tags contains all of (a: "contract", $reputationTag), ...($neighborhood's contracts)))
(if: $potentialContracts's length > 1)[Exploring the neighborhood, you meet many prospective clients...<br/>
(for: each _i, ...((shuffled: ...$potentialContracts)'s (range: 1, (min: 3, (ceil: $perception/2)))))[
(link-goto: _i)<br/><br/>
]](else-if: $potentialContracts's length is 1)[Exploring the neighborhood, you make contact with a client...<br/>
(link-goto: $potentialContracts's 1st)]
](else:)[Either no one's looking for contractors or no one's looking for *you*. Either way, there's no work to be had.]
}
And you encounter many interesting locations...
{(set: _locations to (find: _item where not ((history:) contains _item and (passage: _item)'s tags contains "bookmark") and not ((passage: _item)'s tags contains "unlisted"), ...($neighborhood's locations)))
(if: _locations's length > 0)[
(if: _locations's length is 1)[(link-goto: _locations's 1st)]
(else:)[
(for: each _i, ...((shuffled: ..._locations)'s (range: 1, (min: 3, (ceil: $perception/2)))))[
(link-goto: _i)<br/><br/>
]]](else:)[No, I guess you'd already seen that, too.]}
(display: "NavOptions")All citizens of the City in good standing, regardless of neighborhood, are allowed on the Upper Castlerock Tram.
(if: $inventory contains "Badge of Shame" or $reptuation's public < 1)[
Sadly, you are not in good standing, and you are being sent [[Home Again]].
](else:)[
You enter the tram and walk over to the control panel. It thrums as you make contact with the keyboard.
Enter your station # and click GO.
[[Never Mind!->Home Again]]
]This wreck of a place reeks of cheap beer, whiskey, vomit, and hope.
Young wizards looking to get a leg up come here for liquid courage.
Old wizards looking to forget come here for the same.
(if: (random: 0, 3) is 3)[ A drunk old man slides over to you at the bar.
"You look like you could use a friend in this big, scary place," he slurs. "How'd you like to buy a friend... a drink?"
[[Buy Erno a Drink]]
]
(for: each _i, (random: 1, 8), (random: 1, 8), (random: 1, 8))[{(set: _cost to _i)(set: _cup to (either: "Dram", "Chalice", "Mug", "Flute"))(set: _drink to (either: "Lager", "Wine", "Brandy", "Port", "Ichor", "Elixir", "Cocktail"))}
(link-reveal: "Buy a " + _cup + " of " + _drink + " for " + (str:_cost) + " gold")[:
//(display: "Buy an X of Y")//]
]
(display: "NavOptions"){(if: $gold > _cost)[(set: $gold to it - _cost)
As you polish off your _cup of _drink, Delilah regales you with some recent gossip.
(if: _cost > 6)[
They tell you about a great new place in the neighborhood.
(set: _locations to (find: _item where not ((history:) contains _item and (passage: _item)'s tags contains "bookmark") and (passage: _item)'s tags contains "location", ...($neighborhood's locations)))
(if: _locations's length > 0)[
(if: _locations's length is 1)[(link-goto: _locations's 1st)]
(else:)[
(for: each _i, ...((shuffled: ..._locations)'s (range: 1, (min: 3, (ceil: $perception/2)))))[
(link-goto: _i)<br/><br/>
]]](else:)[No, I guess you'd already seen that, too.]
]
(else-if: _cost > 3)[(display: "Interesting Rumors")
]
(else:)[
(if: $reputation's ($neighborhood's name) < 5)[(set: $reputationTag to "brass-level")]
(else-if: $reputation's ($neighborhood's name) < 15)[(set: $reputationTag to "silver-level")]
(else:)[(set: $reputationTag to "gold-level")]
(if: $currentContract is "")[
(display: "GenerateChar")(set: $clientDescription to $char)
(set: $potentialContracts to (find: _item where (not ((passage: _item)'s tags contains "unique") or not ((history:) contains _item)) and (passage: _item)'s tags contains all of (a: "contract", $reputationTag), ...($neighborhood's contracts)))
(if: $potentialContracts's length > 0)[People have been asking around for ambitious wizards looking for work...<br/>
(for: each _i, ...((shuffled: ...$potentialContracts)'s (range: 1, (min: 3, (ceil: $perception/2)))))[
(link-goto: _i)<br/><br/>
]](else:)[(display: "Baseless Rumors")]
]
]
](else:)[
"Sorry, darling, but you haven't the gold to spare."
]}Potions, weird powders, unguents.
(set: _cost to 25)(set: $marketplace to (a: "Cellar of Salt", "Piece of Pitch", "Tincture of Turmeric"))(for: each _item, ...$marketplace)[(unless: $inventory contains _item)[
(display: "QuickBuy")
]]
|output>[(set: $arg to (random: 0, 5))(display: "UpdateRiftCrew")]
[[Next Journey]] Double-click this passage to edit it.It may be filthy, but the fleas don't mind it a bit.
Demonstrates a kinship with the ocean's sentient lampreys.
Owning one proves that you're a pirate and/or that you killed a pirate.The tower to the throne is infinitely tall, but a clever magician like you ought to be able to find a loophole.
[[Climb the Tower]]The Fortress is so large and elaborate that it still hasn't been fully explored. In fact, the topology of the halls and chambers doesn't exactly mesh with Euclidean space. Stone palace after stone holdfast, the scale and decoration shifting smoothly, usually, and sometimes quite suddenly and dangerously.
(set: $forayIndex to 1)(set: $forayExploration to 0)
(set: $forayStack to (a: "Return to the Center of Eastern Fortress") +
((shuffled: ...(altered: _i via _i's name, ...(find: _i where _i's tags contains "foray", ...(passages:))))'s (range: 1,3))
)
(display: "ForayOptions")
[[Eastern Fortress Foray Gate]]You are astride the Foray Gate. Out there is untold treasure: both gold and forbidden scrolls.
Also death. Mainly death.
[[Embark on a Foray]]
(display: "NavOptions"){(set: $enemyHealth to 3)(set: $enemyType to "Assassin")(set: $enemyElementType to (either: "Mortal", "Shadow", "Poison"))
(set: $fightPattern to (a:"Strike","Strike",(either: "Strike", "Throw"),"Rest"))
(set: $fightIndex to 1)
(set: $deathReason to "You were garrotted in a back alley by a professional killer.")
}You see a (either: "cloaked", "shadowy", "zealous") (either: "strangler", "assassin", "strongarm") with their weapon levelled at you.
They demand your life.
|output>[]
|input>[(display: "Fight")]
(event: when $enemyHealth <= 0)[ (replace:?input)[ [[Next Encounter]] ]]{(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[(if: _opponentMove is "Flee")[(replace:?input)[ ](replace:?output)[They turn and run away at top speed.
(set: $enemyHealth to 0)]](else-if: _opponentMove is "Block")[You block their attack... but they block, too. It's awkward.](else-if: _opponentMove is "Throw")[You anticipate an attack and block. They grab at your locked wrists and throw you about! (set: $arg to (random: 0, 1))(display: "TakeDamage")(if: $inventory contains "Thorn Ward")[Your thorn ward produces sharp spines(set: $arg to (random: 0, 1))(display: "DealDamage")]](else-if: _opponentMove is "Strike")[They strike at you, but you block their attack!
(if: $inventory contains "Thorn Ward")[Your thorn ward produces sharp spines(set: $arg to (random: 0, 1))(display: "DealDamage")]]]
(set: $fightIndex to (it + 1))
(if: $fightIndex > $fightPattern's length)[(set: $fightIndex to 1)(display: "UpdateClock")]
(if: $inventory contains "Thorn Ward" and (random: 0, 4) is 0)[Your Thorn Ward shatters!<br/>(set: $arg to "Thorn Ward")(display: "LoseItem")]
}{(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[You launch a strike at your opponent's temple.(if: _opponentMove is "Flee")[(replace:?input)[ [[Next Encounter]] ](replace:?output)[They turn and run away at top speed.]](else-if: _opponentMove is "Block")[.. but they bat your fist away.](else-if: _opponentMove is "Throw")[ As they dip in to grab your arm, you pop them in the throat.(set: $arg to 2)(display: "DealDamage")](else-if: _opponentMove is "Strike")[ You trade slaps at each other, bloodying each other's noses.(set: $arg to 1)(display: "DealDamage")(display: "TakeDamage")](else:)[ They make no move to avoid it and take the full brunt of your blow.(set: $arg to 2)(display: "DealDamage")]]
(set: $fightIndex to (it + 1))
(if: $fightIndex > $fightPattern's length)[(set: $fightIndex to 1)]
(display: "UpdateClock")}{(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[You attempt to throw them.(if: _opponentMove is "Flee")[(replace:?input)[ [[Next Encounter]] ](replace:?output)[They turn and run away at top speed.]](else-if: _opponentMove is "Block")[ You get a firm grip on their leg and throw them to the ground. (set: $arg to 1)(display: "DealDamage")](else-if: _opponentMove is "Throw")[ The two of you grapple indecisively for a few seconds before pulling apart again.](else-if: _opponentMove is "Strike")[As you attempt to grapple them, they land a sharp punch to your liver. (set: $arg to 1)(display: "TakeDamage")]]
(else:)[You flip your opponent onto their back.
(set: $arg to (random: 0, 1))(display: "DealDamage")]
(set: $fightIndex to (it + 1))
(if: $fightIndex > $fightPattern's length)[(set: $fightIndex to 1)]
(display: "UpdateClock")}Depending on how fresh the pies are, and how recently the protein was slain, largely determines whether the pie will be hot and wholesome or bordering on lethal.
(either: "On the cutting board is a mass of", "In the gutter next to the pop-up shop is", "The garbage bin is stuffed to the brim with") (either: "blood", "bones", "tripe") and (either: "feathers", "blubber", "tentacles").
"10 coins a pie, love," sez the vendor.
(set: _cost to 10)
(if: _cost >= 10)[
(link-reveal: "Buy A Pie")[
(set: $arg to -(_cost))(display: "UpdateGold")
(if: $ticks % 32 is 0)[
You don't feel very well at all. (set: $deathReason to "You have reason to believe that you were devoured by worms from the inside out.")
(set: $arg to 2)(display: "TakeDamage")
](else:)[
Hot gravy and mysterious lumps make this pie an especial treat.
(if: $health <= $maxHealth)[(set: $arg to 1)(display: "GainHealth")](else:)[Oh, but you're far too full to indulge.]
]]](else:)["Sorry, love, no gold, no pies."]
(display: "UpdateClock")
(display: "NavOptions")Once the foul creature has been slain, you find inside of it the treasure that you sought:
(set: $inventory to it + ("Universal Solvent"))
(display: "Contract Fulfilled")(♃) A unit of metallic tin in the industry standard tablet format.(♂) This solid piece of pure iron can be forged into items and weapons efficacious against charm and enchantment.
(♀)(♁) A lustrous cluster of silvery crystals that looks like a miniature mountain range.(🜺)(🜘) Bismuth forms wonderfully labyrinthian cubic crystals in shimmering rainbow reflections.(=)()(⊛) Magnesium tape in a convenient roll. I'm sure there's a practical use for them, but what's most entertaining is to set fire to one end of the roll, drop it, and try not to get burned.
A glass phial of reddish granules, highly reactive reagent()(☽☉) A small disk of platinum.() Shavings of zinc in a jute pouch.(🝓) Carrying one of these can potentially manipulate the magnetic fields around various objects and items. Mainly, you know how to use them to cheat at dice.(🜹)(🜅)(🜆)(🜈)(🜓)(🜖) Essential to the alchemical process inasmuch as it makes really cool reactions when you drop reagents into it.(🜌) What can't vinegar do? Mostly used to clean glass.You and your crew are surrounded by a sphere of hypersharks.
[[Next Journey]] You went through such trouble to get this package.
It would be a shame if it were something more valuable than the mere lucre you'd be getting otherwise.
What if it were something very special, like a Crystal Spyglass or a phylactery charge?
[[I Must Know!->Encounter: Enchantment Trap Lock]]
[[Let's Go Meet the Client->Next Encounter]] Mad King Ludwig via Jorge Luis Borges
(display: "NavOptions")Corpus wears books, scrolls, cuneiform tablets all over their body like an articulated suit of armor.A doddering old man wobbles drunkenly about. He grins keenly when you make eye contact with him.
(if: (passage:)'s name != "Delilah's Bar")[
Oh, you should take me over to [[Delilah's Bar]] and buy me a drink or two.
]
(else:)[
Shattering an enchantment trap will risk your body. Unweaving an enchantment trap will risk your mind. Whichever is currently the strongest, just use that to get through the trap. If neither are strong, like in my case, you might just run away.
Let's just say you've disassembled some other wizard's enchantment. You'll get the Ethereal threads that make up that trap. You can sell them or use them for your own enchantments.
Hey, are you going to [[Delilah's Bar]]? I'll tag along!
Ah! You got a ward press. Very clever. These stamp an enchantment very quickly into a piece of reagent. It turns out that for the simpler enchantments, this works just fine. Here's instructions for a new ward type:
You're my best friend, he sobs, maybe in the whole world. No one ever treated me as good as you.
Here's my favorite book M.C. Escher: Beginner's Embroidery. You can have it. Tell me that you'll read it, and I'll let you have it.
]The first night you woke up in this squalid apartment, you found an actual phylactery hidden inside a hideous desk lamp. Once attuned with its owner, it can use a single charge to return them to life.
In a word, you are immortal.
Caveat: These charges are expended each time you are resurrected. You currently have $phylacteryCharges of them.
(link-goto: (history:)'s last)(if: (random: 0, 100) < $chanceOfMinotaur)
[
(display: "Minotaur")
]
(else:)[
(set: $options to (shuffled: ...(shuffled: ...(find: _i where _i's tags contains "labyrinth", ...(passages:)))'s (range: 1,3) + (a:(passage: $labyrinthStack's last))))
(for: each _i, ...$options)[(set: _item to _i's name)
(if: _item is $labyrinthStack's last)[(link-reveal-goto: _item)[(set: $chanceOfMinotaur to it + 5)
(set: $labyrinthStack to $labyrinthStack's (range: 1, $labyrinthStack's length - 1))] (if: $inventory contains "Spool of Daedelus")[!]]
(else:)[(link-reveal-goto: _item)[(set: $chanceOfMinotaur to it + 2)(set: $labyrinthStack to it + (a: (passage:)'s name))]]
]
]You are in a stone room with hundreds of adjoining hallways.
(display: "LabyrinthOptions")You are in a hallway lined with doors to many small, identical rooms.
(display: "LabyrinthOptions")You are in a cubical room. Its walls, ceiling, and floor are littered with an orderly distribution of perfectly square doors to other rooms and hallways.
(display: "LabyrinthOptions")You are in a hallway that is constantly subdividing every 20, 10, 5, 2.5, 1.75, etc. meters. You see the withered corpses of a tortoise and a very large human.
(display: "LabyrinthOptions")As you turn each corner, the buildings become more and more familiar to you, until you realize that you're back in the known City, and the impossible maze is behind you.
(if: $forayCrew > 0)[Your crew file off, having earned their coin, probably back to [[Oasis Refreshments]].
(set: $forayCrew to 0)]
[[Eastern Fortress]]
(display: "NavOptions")You are in a maze of twisty passages, all alike.
(display: "LabyrinthOptions")You are in a maze of twisty passages, all different.
(display: "LabyrinthOptions")You sip gingerly at the coffee while eavesdropping on fevered courtesans.
(display: (either: "Baseless Rumors", "Interesting Rumors"))
(if: $perception <= $maxPerception)[(set: $arg to 1)]
(else:)[(set: $arg to (random: 0, 1))](display: "UpdatePerception")
(set: $arg to (dm: "delay", 13, "event", "Caffeine Wears Off"))(display: "Schedule Event")
(if: $perception < 9)[
[[Buy a Cup of Coffee]]
(display: "NavOptions")]
(else:)
[
You pass out from the toxic amount of caffeine in your system.
(set: $perception to 1)
[[Home Again]]
]Death Seeker
Lizard Trainer
Bridge Troll
Trader of Fine Spices
Minion
Test Dummy
Butter Churner
Grave Robber
Blood Salesman
Horse-mounted Police
Professional Gambler
Evil Clone
Food Photographer
Animal Handler
Art Theft Coordinator
Unpaid Intern
Paranormal Detective
Wig Model
Battle Orc
Professional Mourner
Competitive Eater
Lute Player
Insurance Agent
Forest Witch
Ghost Therapist
Crafter of Fine Talismans
Soul Reaper
Drug Dealer
Singer
Bird Salesman
Cult Leader
Sad Clown
Animal Breeder
Pickle Artisan
Human Scarecrow
Capitalist Viking
Voodoo Priestess
Sentient Animal
Sentient Animal Groomer
Fortune Cookie Writer
Werewolf
Snail Expert
Time Wizard
Failed Artist
Hunger Artist
Construction Worker
(if: $inventory contains all of (a: "Soul Jar", "Clump of Coal"))[
(set: $arg to "Clump of Coal")(display: "LoseItem"))
You throw a clump of coal to the ground. When the Fire Ghost attempts to grab it, you attempt to pull it into your Soul Jar.
(if: (random: 0, $cunning) > 3)[With an audible //shlorp//, you trap the Fire Ghost in the Soul Jar.(set: $daemons to it + (ds: "Fire Ghost"))
(set: $inventory to it - (ds: "Soul Jar"))
[[Next Encounter]]
](else:)[ but you are unable to predict its movements.]
](else:)[You try to capture the Fire Ghost, but you need a Soul Jar and a Clump of Coal!]
This is a quite clever gimmick, consisting of a self-winding spool and a long, durable filament.
(if: $perception > 3)[You'd find it quite handy in a labyrinth.]Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.Horns erupting from the head. Different numbers and formations can be found, from a single horn erupting from the center of the forehead to a literal crown of a dozen arched horns. Frequently found in the classic balanced pair.Fabled to grant immortality, it is actually just a precursor to the creation of a phylactery charge.Double-click this passage to edit it.This lovely bit of flame can't ever be extinguished, which means you should never use it to start a fire anywhere it could spread, because then you'd only have more Everlasting Fire. It is, in fact, far too dangerous an item to even exist. It is also a lovely shade of blue.Double-click this passage to edit it.Double-click this passage to edit it.This device is a one-shot, grenade-like weapon that can damage creatures of light and fire.Double-click this passage to edit it.If you had these and a Lodestone, you could win just about any dice game you'd like.Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.(display: "Tick")(display: "Tick")(display: "Tick")Double-click this passage to edit it.Frequently burned as an offering to the dead, certain vendors accept payment in this currency but not lucre.Certain kinds of sorcery depend on sympathies. The more the ceremony resembles the intended act, the more coherent the sympathetic magic would be. Props like Goat Skulls are intended to make the ceremony resemble a very convincing sorcery, thus amping up the magical juice.Double-click this passage to edit it.Double-click this passage to edit it.This ebon ichor can be used to bind false gods and add a kick of earth elemental energy to magical spells.A standard deck of playing cards: 1 through 13 in all 5 suits, the Minor Arcana, the Major Arcana, the two Trumps, the secret Anti-Trump, and the Dragon.One of the 14th centuries most badass inventions.A simple blade collapsed into a handle, commonly used by barbers but perfectly suited for wizards who wish to boost their attack power.Double-click this passage to edit it.Casts a beam of pure light energy.This flask is eternally full of the last potion poured into it.
(if: $inventory contains "Everfull Flask")[
(link-reveal: "Drink From the Everfull Flask")[
You take a nice deep swig of $flaskType.
(display: "Use " + $flaskType)]
(link-reveal: "Fill the Everfull Flask")[
(set: _potions to (find: _i where (passage: _i)'s tags contains "potion", ...$inventory))
(if: _potions's length > 1)[
(cycling-link: bind _item, ..._potions)
(link-reveal: "Fill It Up!")[(set: $flaskType to _item)
You pour the $flaskType into the Everfull Flask.(set: $arg to $flaskType)(display: "LoseItem")]](else-if: _potions's length is 1)[(set: $flaskType to _potions's 1st)$flaskType
(link-reveal: "Fill It Up!")[You pour the $flaskType into the Everfull Flask.(set: $arg to $flaskType)(display: "LoseItem")]](else:)[You don't have anything to fill up the flask.]
]]Double-click this passage to edit it.By stuffing the muzzle with random garbage, you can deal a tremendous blast of kinetic damage.Ah, a Phurpa, which can be used on both deamons, the living, and the Undead.Double-click this passage to edit it.Focuses beams of fire elemental energy.Focuses beams of dark energy.The raw crystal used in a Crystal Spyglass, it is uncut and unground, which means that its elemental potential is even greater than a spyglass, but utterly out of your control.Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.Not sure whose teeth they were. Hopefully they came from multiple sources, because this is a mason jar filled with small specimens.Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.So, it's made inside of whales. It comes out of their bottoms, usually, but sometimes, they vomit it. Smells of shite.
Used for... perfume?Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.Double-click this passage to edit it.A revealer of worlds. Eating its flesh gives you great wisdom at the price of losing all illusions.
This guide contains the solution to every combination lock in the known universes. If you have one of these on hand, no code can defy you.This was a complete guide to all codes, but it barely survived a fire. It might have the code for whatever lock you encounter.The best part of the Borges Memorial Library is that it has every possible book within its walls.
The worst part of the Borges Memorial Library is that it has every possible book within its walls but no card catalog.
(display: "NavOptions")This sacred panacaea grew only in the wild, and mankind's greed for it annihilated it in many worlds and timelines.
The precious bundle in your purse represents the vanishingly small amount available in this neighborhood. There's maybe two or three more in the whole City.Infinite nesting Soul Jars.{(set: $riftCrew to it + $arg)(if: $riftCrew > $riftMaxCrew)[Not everyone can fit on your merry boat. Some, you have to leave behind. (set: $riftCrew to $riftMaxCrew)]
(if: $riftCrew <= 0)[
(set: $riftCrew to 0)
It's just you now.
]}
<b>Crew (unless: $arg < 0)[+] $arg ($riftCrew)</b>A restorative tonic that can be used to refresh yourself.(if: $riftSupplies + $arg > $riftMaxSupplies)[You don't have enough room in the hold, and some supplies go to waste.]
{(set: $riftSupplies to (min: $riftMaxSupplies, it + $arg))<b>Supplies (if: $arg >= 0)[+] $arg ($riftSupplies)
(if: $riftSupplies < -20)[(set: $arg to -2)(display: "UpdateRiftCommand")(set: $riftSupplies to -20)]
(else-if: $riftSupplies <= 0)[(set: $arg to -1)(display: "UpdateRiftCommand")]}It's an old-fashioned key, intended for the type of chest one might bury treasure in on a deserted island.This treasure map is in a state of quantum prolapse. If you bring it to an area with buried treasure, it will collapse down to the state that will let you find the treasure. Once collapsed, it will lose its properties.With this enchanted mark upon you, sentient creatures are much more likely to assume that you are friendly and belong. Not effective against any City-dwellers, as they are all far too jaded.You've been given this enchanted mark by a Sea Hag. It allows you to communicate with rift monsters of Shoggoth-level 3 and higher.(replace:?clock)[(display: "RenderHeader")]<br/><b>Health + $arg</b>(set: $health to it + $arg)
(display: "UpdateClock")This elegant sphere of nacreous protein positively radiates with light.Find another one, and you might end up with an entire map.Under the proper circumstances, allows you to replicate the effects of any hat.(set: $riftCommand to it + $arg)<b>Command (if: $arg >= 0)[+] $arg ($riftCommand)(if: (random: 0, 1) is 0)[
[[On the Lifeboat]]
](else:)[
[[Set Adrift]]
]A creature of clay, with an inscription on parchment tucked in its mouth animating it with murderous purpose.You send the golem forth, with the name of your enemy written in its mouth.An elemental creature of earth and rock, crudely assembled into a hominid form.The gnome merges with any earth and stone it can contact and begins to shake the area apart, sending rocks crashing down on you and your opponent.When worn, will allow incredibly agile swimming and the ability to hold ones breath for a prolonged period.{(set: $options to (shuffled: ...((a: "Biff", "Biff", "Boff", "Boff", "Bash", "Bash")))'s (range: 1, $cunning))
(for: each _i, ...$options)[(set: _i2 to _i)<br/><br/>
(link-reveal: _i)[(replace:?output)[(display: _i2)](replace:?input)[
(if: $enemyHealth <= 0)[(replace:?input)[You've clobbered your sparring partner but good!(set: $koReason to "")
[[Next Journey]] ]](else:)[Your opponent is wounded, but they are still on their feet.
(display: "Sparring Shuffle")]]]
]
}{(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[You biff.(if: _opponentMove is "Biff")[.. but they biff, too. It's awkward.](else-if: _opponentMove is "Boff")[ They grab at your biff and boff you about! (set: $arg to (random: 0, 1))(display: "TakeKoDamage")](else-if: _opponentMove is "Bash")[]]
(set: $fightIndex to (it + 1))
(if: $fightIndex > $fightPattern's length)[(set: $fightIndex to 1)(replace:?clock)[(display: "RenderHeader")]]
}{(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[You launch a boff at your opponent's temple.(if: _opponentMove is "Biff")[.. but they biff your fist away.](else-if: _opponentMove is "Boff")[ As they dip in to boff your arm, you boff them in the throat.(set: $arg to 2)(display: "DealKoDamage")](else-if: _opponentMove is "Bash")[ You trade boffs and bashes at each other, bloodying each other's noses.(set: $arg to 1)(display: "DealKoDamage")(display: "TakeKoDamage")](else:)[ They make no move to avoid it and take the full brunt of your boff.(set: $arg to 2)(display: "DealKoDamage")]]
(set: $fightIndex to (it + 1))
(if: $fightIndex > $fightPattern's length)[(set: $fightIndex to 1)]
(replace:?clock)[(display: "RenderHeader")]}{(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[You attempt to bash them.(if: _opponentMove is "Biff")[ You get a firm grip on their biff and bash them to the ground. (set: $arg to 1)(display: "DealKoDamage")](else-if: _opponentMove is "Boff")[ The two of you boff indecisively for a few seconds before pulling apart again.](else-if: _opponentMove is "Bash")[As you attempt to bash them, they land a sharp counterbash to your liver. (set: $arg to 1)(display: "TakeKoDamage")]]
(set: $fightIndex to (it + 1))
(if: $fightIndex > $fightPattern's length)[(set: $fightIndex to 1)]
(replace:?clock)[(display: "RenderHeader")]}<br/><b>Consciousness - $arg</b>(set: $koHealth to it - $arg)
(if: $koHealth <= 0)[
(set: $riftCommand to it - 1)
(goto: "Wake Up In The Brig")
]Ugh, whatever happened last night... (either: "a rave?", "a wake?", "a fight?", "tequila shots?", "Vegas?")
[[Next Journey]] (set: $enemyHealth to it - $arg)<b>Opponent - $arg</b>
(if: $enemyHealth <= 0)[Your formerly conscious crewmate gracefully pirouettes as they collapse bonelessly to the ground, your last strike finding its way to a secret nerve bundle under the chin. "Well fought, mate!" you cheer.
(set: $arg to 1)(display: "UpdateRiftCommand")
](else:)[Your opponent is visibly affected by your attack, but they remain on their feet.]The station is a smooth stone monolith suspended over darkness and void without end. The tram gently approaches, the doors slide open, and you are ushered off by the mekkanin porters.
Here you are to wait until the next tram arrives.
This station feels identical to the previous, except for the number 2 emblazoned on the plinth. With no other feature in sight, you wait here for the next tram to pick you up.
No more stations lie before you. Only the void remains.
And the return line.
[[Upper Castlerock]] You've completely lost track of the station numbers. Long ago, they stopped being represented in standard Arabic numerals and were replaced with scientific notation, and then "Tower of Power" notation. Now, it's all Elder runes. You really should have studied Elder runes at university.Sameera invites you into her store with a delicate gesture.
You duck through the low entrance and are immediately intoxicated with the smell of old paper.
You peruse her excellent collection of antiquities and identify a few that hold your interest.
(set: _arg to "Philomender's Book of Excellent Knots")
(unless: $inventory contains _arg)[(if: $perception < 7)[(set: _item to _arg)(set: _cost to 150)(display: "QuickBuy")]
(else:)[(set: _item to _arg)(set: _cost to 120)(display: "QuickBuy")]]
(set: _arg to "Ex Nobilis Aetherium")
(unless: $inventory contains _arg)[(if: $perception < 7)[(set: _item to _arg)(set: _cost to 150)(display: "QuickBuy")]
(else:)[(set: _item to _arg)(set: _cost to 120)(display: "QuickBuy")]]
(set: _arg to "The True History of Leng")
(unless: $inventory contains _arg)[(if: $perception < 7)[(set: _item to _arg)(set: _cost to 150)(display: "QuickBuy")]
(else:)[(set: _item to _arg)(set: _cost to 120)(display: "QuickBuy")]]
(display: "NavOptions")Salt suitable for snacks or sorcery in a convenient cellar.(set: $riftDirection to -1)(set: $riftTripDistance to $riftDistance)(goto: "Next Journey")(set: $cunning to it + $arg)<b>Cunning (if: $arg >= 0)[+] $arg ($cunning)</b>(if: $cunning <= 0)[(set: $deathReason to "It turns out that there is a level of stupidity so great that you become too stupid to keep breathing. Whatever you've done to yourself, my treasure: That is what killed you this time.")(goto: "Death")](display: "Explore Derelict")
[[Above Decks #2]]
[[Below Decks #1]] (display: "Explore Derelict")
[[Above Decks #1]]
[[Above Decks #3]]
[[Below Decks #2]] (display: "Explore Derelict")
[[Above Decks #2]]
[[Below Decks #3]] (display: "Explore Derelict")
[[Above Decks #1]]
[[Below Decks #2]] (display: "Explore Derelict")
[[Above Decks #2]]
[[Below Decks #1]]
[[Below Decks #3]] (display: "Explore Derelict")
[[Above Decks #3]]
[[Below Decks #2]](set: _chambers to (shuffled:
"Above Decks #1"
,"Above Decks #2"
,"Above Decks #3"
,"Below Decks #1"
,"Below Decks #2"
,"Below Decks #3"))
(set: $derelictLevel to _chambers's (a: 1, 2, 3))
(set: $derelictIndex to 1)
(set: _temp to $derelictLevel's 3rd)(goto: _temp)(if: $derelictLevel contains (passage:)'s name)[
(if: (passage:)'s name is $derelictLevel's ($derelictIndex))[
(if: $derelictIndex is 1)[You find the key. Now, find the safe and open it!]
(else-if: $derelictIndex is 2)[You find the safe. You insert the key and take the treasure.
(set: $arg to (random: 10, 50))(display: "UpdateRiftTreasure")
Now, find the exit and get out of here!]
(else-if: $derelictIndex is 3)[You and your crew bucket brigade the treasure through the porthole into your ship. You wrap it up and kick off, letting the Derelict drift into the Rift Sea.
[[Next Journey]]]
(set: $derelictIndex to it + 1)
](else:)
[(if: (passage:)'s name is $derelictLevel's 1st)[This is where you found the key.
]
(else-if: (passage:)'s name is $derelictLevel's 2nd)[You see a safe. A key would open it.
(if: $inventory contains "Skeleton Key")[
Your Skeleton Key makes short work of the safe's lock.(set: $derelictIndex to 3)
(set: $arg to (random: 0, 50))(display: "UpdateRiftTreasure")
Now, find the exit and get out of here!
]
]
(if: (passage:)'s name is $derelictLevel's 3rd)[
You're at the exit. You could just leave.
[[Next Journey]]
]
(if: (passage:)'s name is $derelictLevel's 4th)[
(if: (random: 0, 3) is 0)[(goto: "Monster Attack")
]
]]
](else:)[
Nowhere in the grinding gears or vessels of exotic fuels are any of the components you need.
](if: $riftTreasure + $arg > $riftMaxTreasure)[You can't fit anymore treasure in the hold. You'll have to leave some behind.]
(set: $riftTreasure to (min: $riftMaxTreasure, it + $arg))*Treasure (if: $arg >= 0)[+] $arg ($riftTreasure)*(set: $arg to -1)(display: "UpdateRiftSupplies")(set: _roll to (random: 1, 6))
(if: _roll is 1)[
You find a wild beast.
(if: (random: 0, 2) is 0)[(set: $deathReason to "You were gored and trampled by a beast while on the hunt.")(set: $arg to 1)(display: "TakeDamage")]
(set: $arg to (random: 5, 15) * 3)(display: "UpdateRiftSupplies")
]
(else:)[
You don't find anything.
]
[[Go Hunting]]
[[Return to the Ship->Next Journey]]Godiva, the proprietor is a large golden mask supported by a cloud of smoke approximating a human woman eight feet high and four feet wide.
They offer to tell your fortune in exchange for a small donation.
"I can give you a choice of futures in exchange for an item of yours. No, I won't tell you which item."
[[Buy A Fortune From Godiva]]
(display: "NavOptions")(set: _item to (either: ...$inventory))(display: "LoseItem")
(set: _possibles to (find: _item where _item's tags contains "contract", ...(passages:)))
(for: each _i, ...(shuffled: ..._possibles)'s (range: 1, (min: _possibles's length, $cunning + $perception)))[
(link-goto: _i's name)
]
(display: "NavOptions")(link-goto: "Random Point in My History", (shuffled: ...(history:))'s 1st)
(link-goto: "Random Point Anywhere In Time or Space", (shuffled: ...(altered: _i via _i's name, ...(find: _location where (passage: _location's name)'s tags contains "location", ...(passages:))))'s 1st)
(if: $inventory contains "Silent Ansible")[
(set: _possibleLocations to (find: _location where (passage: _location's name)'s tags contains "location", ...(passages:)))
(for: each _item, ...((shuffled:
...(altered: _i via _i's name, ...(_possibleLocations's (range: 1, (min: _possibleLocations's length, $cunning)))))))[
(link-goto: _item)]
]
(display: "NavOptions")(if: $gold > 25)[
For the price of 25 gold, you could take a trip to any of the other neighborhoods.
[[North Harbor]]
[[West Fires]] [[Eastern Fortress]]
[[South Quarry]]
](else:)[
You take a step back as a hansom cab speeds by from one of the other neighborhoods.
]
(display: "NavOptions")If you aren't the squeamish type, feel free to drink from yon spring of black blood, guaranteed to boost your life force.
(link-reveal: "Let's Drink!")[
(set: $arg to 1)(display: "GainHealth")
(if: (random: 0, 13) is 0)[Oops, you've picked up a touch of vampirism.
(set: $arg to "Vampir Krenk")(display: "GetItem")]
]
(display: "NavOptions")This place is both a library and a prison.
The creatures and books contained within are so contained, because they are too dangerous to be released.
So, naturally, you'd like to know how to break in and get some really dangerous artifacts.
[[Enter the Archives]]
(if: (history:) contains any of (a: "Read Practical Thievery: A Young Rogue's Primer"))
[
[[Case the Archives]]
]
(display: "NavOptions")A creaking cart laden with diseased corpses rolls slowly by, pulled by a team of zombified corpses.
Do not touch the corpse cart, lest you risk a horrible infection.
|input>[(link-reveal: "Squeeze Past")[(replace:?input)[(if: (random: 0, $cunning + $perception) > 2)[You manage to slip past between the wall and the cart without making contact with anything contagious.]
(else:)[Oh, gosh, you accidentally brushed up against a big, old diseased lump of dead flesh.
(set: $arg to "Plague Marks")(display: "GetItem")
]
[[Next Encounter]] ]]]
(link-reveal: "Pick the Pockets of the Dead")[(replace:?input)[(if: (random: 0, $cunning + $perception) > 4)[You delicately or luckily pick a piece of pocket dosh without contracting anything immediately unpleasant.
](else:)[Oh, gosh, you accidentally brushed up against a big, old diseased lump of dead flesh.
(set: $arg to "Plague Marks")(display: "GetItem")]
(display: "An Embarassing Display")
(set: $arg to (random: 1, 3) * 15)(display: "UpdateGold")
[[Next Encounter]] ]]
Free passage to [[North Harbor]].They appear to be buboes, but most buboes are not this... animated.{(set: _options to (shuffled: ...((a: "Block", "Throw", "Strike") + (altered: _i via "Release " + _i, ...$daemons)))'s (range: 1, $cunning))
(for: each _i, ..._options)[(set: _i2 to _i)<br/><br/>
(link-reveal: _i)[(replace:?output)[(display: _i2)](replace:?input)[
(if: $enemyHealth <= 0)[(replace:?input)[You've defeated your enemy!(set: $deathReason to "")]](else:)[Your enemy still lives.
{(if: $fightPattern's ($fightIndex) is "Summon")[
(set: $encounterIndex to it - 1)(if: $encounterIndex <= 0)[(set: $encounterIndex to 1)(goto: "Encounter Select Random Daemon Encounter")
]]}
(display: "Wizard Shuffle")]]]
]
}You dig and...
(set: _roll to (random: 1, 4))
(if: _roll is 1)[find dirt.]
(else-if: _roll is 2)[find rocks.]
(else-if: _roll is 3)[(set: $plotDepth to it + 1)(if: (random: 0, $plotDepth) > 9)[You've found the [[Entrance to the Catacombs]] !](else:)[find dirt and rocks.]]
(else-if: _roll is 4)[find a little gold and gemstone.
(set: $arg to (random: 1, 20))(display: "UpdateGold")]
[[Dig Your Plot]]
(display: "NavOptions")(set: $val to 0)
<div style="display:none">(set: $val to 1)</div>
-> $val
You were told there would be choruses of angels and daemons triumphant in Heaven or Hell or wherever you were supposed to go. Instead, there is nothingness eternal.
Your apartment came furnished with a door. Otherwise you'd be unable to leave it. As it happens, the door let out into the West Fires neighborhood.
Awful place, full of criminals.(goto: "West Fires")(set: $perception to (max: 1, it + $arg))<b>Perception (if: $arg >= 0)[+] $arg</b>You and your crew stride up to the gate of the most impressive tomb and crack it open. The glint of gold in the light from the Rift sparkles more beautifully than anything you've ever seen before.
|output>[]
(set: $EATdepth to 0)(set: $EATdeck to (shuffled: 1,2,2,3,3,3,4,4,4,4,5,5,5,5,5))(set: $EATdiscard to (ds:))
(link-repeat: "Keep Exploring")[(append:?output)[(set: $EATdepth to it + 1)(set: _value to $EATdeck's ($EATdepth))(if: $EATdiscard contains _value)[(if: _value is 2)[A section of the ceiling comes crashing down! (set: $deathReason to "Your poor brains were jellified by shoddy roofing materials.")(set: $arg to (random: 1, 2))(display: "TakeDamage")
]
(if: _value is 3)[You found another vault key! (if: $EATdiscard contains 1)[(display: "Open Ancient Tomb Vault")
]]
(if: _value is 4)[Blow-dart traps that had not yet claimed victims are launched and strike your crew!
(set: $arg to -(random: 1,3))(display: "UpdateRiftCrew")]
(if: _value is 5)[You find some loose treasure.
(set: $arg to (random: 1, 5))(display: "UpdateRiftTreasure")
]]
(else:)
[(if: _value is 1)[The vault is where all of the //real// treasure is kept. It looks like you need some kind of key...
(if: $EATdiscard contains 3 or $inventory contains "SkeletonKey")[(display: "Open Ancient Tomb Vault")]]
(if: _value is 2)[You notice that the ceiling sections are getting loose. If you see one more loose section, it will probably be your last.]
(if: _value is 3)[
You find a bit of some kind of gear. It must be the key to the vault!
]
(if: _value is 4)[You notice some empty blow-dart traps near the entrance. You're about a quarter of the way through the traps.]
(if: _value is 5)[You find a small pile of treasure.
(set: $arg to (random: 10, 15))(display: "UpdateRiftTreasure")
]
(set: $EATdiscard to it + (ds: _value))
]]]
[[Abandon the Search->Next Journey]] The vault swings open, groaning on its hinges.
(set: $arg to (random: 100, 250))(display: "UpdateRiftTreasure")
(set: $arg to (random: 0,1))(display: "UpdateRiftCommand")
[[Next Journey]] This store does not, in fact, sell furniture made out of driftwood from the Rift.
It sells furniture that drifted here from the Rift.
(for: each _i, "Neighborhood Door to South Quarry", "Item Shelf", "Comfortable Bed")[(set: _item to _i)(set: _cost to 1500)
(display: "QuickBuy")
]
(display: "NavOptions"){(set: $environmentMaterials to (a: "stone", "brick", "charcoal", "cinderbrine", "quartz", "concrete", "flagstone", "cobble"))
(set: $environmentColors to (a: "white", "red", "black", "gray"))
(set: $clothingMaterials to (a: "fur", "felt", "linen", "rag", "metal plate", "leather"))
(set: $clothingColors to (a: "brown", "black", "foxred", "gray", "grey", "yellowed", "tawny"))
(set: $clothingTypes to (a: "kilt", "apron", "loincloth", "girdle", "three-piece suit", "coveralls", "one-piece"))
(set: $adornmentMaterials to (a: "bone", "shell", "copper", "clay", "gold", "silver", "emerald", "iron", "tin", "brass"))
(set: $adornmentTypes to (a: "plate", "plug", "tusk", "ring", "stud"))
(set: $hairstyles to (a: "a shaven scalp", "a bald pate", "shaven sides and spiked top", "long dreadlocks", "long bangs", "a lacquered headdress", "a shaggy mane"))
(set: $sizes to (a: "grand", "stout", "scrawny", "burly", "rotund", "gaunt", "obese", "muscular", "sculpted"))
(set: $genders to (a: "man", "woman", "non", "herm"))
(set: $races to (a: "human", "vulcan", "daemonkin", "changeling", "drakish", "mekannin"))
(set: $skinColors to (a: "black", "tan", "brown", "red", "gray"))
(set: $skinTypes to (a: "smooth", "lightly furred", "fur-covered", "scaled"))
(set: $professions to (a: "soldier", "thief", "ragpicker", "sineater", "cursekeeper", "prostitute", "thug", "student", "alckymist", "blacksmith"))
}
{
(set: $events to (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "westfires", "event"), ...(passages:))))
(if: (history:) contains "Fulfilled: Slaying The Beast")[(set: $events to $events + (a: "Ripper's Carnage"))]
(set: $neighborhood to
(dm: "tagname", "westfires",
"name", "West Fires",
"locations", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "westfires", "location"), ...(passages:))),
"contracts", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "westfires", "contract"), ...(passages:))),
"events", $events))
}(if: visits is 1)[
You find a ritual dagger on an altar near a suspicious stain.
(set: $arg to "Ritual Dagger")(display: "GetItem")
](else:)[
You see an altar with a suspicious stain.
]
(display: "LabyrinthOptions"){(set: $environmentMaterials to (a: "stone", "brick", "charcoal", "driftwood", "log and post", "concrete", "flagstone", "cobble", "tile", "recovered crossbeam"))
(set: $environmentColors to (a: "brown", "ochre", "tan", "gray"))
(set: $clothingMaterials to (a: "silk", "satin", "linen", "rag", "wooden plate", "leather", "hemp"))
(set: $clothingColors to (a: "brown", "dun", "gray", "yellowed", "tawny"))
(set: $clothingTypes to (a: "kilt", "apron", "loincloth", "girdle", "tunic", "dressing gown","coveralls", "one-piece", "armor"))
(set: $adornmentMaterials to (a: "stone", "copper", "ceramic", "gold", "silver", "dolemite", "pyrite", "bronze","chitin"))
(set: $adornmentTypes to (a: "plate", "plug", "spool", "ring", "stud", "chain"))
(set: $hairstyles to (a: "a shaven scalp", "a bald pate", "shaven sides and a top knot", "a brief top knot", "a top knot", "a lacquered headdress", "a shaggy mane"))
(set: $sizes to (a: "stout", "scrawny", "burly", "rotund", "gaunt", "obese", "muscular", "sculpted", "compact", "lithe"))
(set: $genders to (a: "man", "woman", "non", "herm"))
(set: $races to (a: "human", "gnome", "daemonkin", "changeling", "drakish", "mekannin","insekvolk"))
(set: $skinColors to (a: "black", "tan", "brown", "pink", "pale", "silver"))
(set: $skinTypes to (a: "smooth", "lightly furred", "fur-covered", "scaled", "chitinous"))
(set: $professions to (a: "soldier", "thief", "ragpicker", "sineater", "cursekeeper", "prostitute", "thug", "student", "alckymist", "blacksmith","explorer","archeologist","technoresurrectionist"))
}
{(set: $neighborhood to
(dm: "name", "Eastern Fortress",
"tagname", "easternfortress",
"locations", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "easternfortress", "location"), ...(passages:))),
"contracts", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "easternfortress", "contract"), ...(passages:))),
"events", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "easternfortress", "event"), ...(passages:)))))}You've contracted a mild case of vampirism.(if: visits is 1)[
You find a tidy pile of gold.
(set: $arg to 350)(display: "UpdateGold")
](else:)[
You see an empty chamber.
]
(display: "LabyrinthOptions")(if: $enemyElementType is "Mortal")[
(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[You swing your phurpa at your enemey.
(if: _opponentMove is "Flee")[(replace:?input)[ [[Next Encounter]] ](replace:?output)[They turn and run away at top speed.]](else-if: _opponentMove is "Block")[... but they bat your attack away.](else-if: _opponentMove is "Throw")[ As they dip in to grab your arm, you slice something vulnerable.(set: $arg to 3)(display: "DealDamage")](else-if: _opponentMove is "Strike")[ They poke at you, and you cut off their poker.(set: $arg to 2)(display: "DealDamage")(set: $arg to 1)(display: "TakeDamage")](else:)[ They make no move to avoid it and take the full brunt of your blow.(set: $arg to 4)(display: "DealDamage")]]
(set: $fightIndex to (it + 1))
(if: $fightIndex > $fightPattern's length)[(set: $fightIndex to 1)]
(display: "UpdateClock")
]
(else:)[
The phurpa can cut through both flesh and more aetherial stuff.
(if: (a: "shadow", "fire") contains $enemyElementType)[
You scratch a line through the daemon.
(set: $arg to (either: 0,1,1))(display: "DealDamage")
(if: $enemyHealth <= 0)[
(if: $cunning > 3)
[The $enemyType is reduced to a filthy smoke. You weave the smoke into
(set: $arg to "Shadow Threads")(display: "GetItem")
]
(else:)
[The $enemyType burns to filthy ash, and the wind blows away the remnants.
]]]
(else:)
[Your arcane weapon is ineffective against this type of enemy.
(set: $arg to 0)(display: "DealDamage")]
](set: $dialLimit to (random: 1, 10))
(set: $dialValue to (shuffled: ...(range: 0, $dialLimit)))
|input>[]
(replace:?input)[(display: "Rotator Input")](for: each _i, ...(range: 1, $dialValue's length))[(set: _temp to _i)(link-reveal: (str: $dialValue's (_temp)))[
(set: _nextIndex to (_temp - 1 + $dialValue's (_temp)) % $dialValue's length + 1)
(set: _swap to ($dialValue's (_nextIndex)))
(set: $dialValue's (_nextIndex) to ($dialValue's (_temp)))
(set: $dialValue's (_temp) to _swap)
(replace:?input)[(display: "Rotator Input")(display: "Rotator Puzzle Unlocked?")]] |- ](if: (range: 0, $dialLimit) matches $dialValue)[
You have unlocked the dial!
]{(set: $deck to (shuffled: "A 1", "B 1", "A 2", "B 2", "A 3","B 3","A 4","B 4","A 5","B 5","A 6","B 6","A 7","B 7","A 8","B 8","A 9","B 9","A 10","B 10","A 11","B 11","A 12","B 12","A 13","B 13"))
(set: $deckIndex to 1)
(set: $playerHand to (a:))
(set: $opponentHand to (a:))
(for: each _i, ...(range: 1,5))[
(set: $playerHand to it + (a: $deck's ($deckIndex)))
(set: $deckIndex to it + 1)
(set: $opponentHand to it + (a: $deck's ($deckIndex)))
(set: $deckIndex to it + 1)]
(set: $potTotal to 0)
(set: $playerScore to 4)
(set: $opponentScore to 4)
}
|input>[
(display: "Display Hand")
]
|output>[You -> $playerScore -+- Total -> $potTotal -+- Them -> $opponentScore]{(link-reveal: (str: _item))[(replace:?output)[You play the _item,
(set: $playerHand to it - (a: _item))
(set: $potTotal to (it + (num: (words: _item)'s 2nd)) % 31)
making the pot total $potTotal.
(if: $potTotal is 0)[(set: $opponentScore to it - 1)You score a hit on your opponent with 31. Total reset to 0.]
(if: $potTotal is 15)[(set: $opponentScore to it - 1)You score a hit on your opponent with 15.]
(if: $opponentScore <= 0)[You have won by knocking your opponent down to 0 points.]
(set: _opponentChoice to (either: ...$opponentHand))
Opponent plays _opponentChoice,
(set: $opponentHand to it - (a: _opponentChoice))
(set: $potTotal to (it + (num: (words: _opponentChoice)'s 2nd)) % 31)
making the pot total $potTotal.
(if: $potTotal is 0)[(set: $playerScore to it - 1)They score a hit on you with 31. Total reset to 0.]
(if: $potTotal is 15)[(set: $playerScore to it - 1)They score a hit on you with 15]
(if: $deckIndex < $deck's length)[
(set: $playerHand to it + (a: $deck's ($deckIndex)))
(set: $deckIndex to it + 1)
(set: $opponentHand to it + (a: $deck's ($deckIndex)))
(set: $deckIndex to it + 1)
](else:)[
The deck is empty.
]
<br/>You -> $playerScore -+- Total -> $potTotal -+- Them -> $opponentScore
You can see your opponent's cards through their eyes with a touch of clairvoyance -> $opponentHand
(replace:?input)[(display: "Display Hand")]
]]
}(for: each _item, ...$playerHand)[(display: "Play Card")
]{(set: $deck to (shuffled: "A 1", "B 1", "A 2", "B 2", "A 3","B 3","A 4","B 4","A 5","B 5","A 6","B 6","A 7","B 7","A 8","B 8","A 9","B 9","A 10","B 10","A 11","B 11","A 12","B 12","A 13","B 13", "A 1", "B 1", "A 2", "B 2", "A 3","B 3","A 4","B 4","A 5","B 5","A 6","B 6","A 7","B 7","A 8","B 8","A 9","B 9","A 10","B 10","A 11","B 11","A 12","B 12","A 13","B 13"))
(set: $deckIndex to 1)
(set: $playerHand to (a:))
(set: $opponentHand to (a:))
(for: each _i, ...(range: 1,5))[
(set: $playerHand to it + (a: $deck's ($deckIndex)))
(set: $deckIndex to it + 1)
(set: $opponentHand to it + (a: $deck's ($deckIndex)))
(set: $deckIndex to it + 1)]
(set: $potTotal to (dm: "A", 0, "B", 0))
(set: $playerScore to 4)
(set: $opponentScore to 4)
}
|input>[
(display: "Display Hand2")
]
|output>[You -> $playerScore -+- Total A -> 0 -+- Total B -> 0 -+- Them -> $opponentScore](for: each _item, ...$playerHand)[(display: "Play Card2")
]{(link-reveal: (str: _item))[(replace:?output)[You play the _item,
(set: $playerHand to it - (a: _item))
(set: _potKey to (words: _item)'s 1st)
(set: $potTotal's (_potKey) to (it + (num: (words: _item)'s 2nd)) % 31)
making the pot total _potKey (print: $potTotal's (_potKey)).
(if: $potTotal's (_potKey) is 0)[(set: $opponentScore to it - 1)You score a hit on your opponent with 31. Total reset to 0.]
(if: $potTotal's (_potKey) is 15)[(set: $opponentScore to it - 1)You score a hit on your opponent with 15.]
(if: $opponentScore <= 0)[You have won by knocking your opponent down to 0 points.]
(set: _opponentChoice to (either: ...$opponentHand))
Opponent plays _opponentChoice,
(set: _potKey to (words: _opponentChoice)'s 1st)
(set: $opponentHand to it - (a: _opponentChoice))
(set: $potTotal's (_potKey) to (it + (num: (words: _opponentChoice)'s 2nd)) % 31)
making the pot total _potKey (print: $potTotal's (_potKey)).
(if: $potTotal's (_potKey) is 0)[(set: $playerScore to it - 1)They score a hit on you with 31. Total reset to 0.]
(if: $potTotal's (_potKey) is 15)[(set: $playerScore to it - 1)They score a hit on you with 15]
(if: $deckIndex < $deck's length)[
(set: $playerHand to it + (a: $deck's ($deckIndex)))
(set: $deckIndex to it + 1)
(set: $opponentHand to it + (a: $deck's ($deckIndex)))
(set: $deckIndex to it + 1)
](else:)[
The deck is empty.
]
<br/>You -> $playerScore -+- Total A -> (print: $potTotal's A) -+- Total B -> (print: $potTotal's B) -+- Them -> $opponentScore
You can see your opponent's cards through their eyes with a touch of clairvoyance -> $opponentHand
(replace:?input)[(display: "Display Hand2")]
]]
}Roll your die. They roll theirs.
Highest roll wins.
If you're carrying a Lodestone and Loaded Dice, you will add 1 to the roll.
{
(set: $ante to 3)(set: $opponentGold to 100)
(set: $pot to 0)}
|input>[(display: "Roll Dice #1")]
Gold: (live:)[$gold] Their Gold: (live:)[$opponentGold]
Ante: (live:)[$ante] Pot: (live:)[$pot]
Yours -> (live:)[$yourRoll] -+- (live:)[$theirRoll] <- Theirs
|output>[ ]{(link-reveal: "Roll the Bones!")[(replace:?output)[
(if: $gold >= $ante)[(set: $pot to it + $ante * 2)(set: $gold to it - $ante)(set: $opponentGold to it - $ante)]
(set: $yourRoll to (random: 1, 6))
(if: $inventory contains all of (ds: "Lodestone", "Loaded Dice"))[(set: $yourRoll to it + 1)]
(set: $theirRoll to (random: 1, 6))
(if: $yourRoll > $theirRoll)[
(if: $yourRoll is 7)[You've been caught for a cheat! <b>Command - 1</b>(set: $riftCommand to it - 1)]
(else:)[You win! (set: $arg to $pot)(display: "UpdateGold")](set: $pot to 0)]
(else-if: $yourRoll < $theirRoll)[They've won the roll off! <b>Opponent Gold + $pot</b>(set: $opponentGold to it + $pot)(set: $pot to 0)]
(else:)[You've both tied! If you have the gold, you can roll off for the combined pot.]
(set: $ante to it * 2)
(if: $opponentGold <= 0 or $opponentGold < $ante)[<br/>Your opponent pushes themselves away from the table with an exhausted sigh.
(if: $pot > 0)[(set: $arg to $pot)(display: "UpdateGold")]]
(else-if: $gold <= 0 or $gold < $ante)[<br/>You reach for your purse, but it is empty. You retire for the time being.]
(else:)[
(replace:?input)[(display: "Roll Dice #1")]]
]]
(display: "UpdateClock")}
(set: $reputation to (dm:))
(set: $identity to "Publican")
(unless: $reputation contains $identity)[(set: $reputation's ($identity) to -1)]
first, establish your reputation with them
if they don't know you, you'll have a reputation penalty on all interactions with them
If you buy from them and share rumors, your reputation with them will eventually become a bonus
(set: $playerRumors to (ds: "Aleph", "Fire Ghosts Are Hypnotized by Gold", "I'm new here.", "My Garrett Is Secretly An Incredibly Powerful Artifact"))
(set: $mobRumors to (ds: "Fire Ghosts Are Hypnotized by Gold", "Damage Ward Broker", "Sirens Carry Great Wisdom", "Industries of West Fires", "Current Boss of West Fires", "Crimes of West Fires", "Ripper's Carnage"))
[[Buy A Round]]
[[Tip the Publican]]|input>[(set: $reputation's ($identity) to it + (random: 0, 1))
(for: each _i, ...(shuffled: ...$playerRumors)'s (range: 1,3))[
(set: _item to _i)(link-reveal: _item)[
(if: $mobRumors contains _item)[(replace:?input)["_item? I heard it before, friend."]]
(else:)[(replace:?input)[(set: $reputation's ($identity) to it + 1)(set: _newRumor to (either: ...$mobRumors))"_item? Interesting... ", they say. "_newRumor"(set: $playerRumors to it + (ds: _newRumor))(set: $mobRumors to it + (ds: _item))]]
]]]
(live:)[(print: $reputation's ($identity))]
[[Buy A Round]]
[[Tip the Publican]] (if: (random: 0, $reputation's ($identity)) > 0)[(set: $reputation's ($identity) to it + 1) The Publican shows their appreciation for your patronage by almost demonstrating any amount of emotion.
(set: _selectRumors to ($mobRumors - $playerRumors))
(if: _selectRumors's length is 0)["I've told you all I know."]
(else:)[(set: _newRumor to (either: ..._selectRumors))"_newRumor"(set: $playerRumors to it + (ds: _newRumor))]
](else:)[The Publican is too busy polishing glasses to notice your paltry offering.]
(live:)[(print: $reputation's ($identity))]
[[Buy A Round]]
{(set: $moments to 13)
(set: $cunning to 4)(set: $perception to 4)(set: $health to 5)
(set: $inventory to (ds: "Sleeping Phial", "Flask of Poison", "Liter of Acid", "Ritual Dagger", "Damage Ward", "Crystal of Detonation", "Crystal Spyglass", "Safecracking Kit", "Belonging Sign"))
(set: $daemons to (ds: "Fire Ghost", "Living Shadow"))
(set: $disguise to 1)(set: $reputation to (dm: "public", 7))
(set: $guardHealth to 4)(set: $tellerHealth to 3)(set: $barrierHealth to 0)(set: $vaultCode to 0)(set: $guardianHealth to 5)}
You're to enter the vault foyer posing as customers.
Once inside the building, you have $moments moments to subdue the two guards on duty.
The tellers will attempt to bring down the anti-theft shield, but we've given you a Crystal of Detonation to blast through it.
They should be pretty shook up by that and will be unlikely to put up a fight.
We then have to crack the vault before offsite support becomes onsite support, and you get thrown in gaol.
Inside the vault may be a guardian creature. Whatever moments remaining can be spent fighting the creature.
Remaining time is converted into liberated treasure.
If you can avoid getting caught, we'll pull you out with the same portal as all of that sweet, sweet treasure.
[[Let's Go!]]Moments Remaining: $moments
You are standing outside the vault office's front door. (if: $inventory contains "Belonging Sign")[ A glamour provides you with the requisite fineries. Every passerby who sees you perceives you as someone different, someone they trust. Someone who belongs.(set: $disguise to it + 5)]
In front of the foyer door, you note that your compatriots have inscribed invisible runes of a teleportation spell at the entrance. If you can get back here with the treasure from the vault, they will transport you and the gold back to the safe house.
(set: $guardOutFront to (either: true, false))
(if: $guardOutFront is true)[
You see a courtesy guard at the front of the vault.(set: $guardHealth to it + 1)
(if: $disguise > 3)[
They allow you to pass unmolested.
[[Enter the Foyer]]
](else:)[
They put up a stink right off the bat!
(set: $guardHealth to it + 2)
[[Fight the Guards]]
]
](else:)[
[[Enter the Foyer]]
]
Moments Remaining: $moments
You press the intercom button and announce yourself.
The door unlocks itself and swings open to invite you into the foyer of the vault.
You stride into the foyer, and the door swings shut behind you.
You cannot back out now. Next up is the front desk:
- Subdue the Two Guards
- Take out the Anti-Theft Barrier
[[Front Desk]](display: "MomentTick")
|input>[
You see two portly guards dozing off in front of a trio of bored tellers.
(if: $perception > 3)[They don't even know, yet, that they're being robbed.
[[Surprise Attack!]]]
(if: $inventory contains "Sleeping Phial")[
(link-reveal: "Throw Sleeping Phial")[
(replace:?input)[You throw the glass phial full of compressed sleeping gas. It shatters (if: (either: true, false))[in front of the guards, knocking them unconscious! The tellers manage to drop the enchanted barrier.(set: $barrierHealth to 10)(set: $guardHealth to 0)
[[Examine the Enchanted Barrier]]](else:)[into the tellers' pit, rendering them unconscious.(set: $tellerHealth to 0)
[[Fight the Guards]]]]]]
(if: $inventory contains "Flask of Poison")[
(link-reveal: "Throw Flask of Poison")[
(replace:?input)[You throw the glass flask full of compressed poison gas. It shatters in the midst of the front desk, instantly killing everyone inside. (set: $guardHealth to 0)(set: $tellerHealth to 0)
"A Shameful Display"
[[Examine the Vault Door]]
]]]]Moments Remaining: $moments
(set: $guardHealth to it - (random: 1, $guardHealth))
(if: $guardHealth <= 0)[
You manage to dispatch all sentinels with a swift attack!
[[Subdue the Tellers]]
](else:)[The guard presence is somewhat reduced, but you'll still need to now fight them!
[[Fight the Guards]]
]
[[Flee the Heist!]] (display: "MomentTick")
It's essentially a very large, very durable version of the enchantment traps that wizards place for each other in the back alleys of the West Fires. Anything strong enough to smash through it will release a few tonnes of energy right back at the smasher.
(if: $inventory contains "Crystal of Detonation")[
The Crystal of Detonation will cut a hole right through that barrier, and the folks on the other side will feel it, too.
[[Use the Crystal of Detonation on the Enchanted Barrier]]
]
In your other hand, you pull out a (set: _offHand to (either: ...($inventory - (ds: "Crystal of Detonation"))))_offHand.
If _offHand is something that can do damage, then you can attempt to destroy it with that and then body the blast.
[[Shatter the Enchanted Barrier]]
[[Flee the Heist!]](display: "MomentTick")
(set: $guardHealth to it - (random: 1, 3))
(if: $tellerHealth > 0 and (either: true, false))[
x(set: $barrierHealth to 10)]
(if: $guardHealth <= 0)[
(if: $barrierHealth > 0)[
While you were dealing with the guards, the tellers were able to get the Enchanted Barrier in place.
[[Examine the Enchanted Barrier]]](else:)[
You hop right over the teller desk.
(if: $tellerHealth > 0)[
[[Subdue the Tellers]] ]
[[Examine the Vault Door]]
]
](else:)[
They're wounded, but still standing.
[[Fight the Guards]]
]
[[Flee the Heist!]](display: "MomentTick")
(set: $guardHealth to 0)(set: $tellerHealth to 0)(set: $inventory to it - (ds: "Crystal of Detonation"))(set: $barrierHealth to 0)
The barrier is obliterated in a wholly satisfying cascade of ruined threadwork. Anyone in the room that had been standing are now in a stupor all about on the floor. The front desk has been annihilated, allowing you to step through to the vault door beyond.
[[Examine the Vault Door]]
(display: "MomentTick")
(if: $inventory contains "Crystal Spyglass")[
You could use your Crystal Spyglass to pluck on a harmonic flaw in the barrier.
[[Use the Crystal Spyglass to Shatter the Enchanted Barrier]]
](else:)[
You won't be able to summon enough focused energy to break a shield of that strength without something to use as a lens.
]
[[Flee the Heist!]](if: $loot > 0)[Once you hit the teleportation sigil, you and your haul are warped into the confines of the safe house, guarded by wards against true sight and seers.
[[In the Safe House]] ](else:)[
You leave empty-handed!
Reputation - 2
](display: "MomentTick")
You are in front of a vast (either: "stone", "iron", "steel", "brass", "vanadium", "adamantium", "fossil") vault door, inscribed with runes of protection, runes of safety.
(if: (either: true, false))[
But the runes of safety don't do much if they left the vault door open during business hours.
(if: (either: true, false))[
[[Loot the Vault->Fight the Vault Guardian]]
](else:)[
[[Loot the Vault]]
]
](else:)[
(if: $inventory contains "Crystal of Detonation")[
You still have the Crystal of Detonation left over. You want to use it to shortcut this crappe?
[[Use the Crystal of Detonation to Blow The Vault Door]]
]
(if: $inventory contains "Safecracking Kit")[
[[Crack the Safe]]
]
(if: $vaultCode is 1)[
Of course, you do have the vault code.
[[Loot the Vault]]
]
]
[[Flee the Heist!]] (set: $moments to it - (random: 0, 2))(display: "MomentTick")
You grab a vague amount of treasure in satchels of slight-holding.
(set: $loot to it + (random: 10, 30) * 5)
[[Loot the Vault]]
[[Flee the Heist!]] (display: "MomentTick")
The vault door blows inward with a might GUFF!
(either: "The vault had a guardian, but it's now crushed under a three-tonne of vault door.", "The vault was empty.")
[[Loot the Vault]]
[[Flee the Heist!]] (set: $moments to it - 1)Moments Remaining: $moments(if: $moments <= 0)[(goto: "Down to the Gaol")]You dillied when you should've been dallying, or vice versa, or neither.
Either way, you've been clapped in irons and dragged through the crowded streets to the local gaol, where you'll rot for a while until they feel you've learned your lesson or conveniently died.
The End?You focus a beam of raw aetherium into what you think is a weak spot in the Barrier's Pattern. You guessed right about the weak spot, but you did not correctly predict the subsequent reaction, as deadly forces.
(set: $arg to 5)(set: $deathReason to "The Barrier ruptured outward towards you, shredding everything softer than an oak beam.")$deathReason
(display: "TakeDamage")(set: $guardsHealth to 0)(set: $tellerHealth to 0)
[[Examine the Vault Door]]
[[Flee the Heist!]] (display: "MomentTick")
(set: $guardianHealth to 5)
(display: "Encounter Random Guardian Daemon")
(event: when $guardianHealth <= 0)[
[[Loot the Vault]] ]
[[Flee the Heist!]]
(event: when $health <= 0)[(goto: "Down to the Gaol")]You ended up holding $loot treasure.
After your fence takes their viggorish, your cut is (print: $loot * (1 + (random: 1, 5))) gold.
(if: $loot > 300)[
Your fence throws in a bonus for you!
(set: $arg to "M.C. Escher: Beginner's Embroidery")(display: "GetItem")
]
(display: "NavOptions")(display: "MomentTick")
You manage to cow the tellers with some flashy cantrips. They quickly fill up your satchels with loose treasure that wasn't yet in the vault.
(set: $loot to it + (random: 2, 15))
Loot -> $loot
[[Demand the Vault Code]]
[[Examine the Vault Door]]
[[Flee the Heist!]] (display: "MomentTick")
You use a specialized technique to induce the truth from the terrified teller.
(if: (either: true, false))[
They quickly rattle off the vault code for you.
(set: $vaultCode to 1)
(if: (either: true, false))[ [[Loot the Vault->Fight the Vault Guardian]]](else:)[ [[Loot the Vault]]]
](else:)[
They don't seem to know the code!
[[Examine the Vault Door]]
[[Demand the Vault Code]]
]
[[Flee the Heist!]] |input>[(link-repeat: "Fight the Guardian Daemon")[
(display: "MomentTick")
(set: $guardianHealth to it - (random: 0, 3))
(set: $health to it - (random: 0, 3))Health -> $health
]
(event: when $guardianHealth <= 0)[(replace:?input)[The guardian daemon slumps to the floor, its body crumbling into dust.]]]
//safecracking minigame//
(if: (either: true, false))[
[[Loot the Vault->Fight the Vault Guardian]]
](else:)[
[[Loot the Vault]]
]
(set: $marketplace to (a: "Supply Crate", "Supply Crate", "Supply Crate"))
(set: $price to 100)
(for: each _item, ...$marketplace)[ (set: _t1 to _item) (set: _t2 to $price) (link-reveal: "Buy " + _t1 + " For " + (str: _t2) + " Gold")[(if: $gold > _t2)[You buy _t1 for _t2.
(set: $riftSupplies to it + 50)(set: $gold to it - _t2)
(replace:?clock)[(display: "RenderHeader")]](else:)[You don't have the dosh, mate.]]
(set: $price to $price * 2)
]
[[Next Journey]]
(display: "Card Game")
(display: "NavOptions")(set: _idealMatch to (either: true, false))
(if: (random: 0, $perception) > 0)[
They are a (if: _idealMatch)[fine couple who would be happy together.](else:)[terrible fit and would be at each others throats for decades if they were to be married.]
]
(else:)[
They are a (if: not _idealMatch)[fine couple who would be happy together.](else:)[terrible fit and would be at each others throats for decades if they were to be married.]
]
(if: $inventory contains "Love Potion")[
???
]
Two wizards face off and challenge each other strictly within an arena and without attempting to harm their opponent.
The winner gains rank and the loser falls in rank.
|input>[
(link-reveal: "Accept the Loss")[(replace:?input)[
(display: "An Embarassing Display")
[[Next Encounter]] ]
]
[[I'd Rather Not Be Humiliated In Public->Encounter: Wizard Duel]]
]{(set: $pirateAnger to 5)(set: $pirateHealth to 10)
(set: $crewAnger to 0)(set: $crewHealth to $riftCrew)
(set: $turnsResisted to 0)}
Crew: (live: )[$crewHealth] vs. Colonials: (live: )[$pirateHealth]
|input>[(link-repeat: "Fight!")[(replace:?output)[
{(set: $pirateAnger to it + 1)
(set: $turnsResisted to it + 1)
(set: $playerAttack to (random: 0, $riftCommand))
(set: $pirateAttack to (random: 0, $pirateHealth))}
(if: $playerAttack > $pirateAttack )[
Your crew press the attack against the colonials!
<b>Colonial Damage + (print: $playerAttack - $pirateAttack)</b>(set: $pirateHealth to it - ($playerAttack - $pirateAttack))
(if: $pirateHealth <= 0)[You have defeated the colonials and pillage their loot!
(set: $arg to 100)(display: "UpdateRiftTreasure")
(set: $arg to 30)(display: "UpdateRiftSupplies")
[[A Fetching Ransom]]
[[Next Journey]]
(replace:?input)[]
]
](else:)[
The colonials begin to overcome you!
<b>Crew Health - (print: $pirateAttack - $playerAttack)</b>(set: $crewHealth to it - ($pirateAttack - $playerAttack))
(if: $crewHealth <= 0)[(replace:?input)[]
[[Kidnapped!]]
[[Death]]
]]]]
(link-reveal: "Surrender!")[(replace:?input)[](replace:?output)[
(if: $turnsResisted < 3)[(set: $crewAnger to it + 3 - $turnsResisted)]
[[Kidnapped!]]
[[Set Adrift]]
[[Death]]
]]]
|output>[]A bipedal mass of dry clay with a frog-like mouth and two unblinking eyes scooped out its face confronts you.
{(set: $enemyType to "Golem")
(set: $deathReason to "You've been smashed into pulp by the golem. The instant you die, it ceases moving")
(set: $enemyHealth to 9)
(set: $enemyElementType to "stone")
(set: $options to (a:))
(if: $inventory contains all of (ds: "Blank Scroll", "Ink of Enchantment") and (history:) contains "Read Ex Nobilis Aetherium" and $cunning > 5)[(set: $options to $options + "Capture Golem")]
}
(set: _options to $options)(display: "Encounter Daemon")Double-click this passage to edit it.A slight periodical telling unlikely tales, highly sensationalized.
It has advertisements and a help wanted section.You slip the magazine a coin that it delicately champs up and swallows.
(set: $arg to -1)(display: "UpdateGold")
//display random story//
{(set: $reputationTag to "brass-level")}
(if: $currentContract is "")[
(display: "GenerateChar")(set: $clientDescription to $char)
{(set: $potentialContracts to (find: _item where (not ((passage: _item)'s tags contains "unique") or not ((history:) contains _item)) and (passage: _item)'s tags contains all of (a: "contract", $reputationTag), ...($neighborhood's contracts)))}
You scan through the available jobs...<br/>
(if: $potentialContracts's length > 0)[
(link-goto: (shuffled: ...$potentialContracts)'s 1st)
](else:)[There's no work for you.]](else:)[You already have a job.]
{(set: _locations to (find: _item where not ((history:) contains _item and (passage: _item)'s tags contains "bookmark") and (passage: _item)'s tags contains "location", ...($neighborhood's locations)))}
(if: _locations's length > 0)[Your eye skims past the various advertisements... until you find (link-goto: _locations's 1st)]
(else:)[I guess you've already seen everything in the (print: $neighborhood's name).]
[[Read a Book In Your Library]]
[[Home Again]] {(set: $environmentMaterials to (a: "stone", "driftwood", "coral", "siltblock", "concrete", "flagstone", "cobble", "log"))
(set: $environmentColors to (a: "white", "blue", "seafoam", "gray"))
(set: $clothingMaterials to (a: "fur", "sealskin", "crabshell", "leather", "flannel"))
(set: $clothingColors to (a: "brown", "black", "foxred", "gray", "white", "yellowed", "tawny","tan","seableached"))
(set: $clothingTypes to (a: "overall", "apron", "snowsuit", "sou-ester", "coveralls", "one-piece","great coat"))
(set: $adornmentMaterials to (a: "bone", "shell", "ivory", "clay", "gold", "silver", "amethyst", "rusty iron", "tin", "coral"))
(set: $adornmentTypes to (a: "plate", "plug", "tusk", "ring", "stud"))
(set: $hairstyles to (a: "a shaven scalp", "a bald pate", "a long pony tail", "long dreadlocks", "short dreadlocks", "a pathetic combover", "a shaggy mane","a fur wig"))
(set: $sizes to (a: "grand", "stout", "scrawny", "burly", "rotund", "gaunt", "obese", "muscular", "sculpted"))
(set: $genders to (a: "man", "woman", "non", "herm"))
(set: $races to (a: "human", "nereid", "daemonkin", "changeling", "selkie", "merfolk"))
(set: $skinColors to (a: "black", "tan", "brown", "red", "gray"))
(set: $skinTypes to (a: "smooth", "lightly furred", "fur-covered", "scaled"))
(set: $professions to (a: "soldier", "riftrunner", "ragpicker", "stevedore", "insurance agent", "prostitute", "thug", "sailor", "medic", "machine repairman"))
}
{(set: $neighborhood to
(dm: "name", "North Harbor",
"tagname", "northharbor",
"locations", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "northharbor", "location"), ...(passages:))),
"contracts", (a:),
"events", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "northharbor", "event"), ...(passages:)))))}(set: _key to (str: $ticks))
(if: (datanames: $scheduledEvents) contains _key)[
(if: ($scheduledEvents's (_key))'s length > 0)[
(for: each _i, ...($scheduledEvents's (_key)))[
(display: _i)]]](set: _nextTick to (str: $ticks + $arg's delay))(unless: (datanames: $scheduledEvents) contains _nextTick)[(set: ($scheduledEvents's (_nextTick) to (a:)))]
(set: ($scheduledEvents's (_nextTick) to it + (a: $arg's event)))
!! EVENT SCHEDULED !!
(print: $arg's event) at _nextTick
Several members of your crew spontaneously erupt as the mer-babies in their abdomens abruptly mature.
(set: $arg to -(random: 3, 5))(display: "UpdateRiftCrew")
(if: $riftCrew > 0)[The remaining crew talks sense into the newly born mer-folk, and they decide to join you.
(set: $arg to (random: 5, 13))(display: "UpdateRiftCrew")
]As you approach the Eye of the Rift, you realize that it is actually a mouth.
Various crewmembers shout commands that go unheard in the turgid dirge of waves rushing into the maw that opens like an eight-part squid beak.
Down, down, down you all go into a gulf that is greater and darker than Hell itself.
Long after your crew has been obliterated, the ship shattered and the sails torn, the remnant of wreckage you tied yourself to comes to rest on the shores of a beautiful tropical island with obsidian sand beaches.
Sunning themselves on the beach is a gentleman in a fine suit. In one hand is a daiquiri. In the other is a card that says
[[The Second Prestige]]The store is unnaturally cold and contains no visible staff.
(unless: $inventory contains "Penny Dreadful")[A slim magazine lies on a dusty table, with a paper price tag attached by a length of string.
(set: _item to "Penny Dreadful")(set: _cost to 150)(display: "QuickBuy")]
(display: "NavOptions")Double-click this passage to edit it.{(set: $riftSupplies to 100)
(set: $riftCrew to 10)
(set: $riftDistance to 0)
(set: $riftTripDistance to 9999999)
(set: $riftTreasure to 0)
(set: $riftCommand to 1)
(set: $riftVoyageDirection to 1)}In some timelines, M.C. Escher was an artist who created 2D representations of impossible 3D geometry.
In the timeline that produced this classic literature on the topic of enchantment, they were an artist that created 4D representations of impossible 5D geometry with Ethereal Thread embroidery.(if: $maxCunning > 2)[(if: $maxCunning < 5)[(set: $maxCunning to it + 2)<b>Max Cunning + 2</b>
Ahhhhh, now that you've seen it from that perspective, it makes much more sense.](else:)[A classic, but you are too advanced to take any advantage of it.]](else:)[You are not truly cunning enough to understand the concepts in the book.]
[[Read a Book In Your Library]] (set: _cost to 150)
(for: each _item, "Infernal Lens", "Straight Razor", "Thorn Ward")[
(display: "QuickBuy")
]
(display: "NavOptions")(set: _cost to 150)
(for: each _item, "Obsidian Lens", "Stiletto")[
(display: "QuickBuy")
]
(display: "NavOptions")(set: _cost to 150)
(for: each _item, "Enchanted Flashlight", "Blunderbuss")[
(display: "QuickBuy")
]
(display: "NavOptions")(set: _cost to 150)
(for: each _item, "Blunderbuss", "Crystal Prism", "Loaded Dice")[
(display: "QuickBuy")
]
(display: "NavOptions")(set: _cost to 1500)
(for: each _item, "Brass Mirror", "Mana Battery")[
(display: "QuickBuy")
]
(display: "NavOptions")(set: _cost to 1500)
(for: each _item, "Cursed Mirror", "God's Eye", "Neighborhood Door to West Fires")[
(display: "QuickBuy")
]
(display: "NavOptions")A wretched, tooth-ring mouth emerges from a surface that seemed completely solid.
"So... hungry..." it gasped.
(set: $deathReason to "Your life was drained out by a horrible, leech-like creature")
(if: $inventory contains "Food")[
You can give it a little food...
(link-reveal: "Or Not")[
It clamps on and drains you of a little blood.
(set: $arg to (random: 0, 2))(display: "TakeDamage")
[[Next Encounter]]
]
](else:)
[
You have nothing to give it, so it clamps on and drains you of a little blood.
(set: $arg to (random: 0, 2))(display: "TakeDamage")
[[Next Encounter]]
](set: $chanceOfMinotaur to 0)
(if: (history:)'s last is "Minotaur's Labyrinth")[
The cave mouth collapses behind you.
]
(else:)
[
A gaping cave like a cannibal's maw awaits your ingress...
[[Enter->Minotaur's Labyrinth]]
]
(display: "ForayOptions")(set: $labyrinthStack to (a: "Entrance to the Minotaur's Labyrinth"))
(display: "LabyrinthOptions")
{(set: $environmentMaterials to (a: "stone", "brick", "charcoal", "cinderbrine", "obsidian", "flagstone", "cobble", "chalk"))
(set: $environmentColors to (a: "white", "tan", "black", "gray"))
(set: $clothingMaterials to (a: "fur", "felt", "linen", "rag", "metal plate", "leather"))
(set: $clothingColors to (a: "brown", "black", "dun", "gray", "yellowed"))
(set: $clothingTypes to (a: "kilt", "apron", "loincloth", "girdle", "three-piece suit", "coveralls", "one-piece"))
(set: $adornmentMaterials to (a: "bone", "shell", "copper", "clay", "gold", "silver", "citrine", "iron", "bronze", "brass"))
(set: $adornmentTypes to (a: "plate", "plug", "tusk", "ring", "stud"))
(set: $hairstyles to (a: "a shaven scalp", "a bald pate", "shaven sides and spiked top", "long dreadlocks", "long bangs", "a lacquered headdress", "a shaggy mane"))
(set: $sizes to (a: "grand", "stout", "scrawny", "burly", "rotund", "gaunt", "obese", "muscular", "sculpted"))
(set: $genders to (a: "man", "woman", "non", "herm"))
(set: $races to (a: "human", "gnome", "daemonkin", "changeling", "golem", "mekannin"))
(set: $skinColors to (a: "black", "tan", "brown", "red", "gray", "white","pink"))
(set: $skinTypes to (a: "smooth", "lightly furred", "fur-covered", "scaled", "faceted"))
(set: $professions to (a: "soldier", "thief", "ragpicker", "sineater", "cursekeeper", "prostitute", "thug", "miner", "alckymist", "blacksmith","gemcutter","engineer"))
}
{(set: $neighborhood to
(dm: "name", "South Quarry",
"tagname", "southquarry",
"locations", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "southquarry", "location"), ...(passages:))),
"contracts", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "southquarry", "contract"), ...(passages:))),
"events", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "southquarry", "event"), ...(passages:)))))
(if: (history:) contains "Trove: Join the Goblins")
[
(if: $inventory contains any of (a: "Mark of the Goblins Lvl 1"))[
(set: $neighborhood's events to $neighborhood's events + (a: "Encounter: A Friendly Goblin"))
]
(else:)[
(set: $neighborhood's events to $neighborhood's events + (a: "Encounter: An Angry Goblin"))
]
]
}Sir Thomas More's Utopian AlphabetLike the kind of bells that a god would ring, giant piston-powered hammers smashing down on anvils the size of houses.
Industrial productivity is clearly being executed at an epic scale, using the energy of the eternal firestorm below to manufacture possible item.
In practice, most of those items tend to be only infinitesimally different from each other.
They have a street-level shop where you can buy samples:
(set: _cost to 150)(set: $marketplace to (a: "Aqua Regia", "Platinum Platelet", "Meteor Iron", "Damage Ward"))(for: each _item, ...$marketplace)[(unless: $inventory contains _item)[
(display: "QuickBuy")
]]
(if: $reputation contains "House Guild Mechanika" and $reputation's ("House Guild Mechanika") > 0)[
You have some favor with the House Guild Mechanicka, which runs this majestic beast.
](else:)[The House Guild Mechanicka runs this majestic beast.]
[[House Guild Mechanika]]
(display: "NavOptions")Garagalg is a fairly enormous elemental creature made of stone inlayed with precious stones. They are continuously replacing stones with superior specimens.
(if: not ($requests contains "Garagalg"))[
// Initializing Garagalg //
(set: $requests to it + (dm: "Garagalg", (either: "Damage Ward", "Ex Nobilis Aetherium", "Crystal Prism")))
]
Garagalg is currently looking for (print: $requests's "Garagalg").
(if: $inventory contains $requests's "Garagalg")[
You happen to have one of those. Would you be willing to part with it for 150 gold?
(link-reveal: "Sell It")[
(set: $arg to $requests's "Garagalg")(display: "LoseItem")
(set: $arg to 150)(display: "UpdateGold")
(set: $requests's "Garagalg" to (either: "Damage Ward", "Ex Nobilis Aetherium", "Crystal Prism"))
]]
//Trade treasure for better treasure//
(set: $arg to "Macro Caster")(display: "GetItem")
//Buy rare materials//
(display: "NavOptions")It is built up from the stones out of steaming pipes and clattering gears. It is hideously dangerous. The workers entering and exiting are often conspicuously burn-scarred or missing digits.
You can hire their boffins to update your available tech wherever they have an outpost.
(link-repeat: "Buy 1 Unit of Science/Engineering")[
(if: $gold > 100)[
(set: $arg to "House Guild Mechanika")(display: "ImproveReputation")
(set: $arg to -100)(display: "UpdateGold")
+ Science/Engineering
Of course, you can bottle lightning. It's called a Leyden jar. Well, what about magic essence? Only one way to find out. Here, hold my ale.
It seems that his heart stopped. Perfect opportunity for the Leyden jar!
]
]
(display: "NavOptions")The Thieves Guild. The Guild House is hidden to anyone but members of the Guild. You can't become a member unless you can get to the head office of The Guild House.
[[Enter Shade of Owl Feathers]]
(display: "NavOptions")You can try to lift the crew's spirits at the expense of some of your goodwill.
(cycling-link: bind _sacrifice, ...(altered: _i via (str: _i), ...(range: 0, $riftCommand)))
(link-reveal: "Speechify")[
You take a deep breath and prepare to give forth:
(set: _roll to (random: 0, (pow: (num:_sacrifice), 2) * 5))
Roll: _roll
(if: _roll > 20)[
Your speech is epic, and your crew is invigorated.
(set: $arg to 3)(display: "UpdateRiftDistance")
(set: $arg to _roll)(display: "UpdateRiftCommand")
](else:)[
Your speech is terrible, and your crew is demoralized.
(set: $arg to -(_roll + (num:_sacrifice)))(display: "UpdateRiftCommand")
]]
[[Next Journey]]The lens catches the ambient light, projecting a beam of elemental infernium.
(if: (a: "shadow", "bone", "flesh") contains $enemyElementType)[It arcs out, plowing through the center of the hostile daemon.
(set: $arg to (random: 1,3))(display: "DealDamage")
(if: $enemyHealth <= 0)[
(if: $cunning > 3)
[The $enemyType is reduced to a filthy smoke. You weave the smoke into
(set: $arg to "Shadow Threads")(display: "GetItem")
]
(else:)
[The $enemyType burns to filthy ash, and the wind blows away the remnants.
]]]
(else:)
[Your arcane weapon is ineffective against this type of enemy.
(set: $arg to 0)(display: "DealDamage")]Double-click this passage to edit it.The mines cave-in, injuring your crew.
(display: "Init Catacombs")
//some form of adventure to unlock shortcut to...//
(set: $pursued to false)
(set: $encounterStack to (shuffled:
"Catacombs: Grave Robbing","Catacombs: Grave Robbing","Catacombs: Grave Robbing","Catacombs: Grave Robbing",
"Catacombs: Groping in the Darkness","Catacombs: Groping in the Darkness","Catacombs: Groping in the Darkness","Catacombs: Groping in the Darkness",
"Catacombs: Spirit Flames","Catacombs: Spirit Flames","Catacombs: Spirit Flames","Catacombs: Spirit Flames",
"Catacombs: A Series of Twisty Crypts All Similar","Catacombs: A Series of Twisty Crypts All Similar","Catacombs: A Series of Twisty Crypts All Similar","Catacombs: A Series of Twisty Crypts All Similar"
)'s (range: 1, (random: 9, 13)))
(set: $encounterIndex to 1)
(if: $neighborhood's name is "South Quarry")[(set: $encounterStack to it + (a: "Catacombs: Lower Depths Gate"))]
(else:)[(set: $encounterStack to it + (a: "Catacombs: South Quarry Gate"))]
[[Sally Forth!->Next Encounter]]
[[Catacombs: Grave Robbing]]
[[Catacombs: Groping in the Darkness]]
[[Catacombs: Spirit Flames]]
[[Catacombs: A Series of Twisty Crypts All Similar]]
[[Catacombs: Lower Depths Gate]]
[[Catacombs: South Quarry Gate]]
(display: "NavOptions")The lens catches the ambient light, projecting a beam of elemental infernium.
(if: (a: "fire", "holy", "flesh") contains $enemyElementType)[
The daemon's form withers in the presence of an opposing element.
(set: $arg to (random: 1,3))(display: "DealDamage")
(if: $enemyHealth <= 0)[
(if: $cunning > 3)
[The $enemyType is reduced to a wan glimmer. You weave the glimmer into
(set: $arg to "Shadow Threads")(display: "GetItem")
]
(else:)
[The $enemyType shrivels into nothing and disappears with an audible //pfft//.
]]]
(else:)
[Your arcane weapon is ineffective against this type of enemy.
(set: $arg to 0)(display: "DealDamage")]The lens catches the ambient light, projecting a beam of elemental infernium.
(if: (a: "shadow", "crystal") contains $enemyElementType)[
A brilliant shaft of purest hope erupts from the children's flashlight with duct tape and bailing wire modifications. The enemy shrieks in terror.
(set: $arg to (random: 1,3))(display: "DealDamage")
(if: $enemyHealth <= 0)[
(if: $cunning > 3)
[The $enemyType is reduced to a filthy smoke. You weave the smoke into
(set: $arg to "Shadow Threads")(display: "GetItem")
]
(else:)
[The $enemyType burns to filthy ash, and the wind blows away the remnants.
]]]
(else:)
[Your arcane weapon is ineffective against this type of enemy.
(set: $arg to 0)(display: "DealDamage")]You cast the pentacle out at the enemy. Springs in the iron and silver apparatus cause it to pop open, surrounding your opponent.
(display: "Capture " + $enemyType)Storage space for you to manage your inventory.Inventory:
(for: each _i, ...$inventory)[(link-reveal: "Put " + _i + " on Shelf")[(set: $inventory to it - (ds: _i))(set: $storage to it + (ds: _i))(goto: "Use Item Shelf")]
]
Storage:
(for: each _i, ...$storage)[(link-reveal: "Take " + _i + " off Shelf")[(set: $inventory to it + (ds: _i))(set: $storage to it - (ds: _i))(goto: "Use Item Shelf")]
]
[[Home Again]] Double-click this passage to edit it.Not to be confused with the "Xenoarcheological Society". Quite a different group of folk.
(if: (random: 0, 6) is 6)[(display: "Lord Hubris")]
(set: _recruitCost to 100)
(if: $reputation's ($neighborhood's name) > 5 and $gold >= _recruitCost)[
You can purchase supplies and provisions for a foray directly from the society's general store.
(link-reveal: "Stock Up")[Supplies per worker per day will cost _recruitCost lucre. This is non-refundable, but you can store supplies in between forays.
How much would you like to buy?
(cycling-link: bind _recruit, (altered: _i via (str: _i), ...(range: 1, $gold/_recruitCost)))
(link-reveal: "Sold!")[
(set: $arg to -((num: _recruit) * _recruitCost))(display: "UpdateGold")(set: $arg to (num: _recruit))(display: "UpdateForaySupplies")
]]]
[[Embark on a Sanctioned Foray]]
(display: "NavOptions")(set: _element to (either: "shadow", "bone", "flesh", "fire", "holy"))
The lens catches the ambient light, projecting a beam of _element elemental energy.
(if: $enemyElementType is not _element)[
An erratic sizzle of chaotic energy flings out from the prism, striking the enemy.
(set: $arg to (random: 0,4))(display: "DealDamage")
(if: $enemyHealth <= 0)[
(if: $cunning > 3)
[The $enemyType is reduced to a swirl of raw chaos. You weave the chaos into
(set: $arg to "Shadow Threads")(display: "GetItem")
]
(else:)
[The $enemyType is torn into rudimentary particles, like subquarks and demimuons.
]]]
(else:)
[Your arcane weapon is ineffective against this type of enemy.
(set: $arg to 0)(display: "DealDamage")]A delicate network of gold wire elaborately turned into a birdcage. Perched inside is a little, sapphire bird automata, tweeting and retweeting all of the rumors you've ever heard.Double-click this passage to edit it.{(set: $environmentMaterials to (a: "stone", "brick", "chalk", "stalactite", "stalagmite", "crystal", "earthen", "marble"))
(set: $environmentColors to (a: "white", "black", "gray"))
(set: $clothingMaterials to (a: "fur", "felt", "linen", "rag", "metal plate", "leather", "wool"))
(set: $clothingColors to (a: "brown", "black", "gray", "white", "yellowed"))
(set: $clothingTypes to (a: "tabard","gown", "shroud", "loincloth", "girdle", "three-piece suit", "robe"))
(set: $adornmentMaterials to (a: "bone", "ivory", "copper", "clay", "gold", "silver", "obsidian", "iron", "tin", "lead"))
(set: $adornmentTypes to (a: "plate", "plug", "ring", "stud"))
(set: $hairstyles to (a: "a shaven scalp", "a bald pate", "a tonsure", "an elegant braid", "a lacquered headdress", "a shaggy mane"))
(set: $sizes to (a: "grand", "stout", "scrawny", "burly", "rotund", "gaunt", "obese", "muscular", "sculpted", "lithe", "slender", "bloated", "warped"))
(set: $genders to (a: "man", "woman", "non", "herm"))
(set: $races to (a: "human", "shade", "daemonkin", "changeling", "Undead", "zombie", "lich", "goblin", "troll"))
(set: $skinColors to (a: "black", "tan", "brown", "blue", "green", "yellow", "silver", "red", "gray"))
(set: $skinTypes to (a: "smooth", "lightly furred", "fur-covered", "scaled", "faceted", "marbled", "translucent", "gently burning"))
(set: $professions to (a: "soldier", "thief", "ragpicker", "sineater", "cursekeeper", "prostitute", "courtesan", "thug", "student", "alckymist", "resurrectionist", "soulbroker"))
(set: $neighborhood to
(dm: "name", "Lower Depths",
"tagname", "lowerdepths",
"locations", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "lowerdepths", "location"), ...(passages:))),
"contracts", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "lowerdepths", "contract"), ...(passages:))),
"events", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "lowerdepths", "event"), ...(passages:)))))}{(set: $environmentMaterials to (a: "stone", "brick", "mahogany", "marble", "gold-veined quartz", "ivory", "ebony", "raw glass"))
(set: $environmentColors to (a: "white", "blue", "emerald green", "black", "gold-leafed"))
(set: $clothingMaterials to (a: "leather", "linen", "cotton", "fleece", "down", "tailfeather"))
(set: $clothingColors to (a: "tan", "white", "cyan", "golden", "black"))
(set: $clothingTypes to (a: "tabard", "toga", "dressing gown", "uniform", "evening dress", "gown", "pant suit", "girdle"))
(set: $adornmentMaterials to (a: "ivory", "gold", "silver", "pearl", "gold", "silver", "sapphire", "platinum", "ebony", "lead"))
(set: $adornmentTypes to (a: "spool", "ring", "stud", "implant"))
(set: $hairstyles to (a: "a shaven scalp", "a tonsured pate", "a short bob", "an elegant braid", "waist-length locks", "a lacquered headdress", "a shaggy mane"))
(set: $sizes to (a: "grand", "stout", "muscular", "sculpted", "slender", "twisted"))
(set: $genders to (a: "man", "woman", "non", "herm"))
(set: $races to (a: "human", "sylph", "daemonkin", "changeling", "angelic", "mekannin", "archdaemon"))
(set: $skinColors to (a: "black", "blue", "green", "golden", "tan", "brown", "red", "gray"))
(set: $skinTypes to (a: "smooth", "lightly furred", "fur-covered", "scaled", "lightly feathered"))
(set: $professions to (a: "soldier", "courtesan", "clerk", "beaureaucrat", "cursekeeper", "accountant", "reformed thug", "student", "bodyguard", "minor noble"))
(set: $neighborhood to
(dm: "name", "Upper Castlerock",
"tagname", "uppercastlerock",
"locations", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "uppercastlerock", "location"), ...(passages:))),
"contracts", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "uppercastlerock", "contract"), ...(passages:))),
"events", (altered: _item via _item's name, ...(find: _item where _item's tags contains all of (a: "uppercastlerock", "event"), ...(passages:)))))}(set: $health to it + $arg)<b>Health (if: $arg >= 0)[+ ]$arg</b>(display: "UpdateClock")The crew has had enough of you and forces you to walk the plank.
(if: $inventory contains "Selkie Skin")[You could [[Dive In Headfirst->Next Journey]] while wearing your Selkie Skin.]
(else:)[You could [[Dive In Headfirst->Death]](set: $deathReason to "As you collide with the surface of raw riftspace, your very being is torn into infinitely thin slices.")]Double-click this passage to edit it.A nice piece of anthracite the size of a baby's fist.A Fire Ghost just wants to devour anything they can. A small piece of coal could easily distract them.$arg
(display: $arg)
(set: $rumors to it + (ds: $arg))(if: $inventory contains any of (a: "Vampire Krenk", "Dire Salon Calling Card", "Hell Money"))[
The jet-black double doors swing wide open as you arrive, letting you pass into the ruddy light of the Dire Salon. It is surprisingly warm and cozy.
[[Inside the Dire Salon]]
](else:)[
As you attempt to find the entrance, it appears to move before you arrive.
You never see it move, and the discreetly posted Undead bouncers mostly hide their bemusement at your plight.
]
(display: "NavOptions")(set: _person to (shuffled:
...(find:
_p where _p's tags contains all of (a: $neighborhood's tagname, "persona")
, ...(passages:)))'s 1st's name
)
You see _person walking towards you on the street.
(display:
_person
)
[[Next Encounter]] Scabrous, overgrown nails, two eyes like piss holes in a snowbank if the pisser had a life-threatening kidney infection.
He's constantly trying not to scratch his itches, because his flesh is so delicate and his nails so sharp.
Wears ruined finery. Accepts gold for information. Always a gamble with him. If you don't give him enough gold, he'll give you garbage information.You pull the lever, triggering a quick series of clicks.
The machine rapidly prints out a glitchy mass of hypertext:
(display: $macroCasterPlates's 1st)
(display: "Tick")
(display: $macroCasterPlates's 2nd)
(display: "Tick")
(display: $macroCasterPlates's 3rd)
(display: "Tick")
[[Home Again]] Double-click this passage to edit it.Double-click this passage to edit it.Emerging from thick, metallic curls is a crown of gold. Her gold cloth toga is draped over a body kept physically perfect by a concert of powerful enchantment.Astrid is a determined digger, looking for the Ancestors who created Eastern Fortress. Steely-grey eyes shaded by a sopping pith helmet, curly brown hair, and deeply tanned skin.
You're free to run off on a foray all by yourself, but you should be really careful. If you don't have any supplies, you can starve to death in a very short amount of time. If you don't have any crew, you're not going to get the most out of any discoveries you make.
We don't know who created this place. Isn't it incredible that we, the apparent pinnacle of civilization, don't even know who created this place? We call them The Ancients, and we find their trinkets and riddles all over the place, but we still don't really know who they really were.
You should go to Oasis Refreshments if you want to find folk to hire for your foray crew. There's always a crowd of mysterious strangers who will work with anyone who has gold and doesn't ask questions.
I don't much have use for this anymore. //She hands you her Zenoarcheological Society membership card// The name's all blurry, so they won't know it's not really yours.
Hey, I'll loan you one of my books so long as you promise to read it before you see me next, okay? I'm serious! //She hands you some rare book//
Hey, did you read the book or not? //If history contains "Read <Book Name>"//Very good, my friend. I'd love to dish with you over the details, but I'm off on a very well researched, very well funded foray, and I need a partner along to do the dirty work. She winks.
//else//You didn't even bother, did you? Well, you missed out, innit? //She takes back the book//
//If you lost or sold the book// What?! <legitimately furious> You lost a book! That is sacrilege!
//After successfully foraying with her//
Even though I am the rightful owner of this <important artifact>, I feel that you should have half of it. <she proceeds to cut it in half and give you the slightly smaller piece> Don't worry, it's the material that the <importan artifact> is made out of, not the shape of it. Half an artifact still works just fine.Mekannin head of the Zenoarcheological Society.
You should go to the Zenoarcheological Society if you wish to engage in a *Sanctioned* Foray. None of that *winging it* nonsense.
No, not the Xenoarcheological Society. Those are a completely different society.
My memories are etched onto unobtanium plates. When they fill up, I have to determine which memory plate I must sacrifice if I must form new long term memories. As a consequence, I rarely choose to form new long term memories. Therefore, I will never remember this conversation. Not to be rude, but you must understand my predicament.
We have evidence suggesting that I was created during the Era of The Ancients. That means that I must have known them. Alas, my irreplaceable memory plates are short precisely 7 plates, presumably stolen.It's not often you see a Sea Hag not on a boat.
You've also never seen one so intoxicated.
She challenges you to a drinking contest.
[[That Sounds Like a Superb Idea!!!->Ghidra: Drinking Contest]]
Clem has lost a bit of just about everything in his voyages. He might as well have hooks on his hooks and pegs on his pegs.
(set: _selectedClemism to (either: "Old Clem's Crazy Story", "Old Clem's Crazy Advice", "Old Clem's Crazy Theory"))
(set: $rumors to it + (ds: _selectedClemism))
(display: _selectedClemism)
Umber is a gnome, an earth elemental.
You can be digging along, finding plenty of gold, when bam, goblins all up in your business! Don't know where they come from. They're always found in impossible bubbles of tunnels deep under the surface. No way hominids could develop in those conditions. Worst of all is that one time, an old salt told me that a feller they lost to a goblin raid was seen again, years later, living with the goblins, and he helped the goblins attack!
Oh, you should head right over to Dig Site #2 if you're new to all of this kind of business. You can put in an honest days work, and if you're lucky, you'll go home with a tidy sum.
Well, someone in your tax bracket could fund a dig over at Dig Site #3. They're always looking for venture capital.
I'm sure your competitors wouldn't tell you this, but here's how to upgrade your mining equipment for maximum efficiency.
If you're like me, you've been in the mining game so long, there aren't any more surprises. But, I still want a constant flow of money. That's why I mine through Dig Site #1.
Rag and bone man who cleans up the carcasses of Truly Dead off of the streets and pockets what little treasure they have.
Will trade any 1 item for 1 random item (site unseen)In her home country, she was a princess or some such, but being a vampire, she was driven from her home.
White hair and skin. Red eyes and lips.
Inamorata
Low-Level:
It is safe to drink from the Fountain of Blood, but there's a chance of contracting Vampirism.
If I knew of a cure for Vampirism, I wouldn't have had to move into this Neighborhood.
Mid-Level (Player is a Vampire):
Bladed weapons are more likely to draw blood in a fight, and that blood will feed you.
We vampires aren't vulnerable to sunlight or anything like that. We don't have any weaknesses at all, relative to humans, and that is why they hate us.
High-Level (Player has cure for Vampirism):
You could restore my humanity and my royal position with a single draught.
I'll pay you [very large amount of money] for it.{(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[You swing the Vorpal Blade! Snicker-snack!
(set: $arg to 3)(display: "DealDamage")
(if: _opponentMove is "Flee")[(replace:?input)[ [[Next Encounter]] ](replace:?output)[They turn and run away at top speed.]](else-if: _opponentMove is "Block")[They try to block, but it does nothing.](else-if: _opponentMove is "Throw")[ As they dip in to grab your arm, the sword carves an extra line into them.(set: $arg to 2)(display: "DealDamage")](else-if: _opponentMove is "Strike")[ They get a strike in on you, at the cost of their own additional injury.(set: $arg to 1)(display: "DealDamage")(display: "TakeDamage")](else:)[ They make no move to avoid it and take the full brunt of your blow.(set: $arg to 2)(display: "DealDamage")]]
(set: $fightIndex to (it + 1))
(if: $fightIndex > $fightPattern's length)[(set: $fightIndex to 1)]
(display: "UpdateClock")}(for: each _mail, ...(reversed: ...$mail))[
From: (print: _mail's sender)
Message: (print: _mail's message)
(if: _mail's attachment is not "Nothing")[
(set: $arg to _mail's attachment)(display: "GetItem")
(set: _mail's attachment to "Nothing")
]
]
(set: $mail to (a:))
[[Home Again]] (display: "Init Hell Hole")
Hot springs, geysers, fumaroles, etc. between West Fires and North Harbor.
You will encounter fire daemons, impassible terrain, and dangerous fumeroles in order to pass over into the other neighborhood.
(set: $pursued to false)
(set: $encounterStack to (shuffled: "Encounter: Fire Ghost", "Hell Hole: Impassible Cliff", "Hell Hole: Uncrossable Shoreline", "Hell Hole: Hot Spring", "Hell Hole: Exit"
))
(set: $encounterIndex to 1)
(if: $neighborhood's name is "West Fires")[(set: $encounterStack to it + (a: "Hell Hole: North Harbor Gate"))]
(else:)[(set: $encounterStack to it + (a: "Hell Hole: West Fires Gate"))]
[[Sally Forth!->Next Encounter]]
(display: "NavOptions")
(display: "Init Wastelands")
Factories deposit their waste materials, slag, expended reagents.
Skeletons of dead trees.
Mechanical vultures eternally pivoting through the air, tirelessly riding hot updrafts,
while you are choking on toxic dust and being staggered by dusty billows racing across the hardpan.
The shortest route between West Fires and South Quarry.
(set: $pursued to 0)
(set: $stamina to $health * 10)
(set: $encounterStack to (shuffled: "Wastelands: Waystation", "Wastelands: Waystation", "Wastelands: Waystation", "Wastelands: Dust Storm","Wastelands: Dust Storm","Wastelands: Dust Storm", "Wastelands: Dust Storm","Wastelands: Dust Storm", "Wastelands: Arackne Patrol","Wastelands: Arackne Patrol","Wastelands: Arackne Patrol","Wastelands: Arackne Patrol", "Wastelands: Standing Stones", "Wastelands: Standing Stones", "Wastelands: Trudging Through the Wastelands", "Wastelands: Trudging Through the Wastelands", "Wastelands: Trudging Through the Wastelands", "Wastelands: Trudging Through the Wastelands", "Wastelands: Trudging Through the Wastelands", "Wastelands: Trudging Through the Wastelands")'s (range: 1, (random: 9, 13)))
(set: $encounterIndex to 1)
(if: $neighborhood's name is "South Quarry")[(set: $encounterStack to it + (a: "Wastelands: West Fires Gate"))]
(else:)[(set: $encounterStack to it + (a: "Wastelands: South Quarry Gate"))]
[[Sally Forth!->Next Encounter]]
(display: "NavOptions")(display: "Init Dunes")
Rolling yellow sand, covering ancient ruins.
// Random chance you'll find The Southern Gate to Eastern Fortress
(link-repeat: "Search for The Southern Gate to Eastern Fortress")[
The sun beats down on you, mercilessly.
(set: $arg to (random: 0,1) + (random: 0,1))(display: "TakeDamage")
(display: "Tick")
(if: (random: 0, 10 - $perception) is 0)[
But it was worth it to find
[[The Southern Gate to Eastern Fortress]]
]]
(display: "Init Canals")
Hilbert space-filling curves of canals.
Borders North Harbor and Eastern Fortress.
[[North Harbor]]
[[Eastern Fortress]] A vast, geared structure, resembling the inside of the Silent Ansible.
Borders all districts.
[[Upper Castlerock]]
[[Sylphian Archipelago]]
[[North Harbor]]
[[Canals]]
[[Hell Hole]]
[[West Fires]]
[[Wastelands]]
[[Eastern Fortress]]
[[Dunes]]
[[South Quarry]]
[[Catacombs]]
[[Lower Depths]] (display: "Init Sylphian Archipelago")
Ancient towers of a buoyant stone converted into luxury apartments reminiscent of Venice.
Between Upper Castlerock and the four Main Neighborhoods.
You also see the ruins of Lower Castlerock, which was originally just called Castlerock until... you know.... they built the upper one.
[[Lower Castlerock]]
[[North Harbor]] (display: "Foray Stats")
(if: $forayIndex + 1 > $forayStack's length)[Impassible cliffs rise up from the desert, denying you further progress. The only way back is the way you came.]
(else:)[(link-reveal: "Onward")[(set: $forayIndex to it + 1)(goto: $forayStack's ($forayIndex))]]
(link-reveal: "Return")[(set: $forayIndex to it - 1)(goto: $forayStack's ($forayIndex))]
Rolling dunes as far as the eye can see, and a cruel burning sun beating down on you.
(display: "ForayOptions")(if: (random: 0,1) > 0)[
You are able to refresh at this oasis.
(set: $arg to 10 + (random: 0, 10))(display: "UpdateForaySupplies")
(link-reveal: "Rest For the Day")[(set: $arg to -5)(display: "UpdateForaySupplies")(set: $arg to 1 + (random: 0, 1))(display: "UpdateForayCommand")]
]
(else:)[
It was a mirage. Boo.
]
(display: "ForayOptions")Friendly faces... mostly mercenaries.
(set: _roll to (random: 2,7))About _roll of them.
(if: (random: 0, 6) is 6)[(display: "Astrid Joiner")]
(link-reveal: "Buy A Round")[(set: _roll to it * (random: 1, 3))(if: _roll > $gold)["That ain't enough ducats, friend", sneers the barkeep.
(display: "An Embarassing Display")](else:)[A round of watery, room temperature bhanga certainly lightens the mood.(set: $arg to -_roll)(display: "UpdateGold")(set: $arg to (either: 0, 1,1))(display: "UpdateReputation")]]
(set: _recruitCost to 100)
(if: $reputation's ($neighborhood's name) > 5 and $gold >= _recruitCost)[
You can recruit from the locals to attend your forays.
(link-reveal: "Recruit")[Each foray worker will charge you _recruitCost lucre per foray. If the foray doesn't produce enough treasure and ancient arcane knowledge to be profitable, that's not our problem.
How many would you like to recruit?
(cycling-link: bind _recruit, (altered: _i via (str: _i), ...(range: 1, (min: (random: 1, _roll), $gold/_recruitCost))))
(link-reveal: "You're Hired!")[
(set: $arg to -((num: _recruit) * _recruitCost))(display: "UpdateGold")(set: $arg to (num: _recruit))(display: "UpdateForayCrew")
]]]
(display: "NavOptions")The old man scowls at you, more out of habit than any real ill will.
"Have you noticed a single *living* plant in your entire time here? Any animal more gentle and kind than a rat, a cockroach... or a wizard?
This City is a pirate ship drifting through all realities, consuming them bit by bit until they are ruined and empty, then moving on."
(if: $inventory contains "Silent Ansible")[Efraim's eyes softens as he looks upon your Silent Ansible. "Oh, goodness. It was a clever idea, though. What you're holding is just a model, but it has the same capabilities. Just at a much smaller scale. Say, you might move one lost traveller through the seas of reality at will... if you had something strong enough to power it, like The Aleph."]
(if: $inventory contains "The Aleph")["God's breasts! You have it!"
"Use the Silent Ansible to maintain control of your position in the multiverse, and then The Aleph will take you to exactly where you need to go, any location at all."
]
The City itself is a prison. A prison ship gone pirate.
Somehow, something in this place is so dangerous to the multiverse that an abomination such as this should exist just to keep it from escaping.
And if it's so dangerous, why not just kill it? What if you just can't? What if it keeps coming back, over and over again, unkillable?
Uri. Short for Uriel. My parents were //old school//!
(display: "ForayOptions")(display: "ForayOptions")(display: "ForayOptions")(display: "ForayOptions")(display: "ForayOptions")(display: "ForayOptions")Ifriti, Djinn, myrrh?
(display: "ForayOptions")Double-click this passage to edit it.Double-click this passage to edit it.Have you heard of tulpas? A tulpa is a kind of thought entity created by very strong belief. For example, a tale is told of a group of 10 highly skilled monks meditated together in a circle and formed a completely real human being in the middle, for as long as they continued to believe it.
Tales of the Palace of Mirage are so ubiquitous in Eastern Fortress foraying circles that some say that they have created a tulpa //place//! As long as someone out there believes in the Palace of Mirage, it will continue to exist.
//Mini side quest with lots of succulent imagery//
delicate contortionists perform feats of acrobatics in the rafters for the amusement of the gathered guests
Snake Eaters and Fire Tamers create a pyrokinetic display that nearly singes your eyeborws.
You never knew someone could own so many gongs.
A group of Djinnis are gossiping in an Arabic precursor that you happen to be fluent in: (set: $arg to (either: "The Palace of Mirage drains the life of those who make merry within its halls.", "Once they've been drained of life, we can eat their bodies!"))
Victuals are arrayed in front of you. Tonight your crew will feast in the Great Hall of the Sultan of Mirage. +Command -Supplies
//Can gain in knowledge, coin, command, but will be slowly burning supplies//
(display: "ForayOptions")(display: "ForayOptions")(display: "ForayOptions")Double-click this passage to edit it.A reed fence surrounds a mudbrick dome. A thin line of smoke curls from a chimney hole in the roof.
(display: "ForayOptions")(display: "ForayOptions")(display: "ForayOptions")The caravansarai is currently stopped in the shadow of the ruins of basalt monoliths of cyclopean proportions. Each merchant has one or more pack beasts of various types laden with great bags of goods for the Eastern Fortress's Spice Market.
They are willing to sell you supplies and other wares to help out on your trip, but in return, you will be paying way over market prices.
(link-repeat: "Buy a parcel of supplies")[(replace:?output)[(if: $gold >= 10)[(set: $arg to 10)(display: "UpdateForaySupplies")(set: $arg to -10)(display: "UpdateGold")]](else:)[You have nothing with which to buy more supplies.]]
|output>[]
(set: _item to "Compass of Many Places")(set: _cost to 150)(display: "QuickBuy")
(set: _roll to (random: 0, 3))
(if: _roll is 0 and $perception > 3)[These "merchants" are clearly bandits disguised as the last merchants they ambushed.]
(link-reveal: "Sleep Next to the Fire")[
(if: _roll is 0)[You are ambushed in the night! You awake with a dagger plunged into your shoulder! (set: $arg to (random: 0, 2))(display: "TakeDamage")
A display of pyrokinetics is enough to make the bandits flee.]
(else:)[You rest well in the company of your fellow travellers. (set: $arg to 1)(display: "UpdateForayCommand")]
]
(display: "ForayOptions")The furious wind blows hot, caustic grit into your eyes and sinuses, rendering you nearly blind and anosmic. Not to mention almost deaf.
(if: (random: 0,$perception) > 1)[(set: $arg to -1)(display: "UpdatePerception")]
(set: $arg to -10)(display: "UpdateForaySupplies")
(display: "ForayOptions")(display: "ForayOptions")(display: "ForayOptions")You come across a well. Is it full or dry? You could spend some time examining the well, as water would be a welcome addition to your dwindling supplies.
(set: $wellDepth to (random: 15, 30))
|input>[
(link-repeat: "Draw From the Well")[(replace:?output)[
(if: $wellDepth <= 0)[(replace:?input)[The well is dry.]]
(set: $arg to (random: 1, 5))(display: "UpdateForaySupplies")
(set: $wellDepth to it - 10)(display: "Tick")
]]]
|output>[]
(display: "ForayOptions")It's a trash heap. What was trash to the Ancients could be treasure to you. In theory.
(set: $wellDepth to (random: 15, 30))
|input>[
(link-repeat: "Examine the Trash Heap")[(replace:?output)[(either: "You find pottery shards that still have some text in " + (either: "Deep Hexed Rudimanian", "Late Lower Bardswallian", "Greater Thoraxic"), "You discover bits of sculpture and game pieces", "You find tally marks and accounting tiles, " + (either: "establishing an economic system of usurious debt that eventually collapsed into hyperinflation so great that an entire new field of transcendental mathematics was necessary to do basic tax forms", "showing how different archons owned different holdfasts.", "all part of an elaborate practical joke by a late Mad Archon, who enjoyed elaborate mathematical contrivances to a hilarious degree.")).
(if: $wellDepth <= 0)[(replace:?input)[All of the really interesting bits have been uncovered.]]
(set: $arg to (either: ...(range: 0, (max: 1, $forayCrew))))(display: "UpdateForayExploration")
(set: $wellDepth to it - 10)(display: "Tick")
]]]
|output>[]
(display: "ForayOptions")(display: "ForayOptions")(display: "ForayOptions")(display: "ForayOptions")(display: "ForayOptions")This guardian beast roams the labyrinth, devouring all who enter.
It has been described as an unholy hybrid of man and bull, but the truth is more repulsive than described: it is the mean average of a standing man and a standing bull.
//todo: combat//Build the tower higher and higher.Will definitely try to convince you to invest in their lead into gold scheme.
Hexonium, the Alckymickematician,
Your reputation with them can give access to alchemical secrets and recipes
Low-Level:
Ward Presses are a cheap way to make Damage Wards and other charms
The Alckymickal district keeps regular hours. If they are closed when you visit, come again later.
Mid-Level:
Never mix X and Y, unless you are trying to make a noxious explosion. In that case, you definitely want to mix X and Y.
You can go [[Mudlarking]] for reagents.
High-Level:
New Ward Press recipe
You've heard of trap-door spiders, but have you heard of the Great Northern Iceberg Spiders?Feorag is a commodities broker for aetherial reagents, specifically:
(unless: $feorag is not 0)[
(set: $feorag to (dm: "Shadow Threads", 90, "Ethereal Threads", 90, "Infernal Threads", 90, "Mortal Threads", 90))]
|input>[(for: each _i, ...(datanames: $feorag))[(set: _item to _i)(set: _value to $feorag's (_i))(print: _item) - (print: _value)
(if: $gold >= _value + 5)[(unless: $inventory contains _item)[
(link-reveal: "Buy For " + (string: _value + 5))[(replace:?input)[Bought 1 _item for _value lucre.
(set: $arg to -(_value + 5))(display: "UpdateGold")
(set: $arg to _item)(display: "GetItem")
(set: $feorag to it + (dm: _item, _value + 5))]]]]
(if: $inventory contains _item)[
(link-reveal: "Sell For " + (string: _value))[(replace:?input)[Sold 1 _item for _value lucre.
(set: $arg to _value)(display: "UpdateGold")
(set: $arg to _item)(display: "LoseItem")
(set: $feorag to it + (dm: _item, (max: _value - 5, 5)))]]]
]]
(display: "NavOptions")The wind picks up in a localized area around you. It appears that a Sylph has been disturbed.
(if: $inventory contains "Soul Jar")[
[[Capture the Sylph]]
]
[[Remain Calm->Next Encounter]](if: (random: 0, $perception + $cunning) > 5)[You manage to capture the Sylph in your Soul Jar.
(set: $arg to "Soul Jar")(display: "LoseItem")
(set: $arg to "Sylph")(display: "GainDaemon")]
(else:)[
The sylph is offended that you would attempt to capture it and smashes your Soul Jar in retaliation.
(set: $arg to "Soul Jar")(display: "LoseItem")
]
[[Next Encounter]] A nearly invisible pattern of wind that appears to be sentient and/or sapient.A collection of pure hunger energy that tends to rupture into this world and demand tribute of food.Your head certainly doesn't feel well.
Your mouth is dry, and your limbs have an ague.
The caffeine has worn off.
(set: $arg to -1)(display: "UpdatePerception")(goto: (either: ...($neighborhood's events)))It's a key designed for winding and toggling gear-based contraptions.You write down an unprocessable paradoxical statement on a bit of parchment and launch it down the golem's maw, rendering it pliant. It willingly follows you around.
(set: $arg to "Ink of Enchantment")(display: "LoseItem")
(set: $arg to "Blank Scroll")(display: "LoseItem")
(set: $daemons to it + (ds: "Golem"))This dig site is a hive of activity for workers and wizards alike.
(if: $reputation's ("House Guild Mechanika") > 0)[The House Guild Meckanicka has spread their mechanical technology all over the place, ostensibly making it a more efficient operation.]
(if: $miningCommand <= 0)[
[[Start A New Dig]]
]
(else:)[
[[Cancel The Dig->Dig Cancelled]]
[[Visit The Dig]]
]
// debug //
(link-repeat: "TickMining")[(display: "TickMining")]
(display: "NavOptions")|input>[
(link-reveal: "Trial Plan - 1 gold")[(replace:?input)[
(set: $miningCommand to 1)
(set: $miningCrew to 1)
(set: $miningWage to 1)
(set: $miningDistance to 0)
(set: $miningDanger to 1)
(set: $miningGoldYieldRate to 0)
(set: $miningEvents to (a: "Deeper We Dig... But No Yield",
"Deeper We Dig... But No Yield",
"Deeper We Dig... But No Yield",
"Deeper We Dig... But No Yield",
"Deeper We Dig... With Some Yield"))
(display: "TickMining")
[[Visit The Dig]]
]]
(link-reveal: "Standard Plan - 80 gold")[(replace:?input)[
(set: $miningCommand to 5)
(set: $miningCrew to 20)
(set: $miningWage to 4)
(set: $miningDistance to 0)
(set: $miningDanger to 3)
(set: $miningGoldYieldRate to 0)
(set: $miningEvents to (a: "Deeper We Dig... But No Yield",
"Deeper We Dig... But No Yield",
"Deeper We Dig... With Some Yield"))
(display: "TickMining")
[[Visit The Dig]]
]]
(link-reveal: "Premium Plan - 1600 gold")[(replace:?input)[
(set: $miningDanger to 1)
(set: $miningCommand to 10)
(set: $miningCrew to 100)
(set: $miningWage to 16)
(set: $miningDistance to 0)
(set: $miningGoldYieldRate to 0)
(set: $miningEvents to (a: "Deeper We Dig... But No Yield",
"Deeper We Dig... With Some Yield",
"Deeper We Dig... And We Found A Vein!"))
(display: "TickMining")
[[Visit The Dig]]]]
]
[[Dig Site #3]]
(display: "NavOptions")(if: $miningEvent != "")[
(goto: $miningEvent)]
(else:)
[
The workers are milling about the entrance to the mine: some entering, some leaving, with the fruit of their labor piling up in heaps near the refinery.
]
[[Dig Site #3]]
(display: "NavOptions")(if: (passage:)'s name is not "Deeper We Dig... But No Yield")
[
(set: $miningGoldYieldRate to 0)
(set: $miningEvents to (a: "Deeper We Dig... But No Yield",
"Deeper We Dig... But No Yield",
"Deeper We Dig... But No Yield",
"Deeper We Dig... But No Yield",
"Trove Discovered",
"Deeper We Dig... With Some Yield"))
(set: $miningDistance to it + 1)
(set: $miningEvents to it + (repeated: $miningDistance / 10, "We Dug Too Deep"))
]
(else:)
[
This patch of earth appears barren of the materials you are after:
No gold, no ore, no coal.
Only loose dirt and flawed lumps of silicates are to be found in this accursed patch.
Your stalwart crew continues to strain against the yoke to go deeper and deeper in an effort to find treasure.
]
[[Dig Site #3]]
(display: "NavOptions")(if: (passage:)'s name is not "Deeper We Dig... With Some Yield")
[
(set: $miningGoldYieldRate to 1)
(set: $miningEvents to (a: "Deeper We Dig... But No Yield",
"Deeper We Dig... With Some Yield",
"Deeper We Dig... With Some Yield",
"Deeper We Dig... And We Found A Vein!"
))
(set: $miningDistance to it + 1)
]
(else:)
[
The crew has encountered a patch of dirt that yields up some fine powder of gold.
Your stalwart crew continues to strain against the yoke to go deeper and deeper in an effort to find greater treasure.
[[Dig Site #3]]
(display: "NavOptions")
](if: (passage:)'s name is not "Deeper We Dig... And We Found A Vein!")
[
(set: $miningGoldYieldRate to 5)
(set: $miningEvents to (a: "Working The Vein", "Working The Vein"))
(set: $miningDistance to it + 1)
(set: $miningCommand to it + 1)
]
(else:)
[
The crew has encountered a vein of gold with enviable purity.
Your stalwart crew continues to strain against the yoke to go deeper and deeper in an effort to find greater treasure.
]
[[Dig Site #3]]
(display: "NavOptions")(if: (passage:)'s name is not "Working The Vein")
[
(set: $miningGoldYieldRate to 10)
(set: $miningEvents to (a: "Working The Vein",
"Deeper We Dig... With Some Yield"))
(set: $miningDistance to it + 1)
]
(else:)
[The vein has begun to yield up great chunks of precious metals.
[[Dig Site #3]]
(display: "NavOptions")
](if: (passage:)'s name is not "Cave-In")
[
// Send mail //
(set: $miningEvents to (a: "Digging Out The Cave-In", "Digging Out The Cave-In"))
(set: $miningGoldYieldRate to 0)
(set: $miningDanger to it + 1)
(set: $miningCrew to it - (random: 0, 2))
(set: $mail to it + (a:
(dm: "sender", "Dig Site #3",
"message", "A cave-in has injured some workers. Work has halted until they have been rescued from beneath the rocks.",
"attachment", "Nothing"
)
))
]
(else:)
[During excavation, the rocks forming the wall and ceiling of a branch have become unstable.
All work has ceased until the crew have been dug out.
(if: $daemons contains "Gnome")[
(display: "Have Your Gnome Clean Up The Cave-In")
]
|input>[
[[Threaten to Fire Them If They Don't Continue Working->Disgruntlement]]
]
[[Dig Site #3]]
(display: "NavOptions")
](if: (passage:)'s name is not "Gas Leak")
[(set: $miningEvents to (a: ))
(set: $miningGoldYieldRate to 0)
(set: $miningDanger to it + 1)
// Send mail //
(set: $mail to it + (a:
(dm: "sender", "Dig Site #3",
"message", "A gas leak has flooded the tunnels, making it unsafe to work. Work has halted until we receive your instructions in person.",
"attachment", "Nothing"
)
))
]
(else:)
[Flammable, noxious gasses have flooded the shafts, leading to a complete work stoppage.
(if: $gold > 500)[// Safe, expensive solution //
(link-reveal: "Spend Money To Fix Problem")[
(set: $arg to -500)(display: "UpdateGold")
You shell out a significant sum of lucre for a combination of contraption work and wind spirits to purify the air in your mine.
(set: $miningEvent to "Deeper We Dig... But No Yield")
]]
(if: $inventory contains "Infernal Lens" or $daemons contains "Fire Ghost")[
// Dangerous, cheap solution -> Potentially Injure yourself and/or crew //
(link-reveal: "What If We Burn the Gas?!")[
Hark, y'all, and witness this tomfoolery! You hand your drink to a dumbstruck worker and use flame to detonate the gas.
(if: (random: 0, $cunning) > 4)[All of the flammable gas ignites with a satisfying WOOMP. A few of your crew were standing too close without the proper precautions and have lost some eyebrows.
(set: $miningEvent to "Deeper We Dig... But No Yield")
]
(else:)[
With a hellish crack, the gas detonates, sending rock and raw fragments of support beams through your group like Satan's blunderbuss!
(set: $miningCommand to (floor: it / 2))
(set: $miningCrew to (floor: it / 2))
(set: $deathReason to "With a hellish crack, the gas detonates, sending rock and raw fragments of support beams through your group like Satan's blunderbuss!
You are torn to shreds in the ensuing chaos.")
(set: $arg to (random: 0, 3))(display: "TakeDamage")
(set: $miningEvents to (a: "Cave-In", "Deeper We Dig... But No Yield"))
]
]]
[[Threaten to Fire Them If They Don't Continue Working->Disgruntlement]]
]
[[Dig Site #3]]
(display: "NavOptions")(if: (passage:)'s name is not "Monster Attack")
[(set: $miningEvents to (a: ))
(set: $miningGoldYieldRate to 0)
(set: $miningDanger to it + 5)
(set: $miningCrew to it - (random: 1, 3))
// Send mail //
(set: $mail to it + (a:
(dm: "sender", "Dig Site #3",
"message", "Health & Safety has shut down the dig site until you clear out a guardian beast infestation.",
"attachment", "Nothing"
)
))
]
(else:)
[Something has begun picking off members of your crew!
They refuse to work until you fend off the creature.
// Fight with a guardian monster/daemon/automaton, etc. //
[[Slay The Beast In The Mines!]]
[[Seal off the Mine->Dig Cancelled]]
](if: (passage:)'s name is not "We Dug Too Deep")
[
// Send mail //
(set: $miningGoldYieldRate to 0)
(set: $miningEvents to (a:
"Cave-In",
"Gas Leak",
"Monster Attack",
"Deeper We Dig... And We Found A Vein!",
"Deeper We Dig... And We Found A Vein!",
"Deeper We Dig... With Some Yield",
"Deeper We Dig... But No Yield"
))
(set: $miningDistance to it + 10)
(set: $miningDanger to it + 2)
(set: $mail to it + (a:
(dm: "sender", "Dig Site #3",
"message", "We regret to inform you that we encountered Elder Wards during today's excavation. Usually, we explicitly avoid them, but in this case, a worker unfortunately desecrated them with a pickaxe, angering the Deep Spirits.",
"attachment", "Nothing"
)
))
]
(else:)
[Your crew is quite concerned that they have dug too deep into the living stone and fear retribution from whatever lives below.
]
[[Dig Site #3]]
(display: "NavOptions")(if: (passage:)'s name is not "Union Dues")
[
// Send mail //
(set: $mail to it + (a:
(dm: "sender", "Dig Site #3",
"message", "It's a list of demands from your workers' union. They want to meet and negotiate.",
"attachment", "Nothing"
)
))
(set: $miningEvents to (a: ))
(set: $miningGoldYieldRate to 0)
]
(else:)
[
(set: _desiredRaise to (floor: $miningWage * ($miningDanger/10)))
// Increase their wages to include a higher percentage of profits and hazard pay //
(link-reveal: "Increase Wages to " + (str: $miningWage + _desiredRaise))[
(set: $miningWage to it + _desiredRaise)
(set: $miningCommand to it + 10)
The crew is pleased that you've given in to their demands.
]
(link-reveal: "Increase Wages to " + (str: $miningWage + _desiredRaise/2))
[
(if: (random: 0, $miningCommand) > 1)[
Considering your popularity, you are able to negotiate a better rate with your crew.
(set: $miningWage to it + _desiredRaise/2)
]
(else:)[(goto: "Disgruntlement")]
]
[[No Raise->Disgruntlement]]
]
[[Dig Site #3]]
(display: "NavOptions"){(set: $miningEvents to (a: "Deeper We Dig... But No Yield",
"Deeper We Dig... But No Yield",
"Workers On Strike",
"Workers On Strike",
"Trove Discovered",
"Deeper We Dig... With Some Yield"))
(set: $miningGoldYieldRate to it / 2)
(set: $miningCommand to it - 1)
}
The crew is unhappy, and their unhappiness is beginning to affect their work.
(if: $miningCommand <= 0)
[(display: "Dig Cancelled")]
(else-if: (random: 0, $miningCommand) <= 0)
[(goto: "Union Dues")]
[[Dig Site #3]]
(display: "NavOptions")(if: (passage:)'s name is not "Trove Discovered")
[
(set: $miningGoldYieldRate to 0)
(set: $miningEvents to (a: ))
(set: $miningDistance to it + 5)
(set: $miningCommand to it + 1)
// Send mail //
(set: $mail to it + (a:
(dm: "sender", "Dig Site #3",
"message", "A trove has been uncovered. Work has halted until we receive your instructions in person.",
"attachment", "Nothing"
)
))
]
(else:)
[In among the precious materials, your crew has uncovered a trove of treasure suspended like a bubble in the living rock.
This is no mere nugget of gold, but the detritus of an ancient civilization, perhaps a tomb of a once-great emperor.
They have begun cataloging the site and await your arrival to choose the greatest among treasures for your personal collection.
They would also like you around just in case there are "residents", like murderous spiders or barrow wights.
[[Seal Up The Trove]]
[[Enter the Trove]]
(display: "NavOptions")
]// Send mail //
(set: $miningCommand to 0)
(set: $miningSupplies to 0)
(set: $miningDistance to 0)
(set: $miningCrew to 0)
(set: $miningGoldYieldRate to 0)
(set: $miningEvents to (a: ))
(set: $mail to it + (a:
(dm: "sender", "Dig Site #3",
"message", "Your excavation project at Dig Site #3 is hereby cancelled. All work has been halted.",
"attachment", "Indestructible Pickaxe"
)
))
The dig has been cancelled.
[[Dig Site #3]]
(display: "NavOptions")// Send mail //
(set: $miningEvents to (a: "Disgruntlement", "Workers On Strike", "Workers On Strike", "Workers On Strike"))
(set: $miningGoldYieldRate to 0)
(set: $miningCrew to it - (random: 0, 2))
(set: $mail to it + (a:
(dm: "sender", "Dig Site #3",
"message", "It's a flyer for a general strike and demonstration by your crew at your mine.",
"attachment", "Nothing"
)
))
Your mine is being actively picketed by your workers over slights both real and percieved, an unsafe work environment, and problems getting their wages on time and in the correct amounts.
(set: $arg to (random: 0, 1) + (random: 0, 1))
(display: "LoseReputation")
[[Negotiate Contract->Union Dues]]
[[Dig Site #3]]
(display: "NavOptions"){(set: _crewWages to $miningCrew * $miningWage)
(set: _profits to $miningCrew * (ceil: $miningGoldYieldRate * (1 + $reputation's ("House Guild Mechanika")/10)))
(if: _profits + $gold < _crewWages)
[(display: "Disgruntlement")
(set: $gold to it + _profits)
]
(else:)
[
(set: $gold to it + _profits - _crewWages)
]
(if: $miningEvents's length > 0)[(set: $miningEvent to (shuffled: ...$miningEvents)'s 1st)
<p style="display:none">(display: $miningEvent)</p>
]
(if: $miningCommand > 0 and $miningCrew <= 0)[(goto: "Dig Cancelled")]
(if: $miningCommand > 0)[
// Send mail //
(set: $mail to it + (a:
(dm: "sender", "Dig Site #3",
"message", "Invoice: ["+(str: (floor: $ticks / 169))+":"+(str: (floor: $ticks / 13 % 13))+":"+(str: $ticks % 13)+"] " + (str: $miningGoldYieldRate) + " GPH/Yield, " + (str: $miningDistance) + " MGMs/Depth, " + (str: $miningEvent),
"attachment", "Nothing"
)
))]
}
(if: (passage:)'s name is not "Digging Out The Cave-In")
[
(set: $miningEvents to (a: "Digging Out The Cave-In", "Digging Out The Cave-In", "We Dug Too Deep", "Cave-In", "Deeper We Dig... But No Yield"))
(set: $miningGoldYieldRate to 0)
(set: $miningDanger to it + 0)
]
(else:)
[During excavation, the rocks forming the wall and ceiling of a branch have become unstable.
All work has ceased until the crew have been dug out.
(if: $daemons contains "Gnome")[
(display: "Have Your Gnome Clean Up The Cave-In")
]
[[Threaten to Fire Them If They Don't Continue Working->Disgruntlement]]
[[Dig Site #3]]
(display: "NavOptions")
][[Trove: Army of the Dead]]
[[Trove: Basilisk]]
[[Trove: Blind Cave Serpent]]
[[Trove: Giant Mechanical Homonculus]]
[[Trove: Elder Gnome]]
[[Trove: Sentient Arachnid]]
You order the foreman and a large portion of your crew to seal off the trove.
(set: $miningEvents to (a: "Deeper We Dig... But No Yield",
"Deeper We Dig... But No Yield",
"Deeper We Dig... But No Yield",
"Deeper We Dig... But No Yield",
"Trove Discovered",
"Deeper We Dig... With Some Yield"))
(display: "TickMining")
(display: "NavOptions")You set out with an expeditionary force of your most seasoned crew.
They wear sturdy mining helmets and padding quite like a suit of leather armor. They are armed with pickaxes and shovels, with a demolitions expert also carrying various high explosives in a durable case.
// Random chance of encountering a monster //
[[Trove: Army of the Dead]]
[[Trove: Basilisk]]
[[Trove: Blind Cave Serpent]]
[[Trove: Giant Mechanical Homonculus]]
// Random chance of finding gold //
[[Trove: Gold Cache]]
// Random chance of finding items //
[[Trove: Treasure Cache]]
// Random chance of meeting a special encounter //
[[Trove: Shop Keeper]]
[[Trove: Elder Gnome]]
[[Trove: Sentient Arachnid]]
[[Trove: Goblin Chieftain]]Each individual member of the army has weak, paper-like limbs, but their collective mass could trap and kill a living being and then recruit them into their ranks.A single, small, ungainly creature in a dense hydra of tunnels. A single touch will kill you.// Fight a creature that is a big damage sponge that rarely hits, but when it does, hits hard //// The giant metal homonculus must either be fought (high health; hits for 1 each turn) or reprogrammed/sabotaged //(set: _value to (random: 1, 10) * 100)
(set: $gold to it + _value)
You find a random amount (~_value coins worth) of gold in a (either: "small", "large") (either: "chest", "barrel", "heap")
[[Seal Up The Trove]]
[[Dig Site #3]]
(display: "NavOptions")You see a pile of treasure. It is cleverly trapped such that you may only take one item, and the rest will be pulverised under an enormous stone hammer. Not sure why the Ancients thought that was a good idea, but you play the hand you're dealt.
|input>[
(for: each _item, ...(shuffled: ...(find: _i where _i's tags contains "item", ...(passages:)))'s (range: 1,3))[
(set: _chosen to _item)(link-reveal: _item)[(replace:?input)[(set: $arg to _chosen)(display: "GetItem")
]]]]
[[Seal Up The Trove]]
[[Dig Site #3]]
(display: "NavOptions")A strange, wizened creature in a hooded robe sits on a threadbare flying carpet arrayed with items for sale.
// Stuff for Sale //
[[Seal Up The Trove]]
[[Dig Site #3]]
(display: "NavOptions")This creature of animated earth was asleep.
50% of big fight.
50% you agree to dig around it, and it returns to sleep.50% chance of a fight
25% chance you are poisoned and trapped in a web
25% chance you can talk your way out of itGoblins are curious folk. Once completely human, they willingly joined or were abducted into a goblish tribe. Through a series of rituals and surgeries, they are slowly converted into a goblin. It is thought to be an irreversible process, but it is hard to say, as no one has ever willingly left a goblin tribe once they joined.
Each tribe has their own aesthetic, ranging from "basically humans but with pointy ears and teeth" to "absolutely speciated underdweller". They have no sense of personal property, so they may steal items from you.
You make contact with the local tribe's chieftain, a (either: "old", "middle-aged", "surprisingly young") intersexed member furthest along in the direction of the local's aesthetic.
(either: "They are still obviously human in origin.",
"They are halfway between human and goblin states, belonging still to both worlds.",
"If you did not know that goblins are a transpeciated human, you wouldn't believe that the creature had come from your kind.")
(either: "This local group goes in for large jewelry. Earlobes, nostrils, lips, random patches of flesh, all sporting thick plugs and plates made from bone and quartz.",
"This local group wears needles of titanium coated with psychoactive toad juices in their lips and septum. Chains hang from their earlobes. They file their teeth to points.",
"They are positively covered in blue-black tattooes. They start by tattooing the wrists, throat, and ankles. As time passes, they have regular ritual tattooing. The tattoos spread from the origin sites until the person is completely covered. At this time, the sclera of their eyes will inexplicably turn black.",
"Miniature horns erupt from their foreheads in various numbers: usually 2 or 4, but sometimes 1, 3, 7, 20! The chieftain has a crown of nine horns shaped like kris blades. Instead of incisors, they bear small curved tusks.",
"They are assigned a color of edible fungus to eat, and they eat that fungus exclusively. The nutritional content is about the same for any given mushroom, but the pigments convert the eater's skin a vivid blue, red, green, black in response.",
"Vestigial wings have sprouted from their backs. Most members have either fewer than the typical 5 fingers and toes or more and webbing between them all. They mutilate their noses with a series of symmetrical cuts.")
Goblins and Wizards get along just fine. This goblin is wielding a very powerful magical staff.
// You can be a dick and try to steal from the goblins, but they'll rush you and try to kill and eat you //
[[Trove: Steal the Goblin Chieftain's Staff]]
// You can trade rumors and possibly get good items //
// Randomly lose items to the goblin tribe //
[[Trove: Hold Palaver With the Goblin Chieftain]]
// Become a Goblin //
[[Trove: Join the Goblins]]You and the Goblin Chieftain hold palaver while the rest of the clan surrounds you.
Goblins, as a society, don't have a concept of personal property outside of the clan.
So, outsiders cannot steal from them, but they can steal from outsiders.
// Randomly lose item //
(if: $inventory contains any of (a: "Mark of the Goblins Lvl 1", "Mark of the Goblins Lvl 2", "Mark of the Goblins Lvl 3"))
[They gladly hand over their wand to a member of the tribe. Use it for as long as you need it.
(set: $inventory to it + (either: "Frozen Icicle", "Warding Wand", "Diadem of Digging"))
[[Seal Up The Trove]]
[[Dig Site #3]]
(display: "NavOptions")
](else:)
[
You are savagely attacked by the entire tribe.
[[Death]]
]You and the Goblin Chieftain hold palaver while the rest of the clan surrounds you.
Goblins, as a society, don't have a concept of personal property outside of the clan.
So, outsiders cannot steal from them, but they can steal from outsiders.
// Randomly lose item //
(if: $inventory contains any of (a: "Mark of the Goblin Lvl 1", "Mark of the Goblin Lvl 2", "Mark of the Goblin Lvl 3"))
[
// Get goblin rumors //
](else:)
[
// Get normal rumors //
]
[[Seal Up The Trove]]
[[Dig Site #3]]
(display: "NavOptions")(set: $inventory to it + (ds: "Mark of the Goblins Lvl 1"))
The process is horrifically painful, but once it is complete, you are an honorary member of the tribe. They understand that you have a life in the greater world, they just ask that you come by to visit every now and then.
[[Seal Up The Trove]]
[[Dig Site #3]]
(display: "NavOptions")Double-click this passage to edit it.In South Quarry, you can mine to your heart's content... infinitely deep mines of fabulous treasure! We would definitely have infinite hyperinflation if it wasn't for the Accounting Wayes of the Ancient El-Dar.You so happen to have a wee daemon who especially excels at digging.
(link-reveal: "Have Your Gnome Clean Up The Cave-In")[(replace:?input)[]
(set: $miningEvent to "Deeper We Dig... With Some Yield")
(display: "TickMining")
The Gnome quickly restores the tunnel to excellent condition, freeing all of the trapped crew.
(if: (random: 0, 1) > 0)[It scarpers right afterwards, feeling like it did its job properly. (set: $arg to "Gnome")(display: "LoseDaemon")]
(else:)[You manage to herd it right back into the Soul Jar after it performed its work.]
](if: $arg is 0)[No seems to notice the faux pas, but if they had, you might have been in a bit of a bind.]
(else-if: $arg is 1)[Everyone seems a little miffed at you, lately.]
(else-if: $arg is 2)[People seem to be extra passive-aggressive-aggressive lately.]
(else-if: $arg > 3)[You might as well have shat your pants.]
(set: $reputation's ($neighborhood's name) to $reputation's ($neighborhood's name) - $arg)Get yourself to North Harbor and register to be a Rift Runner. You'll be able to bring back vast fortunes from distant branes.Barely fit for a human. This is what you sleep on.
Consequently, you don't usually sleep on it.
You don't sleep much, anyway. Bad Dreams.In between removing nits and cold water dripping on your face from the apartment above, you manage to (if: (random: 0, 1) > 0)[get a bit of rest. (set: $arg to 1)(display: "Heal")](else:)[not sleep at all.](display: "Clock")
(link-goto: (history:)'s last)(if: $health >= $maxHealth)[You cannot heal anymore. You are, in fact, in peak condition.
]
(else:)[
(set: $health to (min: $health + $arg, $maxHealth))
*Health + $arg -> $health*
](if: $maxHealth < 3)[
Basic Fitness Plan:
(set: $maxHealth to it + 1)]
(display: "NavOptions")You grant them mercy. People applaud you.
(set: $arg to (random: 0, 1, 1, 2))(display: "UpdateReputation")
[[Next Encounter]] You finish them off with (either: "professional", "sadistic", "maniacal", "uncomfortable") (either: "ease", "glee", "fervor").
[[Next Encounter]] They have you at their mercy and could kill you for the slightest provocation.
You beg for mercy.
(display: "An Embarassing Display")
They allow you to live with your life and your humiliation.
[[Next Encounter]] (set: $deathReason to "You slump to the greedy earth for it to drink your heart's blood. Your opponent wrenched the very life out of you.")
(goto: "Death")This Raven is named Nevermore.
It can read your mail for you anywhere in the world.
[[Use Pet Raven]](display: "Read Your Mail")(if: $inventory contains all of (a: "Soul Jar", "Piece of Pitch"))[
(set: $arg to "Piece of Pitch")(display: "LoseItem"))
You throw a Piece of Pitch to the ground. Thin threads of pitch drape up and over the Rattle Bones, snaring its individual pieces into a cotton candy-like web, and you attempt to pull it into your Soul Jar.
(if: (random: 0, $cunning) > 2)[With an audible //shlorp//, you trap the Rattle Bones in the Soul Jar.(set: $daemons to it + (ds: "Rattle Bones"))
(set: $inventory to it - (ds: "Soul Jar"))
[[Next Encounter]]
](else:)[ but it tears free of the webbing, and it appears that the pitch reinforced it! (set: $enemyHealth to it + (random: 1,3))]
](else:)[You try to capture the Rattle Bones, but you haven't got a Soul Jar!]
You encounter a small cottage in the middle of the intersection of various biomes, you peek inside the window. Alas, you see merely (either: "steampunk machinery of the future"(set: $hermitpass to "steampunk"), "magic wares from millenia ago"(set: $hermitpass to "millenia"), "a mirror"(set: $hermitpass to "mirror")). You: [[Go Through the Hermits Passage]] or [[Nope...->Next Encounter]] (if: $hermitpass is "steampunk")[You search through all the bit of machinery, you find so many trinkets, you are smarter than everyone else in the entirety of the universe combined.
(set $perception to 99999999999)]
(else:)
[
(if: $hermitpass is "millenia")[You poke and prod a jar made of melted snake and monkey bones. While you are at it, a spider crawls onto your back and applies a curse so fatal, it makes the victim suffer eternally. [[Encounter Calamity]]]
]
(else:)
[
(if: $hermitpass is "mirror")[You stare at your reflection for quite some time. You are amazed to see that your own reflection decided to put his hand on your face.(set: $phylacterycharges to it + 999999999999999)
]
(if: $hermitpass is not "millenia)[[Take a postcard]]It's a white rectangular card with the inscription: "Dire Salon".
You've heard that the inscription is unique for each person that is issued such a card, which makes forgeries... complicated.Within the pulsing walls of the Dire Salon are giant, transparent hearts.
Within the hearts are replicas of actual people from within The City.
Through sympathetic magic, you can speak to them as if they were really right there next to you.
In front of each heart is a small table with a little lamp and some light tea and snacks. Sit down with the one you'd like to chat.
(for: each _persona, ...(shuffled: ...(find: _i where _i's tags contains "persona", ...(passages:)))'s (range: 1,$perception))[
(link-goto: (either: "Chat with ", "Speak to ", "Hold Palaver with ")+ _persona's name, _persona's name)
]
(display: "NavOptions")This bit of iron is from a shooting star that was captured by a wizard.
It flew across unimaginable distances to be in your hands today.{(unless: $reputation contains $arg)[(set: $reputation's ($arg) to 0)]
(set: $reputation's ($arg) to it + 1)}
*$arg + 1*You see a domed mudbrick shelter up ahead.
(if: $pursued is 1)[Your pursuers won't be able to see you inside.(set: $pursued to 0)]
You should be safe here from all of the //known// hostilities.
In fact, there's a reasonable cot and a trickle of fresh water from a little pump in the back.
(link-reveal: "Refresh Myself")[
You feel marginally better.
(set: $arg to 10)(display: "UpdateStamina")
(if: (random: 0, 100) is 0)[Scratched into the wall is "Jake wuz here".]
]
[[Next Encounter]] The furious wind blows hot, caustic grit into your eyes and sinuses, rendering you nearly blind and anosmic. Not to mention almost deaf.
(if: (random: 0,$perception) > 1)[(set: $arg to -1)(display: "UpdatePerception")]
(set: $arg to -10)(display: "UpdateStamina")
[[Next Encounter]] As you cross the flat plain of the Wasteland, you've grown accustomed to seeing the metal carcasses of giant mechanical spiders.
(if: $pursued < 0)[The immobile giants stand over you in ominous silence.]
(else-if: $pursued >= 0)[
Now, you've blundered into a group of giant mechanical spiders that are very much still animated!
(if: (random: 0, $cunning + $perception) > 2)[You manage to sneak right past them without their detection.](else:)[
(either: "The loose crust of the hardpan cracks under your foot like a clay roof tile.",
"A different spider that you hadn't seen has spotted you from far above.",
"A bag full of garbage has blown into the wall of a building near your hiding place. The noise causes the spider machines to swarm around you")
(set: $pursued to 1)The spiders are now chasing you!
]]
(set: $arg to -1)(display: "UpdateStamina")
[[Next Encounter]] You arrive at the gate to West Fires.
[[West Fires]] You arrive at the gate to [[South Quarry]].(either: "Great basalt obelisks just out from the ground, with piles of rubbish creating ramps at their bases.", "You find a labyrinthian structure made from regular stone rectangular solids.")
(if: $pursued < 1)[
[[Wastelands: Explore the Standing Stones]]
](else:)[Sadly, you are too hotly pursued to explore them.]
(set: $arg to -1)(display: "UpdateStamina")
[[Next Encounter]] (set: $arg to -1)(display: "UpdateStamina")
It grows tiresome walking the virtually identical after virtually identical miles in this wretched place. Still, you cannot stop.
If the gigantic, mechanical vultures that maintain their position above you constantly sensed you flagging or growing weak for even a moment, they would swoop down and tear you to pieces.
(if: $pursued is 1)[Behind you, the relentless clinking of the giant mechanical spiders pursuing you gives you an extra incentive to move.]
[[Next Encounter]] (if: $pursued is 1 and $arg is < 0)[(set: $arg to it * 2)]
(set: $stamina to it + $arg)*Stamina (if: $arg >= 0)[+] $arg*
(if: $stamina < 0)[(goto: "Wastelands: Succumb to Exhaustion")](set: _roll to (either: "spiders", "supplies", "remnant"))
(if: _roll is "spiders")[You find a switch that is labelled "Spiders". Do you want to throw the switch?
(link-reveal: "Yes, it definitely seems like a good idea to throw a switch labelled Spiders")[(if: (random: 0, 1) > 0)[
(set: $pursued to 1)You hear the distinct sound of a bunch of mechanical spiders suddenly powering on.
](else:)[You don't hear anything. Nothing appears to happen. (set: $pursued to -1)]]]
(else-if: _roll is "supplies")[You find a few bits and pieces here and there that will actually help with your supplies. Old cloth... dried beans... flashlight batteries...
(set: $arg to (random: 1, 10))(display: "UpdateStamina")]
(else-if: _roll is "remnant")[(either:"Creepypasta of a dead world", "Creepypasta of a dead world #2")]
[[Next Encounter]] (set: $encounterStack to (a:))(set: $encounterIndex to 1)
(if: $stamina < -9)[
(set: $deathReason to "You literally ran out of energy to continue living, so your body just stopped.")
(if: $pursued is 1)[
(set: $deathReason to "The spiders quickly kill you. At first, you think you're being vivisected, but then you realize that they mean no harm. They are simply disassembling you.")(goto: "Death")
](goto: "Death")
]
(if: (random: 0, 100) is 0)[
A kindly hermit has found you out here in the nightmare and has brought you somewhere safe.
[[Hermits Passage]]
](else:)[
[[Wastelands: Vulture Attack]]
](set: $guardianHealth to 5)(set: $deathReason to "You were torn to shreds, dried, then converted to food for a ravenous, mechanical vulture.")
(display: "Encounter: Guardian Beast (Mechanical)")
(event: when $health <= 0)[(goto: "Death")]
(event: when $guardianHealth <= 0)[(replace:?input)[The killing machine slumps to the ground, its body ceasing to animate.
[[Next Encounter]]
]]Golden treasures and precious reagents just sitting there, going to waste. Reduce, Reuse, Recycle!
(link-reveal: "Yes, I'll Rob That Juicy Grave!")[
You grab some gold and what-not
(set: $arg to (random: 0, 200))(display: "UpdateGold")
(set: $arg to "Bit of Bone")(display: "GetItem")
(if: (random: 0, 2) is 0)[]
(else:)[
(goto: "Encounter: Rattle Bones")
]
]
[[Next Encounter]] It's quite dark down here.
(if: (random: 0, $perception) > 0)[But you're able to make your way just fine.
](else:)[
In the darkness, you slip and fall.
(set: $deathReason to "You reach for firm ground but instead plummet into eternal darkness.")(set: $arg to 1)(display: "TakeDamage")
]
[[Next Encounter]]Floating near the tunnel ceiling is a (either: "faint", "bright", "queasy"), (either: "greenish", "bluish", "greyish") flame moving under its own direction.
You could follow it!
[[Catacombs: Follow the Spirit Flames]]
[[Next Encounter]] It's a trope that all catacombs will have twisty passages, either alike or unalike, but all pointeless wastes of time.
[[Next Encounter]] [[Lower Depths]] [[South Quarry]](set: $encounterIndex to (random: 1, $encounterStack's length))
You follow the spirit flames, hoping that they don't deliver you into instant death.
[[Next Encounter]]
(set: _cost to 1500)
(for: each _item, "Macro Caster", "The Aleph", "Gold Loom", "Magisterium Head Office Calling Card", "The Incredibly Secret Machine's User Manual", "Patent Filing for Experimental Rift Ship")[
(display: "QuickBuy")
]
(display: "NavOptions")Useful instructions on stealing things.It contains useful details on stealing.You find a (either: "park bench", "sausage vendor", "obelisk") to casually wait around, observing the patterns of the workers, changing of the guards, etc.
// Feedback on guard patrols, etc. //
[[Case the Archives]]
[[Enter the Archives]]
(display: "NavOptions")A squinting rogue in a weathered cowl approaches you, apparently unarmed.
"Can I help ye?" they say. Their one good eye appraises you with its blazing gaze. "Ah, a wizard. You can't be both a wizard and a rogue, er, not //legally// in the sense of laws that you and I bother with, but... it wouldn't hurt for you to do your homework... know what options you have available."
(set: _cost to 150)
(for: each _item, "Practical Thievery: A Young Rogue's Primer")[
(display: "QuickBuy")
]
(display: "NavOptions")If you are in possession of this, you could teleport to the Magisterium's Head Office whenever you liked.Codes for the Incredibly Secret MachineDescribes a design for a rift ship based on 4 different rift dwellers.
It has a few missing details about those rift dwellers that you could fill in.
Reward is insanely good rift travel.You've come up against a cliff that is sheer. You must retrace your steps and start over.
(set: $encounterStack to (shuffled: ...$encounterStack))
(set: $encounterIndex to 1)
[[Next Encounter]] You come up to the shoreline of a vast, boiling lake. You must retrace your steps and start over.
(set: $encounterStack to (shuffled: ...$encounterStack))
(set: $encounterIndex to 1)
[[Next Encounter]] You find a hot spring. You could try to soothe your aches and pains, or you could harvest some mineral samples.
[[Hell Hole: Relax in Hot Spring]]
[[Hell Hole: Harvest Minerals]]
[[Next Encounter]] You find the exit that you desired.(set: $encounterStack to (a:))
(if: $neighborhood's name is "West Fires")[(goto: "Hell Hole: North Harbor Gate")]
(else:)
[(goto: "Hell Hole: West Fires Gate")](set: _deadly to (random: 0, 1))
(if: _deadly > 0 and $perception > 2)[It's not safe to go in there. You'll be boiled like a pudding.]
(else:)[It looks quite hot, but not dangerous.]
(link-reveal: "Get In And Relax")[
(if: _deadly > 0)[(set: $deathReason to "That hot spring was way too hot. You were boiled like a pudding.")(goto: "Death")]
Your body is soothed by the hot, mineral-rich waters and the various extremophiles they support.
(set: $arg to 1)(display: "GainHealth")
]
[[Next Encounter]] You find a bit of sulfur... sulphur... sulfer?
(set: $arg to "Sack of Sulfur")(display: "GetItem")
[[Next Encounter]] You find the exit that you desired.(set: $encounterStack to (a:))
[[North Harbor]] You find the exit that you desired.(set: $encounterStack to (a:))
[[West Fires]] I ran runs on rift ships ever since I was a youngster, and I reckon I'll ride the Rift until I die.Get yourself a rift ship and ride it backwards, and you'll get back to where you got started faster.Just says crazy bat-shit nonsense, but it's all rumors that you can use later.(set: $stamina to $cunning + $perception + $health)
It's a very simple game. Each person takes a drink. If they fall down blind drunk, they lose.
[[Ghidra: Drink Contest (You Win)]]
[[Ghidra: Drink Contest (You Lose)]]You take about 500 coins worth of various knick knacks.
(set: $arg to 500)(display: "UpdateGold")
(set: $arg to (random: -1, 0))(display: "UpdateCunning")
(set: $arg to (random: -1, 0))(display: "UpdatePerception")
[[Next Encounter]] You wake up the next day in complete agony. Not only do you have a headache, but apparently, you decided to get your entire face tattooed while drunk.
(set: $arg to "Mark of the Sea Dweller")(display: "GetItem")
(set: $arg to (random: -1, 0))(display: "UpdateCunning")
(set: $arg to (random: -1, 0))(display: "UpdatePerception")
[[Next Encounter]] A full face tattoo that appears to shift as its viewed. Depending on Longitude and Latitude, it could be interpreted as Tlingit, Maori, Riftish.The guard displays the universal symbol of an upturned palm.
How much lucre are you going to place in that palm.
(cycling-link: bind _factorA, ...(altered: _i via (string: _i), ...(range: 0, 10))) x (cycling-link: bind _factorB, "1", "5", "10", "100")
(link-reveal: "Bribe Attempt")[
(set: _desiredBribe to $danger * 10)
(set: _offeredBribe to (num: _factorA ) * (num: _factorB))
(if: _factorA is "0")[
(if: (random: 1, 100) is 1)[They smile and let you through.
[[Next Encounter]]
](else:)[They are furious at your lack of understanding. But you haven't actually committed a crime, so they can't arrest you.
[[Away With You!->Cancel Contract]]
]]
(else-if: _offeredBribe >= _desiredBribe * 10)
[
The guard takes your money, lets you through, and then drops a cage trap on you.
[[Kafka Gaol]]
](else-if: _offeredBribe < _desiredBribe / 5)
[
The guard is furious at the shameful amount you've offered and calls for backup.
[[Encounter: Guards]]
](else:)[
The guard is satisfied with the amount of lucre you've given them.
[[Next Encounter]]
]]{(display: "Tick")(replace:?clock)[(display: "RenderHeader")]
(set: _roll to (random: 0, $perception * 2))
(if: _roll is 0)[(either:"You find some plastic wrap.", "You find a box of rubber ducks.","Tons and tons of bullkelp.")]
(else-if: _roll is 1)[(either: "You find an old coin.", "You find a dainty bauble.","You find a small gemstone.")(set: _gold to (random: 1,5))
<br/><b>Gold + _gold</b>(set: $gold to it + _gold)]
(else-if: _roll is 2)[You find a shred of paper:
<br/>(display: "Random Bulk Scroll") ]
(else-if: _roll < 5)[You find a small piece of useful rubbish: (set: _reagent to (either: "Amount of Ambergris", "Rusted Key", "Map Fragment"))<br/>(set: $arg to _reagent)(display: "GetItem")]
(else-if: _roll < 7)[You find a valuable antique:
<br/><b>Gold + 75<b/>(set: $gold to it + 75)]
(else:)[(if: $inventory contains "Slow Clock")[You find a space where an object should be, but you've already picked it up.](else:)[You find a Compass of Many Places. It's badly sodden, but it appears to still be in working order.
(set: $arg to "Compass of Many Places")
(display: "GetItem")]]}{(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[You fire off a tremendous blast from your blunderbuss, sending shrapnel everywhere!
(set: $arg to 5)(display: "DealDamage")
(if: _opponentMove is "Flee")[(replace:?input)[ [[Next Encounter]] ](replace:?output)[They turn and run away at top speed.]](else-if: _opponentMove is "Strike")[ They manage to get a strike in on you before being knocked back. (set: $arg to 1)(display: "DealDamage")(display: "TakeDamage")](else:)[ They make no move to avoid it and take the full brunt of your blow.(set: $arg to 2)(display: "DealDamage")]]
(set: $fightIndex to (it + 1))
(if: $fightIndex > $fightPattern's length)[(set: $fightIndex to 1)]
(display: "UpdateClock")
(if: (random: 0, 6) is 0)[
You've attracted the attention of the guards!
(set: $encounterStack to
($encounterStack's (range: 1, $encounterIndex)) +
(a: "Encounter: Guards") +
($encounterStack's (range: $encounterIndex + 1, $encounterStack's length)))
]
}{(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[You swing your straight razor (either: "at your opponent's eyes", "right at their throat", "perilously close to their fingers")!
(if: _opponentMove is "Flee")[(replace:?input)[ [[Next Encounter]] ](replace:?output)[They turn and run away at top speed.]](else-if: _opponentMove is "Block")[... but they bat your attack away.](else-if: _opponentMove is "Throw")[ As they dip in to grab your arm, you slice something vulnerable.(set: $arg to 3)(display: "DealDamage")](else-if: _opponentMove is "Strike")[ They poke at you, and you cut off their poker.(set: $arg to 2)(display: "DealDamage")(set: $arg to 1)(display: "TakeDamage")](else:)[ They make no move to avoid it and take the full brunt of your blow.(set: $arg to 4)(display: "DealDamage")]]
(set: $fightIndex to (it + 1))
(if: $fightIndex > $fightPattern's length)[(set: $fightIndex to 1)]
(display: "UpdateClock")}{(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[Swiftly, you raise the pipe to your lips an exhale a tiny blow dart at your opponent's carotid.(if: (random: 0, 3) is 0)[ Sadly, that was the last of your poisoned darts. (set: $arg to "Blow Dart")(display: "LoseItem")]
(if: _opponentMove is "Flee")[(replace:?input)[ [[Next Encounter]] ](replace:?output)[They turn and run away at top speed.]](else-if: _opponentMove is "Block")[The dart sticks in their clothing, delivering a much less effective dose of poison.](else-if: _opponentMove is "Throw")[ They try to throw you, and the dart ends up in their hand.(set: $arg to 2)(display: "DealDamage")](else-if: _opponentMove is "Strike")[ They strike you while you're delivering the attack. (set: $arg to 1)(display: "DealDamage")(display: "TakeDamage")](else:)[ They make no move to avoid it and take the full brunt of your blow.(set: $arg to 2)(display: "DealDamage")]]
They seem a bit groggy.
(display: "UpdateClock")}{(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[You strike the opponent with a lead sap.
(if: _opponentMove is "Flee")[(replace:?input)[ [[Next Encounter]] ](replace:?output)[They turn and run away at top speed.]](else-if: _opponentMove is "Block")[.. but they bat your fist away.](else-if: _opponentMove is "Throw")[ As they dip in to grab your arm, you cosh them on the skull.(set: $arg to 3)(display: "DealDamage")](else-if: _opponentMove is "Strike")[ You trade clouts at each other, bloodying each other's foreheads.(set: $arg to 2)(display: "DealDamage")(display: "TakeDamage")](else:)[ They make no move to avoid it and take the full brunt of your blow.(set: $arg to 4)(display: "DealDamage")]]
(set: $fightIndex to (random: 1, $fightPattern's length))
(display: "UpdateClock")}{(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[You swing your stiletto (either: "at your opponent's eyes", "right at their throat", "perilously close to their fingers")!
(if: _opponentMove is "Flee")[(replace:?input)[ [[Next Encounter]] ](replace:?output)[They turn and run away at top speed.]](else-if: _opponentMove is "Block")[... but they bat your attack away.](else-if: _opponentMove is "Throw")[ As they dip in to grab your arm, you slice something vulnerable.(set: $arg to 3)(display: "DealDamage")](else-if: _opponentMove is "Strike")[ They poke at you, and you cut off their poker.(set: $arg to 2)(display: "DealDamage")(set: $arg to 1)(display: "TakeDamage")](else:)[ They make no move to avoid it and take the full brunt of your blow.(set: $arg to 4)(display: "DealDamage")]]
(set: $fightIndex to (it + 1))
(if: $fightIndex > $fightPattern's length)[(set: $fightIndex to 1)]
(display: "UpdateClock")}{(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[You blast away with your little derringer!
(set: $arg to 3)(display: "DealDamage")
(if: _opponentMove is "Flee")[(replace:?input)[ [[Next Encounter]] ](replace:?output)[They turn and run away at top speed.]](else-if: _opponentMove is "Strike")[ They manage to get a strike in on you before being knocked back. (set: $arg to 1)(display: "DealDamage")(display: "TakeDamage")](else:)[ They make no move to avoid it and take the full brunt of your blow.(set: $arg to 2)(display: "DealDamage")]]
(set: $fightIndex to (it + 1))
(if: $fightIndex > $fightPattern's length)[(set: $fightIndex to 1)]
(display: "UpdateClock")
(if: (random: 0, 6) is 0)[
You've attracted the attention of the guards!
(set: $encounterStack to
($encounterStack's (range: 1, $encounterIndex)) +
(a: "Encounter: Guards") +
($encounterStack's (range: $encounterIndex + 1, $encounterStack's length)))
]
}{(set: _opponentMove to $fightPattern's ($fightIndex))
(replace:?output)[You gently toss your pet scorpion at your opponent's shirt collar.
(if: _opponentMove is "Flee")[(replace:?input)[ [[Next Encounter]] ](replace:?output)[They turn and run away at top speed.]](else-if: _opponentMove is "Block")[The scorpion gets lost in their clothing, delivering a much less effective dose of poison.](else-if: _opponentMove is "Throw")[ They try to throw you, and the scorpion's stinger ends up in their hand.(set: $arg to 2)(display: "DealDamage")](else-if: _opponentMove is "Strike")[ They strike you while you're delivering the attack. (set: $arg to 1)(display: "DealDamage")(display: "TakeDamage")](else:)[ They make no move to avoid it and take the full brunt of your blow.(set: $arg to 2)(display: "DealDamage")]]
They seem a bit groggy. (if: (random: 0, 3) is 0)[ Sadly, the scorpion buddy was squished. (set: $arg to "Pet Scorpion")(display: "LoseItem")]
(display: "UpdateClock")}Double-click this passage to edit it.You take the postcard wedged into the door and leave.
(set $inventory to it + "Suspicious Postcard")
[[Next Encounter]]This causes the owner's skin to produce thorn-like spikes when attacked.{(set: $encounterStack to
($encounterStack's (range: 1, $encounterIndex)) +
(a: $arg) +
($encounterStack's (range: $encounterIndex + 1, $encounterStack's length)))}You've seen docks. Usually, they are parallel to the surface of your planet. In this wondrous case, the dock is a towering edifice with graceful airships lashed to it.
In addition to its port on the Rift Sea, North Harbor also contains a port to the sky.
You can buy passage on a ship up to the Sylphian Archipelago, which lies between the rest of the City and Upper Castlerock.
[[Sylphian Archipelago]]
(display: "NavOptions")(display: "Init Upper Castlerock")
[[Upper Castlerock]]
[[Sylphian Archipelago]] Stacked up in great, teetering towers are crates being offloaded from various excursions to and from the Eastern Fortress Foray Gate. You can buy one for 75 coins, crack it open, and see what you've bought!
(if: $gold >= 75)[
(link-repeat: "Crack Open a Crate")[
(if: $gold >= 75)[(set: $arg to -75)(display: "UpdateGold")
(set: _roll to (random: 0, 3))
(if: _roll is 0)[A load of pottery, but... ah! //This// jug happens to be a Soul Jar containing a (set: $arg to (either: "Fire Ghost", "Shadow Daemon"))$arg.
(display: "GetDaemon")]
(else-if: _roll is 1)[(set: $arg to (either: "Piece of Pitch", "Quaff of Quicksilver"))(display: "GetItem")]
(else:)[
It's mostly worthless rubbish, but there's enough valuables in there that you recover some of your investment.(set: $arg to (random: 1,74))(display: "UpdateGold")
]](else:)[You've gambled away all of your coins.]]](else:)[If you had any dosh, you could burn a little here. But you don't, so you can't.]
(display: "NavOptions")(set: $foraySupplies to it + $arg)*Supplies (if: $arg >= 0)[+] $arg ($foraySupplies)*(if: $foraySupplies <= 0)[(set: $deathReason to "You starved to death.")(goto: "Death")](set: $forayExploration to it + $arg)*Exploration (if: $arg >= 0)[+] $arg ($forayExploration)*Double-click this passage to edit it.
{(set: $enemyType to "Guardian Beast (Mechanical)")
(set: $deathReason to "You are ground to shreds of meat by the cruel beasts uncaring gears.")
(set: $enemyHealth to 5)
(set: $enemyElementType to "mechanical")
(set: $enemyBribeType to "None")
(set: $options to (a:))
(if: $rumors contains "Maintenance Key (Works on Everything)" and $inventory contains "Maintenance Key")[(set: $options to it + (a: "Deactivate Beast"))
(display: "Encounter Guardian")
|output>[]
|input>[(display: "Guardian Shuffle")]
(event: when $enemyHealth <= 0)[ (replace:?input)[ [[Next Encounter]] ]](set: _weapons to (find: _item where (passage: _item)'s tags contains any of (a: "magic-weapon", "weapon"), ...$inventory))
(set: $options to $options + (altered: _weapon via "Use " + _weapon, ..._weapons))
(set: $options to $options + (altered: _item via "Release " + _item, ...$daemons))
(if: $options's length <= 0)[]
(else-if: $options's length > 1)[
(set: $options to (shuffled: ...$options))]
(else:)[]
(replace:?input)[(if: $options's length > 0)[(for: each _i, ...(range: 1, (min: $cunning, $options's length)))[
(set: _item to ($options's (_i)))
(link-reveal: _item)[(replace:?output)[(display: _item)(if: (passage: _item)'s tags contains "weapon")[Striking out at the guardian's armored surface causes you to be injured in kind.(set: $deathReason to "Striking out at the guardian's armored surface causes you to be injured in kind. You overextended so much, you practically fed yourself into it like it was a woodchipper.")(set: $arg to 1)(display: "TakeDamage")]
]]]
(link-reveal: "Shuffle")[(replace:?output)[You are torn and brutalized by your foe as you prepare for another assault.(set: $arg to (either: 0,1, 1))(display: "TakeDamage")(set: $options to (a:))(display: "Guardian Shuffle")
]]](else:)[
[[Succumb->Death]]
]](display: "NavOptions")(display: "NavOptions")(display: "NavOptions")If you go here, you must prove your innocence before you're allowed to leave. It doesn't matter if they brought you here, or you happened to come here yourself.
The style is cribbed from Roman Architecture, distilled down into Brutalism, with a hint of displeasure at the existence of the possibility of dissent. It is beautiful in the same way that a praying mantis is beautiful.
//iterated prisoner's dilemma//
(display: "NavOptions")(display: "NavOptions")(set: $forayCrew to it + $arg)*Foray Crew (if: $arg >= 0)[+] $arg ($forayCrew)*The Fortress is so large and elaborate that it still hasn't been fully explored. In fact, the topology of the halls and chambers doesn't exactly mesh with Euclidean space. Stone palace after stone holdfast, the scale and decoration shifting smoothly, usually, and sometimes quite suddenly and dangerously.
The Zenoarcheological Society has painstakingly mapped out an entry way into the fractal labyrinth.
(set: _routeLength to (random: 3, 9))The current route planned has _routeLength stops.
(if: $inventory contains any of (a: "Treasure Map", "Map Fragment"))[
(link-reveal: "Would you like to donate any maps in exchange for longer foray routes?")[
(for: each _i, "Treasure Map", "Map Fragment")[
(set: _item to _i)(link-reveal: _item)[(set: $arg to _item)(display: "LoseItem")(set: _roll to (either: 1, 1, 1, 2, 2, 3))
Route Bonus + _roll(set: _routeLength to it + _roll)]
]
]
]
(display: "Foray Stats")
(link-reveal: "Let's Go!")[
(set: $forayIndex to 2)(set: $forayExploration to 0)
(set: $forayStack to (a: "Return to the Center of Eastern Fortress") +
((shuffled: ...(altered: _i via _i's name, ...(find: _i where _i's tags contains "foray", ...(passages:))))'s (range: 1, _routeLength)))
(goto: $forayStack's ($forayIndex))]
[[Zenoarcheological Society]] Embedded in concrete and an arch of broad stones is a hatch leading into the maintenance tunnels of The City.
(if: $hatchStatus < 1)[
The hatch is sealed up tight. You'd need some kind of Maintenance Key to open it.
(if: $inventory contains "Maintenance Key")[(link-reveal: "Use Maintenance Key")[The Maintenance Key slots perfectly into the latch on the hatch.
You get a properly-leveraged grip (don't lift with your back!) and swing the hatch open on (either: "creaky, rusted", "well-oiled", "off-kilter") hinges.
(set: $hatchStatus to 1)
You can pop right into the hatch, entering the labyrinthian maintenance tunnels.
(if: $inventory contains "Maintenance Key")[You make sure to take the Maintenance Key with you when you leave.]
[[Enter the Maintenance Tunnels]]
]]](else:)[
Usually, you would need a key to unlock the hatch, but this one appears to have already been opened for you.
You can pop right into the hatch, entering the labyrinthian maintenance tunnels.
(if: $inventory contains "Maintenance Key")[You make sure to take the Maintenance Key with you when you leave.]
[[Enter the Maintenance Tunnels]]]
(display: "NavOptions")This key can manipulate the infrastructure of the actual City itself.The hatch latches behind you, and there's no place to fit a Maintenance Key (if you have one) to open it back up. You appear to be committed to your choice.
(set: $maintenanceTunnelIndex to 1)
(set: $maintenanceTunnelStack to (a: "Maintenance Tunnel") + (shuffled: ...(repeated: 8, "Maintenance Tunnel"), "The Grinder", ...(repeated: 2, "Transreality Hazard"), "Entrance to the Heart of The City"))
(link-goto: $maintenanceTunnelStack's ($maintenanceTunnelIndex))Printed on the wall is the current distance to the next Grinder and/or Transreality Hazard
The maintenance tunnels are truly a labyrinthian place, but your cunning allows you to progress at a more or less steady rate.
As you pass down the tunnels, you note a 3-digit code on the doors.
(set: _roll to (random: 0, 99))The door in this section of tunnel is "_roll".
You could open one of those doors and go down a Sub Tunnel, or you could keep going forward towards the Center.
(link-reveal: "Go Down Sub Tunnel")[(set: $arg to _roll)(goto: "Sub Tunnel")]
(link-reveal: "Go Forward to the Center")[(set: $maintenanceTunnelIndex to it + 1)(goto: $maintenanceTunnelStack's ($maintenanceTunnelIndex))]Enormous cylinders of automatic tunnel cleaning, covered in drill bits, bristles, and barbs, leaving no organic matter in its wake. Chiefly for cleaning out pockets of Hazard World. Will not stop even if a human is in front of it. If you saw it coming, you could try running away, but it would eventually catch up with you.
If you saw a door you would be willing to jump through, then you could escape it that way.
(link-reveal: "Run Away!")[
(set: $maintenanceTunnelStack to it's (range: 1, $maintenanceTunnelIndex) + (a: "The Grinder"))
(set: $maintenanceTunnelIndex to it - 1)
(goto: $maintenanceTunnelStack's ($maintenanceTunnelIndex))
]Transreality hazard where a chunk of another world being used as fuel for The City's infernal combustion engine is projecting into local reality space.
As such, it would not be unusual to see roving bands of (either: "plumed", "barbaric", "humanoid", "cybernetic", "parasitic", "mutant") (either: "bikers", "dinosaurs", "robots", "scorpions", "cowboys") with (either: "matching skull rings", "outfits made of human flesh", "massive decorative scarring", "gig-economy lifestyles", "tiny pilots sitting in a cockpit in their chests", "orbiting haloes of magestones").
Travel to these worlds is very exciting and correspondingly deadly. Early attempts at Hazard World tourism all went very horribly, with entire new Orders of liability law being generated to cover the various grievances encounterd by the surviving and highly litigious creatures.
These hazards are typically cleaned up by the Grinders, so do your best to avoid them in the meantime.
Environmental Hazard:
Eruptions, nuclear bombs, hail storms, gamma-ray storms, etc. A lot of direct damage without protection like a Damage Ward or possibly some other protective or divertive.
Personal Hazard:
Groups of bonkers transreal mutants.
Attack on Sight (very likely)
The mutants immediately attack. Will need new Encounter: Group of Thugs (more health, random pattern)
Parlay (very unlikely)
They immediately decide to make peace with you. Can use this opportunity to get something you want from them.
Ambivalent
Could go any other way. Give the player a chance to nudge in the right direction.
Betrayal
They feign collaboration, but when you let your guard down, they immediately attack you at an advantage.
(link-reveal: "Go Forward to the Center")[(set: $maintenanceTunnelIndex to it + 1)(goto: $maintenanceTunnelStack's ($maintenanceTunnelIndex))][[Heart of the City]] The hatch latches behind you, and there's no place to fit a Maintenance Key (if you have one) to open it back up. You appear to be committed to your choice.
(set: _destination to (find: _i where _i's tags contains "location", ...(passages:))'s ($arg))
In front of you is a shimmering portal with a location in the material world outside.
(link-goto: _destination's name)Not everyone goes out in search of punching out the Eye of the Rift. Some folk stay relatively near the shores of the Rift Sea. Not far off is a patch of relatively stable reality intersection that intersects the migratory path of a school of tuna on a world where no sapient beings ever evolved. Those tuna produce the best sashimi in The City. Closer still, you can do a bit of Sand Piping, which is Mudlarking, but on the beach. Perched on the fence are old salts mending nets. Some of thems what learned directly from old Philomender, themselves.
(display: "NavOptions")Blue-ringed octopus: Not a creature of eldritch terror, but certainly just as dangerous. The only smart thing to do would be to immediately walk away. However, these are valuable creatures, and if you could trick one into going into a jar, you could get a lot of money. Or, it could touch you, schedule a death sentence for you, have you think everything's fine for 10 turns, and then die.
Species of shellfish evolved to look exactly like the (either: "Sydney Opera House", "Guggenheim Museum", "Burj Kalifa", "State of Nebraska", "Chevy Nova", "moon", "type of sailboat used around here")
Stinging jellies. 1 point of damage. If you have a Witch Bottle, you can pour the urine on the wound to prevent damage. This is a trick. It does not work. You will lose public reputation for pouring piss on your leg.
At night, phosphorescent algae cause the waters to glow
Bits of sea glass
Grains of sand, each of which has a just barely scrutable orb inside filled with galaxies.
Message Bottle
(either: "To whomever gets this letter,", "To whoever gets this note,", "Dear Stranger,", "Please Help!") (either: "I want to make an account of my time", "I wish that someone knows of how I'm", "In the hopes that someone sees this before I am") (either: "surviving on rainwater and moss while Set Adrift out in the Rift.", "joining a tribe of islanders and using their support to make it back to port.", "regretting to not purchase a Selkie Skin before being Set Adrift.").
(display: "NavOptions")Command: $forayCommand | Supplies: $foraySupplies | Crew: $forayCrew | Exploration: $forayExplorationIf powered with The Aleph, you can dial in a 3-digit number index to anywhere in the multiverse.
Protection against daemons and spirits.
The Spice Market is the gathering of merchants from all over the branes.
You can get any reagent available to mortals such as yourself, and maybe a few more besides.
The (either: "odor", "aroma", "stench") is quite (either: "terrible", "delightful", "sickly", "invigorating", "seductive", "nauseating", "heavenly", "amazing").
(set: _options to (altered: _v via _v's name, ...(shuffled: ...(find: _i where _i's tags contains "reagent", ...(passages:)))'s (range: 1, 3)))
(for: each _item, ..._options)[
(unless: $inventory contains _item)[(set: _cost to (random: 5, 15) * 10)(display: "QuickBuy")]
]
(display: "NavOptions")(display: "NavOptions")(if: visits % 3 is 0)[
Erno got drunk and violated the toilet once again. No one can use it, because he laid a complex and dangerous enchantment trap across it, claiming (either: "that'll sort the bastards out.", "the albino alligators were coming to get him.", "it was a right laugh.")
Delilah kicks you both out!
[[Get Out!->Staggering Through The Alleys]]
]
(else:)[
Delilah frowns slightly but overserves him, anyway.
"Oh, most excellent virtue! I'll tell you a bit of the helpful."
(display: "Erno, The Enchanter")
[[Buy Erno a Drink]] ]The distinguishing mark of a group of goblins.A standard deck of playing cards: 1 through 13 in all 5 suits, the Minor Arcana, the Major Arcana, the two Trumps, the secret Anti-Trump, and the Dragon.
The backs of each card are marked, allowing you to know what your opponent's hand is without requiring high perception.(set: $arg to "Shadow Lantern")(display: "LoseItem")
// damage to light, fire creatures //
(if: (a: "light", "fire") contains $enemyType)[(set: $arg to 5)(display: "DealDamage")]
(else:)[This weapon is ineffective against this type of enemy.](display: (either: "Use Healing Draught", "Use Cunning Draught", "Use Stimulating Draught"))
(set: $arg to "Mystery Draught")(display: "LoseItem")(set: $forayCommand to it + $arg)*Foray Command (if: $arg >= 0)[+] $arg ($forayCommand)*{(set: $environmentMaterials to (a: "stone", "stalagmite", "sulfur", "calcite", "dirt", "sand", "fossilized wood", "fossil"))
(set: $environmentColors to (a: "white", "yellow", "ochre", "gray"))
(set: $clothingMaterials to (a: "fur", "hide", "flaxen", "hair"))
(set: $clothingColors to (a: "brown", "black", "gray", "yellowed", "dun","sunbleached"))
(set: $clothingTypes to (a: "loincloth", "tunic", "skirt", "bracers"))
(set: $adornmentMaterials to (a: "bone", "fossil", "clay", "ochre", "geode", "glass"))
(set: $adornmentTypes to (a: "horns", "tusks"))
(set: $hairstyles to (a: "a shaven scalp", "a bald pate", "a shaggy mane","long matted tendrils"))
(set: $sizes to (a: "scrawny", "rawboned"))
(set: $races to (a: "human", "drake-kin", "goblin", "devil"))
(set: $skinColors to (a: "black", "tan", "brown", "red", "gray"))
(set: $skinTypes to (a: "smooth", "lightly furred", "fur-covered", "scaled"))
(set: $professions to (a: "hunter", "gatherer", "warlord"))
}
{(set: $neighborhood to
(dm: "name", "Hell Hole",
"tagname", "hellhole",
"locations", (a:),
"contracts", (a:),
"events", (a:)))}{(set: $environmentMaterials to (a: "stone", "stalagmite", "sulfur", "calcite", "dirt", "sand", "fossilized wood", "fossil"))
(set: $environmentColors to (a: "white", "yellow", "ochre", "gray"))
(set: $clothingMaterials to (a: "fur", "hide", "flaxen", "hair"))
(set: $clothingColors to (a: "brown", "black", "gray", "yellowed", "dun","sunbleached"))
(set: $clothingTypes to (a: "loincloth", "tunic", "skirt", "bracers"))
(set: $adornmentMaterials to (a: "bone", "fossil", "clay", "ochre", "geode", "glass"))
(set: $adornmentTypes to (a: "horns", "tusks"))
(set: $hairstyles to (a: "a shaven scalp", "a bald pate", "a shaggy mane","long matted tendrils"))
(set: $sizes to (a: "scrawny", "rawboned"))
(set: $races to (a: "human", "drake-kin", "goblin", "devil"))
(set: $skinColors to (a: "black", "tan", "brown", "red", "gray"))
(set: $skinTypes to (a: "smooth", "lightly furred", "fur-covered", "scaled"))
(set: $professions to (a: "hunter", "gatherer", "warlord"))
}
{(set: $neighborhood to
(dm: "name", "Wastelands",
"tagname", "wastelands",
"locations", (a:),
"contracts", (a:),
"events", (a:)))}{(set: $environmentMaterials to (a: "stone", "stalagmite", "bone", "calcite", "dirt", "fossil", "pitch-soaked timbers"))
(set: $environmentColors to (a: "black", "white", "gray"))
(set: $clothingMaterials to (a: "sackcloth", "burlap", "hair"))
(set: $clothingColors to (a: "dun", "black"))
(set: $clothingTypes to (a: "robe", "tunic", "cloak and cowl"))
(set: $adornmentMaterials to (a: "iron", "bone", "gold"))
(set: $adornmentTypes to (a: "chains", "amulets"))
(set: $hairstyles to (a: "tonsure"))
(set: $sizes to (a: "drawn", "rawboned"))
(set: $races to (a: "human", "zombie", "animated skeleton", "spectre"))
(set: $skinColors to (a: "black", "white", "green", "gray"))
(set: $skinTypes to (a: "smooth", "scaly", "moldy", "wart-covered"))
(set: $professions to (a: "cenobite", "monastic", "incense-burner", "sin eater"))
}
{(set: $neighborhood to
(dm: "name", "Catacombs",
"tagname", "catacombs",
"locations", (a:),
"contracts", (a:),
"events", (a:)))}{(set: $environmentMaterials to (a: "stone", "sandstone", "sand", "fossilized wood", "fossil", "obsidian"))
(set: $environmentColors to (a: "tan", "yellow", "ochre"))
(set: $clothingMaterials to (a: "burlap", "linen"))
(set: $clothingColors to (a: "yellowed", "dun","sunbleached"))
(set: $clothingTypes to (a: "tunic", "robe"))
(set: $adornmentMaterials to (a: "fossil", "clay", "glass"))
(set: $adornmentTypes to (a: "beads", "amulets"))
(set: $hairstyles to (a: "a khaffia", "a bald pate", "a shaggy mane","long matted tendrils"))
(set: $sizes to (a: "wiry", "solid"))
(set: $races to (a: "human", "drake-kin", "djinni", "rakhshasa"))
(set: $skinColors to (a: "black", "tan", "brown", "red", "gray", "golden", "blue"))
(set: $skinTypes to (a: "smooth", "lightly furred", "fur-covered", "scaled"))
(set: $professions to (a: "bandit", "frankincense harvester", "warlord"))
}
{(set: $neighborhood to
(dm: "name", "Dunes",
"tagname", "dunes",
"locations", (a:),
"contracts", (a:),
"events", (a:)))}{(set: $environmentMaterials to (a: "stone", "wood", "concrete"))
(set: $environmentColors to (a: "seafoam white", "driftwood brown", "wine dark", "sea blue"))
(set: $clothingMaterials to (a: "satin", "leather", "linen"))
(set: $clothingColors to (a: "brown", "black", "gray", "goldenrod", "verdant","ruddy","robin's egg"))
(set: $clothingTypes to (a: "service uniforms", "one-piece mountebank's livery", "gentry livery", "a cuirass and tunic"))
(set: $adornmentMaterials to (a: "silver foil", "gold foil", "ivory", "living flower", "feather", "tin"))
(set: $adornmentTypes to (a: "masks", "epaulets", "diadems"))
(set: $hairstyles to (a: "a shaven scalp", "a powdered wig", "a wig and a hat","a glorious powdered confection"))
(set: $sizes to (a: "scrawny", "rawboned"))
(set: $races to (a: "human", "drake-kin", "goblin", "devil"))
(set: $skinColors to (a: "black", "tan", "brown", "red", "gray"))
(set: $skinTypes to (a: "smooth", "lightly furred", "fur-covered", "scaled"))
(set: $professions to (a: "duelist", "entertainer", "juggler", "courtesan"))
}
{(set: $neighborhood to
(dm: "name", "Canals",
"tagname", "canals",
"locations", (a:),
"contracts", (a:),
"events", (a:)))}{(set: $environmentMaterials to (a: "float stone", "lift wood"))
(set: $environmentColors to (a: "white", "yellow", "ochre", "gray"))
(set: $clothingMaterials to (a: "fur", "hide", "flaxen", "hair"))
(set: $clothingColors to (a: "brown", "black", "gray", "yellowed", "dun","sunbleached"))
(set: $clothingTypes to (a: "loincloth", "tunic", "skirt", "bracers"))
(set: $adornmentMaterials to (a: "leather", "cord", "beaded"))
(set: $adornmentTypes to (a: "earrings", "bracelets", "utility belt"))
(set: $hairstyles to (a: "a shaven scalp", "a bald pate", "mussed-up mane","a majestic crest"))
(set: $sizes to (a: "scrawny", "rawboned"))
(set: $races to (a: "human", "drake-kin", "sylph", "hawk-kin"))
(set: $skinColors to (a: "black", "tan", "brown", "red", "gray"))
(set: $skinTypes to (a: "smooth", "lightly feathered", "fur-covered", "scaled"))
(set: $professions to (a: "sky pilot", "street sweeper", "messenger"))
}
{(set: $neighborhood to
(dm: "name", "Sylphian Archipelago",
"tagname", "sylphianarchipelago",
"locations", (a:),
"contracts", (a:),
"events", (a:)))}[[Night Circus: Tattooed Gentlebeing]]
[[Night Circus: The Relatively Strong Person]]
[[Night Circus: Xyll, the Saccharomancer]]
[[Night Circus: Fire Clown]]
[[Night Circus: Royalty of Torture]]Tattooed Lady|Gentleman|Gentleperson is inscribed with
the works of Junji Ito | Zeen Chin | M.C. Escher | George Plimpton | Gustav Klimt
Pi|Tau|e to many decimal places | Library of Congress numbers for the major works in Advanced Reason
the density of the numerals themselves making a second pattern of mesmerising fractals
detailed architectural diagrams of
Borges's Library
The Tower of Babel
The Archives Is just slightly stronger than the strongest person near them.
Is an inch tall, and is able to live 100 lbs, which for an organism at that scale is very impressive.
Inserts a random event into the scheduler, generally good, but potentially embarrassing.
Reads your future in the cotton candy left behind after you take a bite.A being of destructive energy in the form of a man-like clown beast. Significantly more terrifying than a default clown.This creature's art is in the intense torture of their physical form.
rumor is that they secretly feel no pain
rumor is that they secretly enjoy pain
rumor is that they feel pain just like everybody else, they've just trained themselves to withstand it
rumor is that they actually feel pain more sensitively than normal creatures, and that is their true art.Double-click this passage to edit it.A Shadowling Swarm envelops you in razor-sharp darkness. You have but a few moments...
{(set: $enemyType to "Shadowling Swarm")
(set: $deathReason to "The strangulating effects of the Shadowling Swarm's tentacles don't seem to affect your oxygen or bloodflow but something apparently even more essential, until your body is an empty shell that flops to the ground.")
(set: $enemyHealth to 5)
(set: $enemyElementType to "shadow")
(set: $options to (a: "Blood Sacrifice"))
(if: $inventory contains "Slice of Silver")[ (set: $options to $options + (a: "Bribe Daemon"))
]
(if: $inventory contains "Cellar of Salt" and (history:) contains "Read Ex Nobilis Aetherium" and $cunning >= 5)[ (set: $options to $options + (a: "Capture Shadowling Swarm"))
]
}
(display: "Encounter Daemon")You quickly dash out a design on the ground that is intended to bind the shadow within.
(if: (random: 0, 6) is 0)[You use up the last of your Cellar of Salt doing it. (set: $inventory to it - (ds: "Cellar of Salt"))]
(if: $inventory contains "Soul Jar")[
You attempt to capture it with your Soul jar,
(if: $cunning > 3)[ and succeed in entrapping a Living Shadow, part of the swarm.
(set: $daemons to it + (ds: "Living Shadow"))
(set: $inventory to it - (ds: "Soul Jar"))(set: $arg to 2)(display: "DealDamage") ]
(else:)[ but you are unable to predict its movements, and it shreds you with what feels like thousands of razor-sharp tentacles.
(set: $arg to (random: 1,2))(display: "TakeDamage")]
]
(else:)[You didn't bring a Soul Jar!
In retaliation, it shreds you with what feels like thousands of razor-sharp tentacles.
(set: $arg to (random: 1,2))(display: "TakeDamage")]The goblin greets you with your tribes secret handshake and passes you
(set: _roll to (random: 0,3))(if: _roll < 3)[(set: $arg to (random: 5, 25))$arg coins.
(display: "UpdateGold")](else:)[(set: $arg to (either: "Crypt Key", "Stone Blood", "Jar of Baby Teeth"))(display: "GainItem")]The goblin looks familiar to you. Remember when you were temporarily a member of a tribe of goblins, and you wondered why no one ever tried to leave?
This might be why.
{(set: $enemyHealth to 3)(set: $enemyType to "Goblin")(set: $enemyElementType to (either: "mortal", "shadow", "poison"))
(set: $fightPattern to (a:"Strike",(either: "Strike", "Throw"),"Block"))
(set: $fightIndex to 1)
(set: $deathReason to "You were torn to shreds by a furious goblin.")
}They prepare to attack!
|output>[]
|input>[(display: "Fight")]
(event: when $enemyHealth <= 0)[ (replace:?input)[ [[Next Encounter]] ]]The Dictionary of Unwritten Words
Just like gently pressing on your closed eyelids during the day causes strange patterns and images to appear in your vision, so too does this book probe the part of your brain that grasps concepts and forms words.
kraalspace, n. The highest level of space, the physical realm of space that is the lowest energy of the electromagnetic spectrum, used in the scientific study of color.
Usage: "a black-and-white image taken by a quantum quantum laser just reaches the kraalspace of visible light.
chokkaboo, n. a simple, thick, heavy knit Japanese shirt made of cloth, with a pattern of five buttons hanging behind the arm
noun.
knotlock
knot·lock
the knotted knot that locks up a garment, especially one used for sewing
"he made his knotlock on her sweater"
adjective.
abaricious
abari·cious
(of a product) adulterated, including many adulterated varieties
"abaricious names and photographs"
noun.
harpophlemium
har·pophlemium
a sporangic freshwater fish of the canary family that has reddish plates on a broad body with spines on the tips. It typically lives near lakes and canyons
"a collection of the most endangered harpophlemiums"
adjective.
sorvicious
sor·vi·cious
characterized by a sinner or wickedness
"the sorvicious creatures that pursued them"//+ $arg//(set: $daemons to it + (ds: $arg))(set: _roll to (random: 1, 3))
(if: _roll is 1)[(set: $perception to $maxPerception)Perception MAX]
(else-if: _roll is 2)[(set: $cunning to $maxCunning)Cunning MAX]
(else-if: _roll is 3)[(set: $health to $maxHealth)Health MAX]
(link-goto: (history:)'s last)The combined mass of shadow daemons, maybe even shreds of half-living shadow creatures, is itself a combined creature, like a Portuguese Man O'War, but one that devours the essential vitality out of its victims' souls.(set: $encounterIndex to it - 1)
(for: each _i, ...$contractRequirements)[(set: _ingredient to _i)I need _ingredient for this recipe.
(if: $inventory contains _ingredient)[Do you have it for me?
(link-reveal: "Give Them " + _ingredient)[You hand them the _ingredient.
(set: $contractRequirements to it - (a: _ingredient))
(set: $arg to _ingredient)(display: "LoseItem")
]]]
(event: when $contractRequirements's length <= 0)[(set: $encounterIndex to it + 1) (replace:?input)[ [[Next Encounter]] ]]
|input>[ [[Go Shopping->Explore the Neighborhood]] ]This algae is secretly rich in carageenan, a substance that can give your potions a succulent mouth feel.This might be the key you need! Or, it might not. It's hard to tell with all of the rust.