Your browser lacks required capabilities. Please upgrade it or switch to another to continue.
Loading…
What's that roar ahead? Oh, it's the rush of water: the stream that flows into the village. Fancy running into it in this part of the forest. And the torrent, swollen from melting snows, is overflowing a jumble of rotten planks eroding away almost as you watch.<<set $difficulty = 8>>
There must be some way to get across; you can't turn back now.
* [[Repair the bridge]] (it would take a miracle)
* [[Ford the river]] (if you're brave and strong enough)
* [[Think of a trick]] (that could be tricky)The pile of rotting planks creaking as water flows around them can hardly be called a bridge anymore. It would take a team of carpenters with tools and timber to make a new one out of the remains. Either that, or witchcraft.
<<set $difficulty = 7>>(Roll 2d6 + Magic against a difficulty score of $difficulty.)
Question is, what kind of magic spell could help you with this?
<<include "Choose spell">>\
<<if $spell_count > 0>>\
@@text-align:center;
[[Cast spell -> Bewitch bridge!]] / [[Think again -> Broken bridge]]
@@
<<else>>\
Unfortunately, you draw a blank.
@@text-align:center;
[[Try something else -> Broken bridge]]
@@
<</if>>\<<set _modifier = $player.magic + $player.buffs.magic>>
<<set _effort = $player.spellbook[$chosen_spell].level>>
<<set $roll = median_roll(2, 6, _modifier - _effort)>>
<p>(you roll $roll against a target of $difficulty)</p>
<<switch $chosen_spell>>
<<case "Sunburst">><<include "Sunburst bridge">>
<<case "Cold snap">><<include "Cold-snap bridge">>
<<case "Smoke screen">><<include "Smoke-screen bridge">>
<<case "Undergrowth">><<include "Undergrowth bridge">>
<<case "Windstorm">><<include "Windstorm bridge">>
<</switch>>Dazzling sunlight fills the riverbed as your spell takes hold, making the water sparkle like a myriad precious stones. It's not clear however how it helps you get to the other side.
@@text-align:center;
<p>[[Try something else -> Broken bridge]]</p>
@@As your spell takes hold, the air suddenly becomes frigid. Snowflakes form in the air; frost covers half the bridge in an instant. And as you watch, a good stretch of the stream freezes over.
<<if $roll >= $difficulty>>
<p>You scramble down the bank and across the ice while the spell holds, and make it to the other side just as the warmth of spring asserts itself again, sending floes down the stream.</p>
<<set $player.unused_exp += $difficulty>>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<else>>
<p>You scramble down the bank and across the ice while the spell holds, tripping and slipping at every step. You almost make it to the other side, too, but then the spell fails early. And the water is cold indeed.</p>
<<set $player.wounds += $difficulty - $roll>>
<<set $player.unused_exp += $difficulty - $roll>>
<p>(You take <<= $difficulty - $roll>> wounds that ignore armor.)</p>
<<if $player.wounds >= $player.health>>
<p>Suddenly the opposite bank seems like a step too far.</p>
@@text-align:center;
<p>[[You are badly hurt]]</p>
@@
<<else>>
<p>Yet in the end you make it across, hurting, but alive.</p>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<endif>>
<</if>>Sparks and flame burst from your fingertips, producing a thick plume of smoke that spreads in front of you as if driven by wind. It reaches all the way across the stream. Too bad you can't walk on smoke.
@@text-align:center;
[[Try something else -> Broken bridge]]
@@Strong vines sprout from the ground, growing preternaturally fast. They twist around, coiling around girders and railings to lend the bridge that much more strength. You can only hope it's enough as you proceed to cross it.
<<if $roll >= $difficulty>>
<p>Creaks and groans accompany your every step, but in the end you make it safely to the other side.</p>
<<set $player.unused_exp += $difficulty>>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<else>>
<p>Creaks and groans accompany your every step, but it seems you're going to make it... until a plank snaps, almost sending you into the torrent below.</p>
<<set _damage = adjust_damage($difficulty - $roll, $player.armor)>>
<<set $player.wounds += _damage>>
<<set $player.unused_exp += _damage>>
<p>(You take _damage wounds; your armor helps.)</p>
<<if $player.wounds >= $player.health>>
<p>Suddenly the opposite bank seems like a step too far.</p>
@@text-align:center;
<p>[[You are badly hurt]]</p>
@@
<<else>>
<p>You grab onto something at the last moment and scramble back up, hurting, but alive.</p>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<endif>>
<</if>>At first nothing seems to happen, then a strong wind picks up, and soon grows into a howling gale. The bridge rattles woefully; underneath, water churns. It's almost enough to pick you up and carry you to the other side. Almost, but not quite.
@@text-align:center;
[[Try something else -> Broken bridge]]
@@The stream isn't very deep even now, but bone-chilling water and strong currents don't mix well. Worse, the way down is steep and treacherous, covered in thorny brambles and sharp rocks.
(Roll 2d6 + Muscle against a difficulty score of $difficulty.)
@@text-align:center;
[[Brave the waters]] / [[Think again -> Broken bridge]]
@@<<set _modifier = $player.muscle + $player.buffs.muscle>>
<<set _roll = median_roll(2, 6, _modifier)>>
<<if _roll >= $difficulty>>
You slip on soft mud and trip on tree roots. It's a painful way down the bank on this side. Then there's the roiling water, cold and furious torrent trying to pull you under and wash you away. At long last you're on the other side, clambering up some steps set under the bridge.
<<set $player.unused_exp += $difficulty>>
<p>(You roll _roll, getting across in one piece.)</p>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<else>>
You slip on soft mud and trip on tree roots, getting scrape after bruise on the way down the bank. Then there's the roiling water, cold and furious torrent trying to pull you under at every step.
<<set _damage = $difficulty - _roll>>
<<set $player.wounds += _damage>>
<<set $player.unused_exp += _damage>>
<p>(You roll _roll, taking _damage wounds that ignore armor.)</p>
<<if $player.wounds >= $player.health>>
<p>Sooner or later, it succeeds. You struggle, but in vain.</p>
@@text-align:center;
<p>[[You are badly hurt]]</p>
@@
<<else>>
<p>Yet in the end you make it across, hurting, but alive.</p>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<endif>>
<</if>>The way down is steep and treacherous, covered in thorny brambles and sharp rocks. You look up instead. Long-limbed birches lean low over the water; you've perched on thinner branches trying to overhear what neighbors were saying about you. Just look ahead and try not to think of the swirling torrent beneath.
<<set $difficulty = 9>>(Roll 2d6 + Mischief against a difficulty score of $difficulty.)
@@text-align:center;
[[Brave the treetops]] / [[Think again -> Broken bridge]]
@@<<set _modifier = $player.mischief + $player.buffs.mischief>>
<<set _roll = median_roll(2, 6, _modifier)>>
<<if _roll >= $difficulty>>
Branches creak and sway as you crawl along them, leaning very low halfway over the water where they meet. Yet you make it safely all the way to the other side.
<<set $player.unused_exp += $difficulty>>
<p>(You roll _roll, getting across in one piece.)</p>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<else>>
Branches creak and sway as you crawl along them, leaning very low halfway over the water where they meet. Then one snaps and sends you swinging down.
<<set _damage = adjust_damage($difficulty - _roll, $player.armor)>>
<<set $player.wounds += _damage>>
<<set $player.unused_exp += _damage>>
<p>(You roll _roll, taking _damage wounds; your armor helps.)</p>
<<if $player.wounds >= $player.health>>
<p>The opposite bank is just too far to cross the remaining distance.</p>
@@text-align:center;
<p>[[You are badly hurt]]</p>
@@
<<else>>
<p>You just barely make it across, hitting a tree trunk painfully.</p>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<endif>>
<</if>>The path twists and turns, but in the end can't escape being funneled into a depression, or perhaps the ground rises around it. Either way, it ends up among rocks, and from there the only way forward is through a grotto.
It's chilly inside. A trickle of water snakes down a groove in the cave floor. Once your eyes adjust, faint light almost becomes visible at the other end.
* [[Light a torch]]
* [[Brave the darkness -> Grotto in darkness]]They say the light of a torch brings out things better left unseen. That beneath the earth dwell creatures that hate light and desire nothing more than to extinguish it all. Better, they say, to risk injury than losing your very soul.
<<include "Diamond motif">>
@@text-align:center;
<<if $player.inventory.torches > 0>>\
[[Do it anyway -> Grotto in light]] / [[Go without -> Grotto in darkness]]
<<else>>\
[[You don't have a torch anyway -> Grotto in darkness]]
<</if>>\
@@You strike a light. Soon, your torch is sending shadows to dance on the walls. They send back reflections. The yellowish flicker brings alive countless crystals of all shapes and sizes growing out of the rock. They're still, unlike the water trickling down the middle. It makes for slippery footing, but in the torchlight it's easy enough to advance without issue.<<set $player.inventory.torches -= 1>>
<<if random(1, 3) == 1>>\
You go on then, and so does the tunnel. After a while, an air current picks up. Your torch flickers. Shadows deepen, and begin to gather on their own.
@@text-align:center;
[[There's no turning back now -> Shadow beast]]
@@
<<else>>\
So you go on through the tunnel of stars, each step sending echoes to argue with the gargle of water. It's longer than you thought, and not so straight, but sooner or later emerges into sunlight again.<<set $player.unused_exp += 9>>
@@text-align:center;
[[Get your bearings -> Respite]]
@@
<</if>>\Soon, natural light dwindles to nothing. You slip on wet rock. Echoes swirl around you. Flailing hands run into sharp edges along the walls. The far end now seems far indeed.<<set $difficulty = 9>>
There must be some way through; you can't turn back now.
* [[Darkness is your friend]] (it hides mischief, you know)
* [[Night is a time of magic]] (that is, if you have any)
* [[Valor guides your step]] (but do you have the strength?)No good deed remains unpunished. All too often you must hide from prying eyes to do the right thing. But usually you at least have the moon to show the way.
(Roll 2d6 + Mischief against a difficulty score of $difficulty.)
@@text-align:center;
[[Embrace the darkness]] / [[Think again -> Grotto in darkness]]
@@<<set _modifier = $player.mischief + $player.buffs.mischief>>
<<set _roll = median_roll(2, 6, _modifier)>>
<<if _roll >= $difficulty>>
You close your eyes and listen to the echoes, feeling the air currents on your face, treading lightly on the uneven rocks underfoot. You slip once or twice at first, but soon find your stride, and barely notice when sunlight starts filtering in again from the far end.
<<set $player.unused_exp += $difficulty>>
<p>(You roll _roll, getting through in one piece.)</p>
@@text-align:center;
<p>[[Get your bearings -> Search the area]]</p>
@@
<<else>>
You close your eyes and try to hear the echoes, arms outstretched to help keep your balance on the slippery cave floor. Sharp edges meet your fingertips. You step in the water, hit your toes and scrape your shins.
<<set _damage = adjust_damage($difficulty - _roll, $player.armor)>>
<<set $player.wounds += _damage>>
<<set $player.unused_exp += _damage>>
<p>(You roll _roll, taking _damage wounds; your armor helps.)</p>
<<if $player.wounds >= $player.health>>
<p>As time goes on and on, daylight begins to seem a distant dream.</p>
@@text-align:center;
<p>[[You are badly hurt]]</p>
@@
<<else>>
<p>At long last, sunrays pierce the dark again. Even that hurts.</p>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<endif>>
<</if>>People hate and fear magic even as they benefit from it. Some of your best work had to be done by moonlight. But here in the depths there's not even as much.
<<set $difficulty = 8>>(Roll 2d6 + Magic against a difficulty score of $difficulty.)
Besides, what kind of magic spell could help you out of this place?
<<include "Choose spell">>\
<<if $spell_count > 0>>\
@@text-align:center;
[[Cast spell -> Bewitch grotto!]] / [[Think again -> Grotto in darkness]]
@@
<<else>>\
Unfortunately, you draw a blank.
@@text-align:center;
[[Try something else -> Grotto in darkness]]
@@
<</if>>\<<set _modifier = $player.magic + $player.buffs.magic>>
<<set _effort = $player.spellbook[$chosen_spell].level>>
<<set $roll = median_roll(2, 6, _modifier - _effort)>>
<p>(you roll $roll against a target of $difficulty)</p>
<<switch $chosen_spell>>
<<case "Sunburst">><<include "Sunburst grotto">>
<<case "Cold snap">><<include "Cold-snap grotto">>
<<case "Smoke screen">><<include "Smoke-screen grotto">>
<<case "Undergrowth">><<include "Undergrowth grotto">>
<<case "Windstorm">><<include "Windstorm grotto">>
<</switch>>Dazzling light bursts into the tunnel as your spell takes hold, chasing away all shadows. Even with your eyes shielded, it's still painful. Moments later it fades, but not entirely: countless crystals of all shapes and sizes growing out of the rock still glow faintly.
<<if $roll >= $difficulty>>
<p>You move on through the tunnel of stars, then into sunlight again.</p>
<<set $player.unused_exp += $difficulty>>
@@text-align:center;
<p>[[Get your bearings -> Search the area]]</p>
@@
<<else>>
<p>But soon shadows return, thicker than ever. Alive and furious.</p>
@@text-align:center;
[[There's no turning back now -> Shadow beast]]
@@
<</if>>As your spell takes hold, the air suddenly becomes frigid. Snowflakes touch your face; the trickle of water underfoot freezes solid. And none of that helps you make any progress.
@@text-align:center;
<p>[[Try something else -> Grotto in darkness]]</p>
@@Sparks and flame burst from your fingertips, filling the cave with thick smoke. You cough a lot until air currents scatter it; too bad you can't see where it went, in this darkness.
@@text-align:center;
[[Try something else -> Grotto in darkness]]
@@You hear rock crackling all around you. Soon vines and leaves brush against your legs. You can touch them without leaning down. Too bad they can't help you cross the cave.
@@text-align:center;
<p>[[Try something else -> Grotto in darkness]]</p>
@@At first nothing seems to happen, then a strong wind picks up, and soon grows into a steady stream, replacing the cave's natural currents. You go ahead, following the flow of air.
<<if $roll >= $difficulty>>
<p>Before you know it sunlight pours in at the far end of the cave.</p>
<<set $player.unused_exp += $difficulty>>
@@text-align:center;
<p>[[Get your bearings -> Search the area]]</p>
@@
<<else>>
<p>You still slip and stumble, and the walls are covered in sharp edges.</p>
<<set _damage = adjust_damage($difficulty - $roll, $player.armor)>>
<<set $player.wounds += _damage>>
<<set $player.unused_exp += _damage>>
<p>(You take _damage wounds; your armor helps.)</p>
<<if $player.wounds >= $player.health>>
<p>As time goes on and on, daylight begins to seem a distant dream.</p>
@@text-align:center;
<p>[[You are badly hurt]]</p>
@@
<<else>>
<p>At long last, sunrays pierce the dark again. Even that hurts.</p>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<endif>>
<</if>>You've had to cross rougher terrain, and on moonless nights at that. A hole in the ground doesn't scare you. What's a few scrapes and bruises after all.
<<set $difficulty = 10>>(Roll 2d6 + Muscle against a difficulty score of $difficulty.)
@@text-align:center;
[[Brave the darkness]] / [[Think again -> Grotto in darkness]]
@@<<set _modifier = $player.muscle + $player.buffs.muscle>>
<<set _roll = median_roll(2, 6, _modifier)>>
<<if _roll >= $difficulty>>
Head between the shoulders, weapon held in front of you with arms outstretched, you put a foot in front of the other. Fortune favors the brave, it seems, and before you know it sunlight pours in at the far end of the cave.
<<set $player.unused_exp += $difficulty>>
<p>(You roll _roll, getting through in one piece.)</p>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<else>>
Head between the shoulders, weapon held in front of you with arms outstretched, you put a foot in front of the other. Sharp rocks meet your every step. You slip and stumble and hit your knees. You bump into every turn of the tunnel.
<<set _damage = adjust_damage($difficulty - _roll, $player.armor)>>
<<set $player.wounds += _damage>>
<<set $player.unused_exp += _damage>>
<p>(You roll _roll, taking _damage wounds; your armor helps.)</p>
<<if $player.wounds >= $player.health>>
<p>As time goes on and on, daylight begins to seem a distant dream.</p>
@@text-align:center;
<p>[[You are badly hurt]]</p>
@@
<<else>>
<p>At long last, sunrays pierce the dark again. Even that hurts.</p>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<endif>>
<</if>>You fail to see the hollow log rotting away in the tall grass by a bend in the path until you're right next to it, and by then it's too late. Loud buzzing drowns out the sounds of nature. One by one, a handful of giant hornets appear, each as long as your arm, staring coldly at you as they dance on the breeze.
<<set $enemy = all_monsters.hornets>>\
<<set $enemy.score = $enemy.base>>\
<<set $enemy.wounds = 0>>\
@@text-align:center;
[[You must deal with them -> Giant hornet battle]]
@@A handful of giant hornets are buzzing around you, weaving deadly patterns. Their wings flash in the sun like daggers with every sudden change of direction.
(this $enemy.score-point creature is armed with +$enemy.weapon.damage $enemy.weapon.name)
* [[Attack -> Attack hornets]] (roll 2d6 + Muscle)
* [[Bewitch -> Bewitch hornets]] (roll 2d6 + Magic)
* [[Flee -> Flee hornets]] (roll 2d6 + Mischief)<<set _modifier = $player.muscle + $player.buffs.muscle>>
<<set _roll = roll_dice(2, 6, _modifier)>>
<<if _roll > $enemy.score>>
You stare down the creatures, not letting your guard down for a moment. One of them darts a little too close; with a swift swipe, you swat it out of the air.
<<set _damage = _roll - $enemy.score + $player.weapon.damage>>
<<set _damage = adjust_damage(_damage, $enemy.armor)>>
<p>(You roll _roll, dealing _damage wounds.)</p>
<<set $enemy.wounds += _damage>>
<<if $enemy.wounds >= $enemy.score>>
<p>The remaining hornets scatter in a hurry.</p>
<<set $player.unused_exp += $enemy.base>>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<else>>
@@text-align:center;
<p>[[The other hornets regroup -> Giant hornet battle]]</p>
@@
<<endif>>
<<elseif _roll == $enemy.score>>
You stare down the creatures, not letting your guard down. One of them swings too close for comfort; you swat it out of the air, but not before it stings.
<p>(You roll _roll, dealing $player.weapon.damage wounds and taking $enemy.weapon.damage of your own.)</p>
<<set $enemy.wounds += adjust_damage($player.weapon.damage, $enemy.armor)>>
<<set $player.wounds += adjust_damage($enemy.weapon.damage, $player.armor)>>
<<if $player.wounds >= $player.health>>
@@text-align:center;
[[You are badly hurt]]
@@
<<elseif $enemy.wounds >= $enemy.score>>
<p>The remaining hornets scatter in a hurry.</p>
<<set $player.unused_exp += $enemy.base>>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<else>>
@@text-align:center;
<p>[[You take a few steps back -> Giant hornet battle]]</p>
@@
<<endif>>
<<else>>
You swipe at the elusive enemies repeatedly. The deftly dodge every single time.
Then one lands on you just long enough to sting. And how it stings!
<<set _damage = $enemy.score - _roll + $enemy.weapon.damage>>
<<set _damage = adjust_damage(_damage, $player.armor)>>
<p>(You roll _roll, taking _damage wounds.)</p>
<<set $player.wounds += _damage>>
@@text-align:center;
<<if $player.wounds >= $player.health>>
<p>[[You are badly hurt]]</p>
<<else>>
<p>[[You take a few steps back -> Giant hornet battle]]</p>
<<endif>>
@@
<<endif>><p>With the flying menaces buzzing around, you frantically wonder what sort of magic might be able to stop such creatures.</p>
<<include "Choose spell">>
<<if $spell_count > 0>>
@@text-align:center;
<p>[[Cast spell -> Bewitch hornets!]] / [[Think again -> Giant hornet battle]]</p>
@@
<<else>>
<p>Unfortunately, you draw a blank.</p>
<<include "Diamond motif">>
@@text-align:center;
<p>[[Try something else -> Giant hornet battle]]</p>
@@
<</if>><<set _modifier = $player.magic + $player.buffs.magic>>
<<set _effort = $player.spellbook[$chosen_spell].level>>
<<set $roll = roll_dice(2, 6, _modifier - _effort)>>
<p>(you roll $roll against a target of $enemy.score)</p>
<<switch $chosen_spell>>
<<case "Sunburst">><<include "Sunburst hornets">>
<<case "Cold snap">><<include "Cold-snap hornets">>
<<case "Smoke screen">><<include "Smoke-screen hornets">>
<<case "Undergrowth">><<include "Undergrowth hornets">>
<<case "Windstorm">><<include "Windstorm hornets">>
<</switch>>The sun shines brighter as the spell takes hold. You shade your eyes from the dazzling light, but the creatures seem unfazed.
<<include "Diamond motif">>
@@text-align:center;
[[So much for that -> Giant hornet battle]]
@@<<if $roll >= $enemy.score>>
As your spell takes hold, the air suddenly becomes frigid. Puddles of water on the ground freeze solid; snowflakes form in the air. You clothes are insulated well enough, but the creatures don't fare so well: they slow down noticeably.
<<set $enemy.score -= ($roll - $enemy.score)>>
<<if $enemy.score <= 0 || $enemy.score <= $enemy.wounds>>
<p>In fact they're done for, and soon give up, leaving you alone.</p>
<<set $player.unused_exp += $enemy.base>>
@@text-align:center;
<p>[[Find your bearings -> Search the area]]</p>
@@
<<else>>
@@text-align:center;
<p>[[But still they come -> Giant hornet battle]]</p>
@@
<</if>>
<<else>>
Under your spell, the air suddenly becomes frigid. Puddles of water on the ground freeze solid; snowflakes drift by. You shiver hard despite insulated clothes. The creatures merely circle at a safe distance, then return to sting.
<<set _damage = $enemy.score - $roll + $enemy.weapon.damage>>
<<set _damage = adjust_damage(_damage, $player.armor)>>
<p>(You take _damage wounds.)</p>
<<set $player.wounds += _damage>>
@@text-align:center;
<<if $player.wounds >= $player.health>>
<p>[[You are badly hurt]]</p>
<<else>>
<p>[[You take a few steps back -> Giant hornet battle]]</p>
<<endif>>
@@
<</if>><<if $roll > $enemy.score>>
Sparks and flame burst from your fingertips, producing a thick plume of smoke that spreads in front of you as if driven by wind. It catches the creatures head-on; they scatter, but for one or two that fall to the ground, twitching.
<<set $enemy.wounds += $roll - $enemy.score>>
<<if $enemy.score <= $enemy.wounds>>
<p>Those that are still airborne fly away and never come back.</p>
<<set $player.unused_exp += $enemy.base>>
@@text-align:center;
<p>[[Find your bearings -> Search the area]]</p>
@@
<<else>>
@@text-align:center;
<p>[[The rest still come -> Giant hornet battle]]</p>
@@
<</if>>
<<elseif $roll == $enemy.score>>
Sparks and flame burst from your fingertips, producing a thick plume of smoke that spreads in front of you as if driven by wind. It forces the creatures to scatter and give you some space.
@@text-align:center;
<p>[[Then they come back -> Giant hornet battle]]</p>
@@
<<else>>
Sparks and flame burst from your fingertips, producing a thick plume of smoke that spreads in front of you as if driven by wind. It makes the creatures scatter briefly, but then they circle back. One stings.
<<set _damage = $enemy.score - $roll + $enemy.weapon.damage>>
<<set _damage = adjust_damage(_damage, $player.armor)>>
<p>(You take _damage wounds.)</p>
<<set $player.wounds += _damage>>
@@text-align:center;
<<if $player.wounds >= $player.health>>
<p>[[You are badly hurt]]</p>
<<else>>
<p>[[You take a few steps back -> Giant hornet battle]]</p>
<<endif>>
@@
<</if>><p>Strong vines sprout from the ground, growing preternaturally fast. They twist around, forming a fence between you and the creatures, but the latter simply fly over and come at you again.</p>
@@text-align:center;
<p>[[So much for that -> Giant hornet battle]]</p>
@@<<if $roll > $enemy.score>>
At first nothing seems to happen, then a strong wind picks up, and soon grows into a howling gale. The creatures are blown away with a vengeance.
<<set $player.unused_exp += $enemy.base>>
<<include "Diamond motif">>
@@text-align:center;
<p>[[They don't come back -> Search the area]]</p>
@@
<<elseif $roll == $enemy.score>>
At first nothing seems to happen, then a strong wind picks up, and soon grows into a howling gale. The creatures are blown away with a vengeance. One or two never return.
<<set $enemy.wounds += $player.magic + $player.buffs.magic + 1>>
<<if $enemy.score <= $enemy.wounds>>
<p>In fact, they're done for, and soon give up, leaving you alone.</p>
<<set $player.unused_exp += $enemy.base>>
@@text-align:center;
<p>[[Find your bearings -> Search the area]]</p>
@@
<<else>>
<<include "Diamond motif">>
@@text-align:center;
<p>[[The rest still come -> Giant hornet battle]]</p>
@@
<</if>>
<<else>>
At first nothing seems to happen, then a strong wind picks up, and soon grows into a howling gale. It circles back, turning into a twister as you fumble the spell in the heat of battle. While you rub dust out of your eyes, one of the creatures lands on you and stings.
<<set _damage = $enemy.score - $roll + $enemy.weapon.damage>>
<<set _damage = adjust_damage(_damage, $player.armor)>>
<p>(You take _damage wounds.)</p>
<<set $player.wounds += _damage>>
@@text-align:center;
<<if $player.wounds >= $player.health>>
<p>[[You are badly hurt]]</p>
<<else>>
<p>[[You take a few steps back -> Giant hornet battle]]</p>
<<endif>>
@@
<</if>>Screw this. You turn tail and run. They give chase.
<<set _modifier = $player.mischief + $player.buffs.mischief>>
<<set _roll = roll_dice(2, 6, _modifier)>>
<<if _roll > $enemy.score>>
<p>But you know too many tricks. At length, the buzzing fades. It's just you and the forest again.</p>
<p>(You roll _roll, getting away unscathed.)</p>
<<set $player.unused_exp += $enemy.score>>
@@text-align:center;
<p>[[Find your bearings -> Respite]]</p>
@@
<<elseif _roll == $enemy.score>>
<p>You use every trick you can think of, only to find a hovering menace waiting for you at every turn. At least they were too busy to sting.</p>
<p>(You roll _roll; it's a stalemate for now.)</p>
@@text-align:center;
<p>[[Think again -> Giant hornet battle]]</p>
@@
<<else>>
<p>And it's no use. Try as you might, a hovering menace is waiting for you at every turn. Another comes from behind and stings.</p>
<<set _damage = $enemy.score - _roll + $enemy.weapon.damage>>
<<set _damage = adjust_damage(_damage, $player.armor)>>
<p>(You roll _roll, taking _damage wounds.)</p>
<<set $player.wounds += _damage>>
@@text-align:center;
<<if $player.wounds >= $player.health>>
<p>[[You are badly hurt]]</p>
<<else>>
<p>[[You take a few steps back -> Giant hornet battle]]</p>
<<endif>>
@@
<<endif>>Somewhere along the way you've entered a maze of trails that go up and down the uneven terrain, crossing and forking randomly. Brambles block passage in most directions; boulders taller than you are make it hard to see very far. You walk on bravely for a while, only to end up back where you started from. Then again, and again. This will require more than simple persistence.<<set $difficulty = 10>>
@@text-align:center;
[[You must find a way -> Into the maze]]
@@You're in a maze of twisty little pathways, all lined up with brambles and boulders, looking very much alike.
* [[Chart the maze]] (roll 2d6 + Mischief)
* [[Bewitch the maze]] (roll 2d6 + Magic)
* [[Cut through the maze]] (roll 2d6 + Muscle)In the stories, clever children always find their way out of tangled forests by leaving behind them a trail of breadcrumbs. Well, maybe not with hungry sparrows around. But you'll think of something that works better. Hopefully before you starve to death.
(Roll 2d6 + Mischief against a difficulty score of $difficulty.)
@@text-align:center;
[[Mark the maze]] / [[Think again -> Into the maze]]
@@<<set _modifier = $player.mischief + $player.buffs.mischief>>
<<set _roll = roll_dice(2, 6, _modifier)>>
<<if _roll > $difficulty>>
You get going again, leaving little signs at every fork in the path. Here, a little pile of stones; there, twigs stuck in the ground. Before long, you start running into them again, and the maze makes that much more sense.
<<set $difficulty -= (_roll - $difficulty)>>
<<if $difficulty <= 0>>
<p>In fact you spot a new trail, and then it's just a matter of time.</p>
<<set $player.unused_exp += 10>>
<p>(You roll _roll, getting out in one piece.)</p>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<else>>
<p>But you still have a way to go before getting out of this place.</p>
<p>(You roll _roll, making some progress.)</p>
@@text-align:center;
<p>[[The maze is still there -> Into the maze]]</p>
@@
<</if>>
<<elseif $roll == $difficulty>>
You resume walking, careful to mark the path using whatever is handy: twigs, pebbles, crushed berries. Now and then you actually run into them again. It doesn't help much, but at least you're not any more lost.
@@text-align:center;
<p>[[No progress for now -> Into the maze]]</p>
@@
<<else>>
You start moving again, dropping pebbles on the path as you go. Somehow you seldom run into them again, yet you're no closer to getting out of here. After a while you just want to sit down and rest, or maybe cry.
<<set _damage = $difficulty - _roll>>
<<set $player.wounds += _damage>>
<p>(You roll _roll, taking _damage wounds that ignore armor.)</p>
<<if $player.wounds >= $player.health>>
<p>In fact you can't get up again. The maze claims another victim.</p>
@@text-align:center;
<p>[[You are badly hurt]]</p>
@@
<<else>>
<p>You catch your breath briefly and get up, determined to do better.</p>
@@text-align:center;
<p>[[No progress for now -> Into the maze]]</p>
@@
<<endif>>
<</if>>They say the forest is enchanted. If anything, this place is even more so. Well, two can play this game.
(Roll 2d6 + Magic against a difficulty score of $difficulty.)
Question is, what kind of magic spell could help you with this?
<<include "Choose spell">>\
<<if $spell_count > 0>>\
@@text-align:center;
[[Cast spell -> Bewitch the maze!]] / [[Think again -> Into the maze]]
@@
<<else>>\
Unfortunately, you draw a blank.
@@text-align:center;
[[Try something else -> Broken bridge]]
@@
<</if>>\<<set _modifier = $player.magic + $player.buffs.magic>>
<<set _effort = $player.spellbook[$chosen_spell].level>>
<<set $roll = roll_dice(2, 6, _modifier - _effort)>>
<p>(you roll $roll against a target of $difficulty)</p>
<<switch $chosen_spell>>
<<case "Sunburst">><<include "Sunburst the maze">>
<<case "Cold snap">><<include "Cold-snap the maze">>
<<case "Smoke screen">><<include "Smoke-screen the maze">>
<<case "Undergrowth">><<include "Undergrowth the maze">>
<<case "Windstorm">><<include "Windstorm the maze">>
<</switch>><<if $roll > $difficulty>>
Dazzling sunlight descends upon the forest as your spell takes hold, chasing away all shadows. Once your eyes adjust, many hidden details become apparent. It only lasts for a moment, but the maze has fewer secrets to you now.
<<set $difficulty -= ($roll - $difficulty)>>
<<if $difficulty <= 0>>
<p>In fact you can see a way out, and then it's just a matter of time.</p>
<<set $player.unused_exp += 10>>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<else>>
<p>You still have a way to go before getting out of this place.</p>
@@text-align:center;
<p>[[The maze is still there -> Into the maze]]</p>
@@
<</if>>
<<elseif $roll == $difficulty>>
Dazzling sunlight descends upon the forest as your spell takes hold, chasing away all shadows. You shade your eyes from the glare, and don't have time to notice much until the magic fades.
@@text-align:center;
<p>[[No progress for now -> Into the maze]]</p>
@@
<<else>>
Dazzling sunlight descends upon the forest as your spell takes hold. It hurts your eyes, and makes you lightheaded. Maybe it reveals more of the maze, too, but you don't have time to see much at all.
<<set _damage = 1>>
<<set $player.wounds += _damage>>
<p>(You take _damage wounds that ignore armor.)</p>
<<if $player.wounds >= $player.health>>
<p>You sit down, but then never get up. The maze claims another victim.</p>
@@text-align:center;
<p>[[You are badly hurt]]</p>
@@
<<else>>
<p>You rub your face furiously, determined to do better next time.</p>
@@text-align:center;
<p>[[No progress for now -> Into the maze]]</p>
@@
<<endif>>
<</if>>As your spell takes hold, the air suddenly becomes frigid. Puddles of water on the ground freeze solid; snowflakes form in the air. You clothes are insulated well enough that you're not bothered, but it's also not clear how this helps.
@@text-align:center;
<p>[[So much for that -> Into the maze]]</p>
@@Sparks and flame burst from your fingertips, producing a thick plume of smoke that spreads in front of you as if driven by wind. It soon scatters however, and you're no closer to seeing a way out.
@@text-align:center;
<p>[[So much for that -> Into the maze]]</p>
@@All over the place, strong vines emerge from the ground, growing preternaturally fast, sprouting leaves and flowers. It makes the landscape more lively, but no less of a tangled maze.
@@text-align:center;
<p>[[So much for that -> Into the maze]]</p>
@@<<if $roll > $difficulty>>
At first nothing seems to happen, then a strong wind picks up, and soon settles into a steady breeze. With this guiding line at hand, you can finally make some sense of the maze.
<<set $difficulty -= ($roll - $difficulty)>>
<<if $difficulty <= 0>>
<p>In fact you can see a way out, and then it's just a matter of time.</p>
<<set $player.unused_exp += 10>>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<else>>
<p>But you still have a way to go before getting out of this place.</p>
@@text-align:center;
<p>[[The maze is still there -> Into the maze]]</p>
@@
<</if>>
<<elseif $roll == $difficulty>>
At first nothing seems to happen, then a strong wind picks up, growing stronger, then weaker again, blowing every which way. It's not much help.
@@text-align:center;
<p>[[No progress for now -> Into the maze]]</p>
@@
<<else>>
At first nothing seems to happen, then a strong wind picks up, and soon grows into a howling gale. It pelts you with thorns and twigs, and helps not at all.
<<set _damage = 1>>
<<set $player.wounds += _damage>>
<p>(You take _damage wounds; your armor helps.)</p>
<<if $player.wounds >= $player.health>>
<p>The pain adds up, and soon you fall. The maze claims another victim.</p>
@@text-align:center;
<p>[[You are badly hurt]]</p>
@@
<<else>>
<p>You shake off the pain, determined to do better next time.</p>
@@text-align:center;
<p>[[No progress for now -> Into the maze]]</p>
@@
<<endif>>
<</if>>One rule of hiking in the hills is, always stay on the trail. You might think that since it goes in serpentines that means cutting straight across the loop will get you to the same place faster... until it doesn't. But here you seem to be already lost. Might as well.
(Roll 2d6 + Muscle against a difficulty score of $difficulty.)
@@text-align:center;
[[Take a shortcut]] / [[Think again -> Into the maze]]
@@All right, that's it. You climb straight up a promising slope, whacking bushes left and right whenever one gets in the way.
<<set _modifier = $player.muscle + $player.buffs.muscle>>
<<set _roll = roll_dice(2, 6, _modifier)>>
<<if _roll > $difficulty>>
<p>Somehow you stumble upon another trail at the top, and from there you can see a good way off, enough to make some sense of the maze.</p>
<<set $difficulty -= (_roll - $difficulty)>>
<<if $difficulty <= 0>>
<p>In fact you can see a way out, and then it's just a matter of time.</p>
<<set $player.unused_exp += 10>>
<p>(You roll _roll, getting out in one piece.)</p>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<else>>
<p>But you still have a way to go before getting out of this place.</p>
<p>(You roll _roll, making some progress.)</p>
@@text-align:center;
<p>[[The maze is still there -> Into the maze]]</p>
@@
<</if>>
<<elseif _roll == $difficulty>>
<p>Somehow you stumble upon another trail at the top. You've passed by this corner before.</p>
@@text-align:center;
<p>[[No progress for now -> Into the maze]]</p>
@@
<<else>>
<p>Your clothes snag on thorns. You trip. You slip. By the time you reach another trail at the top, you're covered in fresh cuts, and even more lost.</p>
<<set _damage = adjust_damage($difficulty - _roll, $player.armor)>>
<<set $player.wounds += _damage>>
<p>(You roll _roll, taking _damage wounds; your armor helps.)</p>
<<if $player.wounds >= $player.health>>
<p>In fact you can't take another step. The maze claims another victim.</p>
@@text-align:center;
<p>[[You are badly hurt]]</p>
@@
<<else>>
<p>You catch your breath briefly, determined to do better next time.</p>
@@text-align:center;
<p>[[No progress for now -> Into the maze]]</p>
@@
<<endif>>
<</if>>As the terrain levels out somewhat, the path continues among ruins of what must have been a monastery once. Long-crumbled walls surround a cluster of buildings, or rather what's left of them. Wood has rotten away, but stone still bears the mark of proud craftsmen blessing the place with their best work.<<set $difficulty = 10>>
Peharps the past has left behind a gift to help on your journey. But where?
* [[In the altar]] (now collapsed)
* [[In the library]] (hmm, I wonder)
* [[In the garden]] (it needs a magic touch)
* [[In the cellar]] (through darkness)
* [[Just move on -> Leave ruins]] (you only want to rest)The altar used to be covered by a small dome standing on sculpted pillars, with a building erected around its base. Now it's all a big pile of rubble overgrown by weeds. Yet something gleams in the shadows.
(Roll 2d6 + Muscle against a difficulty score of $difficulty.)
@@text-align:center;
[[Clear the rubble]] / [[Try elsewhere -> Old ruins]]
@@<<set _modifier = $player.muscle + $player.buffs.muscle>>
<<set _roll = median_roll(2, 6, _modifier)>>
The largest debris you can shove aside by hand. Rubble you can move with the help of your cloak. And an armful of herbs serve to sweep the dust away.
<p>(you roll _roll against a target of $difficulty)</p>
<<if _roll >= $difficulty>>
<p>The stone slab is cracked, its frescoes faded, yet it looks better than it has in decades, and that's what matters. And look, there's a handful of silver coins on the ground.</p>
<<set $player.inventory.silver += random(1, 6)>>
<<else>>
<<include "Diamond motif">>
<p>But there's just too much work, so you give up in the end.</p>
<</if>>
@@text-align:center;
<p>[[Time to move on -> Fount in ruins]]</p>
@@Off to a side, a circular wall still stands, supporting the remains of a roof. Inside, cracked marble floors are mostly intact. Shelves have long turned into piles of rotten wood. No books survive, but little nooks all over could still hide something of value.
(Roll 2d6 + Mischief against a difficulty score of $difficulty.)
@@text-align:center;
[[Search the library]] / [[Try elsewhere -> Old ruins]]
@@<<set _modifier = $player.mischief + $player.buffs.mischief>>
<<set _roll = median_roll(2, 6, _modifier)>>
Here, a pillar has collapsed, taking a section of the wall with it. There, thick cobwebs block passage entirely. Elsewhere, the roof looks ready to fall.
<p>(you roll _roll against a target of $difficulty)</p>
<<if _roll >= $difficulty>>
<p>But in a niche within a niche, something shines: a handful of coins.</p>
<<set $player.inventory.silver += random(1, 6)>>
<<else>>
<p>It's no use. You turn around and head back to the door.</p>
<</if>>
@@text-align:center;
<p>[[Time to move on -> Fount in ruins]]</p>
@@In a corner of the court lies a square patch of soil, overlooked by a sagging shed and a couple of small apple trees. One is dead, and the other might not make it through next winter. The rest of the garden fares little better: only some scraggly bushes grow in it, covered in cobwebs.<<set $difficulty = 9>>
@@text-align:center;
<p>[[Maybe you can do something about it -> Bewitch garden]]</p>
@@Many a gardener will use witchcraft when all else fails. No shame in it.
(Roll 2d6 + Magic against a difficulty score of $difficulty.)
Question is, what kind of magic spell could make this place better?
<<include "Choose spell">>\
<<if $spell_count > 0>>\
@@text-align:center;
[[Cast spell -> Bewitch garden!]] / [[Try elsewhere -> Old ruins]]
@@
<<else>>\
Unfortunately, you draw a blank.
@@text-align:center;
[[Try elsewhere -> Old ruins]]
@@
<</if>>\<<set _modifier = $player.magic + $player.buffs.magic>>
<<set _effort = $player.spellbook[$chosen_spell].level>>
<<set $roll = median_roll(2, 6, _modifier - _effort)>>
<p>(you roll $roll against a target of $difficulty)</p>
<<switch $chosen_spell>>
<<case "Sunburst">><<include "Sunburst garden">>
<<case "Cold snap">><<include "Cold-snap garden">>
<<case "Smoke screen">><<include "Smoke-screen garden">>
<<case "Undergrowth">><<include "Undergrowth garden">>
<<case "Windstorm">><<include "Windstorm garden">>
<</switch>>
@@text-align:center;
<p>[[Time to move on -> Fount in ruins]]</p>
@@<<if $roll >= $difficulty>>\
The sun shines brighter as the spell takes hold, bathing the garden in a glow not of this world. You shade your eyes from the dazzling light; even so, you can't help but notice something small shining in a previously shaded corner: a handful of silver coins.<<set $player.inventory.silver += random(1, 6)>>
<<else>>\
The sun shines brighter as the spell takes hold. So hard it hurts your own eyes. You walk out of the garden in a daze, wondering what that accomplished.
<<include "Diamond motif">>
<</if>>\<<if $roll >= $difficulty>>\
As your spell takes hold, the air suddenly becomes frigid. Snowflakes form in the air, and the few remaining plants are covered in frost. All of a sudden, the garden looks even more desolate than before. Nice job breaking it, hero.
<<else>>\
Under your spell, the air suddenly becomes frigid. Snowflakes drift by; a sprinkling of frost covers patches of ground here and there. Not very helpful.
<<include "Diamond motif">><<set $player.unused_exp += $difficulty - $roll>>
<</if>>\Sparks and flame burst from your fingertips, producing a thick plume of smoke that spreads in front of you as if driven by wind. It chases away the insects, but otherwise it's not very clear what you accomplished.<<if $roll >= $difficulty>>\
All over the garden, strong vines emerge from the ground, growing preternaturally fast, sprouting leaves and flowers. All of a sudden, the place looks lively again, albeit in an eerie way. Oh well, you can't have them all.<<set $player.unused_exp += $difficulty>>
<<else>>\
For a long time nothing seems to happen, then a few timid vines poke their heads out the ground, even sprouting tiny leaves before the magic runs out.
<<include "Diamond motif">>
<</if>>\<<if $roll >= $difficulty>>\
At first nothing seems to happen, then a strong wind picks up, and soon grows into a cleansing storm. It blows away the cobwebs, dust and small debris choking the garden. The soil acquires a hearty brown color, and now you can see scattered blades of grass clinging to life all over.
Oh, and something gleams on the ground: a handful of silver coins.<<set $player.inventory.silver += random(1, 6)>>
<<else>>\
At first nothing seems to happen, then a strong wind picks up, and soon grows into a howling gale. It blows away the last leaves of the apple tree and the bushes, and topples what was left of the shed. Now it's all even deader than before. Nice job breaking it, hero.
<</if>>\Broad steps of brick and stone descend down a dark hole in the ground. They're sagging a little in places, but still look sturdy enough. Above this entrance now stands an empty doorframe, and little else. From below emanates a cold draft, and silence.
If you have a torch to spare, who knows what you might unearth.
<<if $player.inventory.torches > 0>>\
@@text-align:center;
[[Search the cellar]] / [[Try elsewhere -> Old ruins]]
@@
<<else>>\
Unfortunately you don't have one.
@@text-align:center;
[[Try elsewhere -> Old ruins]]
@@
<</if>>\You strike a light. Soon, your torch is burning, and you head downstairs. Below is a series of small rooms with vaulted ceilings, partitioned by sturdy arches of brick and mortar. Empty shelves line the walls.
<<set $player.inventory.torches -= 1>>
<<set _roll = random(1, 6) - 1>>
<<set $player.inventory.silver += _roll>>
<<if _roll > 0>>
<p>You're about to turn back, when a glint in the packed floor draws your eyes. There's a handful of silver coins: fair wage for your troubles.</p>
<<else>>
<p>Unfortunately, nothing of value was left behind.</p>
<</if>>
@@text-align:center;
<p>[[Time to move on -> Fount in ruins]]</p>
@@Towards the far edge of the court is a fountain. Once meant to soothe the mind and quench the thirst, it long stopped flowing. Yet rainwater still pools in a surprisingly deep basin lined with stone flowers.
On a closer look, small round shapes litter the bottom, reflecting sunrays.
<<if $player.inventory.silver > 0>>\
@@text-align:center;
[[Toss a coin and make a wish]] / [[Move on now -> Circle of life]]
@@
<<else>>\
@@text-align:center;
[[Too bad you have no coin -> Circle of life]]
@@
<</if>>\Your coin hitting the water sounds deafening in the silence of the ruins. You watch it fall to the bottom, trying to pick just one wish out of many.
<<set $player.inventory.silver -= 1>>
<<switch random(1, 6)>>
<<case 1 2>>
<<include "Rhombus motif">>
<p>Nothing happens. It's all still and quiet just like before. Oh well.</p>
<<case 3 4 5>>
<<include "Circle motif">>
<p>Nothing much happens, of course, but you feel you've learned something.</p>
<<set $player.unused_exp += 5>>
<<case 6>>
<<include "Bubble motif">>
<p>For a moment, the sun shines brighter, a butterfly passes through, and divine birdsong rises in the distance. Small blessings, but such is life.</p>
<<set $player.blessings += 1>>
<</switch>>
@@text-align:center;
<p>[[And the fountain is still there -> Fount in ruins]]</p>
@@No more of this. Enough trials for one day. You walk right through and out the rear gate of the compound.
<<include "Rhombus motif">>
@@text-align:center;
[[Just find a place to rest -> Respite]]
@@As you watch, shadows lengthen and deepen, gathering together into a mass of darkness. It peels off the walls to loom over you with a waver, and hisses.
<<set $enemy = all_monsters.shadow>>\
<<set $enemy.score = $enemy.base>>\
<<set $enemy.wounds = 0>>\
<<include "Diamond motif">>
@@text-align:center;
[[You must fight the shadows -> Shadow beast battle]]
@@A mass of solidified shadow looms over you, hissing without a mouth, seeming to stare balefully though it has no eyes either. Snake-like limbs rake the walls with sharp claws, searchingly. It's there, yet not there; solid, yet ghostly.
(this $enemy.score-point creature is armed with +$enemy.weapon.damage $enemy.weapon.name)
* [[Attack -> Attack shadow]] (roll 2d6 + Muscle)
* [[Bewitch -> Bewitch shadow]] (roll 2d6 + Magic)
* [[Flee -> Flee shadow]] (roll 2d6 + Mischief)<<set _modifier = $player.muscle + $player.buffs.muscle>>
<<set _roll = roll_dice(2, 6, _modifier)>>
<<if _roll > $enemy.score>>
You stare down the creature, not letting your guard down for a moment. One of its many limbs lashes at you; with a swift swipe, you split the shadows apart.
<<set _damage = _roll - $enemy.score + $player.weapon.damage>>
<<set _damage = adjust_damage(_damage, $enemy.armor)>>
<p>(You roll _roll, dealing _damage wounds.)</p>
<<set $enemy.wounds += _damage>>
<<if $enemy.wounds >= $enemy.score>>
<p>The creature's frayed limbs unravel, and it melts into darkness.</p>
<<set $player.unused_exp += $enemy.base>>
@@text-align:center;
<p>[[You stumble through to the other side -> Search the area]]</p>
@@
<<else>>
<p>The creature thrashes and recoils from you, hissing angrily.</p>
@@text-align:center;
<p>[[It still has plenty of limbs -> Shadow beast battle]]</p>
@@
<<endif>>
<<elseif _roll == $enemy.score>>
You stare down the creature, not letting your guard down. One of its many limbs lashes at you; your weapon slices right through, but not before it draws blood.
<p>(You roll _roll, dealing $player.weapon.damage wounds and taking $enemy.weapon.damage of your own.)</p>
<<set $enemy.wounds += adjust_damage($player.weapon.damage, $enemy.armor)>>
<<set $player.wounds += adjust_damage($enemy.weapon.damage, $player.armor)>>
<<if $player.wounds >= $player.health>>
@@text-align:center;
[[You are badly hurt]]
@@
<<elseif $enemy.wounds >= $enemy.score>>
<p>The creature's frayed limbs unravel, and it melts into darkness.</p>
<<set $player.unused_exp += $enemy.base>>
@@text-align:center;
<p>[[You stumble through to the other side -> Search the area]]</p>
@@
<<else>>
<p>The creature thrashes and recoils from you, hissing angrily.</p>
@@text-align:center;
<p>[[It still has plenty of limbs -> Shadow beast battle]]</p>
@@
<<endif>>
<<else>>
You swipe at the elusive enemy repeatedly. It deftly dodges every single time.
Then one of its many limbs lashes at you, painfully drawing blood.
<<set _damage = $enemy.score - _roll + $enemy.weapon.damage>>
<<set _damage = adjust_damage(_damage, $player.armor)>>
<p>(You roll _roll, taking _damage wounds.)</p>
<<set $player.wounds += _damage>>
@@text-align:center;
<<if $player.wounds >= $player.health>>
<p>[[You are badly hurt]]</p>
<<else>>
<p>[[You take a few steps back -> Shadow beast battle]]</p>
<<endif>>
@@
<<endif>><p>With the shifting shadow barring the way, you frantically wonder what sort of magic might be able to stop such a thing.</p>
<<include "Choose spell">>
<<if $spell_count > 0>>
@@text-align:center;
<p>[[Cast spell -> Bewitch shadow!]] / [[Think again -> Shadow beast battle]]</p>
@@
<<else>>
<p>Unfortunately, you draw a blank.</p>
<<include "Diamond motif">>
@@text-align:center;
<p>[[Try something else -> Shadow beast battle]]</p>
@@
<</if>><<set _modifier = $player.magic + $player.buffs.magic>>
<<set _effort = $player.spellbook[$chosen_spell].level>>
<<set $roll = roll_dice(2, 6, _modifier - _effort)>>
<p>(you roll $roll against a target of $enemy.score)</p>
<<switch $chosen_spell>>
<<case "Sunburst">><<include "Sunburst shadow">>
<<case "Cold snap">><<include "Cold-snap shadow">>
<<case "Smoke screen">><<include "Smoke-screen shadow">>
<<case "Undergrowth">><<include "Undergrowth shadow">>
<<case "Windstorm">><<include "Windstorm shadow">>
<</switch>>Dazzling light bursts into the tunnel as your spell takes hold. Even with your eyes shielded, it's still painful. The creature screams, suddenly translucent.
<<if $roll > $enemy.score>>
<<set $player.unused_exp += $enemy.base>>
<p>By the time your magic plays out, nothing stands in your way anymore.</p>
@@text-align:center;
<p>[[You stumble through to the other side -> Search the area]]</p>
@@
<<elseif $roll == $enemy.score>>
<p>Its shadow deepens again as the glare fades, but not as before.</p>
<<set $enemy.wounds += $player.magic + $player.buffs.magic + 1>>
<p>(You deal <<= $player.magic + $player.buffs.magic + 1>> wounds.)</p>
<<if $enemy.score <= $enemy.wounds>>
<p>In fact it soon scatters into the air, and is gone.</p>
<<set $player.unused_exp += $enemy.base>>
@@text-align:center;
<p>[[You stumble through to the other side -> Search the area]]</p>
@@
<<else>>
<<include "Diamond motif">>
@@text-align:center;
<p>[[But it can still fight -> Shadow beast battle]]</p>
@@
<</if>>
<<else>>
<p>Yet it appears unhurt as the glare fades... and then its claws find you.</p>
<<set _damage = $enemy.score - $roll + $enemy.weapon.damage>>
<<set _damage = adjust_damage(_damage, $player.armor)>>
<p>(You take _damage wounds.)</p>
<<set $player.wounds += _damage>>
@@text-align:center;
<<if $player.wounds >= $player.health>>
<p>[[You are badly hurt]]</p>
<<else>>
<p>[[You take a few steps back -> Shadow beast battle]]</p>
<<endif>>
@@
<</if>>As your spell takes hold, the air suddenly becomes frigid. Snowflakes form around you; the trickle of water underfoot freezes solid. And the beast seems unfazed!
<<include "Diamond motif">>
@@text-align:center;
[[So much for that -> Shadow beast battle]]
@@Sparks and flame burst from your fingertips, producing a thick plume of smoke that spreads in front of you as if driven by wind. It doesn't seem to matter.
<<include "Bubble motif">>
@@text-align:center;
[[So much for that -> Shadow beast battle]]
@@Strong vines sprout from the ground, pushing rocks aside as they grow preternaturally fast. They twist around, grasping and grabbing at the long limbs of the beast. But the shadows melt, then reform, making it futile.
@@text-align:center;
[[So much for that -> Shadow beast battle]]
@@At first nothing seems to happen, then a strong wind picks up, and soon grows into a howling gale. The beast screams, clinging desperately to rocks as it frays around the edges.
<<if $roll > $enemy.score>>
<<set $enemy.score -= ($roll - $enemy.score)>>
<<if $enemy.score <= 0 || $enemy.score <= $enemy.wounds>>
<p>It soon scatters into the air, and is gone.</p>
<<set $player.unused_exp += $enemy.base>>
@@text-align:center;
<p>[[You stumble through to the other side -> Search the area]]</p>
@@
<<else>>
<p>It puts itself together after the storm, looking diminished.</p>
@@text-align:center;
<p>[[But it can still fight -> Shadow beast battle]]</p>
@@
<</if>>
<<elseif $roll == $enemy.score>>
<p>It soon reforms and comes at you again, looking no worse for the wear.</p>
<<include "Rhombus motif">>
@@text-align:center;
<p>[[It's a draw... this time -> Shadow beast battle]]</p>
@@
<<else>>
<p>Yet it appears unhurt as it reforms... and then its claws find you.</p>
<<set _damage = $enemy.score - $roll + $enemy.weapon.damage>>
<<set _damage = adjust_damage(_damage, $player.armor)>>
<p>(You take _damage wounds.)</p>
<<set $player.wounds += _damage>>
@@text-align:center;
<<if $player.wounds >= $player.health>>
<p>[[You are badly hurt]]</p>
<<else>>
<p>[[You take a few steps back -> Shadow beast battle]]</p>
<<endif>>
@@
<</if>>There's nowhere to run in the twisting tunnel... or is there? You stumble backwards, hiding behind boulders, until you reach a dark niche between two stone pillars. The creature doesn't pursue. It's busy snuffing out the light you left behind.
<<set _modifier = $player.mischief + $player.buffs.mischief>>
<<set _roll = median_roll(2, 6, _modifier)>>
<<if _roll >= $enemy.score>>
<p>(You roll _roll, getting away in one piece.)</p>
@@text-align:center;
<p>[[It's dark and quiet again -> Grotto in darkness]]</p>
@@
<<else>>
<<set _damage = adjust_damage($enemy.score - _roll, $player.armor)>>
<<set $player.wounds += _damage>>
<<set $player.unused_exp += _damage>>
<p>(You roll _roll, taking _damage wounds; your armor helps.)</p>
<p>Only then do you notice you're bleeding from those shadowy claws.</p>
<<if $player.wounds >= $player.health>>
@@text-align:center;
<p>[[You are badly hurt]]</p>
@@
<<else>>
@@text-align:center;
<p>[[It's dark and quiet again -> Grotto in darkness]]</p>
@@
<<endif>>
<</if>>Where the trail bends around a rock shoulder, shying away from a precipitous drop, an old tree clings to the edge, mostly dead but for scattered leaves. It seems to squint at you with furrowed brows; branches sway even as the wind has stopped for now. As you draw near, it groans from a hollow in the middle of the trunk. You take a step back, and trip on a root that wasn't there a moment ago.
<<set $enemy = all_monsters.tree>>\
<<set $enemy.score = $enemy.base>>\
<<set $enemy.wounds = 0>>\
@@text-align:center;
[[You must face it -> Evil tree battle]]
@@A gnarly old tree, animated by more than the wind, reaches around you with branches that creak and groan. Roots churn the ground, grasping at your feet. A jagged hollow in the middle of the trunk emits a sound part wail, part cackle.
(this $enemy.score-point creature is unarmed and unarmored)
* [[Attack -> Attack tree]] (roll 2d6 + Muscle)
* [[Bewitch -> Bewitch tree]] (roll 2d6 + Magic)
* [[Flee -> Flee tree]] (roll 2d6 + Mischief)<<set _modifier = $player.muscle + $player.buffs.muscle>>
<<set _roll = roll_dice(2, 6, _modifier)>>
<<if _roll >= $enemy.score>>
You stare down the creature, not letting your guard down for a moment. One of its wooden limbs lashes at you; with a swift swipe, you break it in twain.
<<set _damage = _roll - $enemy.score + $player.weapon.damage>>
<<set _damage = adjust_damage(_damage, $enemy.armor)>>
<p>(You roll _roll, dealing _damage wounds.)</p>
<<set $enemy.wounds += _damage>>
<<if $enemy.wounds >= $enemy.score>>
<p>The tree shrivels into a wrinkled husk and stops moving.</p>
<<set $player.unused_exp += $enemy.base>>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<else>>
<p>The tree writhes horribly, creaking and groaning.</p>
@@text-align:center;
<p>[[It still has plenty of branches -> Evil tree battle]]</p>
@@
<<endif>>
<<else>>
You swipe at the cackling enemy again and again. It blocks and parries your every move. Then one of its wooden limbs lashes out, hitting you hard.
<<set _damage = $enemy.score - _roll>>
<<set _damage = adjust_damage(_damage, $player.armor)>>
<p>(You roll _roll, taking _damage wounds.)</p>
<<set $player.wounds += _damage>>
@@text-align:center;
<<if $player.wounds >= $player.health>>
<p>[[You are badly hurt]]</p>
<<else>>
<p>[[You take a few steps back -> Evil tree battle]]</p>
<<endif>>
@@
<<endif>><p>With those wooden limbs whipping around, you frantically wonder what sort of magic might be able to stop such a creature.</p>
<<include "Choose spell">>
<<if $spell_count > 0>>
@@text-align:center;
<p>[[Cast spell -> Bewitch tree!]] / [[Think again -> Evil tree battle]]</p>
@@
<<else>>
<p>Unfortunately, you draw a blank.</p>
<<include "Diamond motif">>
@@text-align:center;
<p>[[Try something else -> Evil tree battle]]</p>
@@
<</if>><<set _modifier = $player.magic + $player.buffs.magic>>
<<set _effort = $player.spellbook[$chosen_spell].level>>
<<set $roll = roll_dice(2, 6, _modifier - _effort)>>
<p>(you roll $roll against a target of $enemy.score)</p>
<<switch $chosen_spell>>
<<case "Sunburst">><<include "Sunburst tree">>
<<case "Cold snap">><<include "Cold-snap tree">>
<<case "Smoke screen">><<include "Smoke-screen tree">>
<<case "Undergrowth">><<include "Undergrowth tree">>
<<case "Windstorm">><<include "Windstorm tree">>
<</switch>>The sun shines brighter as the spell takes hold. You shade your eyes from the dazzling light, but if anything the tree seems pleased by it.
@@text-align:center;
[[So much for that -> Evil tree battle]]</p>
@@As your spell takes hold, the air suddenly becomes frigid. Puddles of water on the ground freeze solid; snowflakes form in the air. The tree mocks you with creaky laughter. "I survived more winters than you!" it appears to say.
<<if $roll > $enemy.score>>
<<set $enemy.score -= ($roll - $enemy.score)>>
<<if $enemy.score <= 0 || $enemy.score <= $enemy.wounds>>
<p>Yet it slows down and soon stops moving completely.</p>
<<set $player.unused_exp += $enemy.base>>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<else>>
<p>It shrivels and slows down anyway, for all its bravado.</p>
@@text-align:center;
<p>[[But it can still fight -> Evil tree battle]]</p>
@@
<</if>>
<<elseif $roll == $enemy.score>>
<p>Sure enough, it doesn't look any worse for the wear. But neither does it strike back, for the moment.</p>
@@text-align:center;
<p>[[It's a draw... this time -> Evil tree battle]]</p>
@@
<<else>>
<p>Sure enough, it doesn't look any worse for the wear. And it strikes back.</p>
<<set _damage = $enemy.score - $roll>>
<<set _damage = adjust_damage(_damage, $player.armor)>>
<p>(You take _damage wounds.)</p>
<<set $player.wounds += _damage>>
@@text-align:center;
<<if $player.wounds >= $player.health>>
<p>[[You are badly hurt]]</p>
<<else>>
<p>[[You take a few steps back -> Evil tree battle]]</p>
<<endif>>
@@
<</if>>Sparks and flame burst from your fingertips, producing a thick plume of smoke that spreads in front of you as if driven by wind. The creature recoils in fear at first, but soon realizes there's not much fire, and resumes its attacks.
@@text-align:center;
[[So much for that -> Evil tree battle]]</p>
@@Strong vines sprout from the ground, pushing rocks aside as they grow preternaturally fast. They twist around, coiling around the tree trunk, entangling its roots and branches.
<<if $roll > $enemy.score>>
<p>The creature trashes, even managing to break a few of them, but its movements are severely constrained now.</p>
<<set $enemy.score -= ($roll - $enemy.score)>>
<<if $enemy.score <= 0 || $enemy.score <= $enemy.wounds>>
<p>In fact it soon stops moving completely.</p>
<<set $player.unused_exp += $enemy.base>>
@@text-align:center;
<p>[[You catch your breath and move on -> Search the area]]</p>
@@
<<else>>
@@text-align:center;
<p>[[It can still fight however -> Evil tree battle]]</p>
@@
<</if>>
<<elseif $roll == $enemy.score>>
<p>But the creature proves stronger, and breaks its bounds one by one. At least that keeps it too busy to resume its attack.</p>
@@text-align:center;
<p>[[It's a draw... this time -> Evil tree battle]]</p>
@@
<<else>>
<p>But they're too weak, and snap easily as the creature trashes. And then it hits back.</p>
<<set _damage = $enemy.score - $roll>>
<<set _damage = adjust_damage(_damage, $player.armor)>>
<p>(You take _damage wounds.)</p>
<<set $player.wounds += _damage>>
@@text-align:center;
<<if $player.wounds >= $player.health>>
<p>[[You are badly hurt]]</p>
<<else>>
<p>[[You take a few steps back -> Evil tree battle]]</p>
<<endif>>
@@
<</if>><<if $roll > $enemy.score>>
At first nothing seems to happen, then a strong wind picks up, and soon grows into a howling gale. The creature screams as several of its branches snap.
<<set $enemy.wounds += $roll - $enemy.score>>
<<if $enemy.score <= $enemy.wounds>>
<p>It soon shrivels into a wrinkled husk and stops moving.</p>
<<set $player.unused_exp += $enemy.base>>
@@text-align:center;
<p>[[Find your bearings -> Search the area]]</p>
@@
<<else>>
@@text-align:center;
<p>[[But it can still fight -> Evil tree battle]]</p>
@@
<</if>>
<<elseif $roll == $enemy.score>>
At first nothing seems to happen, then a strong wind picks up, and soon grows into a howling gale. The tree sways, waving its branches, but resists.
@@text-align:center;
<p>[[It's a draw... this time -> Evil tree battle]]</p>
@@
<<else>>
At first nothing seems to happen, then a strong wind picks up, and soon grows into a howling gale. The tree just laughs however and whips its branches at you.
<<set _damage = $enemy.score - $roll>>
<<set _damage = adjust_damage(_damage, $player.armor)>>
<p>(You take _damage wounds.)</p>
<<set $player.wounds += _damage>>
@@text-align:center;
<<if $player.wounds >= $player.health>>
<p>[[You are badly hurt]]</p>
<<else>>
<p>[[You take a few steps back -> Evil tree battle]]</p>
<<endif>>
@@
<</if>>Wait. Why are you even fighting an enemy that's fixed in place. You back away. Roots snake out of the ground to trip you up. Long, hanging branches whip around. You dodge and duck and keep going.
<<set _modifier = $player.mischief + $player.buffs.mischief>>
<<set _roll = median_roll(2, 6, _modifier)>>
<<if _roll >= $enemy.score>>
<p>It feels like a long time until you're far enough to be safe.</p>
<p>(You roll _roll, getting away unscathed.)</p>
<<set $player.unused_exp += _roll - $enemy.score>>
@@text-align:center;
<p>[[Find your bearings -> Respite]]</p>
@@
<<else>>
<<set _damage = adjust_damage($enemy.score - _roll, $player.armor)>>
<<set $player.wounds += _damage>>
<<set $player.unused_exp += _damage>>
<p>(You roll _roll, taking _damage wounds; your armor helps.)</p>
<p>Yet you take blow after blow by the time you make it to safety.</p>
<<if $player.wounds >= $player.health>>
@@text-align:center;
<p>[[You are badly hurt]]</p>
@@
<<else>>
@@text-align:center;
<p>[[Find your bearings -> Respite]]</p>
@@
<<endif>>
<</if>>To cross the enchanted forest, they say, you have to find three signs. Only then will you see the way to the other side.
You'll know the signs when you see them, they say. So far you saw <<= numeral($player.signs)>>.
It's quiet under the trees, but for a lone bird singing in the distance. Blades of crude green sprout from the ground in rare shafts of sunlight. At length, the path forks. Towards your left, it climbs into a ravine between broken hills, and to the right it goes on meandering among boulders.
* [[Up the steep, straight path -> Hillside]]
* [[Take the long way around -> Forest]]Exposed layers of rock raise abruptly at either hand, stubborn trees clinging to the slopes wherever their roots can take hold. The path climbs steeply over broken ground that might have been a stream bed once. Time goes by; how much, it's hard to say, as the sun is only visible now and then. The perfume of pine needles drifts down the slopes. Above, a bird of prey soars.
Presently, something looms ahead. You slow down and grip your weapon more firmly.
@@text-align:center;
[[There's no turning back now -> Hillside encounter]]
@@<<switch random(1, 3)>>
<<case 1>><<include "Old ruins">>
<<case 2>><<include "Evil tree">>
<<case 3>><<include "Bramble maze">>
<</switch>>Here, the path climbs over some mound; there, it dips into a hollow. Where it doesn't swerve around thickets, it goes right across a glade. Time goes by; the sun moves across the sky. How much, that's hard to say, with all the turns you've taken. The perfume of wild flowers drifts by from somewhere; unseen creatures stir in the bushes. Or was that just a gust of wind?
Presently, something looms ahead. You slow down and grip your weapon more firmly.
@@text-align:center;
[[There's no turning back now -> Forest encounter]]
@@<<switch random(1, 3)>>
<<case 1>><<include "Giant hornets">>
<<case 2>><<include "Broken bridge">>
<<case 3>><<include "Forest grotto">>
<</switch>><<switch random(1, 2)>>
<<case 1>><<include "Berry bushes">>
<<case 2>><<include "Abandoned hut">>
<</switch>>Around a circle of old trees sprawls a thicket of berry bushes, laden with bright dots in a dozen shades of red and blue. Bees buzz all over the place; somewhere, sparrows are quarreling. A faint breeze rustles branches.
* [[Gather some berries]]
* [[Just find a place to rest -> Respite]]Some of them are poisonous, others over-ripe, but berries are plentiful anyway.
<<switch random(1, 3)>>\
<<case 1>>Whoa! What was that? You didn't have time to see it well in the shadows, but it looked ready to make a meal out of you instead. Better leave it alone.
<<default>>The sun moves steadily across the sky while you work. With patience, you manage to gather enough for a meal.<<set $player.inventory.meals += 1>>
<</switch>>\
@@text-align:center;
[[Move on already -> Circle of life]]
@@A small hut sags against the shoulder of a mound. It's starting to blend into its surroundings. Whoever once lived here is long gone, as it soon becomes clear from up close.
<<switch random(1, 2)>>\
<<case 1>>Inside, you find a rotting cot made for someone smaller than you, and clay pots once used for storage.
<<case 2>>Inside, you find rickety bedding made for someone bigger than you, and a trunk once used for storage.
<</switch>>\
* [[Rummage through the remains]]
* [[Just find a place to rest -> Respite]]This feels wrong, but then again the previous owner doesn't need their stuff anymore by the looks of it, while in your hands it could help save the land.
<<switch random(1, 6)>>\
<<case 1>>Unfortunately, none of it seems to be usable anymore. You leave empty-handed.
<<case 2 3>>The only usable thing you manage to find is a torch. Oh well, it should come in handy anyway.<<set $player.inventory.torches += 1>>
<<case 4 5>>You find an old scroll that crumbles to dust in your hands, but not before you commit to memory a spell of <<= give_random_spell($player)>>.
<<case 6>>Most of it is garbage now, but you find a torch, and even an old scroll. The latter crumbles to dust in your hands, but not before you commit to memory a spell of <<= give_random_spell($player)>>.<<set $player.inventory.torches += 1>>
<</switch>>\
@@text-align:center;
[[Go on now -> Circle of life]]
@@<<run cool_down_buffs($player)>>
<<switch random(1, 2)>>
<<case 1>><<include "Wellspring">>
<<case 2>><<include "Peaceful corner">>
<</switch>>A trickle of water makes its way down the face of a cliff, bouncing merrily off every protrusion before it pools among tall herbs at the bottom. Round stones poke their shiny bald heads out of the basin. Higher than outstretched hands can reach, a holy symbol is carved into the rock.
* [[Drink the water]]
* [[Wash your wounds]]
* [[Leave it alone]]<<if roll_dice(2, 6) === 7>>\
As you sip from the cold, clear water that splashed into your outstretched fists, the sun burns hotter; birds chirp louder; for a moment, you can see farther than eagles in the sky.
You're well underway by the time you come to your senses, unsure of what happened next. The blessings of higher powers come at a price.<<set $player.blessings += 1>><<set $player.buffs.mischief -= 1>>
@@text-align:center;
[[Find your bearings -> Circle of life]]
@@
<<else>>\
As you sip from the cold, clear water that splashed into your outstretched fists, your mind runs faster; your senses become sharper. Small blessings, but you need all the help you can get.<<set $player.buffs.mischief += 1>>
<<include "Bubble motif">>
@@text-align:center;
[[Move on now -> Circle of life]]
@@
<</if>>\<<if $player.wounds > 0>>\
<<run heal_wounds($player, 3)>>As clear water passes over bruises and cuts, they appear to get smaller under your eyes. You feel better.
<<else>>\
<<set $player.buffs.muscle += 1>>As clear water passes over unblemished skin, you feel your body lighter, ready to spring and swing.
<</if>>\
<<include "Circle motif">>
@@text-align:center;
[[But you can't dawdle -> Circle of life]]
@@You have water in your flask, and besides, there's something preternatural about all this. Best not to disturb it.
<<include "Circle motif">>
@@text-align:center;
[[Just move on -> Circle of life]]
@@In the shadow on a blooming walnut tree, a flat stone invites rest. Not far from there the ground falls, letting you see far over the treetops. For a while, even the dark clouds passing across the sky seem to give you a berth.
* [[Eat and rest]]
* [[Recite a prayer]]
* [[Just press onward]]<<if $player.inventory.meals > 0>>
<<if $player.wounds > 0>>
<<set $player.inventory.meals -= 1>>
<<run heal_wounds($player, 3)>>
You unpack some of the food from your bag and eat up, forgetting about danger for a few moments. It leaves you feeling much better.
<<else>>
<<set $player.buffs.muscle += 1>>
<<set $player.buffs.mischief -= 1>>
You unpack some of the food from your bag and eat up. With a full belly, you feel stronger, though on the flipside it dulls the mind a little bit.
<</if>>
<<else>>
<<if $player.wounds > 0>>
<<run heal_wounds($player, 1)>>
You rummage in your bag for something to eat, but in vain. Still, you feel better after a little rest.
<<else>>
<<set $player.buffs.mischief += 1>>
You rummage in your bag for something to eat, but in vain. Still, a little rest helps clear the mind.
<</if>>
<</if>>
<<include "Circle motif">>
@@text-align:center;
<p>[[Go on now -> Circle of life]]</p>
@@<<if roll_dice(2, 6) === 7>>
<p>You whisper a prayer to the protector of your village. As words flow, the world becomes brighter, and birdsong rises into a divine chorus; for a moment, you feel like being at the heart of all things.</p>
<p>You're well underway by the time you come to your senses, unsure of what happened next. The blessings of higher powers come at a price.</p>
<<set $player.blessings += 1>><<set $player.buffs.mischief -= 1>>
@@text-align:center;
<p>[[Find your bearings -> Circle of life]]</p>
@@
<<else>>
<p>You whisper a prayer to the protector of your village. Nobody answers, but the world is a brighter place for a moment; a magical place. Small blessings, but you need all the help you can get.</p>
<<set $player.buffs.magic += 1>>
<<include "Bubble motif">>
@@text-align:center;
<p>[[Move on now -> Circle of life]]</p>
@@
<</if>>You're too wound up to rest, and not hungry enough to eat. Besides, time flies, and who knows what dangers lurk in the shadows.
<<include "Circle motif">>
@@text-align:center;
[[Just move on -> Circle of life]]
@@<<if $player.unused_exp < exp_to_advance($player)>>\
You wander the forest for a while after that, looking for a sign. The path meanders aimlessly. They say the enchanted forest wants to keep people for itself, and won't let visitors go too soon. One must know its tricks.
<<include "Bubble motif">>
@@text-align:center;
[[So far it's not working -> First page]]
@@
<<else>>\
As your long march through the forest settles into a new rhythm, a sight like few others reveals itself before your eyes...
@@text-align:center;
[[You look on -> A sign!]]
@@
<</if>>\<<switch $player.signs>>
<<case 0>>As you watch, the skies open, and you can see with clarity to enormous distances. Beyond the horizon rises a mountain like no other, its snow-capped peak crowned with sunrays.
<<case 1>>Somewhere ahead rises a pine tree, so tall it appears to prop up the sky. No path leads towards the hill this giant grows from: people aren't meant to disturb places like those.
<<case 2>>Not far from the path, past a marshy stretch, gleams a pond, and right in its middle rises this tower of wood and stone, a holy symbol carved out of its top. It stands alone.
<<default>>(Oops! Something's wrong! Somehow you're stuck in the forest.)
<</switch>>
<<set $player.signs += 1>>
<<set $continue_to = "A fork in the path">>
<br><br><<include "Level up!">><<if $player.signs < 3>>\
You march on with renewed vigor, but the forest isn't done with you yet. As the path twists and turns, you begin to recognize familiar landmarks.
<<include "Circle motif">>
@@text-align:center;
[[In fact... -> First page]]
@@
<<else>>\
You march on with renewed vigor, and soon the landscape begins to change. A wider path descends gently over smooth ground. Trees are growing farther apart. After a while, houses can be seen. Big stone houses, not like in the village.
<<include "Spire motif">>
@@text-align:center;
''To be continued!''
@@
<</if>>\As you bleed from one wound too many, a loud buzzing fills your ears, and everything goes dark. The fall that follows feels long indeed.
<<if $player.blessings > 0>>\
You wake up before long, not far from the same place. Seems you were left for dead. You count your blessings and move on. Next time you might not be so lucky.
<<set $player.wounds = 5>><<set $player.blessings -= 1>>\
@@text-align:center;
[[Find your bearings -> Circle of life]]
@@
<<else>>\
You wake up much later, in what turns out to be the ranger's hut. Things only got worse in the mean time, and nobody else seems able or willing to step up.
Maybe they'll give you another chance, then. But not before you rest.
@@text-align:center;
''The End?''
@@
<</if>>\All your neighbors have gathered to see you on the way. You are, after all, their last hope to be rid of the terrible curse that has befallen the village. Surely it has nothing to do with them hoping never to see you again. Unless, presumably, you succeed. But can you? Better people have tried, and nobody knows their fate.
The forest looms ahead of you, dark and foreboding like a coming storm. The path leads straight in. It's the only one.
@@text-align:center;
[[Proceed on your journey->Character creation]]
@@No Time To Play, 2021a twisted, tangled fairy taleFelix Pleşoianu[[Credits]]
[[Help]]
[[License]]@@text-align:center;
''The Unwanted Hero''
A 2021 game by [[No Time To Play -> https://notimetoplay.org/]].
Made with [[Tweego -> http://www.motoslave.net/tweego/]] and [[Sugarcube 2 -> http://www.motoslave.net/sugarcube/2/]].
Font: [[NovaCut -> https://fontlibrary.org/en/font/nova]],
courtesy of the Open Font Library.
<<back "resume play">>
@@//The Unwanted Hero// uses the [[Gamebooks & Goonies -> https://notimetoplay.itch.io/gng]] rules. You don't need to be familiar with them: the game rolls dice as needed, and in the open at that. You might want to know a few details specific to this story:
* Gameplay isn't very well balanced; rogues gain experience slowly, and playing a mage is basically hard mode.
* There's an easy and a hard path. You can gather enough experience either way.
* Every choice you make is a trade-off. Every spell you cast poses a danger. And just like in real life, you learn from failure.
Hope this helps!
@@text-align:center;
<<back "resume play">>
@@//The Unwanted Hero// is free and open source software under the [[Artistic License 2.0->https://opensource.org/licenses/Artistic-2.0]]; a copy is included in the source package (where available). Unless you plan to modify or distribute the game, don't worry about it.
The NovaCut font is provided under the SIL Open Font License. You only need to mind that if you extract the font file from the game for other uses.
@@text-align:center;
<<back "resume play">>
@@As the village shrinks into the distance, you reflect on life until that point.
<label>What's your name?
<<textbox "$player_name" "Hero" autofocus>></label>
What were you in the village?<<set $player_class = "hero">>
<label><<radiobutton "$player_class" "fighter">> A retired soldier</label>
<label><<radiobutton "$player_class" "rogue">> The village trickster</label>
<label><<radiobutton "$player_class" "mage">> The local hedge witch</label>
@@text-align:center;
[[Go on->Backstory]]
@@<<set $player = create_character($player_name)>><<set $player.blessings = 1>>
''<<=$player_name>> the <<=$player_class>>''
<<switch $player_class>>
<<case "fighter">>
<p>For long years you've known nothing but endless marches, mud and cold, bloody battles. At long last, the kingdom was at peace. You hoped to settle down and become a carpenter, like your father taught you. But you can no longer fit in with the other villagers. They all know you have done bad things.</p>
(Muscle +1, Health +1, Magic -1)
<<set $player.muscle += 1>><<set $player.magic -= 1>><<set $player.health += 1>>
<<run equip_character($player, "fighter")>>
<<case "rogue">>
<p>For the longest time, life was good. The men loved you because you knew all the songs. The women loved you because you knew all the gossip. Your tricks entertained the children, annoyed the uppity and sometimes saved the day. But now they're always whispering. How you never settled down. How the richest people in the village seem to misplace coin purses all the time. How you're just different.</p>
(Muscle -1, Mischief +1)
<<set $player.muscle -= 1>><<set $player.mischief += 1>>
<<run equip_character($player, "rogue")>>
<<case "mage">>
<p>When the crops were poor, or the wolves attacked, the other villagers were quick to blame you. But when a child was sick, it's you they would come running to for help. Such is the life of a witch, and you try not to complain too much. As of late, though, the accusations have been multiplying, and people don't seem to want your help anymore.</p>
(Muscle -1, Health -1, Magic +1)
<<set $player.muscle -= 1>><<set $player.magic += 1>><<set $player.health -= 1>>
<<run equip_character($player, "mage")>>
<<default>>
<blockquote>Jack of all trades, master of none,<br>
though oftentimes better than master of one.</blockquote>
<p>So goes the rhyme, and so you've said to yourself for the longest time. But lately, the other villagers just call you useless, even though you helped all of them more often than you can count.</p>
<<run equip_character($player, "hero")>>
<</switch>>
@@text-align:center;
<p>[[Yes, that was it->Title page]] / <<back "No, choose again">></p>
@@@@text-align:center;
!<<=Story.title>>
<<display "StorySubtitle">>
by
''<<display "StoryAuthor">>''
[[Turn the page->First page]]
@@<<if !tags().contains("meta")>>
<div class="header">
<span class="left">Health <<= $player.health - $player.wounds>></span>
Experience <<=$player.experience + $player.unused_exp>>
<span class="right">Signs: $player.signs</span>
</div>
<</if>><<if !tags().contains("meta")>>
@@text-align:center;Margin-top: 2em;
<<nobr>>
<<button "Stats">><<script>>
Dialog.setup("Charsheet");
Dialog.wiki(Story.get("Charsheet").processText());
Dialog.open();
<</script>><</button>>
<<button "Stuff">><<script>>
Dialog.setup("Inventory");
Dialog.wiki(Story.get("Inventory").processText());
Dialog.open();
<</script>><</button>>
<<button "Spells">><<script>>
Dialog.setup("Spellbook");
Dialog.wiki(Story.get("Spellbook").processText());
Dialog.open();
<</script>><</button>>
<</nobr>>
@@
<</if>>@@text-align:center;
!! $player_name the $player_class
@@\
<<for _attr range all_buffs>>\
* <<= _attr.toUpperFirst()>>: +<<=$player[_attr] + $player.buffs[_attr]>>
<</for>>\
@@text-align:center;
Wounds: $player.wounds / $player.health
Experience: $player.unused_exp / $player.experience
Blessings: $player.blessings Signs: $player.signs
<<button "close">><<run Dialog.close()>><</button>>
@@@@text-align:center;
''You are carrying''
Meals: $player.inventory.meals
Torches: $player.inventory.torches
Silver: $player.inventory.silver
Weapon:
$player.weapon.name (+$player.weapon.damage damage)
Armor:
$player.armor.name (+$player.armor.protection protection)
<<button "close">><<run Dialog.close()>><</button>>
@@@@text-align:center;
''Spells you know''
@@
<<for _spell, _data range $player.spellbook>>\
* _spell (level _data.level) <!-- x<<=_data.charges>> -->
<</for>>\
@@text-align:center;
<<button "close">><<run Dialog.close()>><</button>>
@@<<set $spell_count to 0>>
<<for _spell, _data range $player.spellbook>>
<label><<radiobutton "$chosen_spell" _spell checked>> _spell</label><br>
<<set $spell_count += 1>>
<</for>>You've come far indeed. You can do more now. But in what area?
@@text-align:center;
<label><<radiobutton "_ability" "muscle" checked>> Muscle</label> \
<label><<radiobutton "_ability" "mischief">> Mischief</label> \
<label><<radiobutton "_ability" "magic">> Magic</label>
<<link "Go on now" $continue_to>>
<<set $player[_ability] += 1>>
<<set $player.health += 1>>
<<set _exp = exp_to_advance($player)>>
<<set $player.unused_exp -= _exp>>
<<set $player.experience += _exp>>
<</link>>
@@@@text-align:center;
<svg viewBox="-5 -5 10 10" width="200" height="200">
<g fill="white" stroke="black" stroke-width="0.5">
<circle cx="-2.5" cy="0" r="2"/>
<circle cx="2.5" cy="0" r="2"/>
<circle cx="0" cy="-2.5" r="2"/>
<circle cx="0" cy="2.5" r="2"/>
<circle cx="0" cy="0" r="3"/>
</g>
</svg>
@@@@text-align:center;
<svg viewBox="-10 -2.5 20 5" width="400" height="100">
<g fill="white" stroke="black" stroke-width="0.5">
<circle cx="-8" cy="0" r="1"/>
<circle cx="8" cy="0" r="1"/>
<circle cx="-3" cy="0" r="1"/>
<circle cx="3" cy="0" r="1"/>
<circle cx="-5.5" cy="0" r="1.5"/>
<circle cx="5.5" cy="0" r="1.5"/>
<circle cx="0" cy="0" r="2"/>
</g>
</svg>
@@@@text-align:center;
<svg viewBox="-5 -5 10 10" width="200" height="200">
<g fill="white" stroke="black" stroke-width="0.5" transform="rotate(45)">
<rect x="-3" y="-3" width="2" height="2" />
<rect x="1" y="1" width="2" height="2" />
<rect x="-3" y="1" width="2" height="2" />
<rect x="1" y="-3" width="2" height="2" />
<rect x="-2" y="-2" width="4" height="4"/>
</g>
</svg>
@@@@text-align:center;
<svg viewBox="-10 -2.5 20 5" width="400" height="100">
<g fill="white" stroke="black" stroke-width="0.5">
<g transform="translate(-5.75)">
<g transform="translate(-2.5)">
<rect x="-0.75" y="-0.75" width="1.5" height="1.5" transform="rotate(45)"/>
</g>
<g transform="translate(2.5)">
<rect x="-0.75" y="-0.75" width="1.5" height="1.5" transform="rotate(45)"/>
</g>
<rect x="-1" y="-1" width="2" height="2" transform="rotate(45)"/>
</g>
<g transform="translate(5.75)">
<g transform="translate(-2.5)">
<rect x="-0.75" y="-0.75" width="1.5" height="1.5" transform="rotate(45)"/>
</g>
<g transform="translate(2.5)">
<rect x="-0.75" y="-0.75" width="1.5" height="1.5" transform="rotate(45)"/>
</g>
<rect x="-1" y="-1" width="2" height="2" transform="rotate(45)"/>
</g>
<rect x="-1.5" y="-1.5" width="3" height="3" transform="rotate(45)"/>
</g>
</svg>
@@@@text-align:center;
<svg viewBox="-20 -1 40 10" width="400" height="100">
<g fill="white" stroke="black" stroke-width="1">
<polygon points="-19,8 -17,4 -16,6 -15,5 -14,6 -13,2 -12,6 -9,4 -6,6 -3,3 -1,5 0,0 1,5 3,3 6,6 9,4 12,6 13,2 14,6 15,5 16,6 17,4 19,8"/>
</g>
</svg>
@@