,,,,(display: "Congregation")
It's time to set out for the next destination on my pilgrimage, but first I will have to [[prepare->Preparation]].
(display: "Congregation")
It's time to set out for the next destination on my pilgrimage, but that is a story for another time.{
(set: $event_queue to (a:))
(set: $remaining_distance to 15)
(set: $noticed_by_ruffians to false)
<!-- Initial passangers -->
(set: $passangers to (a:
))
(set: $weight_of_passangers to
(folded: _passanger making _weight via _weight + (10),
10, ...$passangers))
<!-- Initial supplies -->
(set: $supplies to (a:
(dm: "name", "Holy scripture", "weight", 1),
))
(set: $weight_of_supplies to
(folded: _item making _weight via _weight + (weight of _item),
0, ...$supplies))
<!-- Cargo capacity -->
(set: $total_weight to
$weight_of_passangers + $weight_of_supplies + $water_reserve)
(set: $max_weight to 40)
<!-- Cargo capacity -->
(set: $water_reserve to 10)
(set: $water_capacity to 10)
<!-- Initial page style -->
(enchant: ?page, (background: (gradient: 0, 0.2, #f16963, 0.8, #f8a686)))
(enchant: ?link, (text-color: #aa0000 + orange))
(enchant: ?link, (hover-style:(text-color:red)))
}{
<!-- Grammer helpers -->
(set: $solo to ($passangers is (a:)))
<!-- Remove ability to undo actions -->
(replace: ?sidebar)[]
}(if: (name of(passage:)) is not in (a: "Proloug", "Epiloug") )[
#(print: name of (passage:))
---
]
---
(if: (name of(passage:)) is not in (a: "Prolouge", "Epilouge") )[
π€ Personal status
{
(meter: bind $vigor, 10, "XXX===", "πͺπΏ Vigor: $vigor", red + orange)
(meter: bind $resolve, 10, "XXX===", "π§ Resolve: $resolve", blue + green)
}
πΆ Gondola status
{
<!--Calculate weights -->
(set: $weight_of_passangers to
(folded: _passanger making _weight via _weight + (10),
10, ...$passangers))
(set: $weight_of_supplies to
(folded: _item making _weight via _weight + (weight of _item),
0, ...$supplies))
(set: $total_weight to
$weight_of_passangers + $weight_of_supplies + $water_reserve)
(meter: bind $water_reserve, $water_capacity, "XX===", "Fresh water: $water_reserve/$water_capacity", white + blue)
(meter: bind $total_weight, $max_weight, "XX===", "Total load: $total_weight/$max_weight", orange + gray)
}
]This congregation is (either: "a modest one", "quite lively", "in desperate need of a shower"), but they are also (either: "surprisingly hospitable", "all wearing strange masks", "curious to what I have to tell them").
I preach (either: "the big bang genesis", "the re-globalisation gospel", "the one humanity mythos"), teach (either: "reproductive health", "democratic principels", "the importance of sanitation", "geography", "modern world history") and in the evening we debate (either: "the will to power", "simulacra and simulation", "tragedy of the commons", "the concept of personhood", "the post-apocalyptical social condition"). The next morning I count everyone for the census.
All in all I consider this visit to be (either: "frutfull", "a learning experience", "a bit of a train wreck (but that happens sometimes)", "more successful than I hoped for", "acceptable").As usual I'm almost out of everything. Fortunately the congregation refills my fresh water and offers me a few things that may help me out on my journey.{
(set: _offered to (a:
(dm: "name", "Magnetic chessboard", "weight", 2),
(dm: "name", "Binoculars", "weight", 1),
(dm: "name", "Mountable sail", "weight", 8),
(dm: "name", "First aid kit", "weight", 4),
))
(set: _taken to (a:))
}
|list-exchange>[
They offer only what they can spare:
(for: each _item, ..._offered) [{
(link-replace: "Take **" + name of _item + "**") [
(set: _offered to it - (a: _item))
(set: _taken to it + (a: _item))
(set: $supplies to it + (a: _item))
(set: $weight_of_supplies to it + weight of _item)
(rerun: ?list-exchange)].
}
]
(if: _taken is not (a:))[I return anything I do not need:
(for: each _item, ..._taken) [{
(link-replace: "Return **"+ name of _item + "**") [
(set: _taken to it - (a: _item))
(set: _offered to it + (a: _item))
(set: $supplies to it - (a: _item))
(set: $weight_of_supplies to it - weight of _item)
(rerun: ?list-exchange)
].
}
]<!-- for each -->(Bringing many things can make the gondola unstable)
]<!-- if _taken > 0 -->{
(set: $total_weight to $weight_of_passangers + $weight_of_supplies + $water_reserve)
}]
After that I make sure to thank them properly before [[heading out for my next destination->Morning]].(storylet: when true)
The waters are calm here. Nothing really happens.
(display: "Continue journey")(storylet: when true)
The tides suddenly turn turbulent. The Kokopelli swings violently back and forth at the whim of the currents.
A vessel with a heavy cargo might easily capsize in this weather. Perhaps it's wise to intentionally lessen the load a bit.
I could get rid of:
{(for: each _item, ...$supplies) [
(link-replace: name of _item) [
(set: $supplies to it - (a: _item))
(set: $weight_of_supplies to it - weight of _item)
(set: $total_weight to it - weight of _item)
],
]}
After going through supplies I head [[into the storm->Into the storm]].{
<!-- Travel a bit -->
(set: $remaining_distance to it - 1)
<!-- More events or camp for the night? -->
(if: $event_queue's length > 0) [
<!-- Continue to next event -->
(set: _next to 1st of $event_queue)
(set: $event_queue to $event_queue - (a: _next))
(link-goto: "Continue journey", _next).
(if: $passangers contains "Doggo" and (passage: _next)'s tags contains "danger") [
On second thought, **Doggo** seems agitated, like there is some danger up ahead. Perhaps we should [[take a detour->Detour]] instead.
]
] (else:) [
<!-- End of the day -->
[[Rest for the night->Evening]].
]
}(if: $remaining_distance <= 0) [
The sun sets as the Kokopelli arrives at it's [[destination->Epilouge]].
] (else-if: $water_reserve <= 0) [
The sun sets and the night approaches.
Without sufficient water our journey can not continue. I fire an emergency flair and pray that its red light will be noticed among the stars.
(display: "Game over")
] (else:) [{
} The sun finally sets after an (either: "long", "eventful", "hard", "blessed", "interesting", "acceptable", "troubling") day.
Our journey should reach it's next destination in an additional (print: (ceil: $remaining_distance /3)) ~ (print: (ceil: $remaining_distance /2)) days, or so I hope.
Time to make camp and [[rest until morning->Morning]].
](storylet: when $noticed_by_ruffians)
The boat stears through a narrow passage when they suddenly appear on both sides.
The ruffians are a menacing looking bunch in their animal masks, wielding clubs and hatches. (if: $solo) [I'm both] (else:) [We are] surrounded and clearly outnumbered.
My initial instinct tells me to [[make a run for it->Escape ruffians]], but a part of me also wants to [[give them a fight->Fight the ruffians]]. (if: (altered: _s via name of _s, ...$supplies) contains "Hunting rifle") [I could try to [[threathen them->Threaten ruffians]] with the **Hunting rifle**, but it'll probably only work if I point it towards their leader.] (if: (altered: _s via name of _s, ...$supplies) contains "Rugged shamisen") [Or [[playing some soothing tunes->Entertain ruffians]] on my **Rugged shamisen** could sooth their tempered spirits. They'll probably just kill me anyway, but it's a cool way to go out.](storylet: when "Doggo" is not in $passangers)
A doggo is stranded on an islet. It wags its tail frantically. It probably wants to [[join me in the boat->Take doggo onboard]].
(display: "Continue journey"){(set: $water_reserve to (max: 0, $water_reserve - (1 + $passangers's length))) (display: "Daily destiny")}
It is a new day. ($gain_vigor: 1) ($gain_resolve: 1)
Passengers: {
(if: $passangers's length > 0) [
(set: _sep to "")
(for: each _name, ... $passangers)
[{_sep _name(set: _sep to ", ")}]
] (else:) [None] }
Supplies: {
(set: _item_names to (altered: _s via name of _s, ...$supplies))
(hook: "list-supplies")[(if: length of $supplies > 0) [
(set: _sep to "")
(for: each _name, ..._item_names)
[{_sep _name(set: _sep to ", ")}]
] (else:) [None]
]
}
{
<!-- Special info from items with passages -->
(set: _item_names to (altered: _s via name of _s, ...$supplies))
(set: _item_passages to
(altered: _p via name of _p,
...(passages: where its tags contains "item" )))
} (for: each _item_passage, ...(find: _i where _i is in _item_names, ..._item_passages)) [(display: _item_passage)]
(display: "Continue journey"){<!-- prepare todays desitiny -->
(set: _event_names to (a:))
(for: each _event, ...(open-storylets: where its tags contains "event"))[
(set: _event_names to _event_names + (a: _event's name))
]
(set: $event_queue to (shuffled: ..._event_names)'s 1stto3rd)
<!--
Todays destiny:
(for: each _event_name_in_queue, ... $event_queue)[(link-goto: _event_name_in_queue).
]
-->
}(set: $passangers to $passangers + (a: "Doggo"))
(set: $weight_of_passangers to it + 10)
The πΆ doggo gleefully jumps onboard. The boat shakes a bit, but then settles.
(display: "Continue journey")The mood of the waves turns from anger to wrath as the Kokopelli ventures forward. (set: _severity to 10 * $total_weight / $max_weight)
<!-- Roll the dice, roll the dice! -->
π§ π²(set: _1st_roll to ($roll_resolve:) >= _severity) Massive waves crash into the ship, (if: _1st_roll) [but through *concentrated detemination* I manage to keep it steady](else:)[and water pours over the deck].
πͺπΏπ²(set: _2nd_roll to ($roll_vigor:) >= _severity) The tides toss us up and down like a juggling pin, (if: _2nd_roll) [but I somehow *muster the strength* to keep my balance](else:)[and I feel my feet slip under me].
($lose_resolve: 1 + (floor: _severity / 5)) ($lose_vigor: 1 + (floor: _severity / 5))
<!-- Outcome -->
(if: _1st_roll and _2nd_roll) [
Through a mix of skill and sheer luck I manage to get the ship through the storm.
(display: "Continue journey")
] (else-if: _1st_roll or _2nd_roll) [
{(if: length of $supplies > 0)[
(if: length of $supplies > 1) [(set: $supplies to (shuffled: ...$supplies))]
(move: $supplies's 1st into _lost_item)
(set: $weight_of_supplies to it - weight of _lost_item)
When the storm settles I realize that the **(print: name of _lost_item)** is missing. Darn it!]
(else:)[The storm settles. I'm all out of supplies, but I guess I can't blame the storm for that.]
}
(display: "Continue journey")
] (else:) [
In the turmoil of the storm I lose my footing just as a massive wave crashes over the ship. Something hits me in the back of the head and everything goes dark.
(display: "Game over")
]And so my journy comes to an abrupt end. Another traveler might have better luck.(click:"Another traveler")[(restart:)] (storylet: when not $noticed_by_ruffians)
Ruffians are a foul pack of deplorable scum that all travellers do wise to aviod.
(if: (altered: _s via name of _s, ...$supplies) contains "Binoculars") [
Through my **Binoculars** I spot the silhouette of one of their scouts pearched atop of one of the submerged buildnings. The scout is looking in another direction; it appears as if they have not yet noticed the Kokopelli.
I could press my luck by [[attempting to sneak past->Sneak past ruffian scout]], or [[take a detour->Avoid ruffian scout]]. (if: (altered: _s via name of _s, ...$supplies) contains "Hunting rifle") [For a brief moment I contemplate [[taking out the ruffian->Shoot ruffian scout]] with the **Hunting rifle**.]
] (else:) [
As we pass by one of the many submerged buildings I notice that the shadow it casts has an odd "bump". I look up and immediately realize my mistake. A ruffian scout is perched atop of the building. The scout is looking in another direction. They do not appear to have noticed the Kokopelli.
I could have taken a detour if I'd noticed sooner. Now I will have to [[attempting to sneak past->Sneak past ruffian scout]].
]We take the safer route, behind large buildnings and way out of sight. It's a significant detour, which is *quite frustrating*. ($lose_resolve: 2)
I can just pray that the water supply lasts despite this. (set: $remaining_distance to it + (random: 2,4))
(display: "Continue journey")The Kokopelli stays on course. It's a dangerous bet, but it saves time. And time is water, and water is life.
(set: _attention to 5 + visits)π§ π²(if: ($roll_resolve:) >= _attention) [I keep *my head cool* and steering firm. The boat silently cuts through the water as the scout turns another way.] (else:) [I *fumble nervously* with the oar. The scout hears this and looks right at me, then quickly drops out of sight behind the building. (set: $noticed_by_ruffians to true)]
($lose_resolve: 1)
(display: "Continue journey")I ready the rifle, pressing the stock against my shoulder. It's heavier than it looks. The barrel sways in my shivering hands.
I've never been fond of these things. Perhaps this was why, when drafted, I volunteered for the clergy.
I close my eyes as I press the trigger. It clicks.
...
Seems like I forgot to load it.
Who am I fooling? Unlike [[attempting to sneak past->Sneak past ruffian scout]] or [[takeing a detour->Avoid ruffian scout]] this was never an option for me.
($gain_resolve: 1)I swing the oar over my head, deterring the ruffians, before thrusting it into the water and paddling like my life depended on it. (set: _difficulty to visits + 10 * $total_weight / $max_weight)
<!-- Roll the dice, roll the dice! -->
πͺπΏπ²(set: _1st_roll to ($roll_vigor:) >= _difficulty) The ruffians chase after me, (if: _1st_roll) [but I paddle *with all my might** and they can't keep up] (else:) [and they gradually catch up with the Kokopelli].
π§ π²(set: _2nd_roll to ($roll_resolve:) >= _difficulty) The boat passes through a tight part of the passage{}(if: _2nd_roll) [, but due to my *taunts and threats* none of them dares to jump onboard]{}(else:){}[where some of them attempts to jump onboard].
($lose_vigor: 1) ($lose_resolve: 1)
<!-- Outcome -->
(if: _1st_roll and _2nd_roll) [
I somehow manage to get through the rubble and out to free waters. They can't get to (if: $solo) [me] (else:) [us] here.
(display: "Continue journey")
] (else-if: _1st_roll or _2nd_roll) [
One of the ruffians manage to get onboard the ship. There is a brief struggle before she decides to ditch. That was a close call.
{(if: length of $supplies > 0)[
(if: length of $supplies > 1) [(set: $supplies to (shuffled: ...$supplies))]
(move: $supplies's 1st into _lost_item)
(set: $weight_of_supplies to it - weight of _lost_item)
After catching my breath for a moment I look around the ship. The **(print: name of _lost_item)** is missing.]
}
(display: "Continue journey")
] (else:) [
Several ruffians board the ship. (if: $solo) [I am] (else:) [we are] quickly overpowered be their sheer numbers.
(display: "Game over")
]{(set: _us to 1 + length of $passangers)(set: _them to 4 + visits)(set: _total to _us + _them)}
There are _us of us and _them of them. (if: _us > _them) [ The odds are slightly in our favour.] (else-if: _us < _them) [They outnumber (if: $solo) [me] (else:) [us] and they are better armed, but here goes nothing.] (else:) [It'll be an even fight.]
<!-- Roll the dice, roll the dice -->
(if: (random: 1, _total) <= _us) [By some miracle we manage to hold our ground. After a brief skirmish the ruffians scatter off in different directions, promising to return for vengence.
(display: "Continue journey")
] (else:) [Despite (if: $solo) [my] (else:) [our] best effort (if: $solo) [I am] (else:) [we are] no match for the ruffians, who've spent most of their lives using threats and force to get things their way.
(display: "Game over")
] Before the ruffians get too close I grab my **Hunting rifle**. The only question now is where to point it. Unless I take aim at their leaders half of the group, then the other half will just strike me down from behind.
It's basically a coin-toss. As a professional "person of fate" I suppose putting my trust in the *will of the eather* is what I do. On a hunch I point the barrel to the (either: "right", "left") at a (either: "tall", "short", "stout", "curvy", "menacing looking", "reluctant") ruffian wearing a (either: "gorilla", "clown", "squid", "skull", "horse", "shark", "raptor", "sloth", "bear", "giraffe") mask and wielding (either: "a scyte", "an axe", "a spear", "a slingshot", "a club with spikes").
Everyone in front of me immediately halts and drops their weapons.(if: (either: true, false)) [ I keep the aim steady as the boat slowly drifts through the tight passage and out to free water.
Once there is enough water between us I burst into laughter.
"You fools! It's not even loaded!"
(display: "Continue journey")
] (else:) [ For a brief moment I conivce myself I picked the right side. Then something sharp stabs me in the back, I stumble over the railing and everything goes dark.
(display: "Game over")
] As I reach for the instrument I'm either committed to end things with style or just literally frightened out of my wits. Picking up the **Rugged shamisen** it reminds me of my youth. Back then I had an electric guitar (crank powered). At some point I also owned a solar powered amplifier; it only worked for 5 minutes per hour of charging or something like that. Good times.
Slightly stumped the ruffians await my next move. I sit down and start playing an old hymn that I picked up in the congregation I just visited. It's a (either: "rythmic", "traditional", "smiple") piece, with a bit of a (either: "19th", "20th", "21st", "22nd") century (either: "RnB", "rock", "grunge", "techno-pop", "folk song", "chamber music") feel.
To my surprise the ruffians gradually start nodding their heads. First one of them, then another and finally all of them are jamming to the music. They allow free passage through their turf, waving after the Kokopelli as it reaches open waters.
(display: "Continue journey")(storylet: when true)
The currents take me past a village built entierly on top of rafts. It's a small village with at most 5-6 homes.
This village is already in the latest census, so there is no reason for me to stop here.
{
(set: _trades to (a:
(a: "Magnetic chessboard", "Mountable sail", 8),
(a: "First aid kit", "Binoculars", 4),
(a: "Rugged shamisen", "Regional map", 2),
))
}
However, this might be a good opportunity to trade a little:
(display: "List of trading options")
(display: "Continue journey"){<!-- Trade passage used in "Tradw with *" events-->
}(for: each _item, ..._trades) [{
(set: _give to (_item's 1st))
(set: _take to (_item's 2nd))
(set: _take_weight to (_item's 3rd))
(if: _give is not in (altered: _s via _s's name, ...$supplies)) [
Could have traded **(print: (_give))** for **(print: _take)**, if I had the former.
] (else-if: _take is in (altered: _s via _s's name, ...$supplies)) [
Could have traded **(print: (_give))** for **(print: _take)**, except I alredy have the later.
] (else:) [
(link-replace: (joined: "",
"Trade **",
_give,
"** for **" ,
_take, "**. "))
[Traded (print: _give) for (print: _take).
<!-- Uppdate supplies (remove and add items) -->
(set: $supplies to
(find: _i where (_i's name) is not _give, ... $supplies))
(set: $supplies to it + (a:
(dm: "name", _take, "weight", _take_weight)))
<!-- Recalculate total weight -->
(set: $weight_of_supplies to
(folded: _s making _weight via
_weight + (weight of _s), 0, ...$supplies))
(set: $total_weight to
$weight_of_passangers+$weight_of_supplies+$water_reserve)
]
]}
](storylet: when true)
A mid-sized fishing vessel is leaving for the ocean. The crowd is a surprisingly chatty bunch for seafarers.
{
(set: _trades to (a:
(a: "Holy scripture", "Fresh trout", 3),
(a: "Magnetic chessboard", "Rubber boots", 4),
(a: "Hunting rifle", "Rugged shamisen", 4),
))
}
They seem interested to do a bit of trading:
(display: "List of trading options")
(display: "Continue journey")(storylet: when true)
The Kokopelli crosses path with another gondola.
{
(set: _trades to (a:
(a: "First aid kit", "Magnetic chessboard", 2),
(a: "Mountable sail", "Rubber boots", 3),
(a: "Regional map", "Hunting rifle", 6),
(a: "Holy scripture", "Binoculars", 2),
))
}
As is custom we see if there is anything to trade:
(display: "List of trading options")
(display: "Continue journey")(storylet: when visits is 0)
The Kokopelli ventures through the half submerged remains of a shopping district. Along the side of one of the buildings hangs a vertical series of large letters. The part that is still above water reads "Super Po".
There are a total of three floors above sea level. For some reason most houses in this area have seven floors in total. If the water is this deep, then the original coast line can't have been more than a few kilometers from here.
(display: "Continue journey")(storylet: when visits is 0)
The gondola passes under what remains of an orange and white painted radio tower.
This must have been an impressive building back in its time. The only thing impressive about it now is that it, despite its heavy leaning to the side, is still standing.
I looking closer at the structure there are small huts built in almost every nook and cranny. An impressive web of rope landers and bridges connect the homes to eachother.
No signs of people though. There might have been a disease. Or starvation. Or ruffians. Best not to think about it.
(display: "Continue journey")(storylet: when visits is 0)
The rusting keel of an overturned super tanker glimmers in the sunlight. This "landmark" once delivered cargo to places all over the world. It carried volumes of goods that are hard to even imagine today.
You would be forgiven for thinking that rising sea levels should not pose a problem for a boat. It is literally built only to stay afloat.
However, these things where complex vessels. The ships may have remained intact, but the network of spare part suppliers where not so lucky. Many factories were flooded during the storm century. Because of this, ships like the one in front of colud no longer maintained. Once something importan broke they where like stranded whales.
It's an impressive structure non the less. I'm inclined to [[take a closer look->Going slightly closer to the MS Underbelly]].
(display: "Continue journey")The Kokopelli ventures close enough to let me notice an array of blue and white flags. This used to, or might still, be an isolationist colony.
Ruffians may be blood thirsty robbers, but even plundering is a way to stay connected. They do interact with the rest of civilisation, even if it's not the most sympathetic way to do it.
Isolated cultures like this, on the other hand, are completely shielded off. Because of this they tend to regress, sometimes all the way to a tribal-like state. Cannibalism is not unheard of.
It would be wise for (if: $solo) [a solo traveller like me] (else:) [a small party like ours] to pass on by and go somewhere else.
(display: "Continue journey")πΎ **Debugging**
(if: $event_queue's length > 0) [Destiny: (for: each _event_name_in_queue, ... $event_queue)[(link-goto: _event_name_in_queue).]]
All available events: {
(set: _event_names to (a:))
(for: each _event, ...(open-storylets: where its tags contains "event"))[
(link-goto: _event's "name").
]
}(set: $remaining_distance to it + (random: 1,3)) We take a detour. This may cost us up to a full day of travel, but it seems to calm **Doggo**.
(display: "Continue journey")(storylet: when true)
The Kokopelli passes by a manned lighthouse. The (either: "energetic", "scruffy looking", "slightly obese", "comically tall") lighthouse keeper comes out to greet (if: $solo) [me] (else:) [us].
{
(set: _trades to (a:
(a: "Magnetic chessboard", "Regional map", 1),
(a: "Rubber boots", "First aid kit", 4),
(a: "Binoculars", "Hunting rifle", 5),
(a: "Fresh trout", "Rugged shamisen", 4),
))
}
As is custom we see if there is anything to trade:
(display: "List of trading options")
(display: "Continue journey")(if: name of (passage:) is "Morning") [{
(set: _map_knew to false)
}
Let's see what the **Regional map** has to say about todays voyage:
(t8n: "fade")+(t8n-delay: 1s)[{
}(if: (find: _d where (lowercase: _d) contains "ruffian", ...$event_queue) is not (a:) ) [ * This is ruffian territory. Best be careful. (set: _map_knew to true)]{
}(if: (find: _d where (lowercase: _d) contains "village", ...$event_queue) is not (a:) ) [ * There is a friendly settlement. (set: _map_knew to true)]{
}(if: (find: _d where (lowercase: _d) contains "lighthouse", ...$event_queue) is not (a:) ) [ * There is a manned lighthouse. (set: _map_knew to true)]{
}(if: not _map_knew) [Notning in particular is noted about this area. That may be a good thing.]
]
] (else:) [
Blarpidarp. >.<
] (storylet: when true)
A strong wind rises up from the stern of the ship.
(if: (altered: _s via name of _s, ...$supplies) contains "Mountable sail") [{
The wind is caught by the **Mountable sail** and the Kokopelli flings forward at a breathtaking speed. (set: $remaining_distance to it - (random: 1,3))
}] (else:) [ {
The wind pulls at my hair and clothes, playing with them a bit before moving on to other mischief.
}]
(display: "Continue journey"){
<!-- Vigor πͺπΏ -->
(set: $vigor to 4)
(set: $gain_vigor to (macro: num-type _amount, [
(set: $vigor to (min: it + _amount, 10))
(output:)[πͺπΏπ *Vigor* increased by *_amount* to *$vigor*.]
]))
(set: $lose_vigor to (macro: num-type _amount, [
(set: $vigor to (max: it - _amount, 0))
(output:)[πͺπΏπ *Vigor* dropped by *_amount* to *$vigor*.]
]))
(set: $roll_vigor to (macro: [
(output-data: (random: 0, $vigor) + (random: 0, $vigor))
]))
<!-- Resolve π§ -->
(set: $resolve to 4)
(set: $gain_resolve to (macro: num-type _amount, [
(set: $resolve to (min: it + _amount, 10))
(output:)[π§ π *Resolve* increased by *_amount* to *$resolve*.]
]))
(set: $lose_resolve to (macro: num-type _amount, [
(set: $resolve to (max: it - _amount, 0))
(output:)[π§ π *Resolve* dropped by *_amount* to *$resolve*.]
]))
(set: $roll_resolve to (macro: [
(output-data: (random: 0, $resolve) + (random: 0, $resolve))
]))
}**Test Vigor πͺπΏ**
Can roll for vigor: (print: ($roll_vigor:)) (print: ($roll_vigor:)) (print: ($roll_vigor:)) (print: ($roll_vigor:)) (print: ($roll_vigor:)) (print: ($roll_vigor:))
Can gain vigor up to 10.
(assert: $vigor is 4)
($gain_vigor: 3)(assert: $vigor is 7)
($gain_vigor: 2)(assert: $vigor is 9)
($gain_vigor: 2)(assert: $vigor is 10)
($gain_vigor: 2)(assert: $vigor is 10)
Can lose vigor down to 0.
($lose_vigor: 4)(assert: $vigor is 6)
($lose_vigor: 4)(assert: $vigor is 2)
($lose_vigor: 4)(assert: $vigor is 0)
**Test Resolve π§ **
Can roll for resolve: (print: ($roll_resolve:)) (print: ($roll_resolve:)) (print: ($roll_resolve:)) (print: ($roll_resolve:)) (print: ($roll_resolve:)) (print: ($roll_resolve:))
Can gain vigor up to 10.
(assert: $resolve is 4)
($gain_resolve: 3)(assert: $resolve is 7)
($gain_resolve: 2)(assert: $resolve is 9)
($gain_resolve: 2)(assert: $resolve is 10)
($gain_resolve: 2)(assert: $resolve is 10)
Can lose vigor down to 0.
($lose_resolve: 4)(assert: $resolve is 6)
($lose_resolve: 4)(assert: $resolve is 2)
($lose_resolve: 4)(assert: $resolve is 0)
(storylet: when true)
Hundreds of years of collected debris has formed a dam like structure at the bottom of this road turned river. It's a bit hard to tell exactly how steep the decline is on the other side of the cusp, although it seems quite steep.
Going over the edge is risky, but could shave off a fair bit of the remaining travelling distance. A heavier ship is harder to control. Getting rid of some cargo could mitigate the risk a bit.
I could get rid of:
(for: each _item, ...$supplies) [{
(link-replace: "Drop **" + name of _item + "**") [
(set: $supplies to it - (a: _item))
(set: $weight_of_supplies to it - weight of _item)
(set: $total_weight to it - weight of _item)
].
}]
I ready myself to go [[over the edge->Going down the white water]]. Right at the cusp I hesitate. [[Taking a detour around the dam]] is the safer option, although it will add at least a whole day to my journey.The fall on the other side of the dam edge is steeper than I imagined. Or that's at least the feeling I get as the Kokopelli plunges down at a rapid pace. (set: _severity to visits + 5 * $total_weight / $max_weight)
<!-- Roll the dice, roll the dice! -->
{π§ π²(set: _1st_roll to ($roll_resolve:) >= _severity) Pointy shallows litter the stream. (if: _1st_roll) [ By *staying focused* I manage to steer past them. ] (else:) [ The Kokopelli bumps into several of them on the way down. ]}
{πͺπΏπ²(set: _2nd_roll to ($roll_vigor:) >= _severity) The white water turns into a waterfall. For a moment the Kokopelli is falling freely. (if: _2nd_roll) [ Through some *feat of acrobatics* I manage to land the ship smoothly in the foaming waters. ](else:)[ The ship almost topples over as we crash right into the water below. ]}
($lose_resolve: 1 + (floor: _severity / 5)) ($lose_vigor: 1 + (floor: _severity / 5))
<!-- Outcome -->
(if: _1st_roll and _2nd_roll) [
Through a mix of skill and sheer luck (if: $solo) [I] (else:) [we all] get through it (if: not $solo)[together] in on piece. (set: $remaining_distance to it - (random: 1,3))
(display: "Continue journey")
] (else-if: _1st_roll or _2nd_roll) [
I get the ship out of the waterfall as best as I can. {(if: length of $supplies > 0)[
(if: length of $supplies > 1) [(set: $supplies to (shuffled: ...$supplies))]
(move: $supplies's 1st into _lost_item)
(set: $weight_of_supplies to it - weight of _lost_item)
Quickly scanning the ships interior I realize that the **(print: name of _lost_item)** is missing.]
} That could easily have gone a lot worse.
(display: "Continue journey")
] (else:) [
The Kokopelli breaks in half on impact. Caught in the maelstrom at the base of the waterfall I struggle against the unending floods. I'm dragged towards the bottom, unable to get air.
(display: "Game over")
](set: $remaining_distance to it + (random: 2,4)) I carefully steer the Kokopelli away from the cusp of the dam. Sleeping a night or two more under the stars is preferable to sleeping forever with the fishes.
(display: "Continue journey")(storylet: when true)
Just under the water I spot an missile shaped figure about the same size as the gondola. A leathery fin cuts the water as the white shark starts charging straight at {(if: $solo) [me] (else:) [us]}.
(set: _aggro to 5 + 2 * visits)
|list-throwables>[Perhaps hitting it with something will deter it:
(for: each _item, ...$supplies) [{
(link-replace: "Throw **" + name of _item + "**") [
(set: $supplies to it - (a: _item))
(set: $weight_of_supplies to it - weight of _item)
(set: $total_weight to it - weight of _item)
πͺπΏπ² I threw **(print: name of _item)** at the Shark
(if: ($roll_vigor:) >= 2 * (weight of _item)) [
(set: _aggro to (max: 0, it - weight of _item)) and I hit it
(either: "right on the snout", "on the back", "in the face")!
] (else:) [, but I (either: "barely", "completely") miss it!]
(rerun: ?shark-status)
]}
]]<!-- list-throwables -->
(meter: bind _aggro, 5 + 2 * visit, "XXXXXX=", "π¦ Shark rage!", gray + red)
{|shark-status>[
(if: _aggro > 0) [Better get ready for [[impact->Impact with shark]]!] (else:) [The sharks stops and turns. I exhale relieved as I [[watch it swim away->Watch shark swim away]].]
]} <!-- shark-status -->The full weight of the shark slams right into the side of the boat. (set: _strength to 3 + visits)
<!-- Roll the dice, roll the dice! -->
π§ π²(set: _1st_roll to ($roll_resolve:) >= _strength) It's trying to get me too panic and lose my balance, (if: _1st_roll) [but I'm *determined* to keep my cool](else:)[and I'm at the brink of panicking].
πͺπΏπ²(set: _2nd_roll to ($roll_vigor:) >= _strength) It grips the paddle with it's massive jaws. (if: _2nd_roll) [Somehow I manage to pull it back.] (else:) [It's way *stronger than me*. The lever force slams me onto the deck.]
($lose_resolve: 1) ($lose_vigor: 1)
<!-- Outcome -->
(if: _1st_roll or _2nd_roll) [
After a while the shark tires of toying with me. It wanishes into the depths flinging it's rear fin at me as if saying "I'll be back for you, some day".
(display: "Continue journey")
] (else:) [
The shark vanishes. Then, a moment later, something strikes from below the gondola. Supplies and debris fly up into the air in all directions. I barely breach the surface of the water before something sharp cuts into my (either: "right", "left") leg and pulls me down.
(display: "Game over")
]As it swims off I wonder if the shark feels defeated or if I'm just not really worth the hassle.
(display: "Continue journey")
Prolouge
This congregation is quite lively, but they are also all wearing strange masks.
I preach the re-globalisation gospel, teach geography and in the evening we debate the post-apocalyptical social condition. The next morning I count everyone for the census.
All in all I consider this visit to be acceptable.
It's time to set out for the next destination on my pilgrimage, but first I will have to prepare.