Apologies! You are using an outdated browser which lacks required capabilities. Please upgrade your browser to improve your experience.
Initializing. Please wait…
Dragon Roost Cavern from Nintendo's //The Legend of Zelda: The Wind Waker//
(adapted into an interactive story by David E. Sky)
You're not so keen on entering Dragon Roost Cavern; you'd feel much more comfortable if it were named, say, Dragon-Left-And-Is-Never-Coming-Back Cavern. But you have to find Medli! She is young, unarmed, and determined to face the angry Valoo the Dragon all by herself—which means you have to catch her before she gets herself flambéd.
As you step into the first chamber of Dragon Roost Cavern, the wall itself slams shut behind you. No turning back now.<<set $LookedAtLitTorches to false>><<set $LookedAtBurntOutTorch to false>><<set $Hearts to 6>><<set $GoblinHealth to 6>>
[[Look around|StartOfRoom]]You're in large, round stone chamber lit by [[torches|LookAtTorches]] and filled with [[plumes of steam|LookAtSteam]] shooting from small holes throughout the walls and floor. <<if $GoblinHealth is 0>>There's a [[dead goblin|LookAtDeadGoblin]] off to the side.<<if $TookStick is true>><<else>> His [[stick|LookAtStick]] lies on the ground next to him.<</if>><<else>>[[An ugly goblin|LookAtGoblin]] is standing off to one side. He appears to be asleep.<</if>> Past him is a [[closed door|LookAtDoor]]. <<if $TorchLit is true>>And in the center of the room is a [[giant chest|Chest]]<<if $OpenedChest is true>>, now open and empty<<else>><</if>>.<<else>><</if>>
<<display "Footer">>Four torches are evenly spaced on the walls<<if $TorchLit isnot true>>. Three blaze brightly, but one is burnt out.<<if $LookedAtBurntOutTorch is true and $LookedAtLitTorches is false>> The latter is firmly bolted to the wall.<<else>><</if>><<if $LookedAtLitTorches is true and $LookedAtBurntOutTorch is false>> The lit torches are firmly bolted to the wall.<<else>><</if>><<if $LookedAtBurntOutTorch is true and $LookedAtLitTorches is true>> All are firmly bolted to the wall; they aren't moving.<<else>><</if>>
[[Examine the burnt-out torch|BurntOutTorch]]
[[Examine the lit torches|LitTorches]]
[[Look around the room again|StartOfRoom]]
<<display "Footer">><<else>>, all of them burning brightly.
<<display StartOfRoom>><</if>><<if $LookedAtSteam is true>>The steam adds to the ominous feel of Dragon Roost Cavern, but it seems to hold no actual significance.<<else>>One of the steam clouds shoots out from a nearby hole, and you stick your head in close. You can feel its heat, but it quickly disperses into the cold, damp atmosphere of the chamber.
The steam adds to the ominous feel of Dragon Roost Cavern, but it seems to hold no actual significance.<</if>><<set $LookedAtSteam to true>>
<<display "StartOfRoom">><<if $LookedAtGoblin is true>>The goblin is hunched over, apparently deeply asleep. But he's maintaining a solid grip on a sturdy wooden stick as long as your sword. Is he supposed to be guarding the door? Is he really asleep? What is a goblin, exactly?<<else>>The goblin is hunched over, his eyelids closed. He looks like he's deeply asleep.
But he's maintaining a solid grip on a sturdy wooden stick as long as your sword. Is he supposed to be guarding the door? Is he really asleep? What is a goblin, exactly?<</if>><<set $LookedAtGoblin to true>>
[[Test how asleep the goblin is|TestGoblin]]
[[Grab the goblin's stick|GrabStick]]
[[Back away from the goblin|StartOfRoom]]
<<display "Footer">><<if $FoundKey is true>><<if $LookedAtDoor is true>>Stepping over the flame outlined in the floor and moving past the dead goblin, you look at the giant door with its large keyhole.<<else>>On your way across the chamber to check out the door, you nearly trip over a small groove. Looking down, you see the faint outline of a flame etched into the center of the floor.
Turning back to the door (and ignoring the dead goblin to the side of it), you now see it has a large keyhole right in its center. The door is large and solid; hacking away at it with your sword will get you nowhere.<</if>><<set $LookedAtDoor to true>>
[[Unlock the door with your key|UnlockDoor]]
[[Look around the room again|StartOfRoom]]
<<display Footer>><<else>><<if $LookedAtDoor is true>>Stepping over the flame outlined in the floor and moving past the <<if $GoblinHealth is 0>>dead<<else>>sleeping<</if>> goblin, you look at the large, solid door with its large keyhole. Yup, you still need a key.<<else>>On your way across the chamber to check out the door, you nearly trip over a small groove. Looking down, you see the faint outline of a flame etched into the center of the floor.
Turning back to the door<<if $GoblinHealth is 0>> (and ignoring the dead goblin to the side of it),<<else>>, and eyeing the sleeping goblin beside it,<</if>> you now see it has a large keyhole right in its center. The door is large and solid; hacking away at it with your sword will get you nowhere. You'll need to find a key to unlock it.<</if>><<set $LookedAtDoor to true>>
<<display "StartOfRoom">><</if>>The lone one of the four that isn't alight, the burnt-out torch seems to eye you mournfully with its sooty edges. It's bolted to the wall, so there's no way to remove it.<<set $LookedAtBurntOutTorch to true>><<if $LitStick is true>>
[[Hold your burning stick up to the torch|LightingTorch]]
[[Look around the room again|StartOfRoom]]
<<display Footer>><<else>>
<<display "StartOfRoom">><</if>>
The torches burn brightly, apparently unafraid of making their burnt-out sister jealous. They are firmly bolted to the wall, so any ideas you might have had about pulling one down are pointless.<<set $LookedAtLitTorches to true>><<if $TookStick is true>>
[[Hold your stick up to a torch|LightingStick]]
[[Look around the room again|StartOfRoom]]
<<display Footer>><<else>>
<<display "StartOfRoom">><</if>>
$FightResult
Tracks whether the player reacted well, poorly, or neutrally to the goblin's latest move.
Values:
Stalemate
PlayerHurt
GoblinHurt
$FoundKey
Tests whether you've found the key or not.
Values:
true
$GoblinHealth
Tracks the goblin's health. Starts at 6.
$GoblinMove
Tracks what the goblin's latest move is.
Values:
swings
thrusts
hangs back
$Hearts
Tracks the player's health. Starts at 6.
$LitStick
Tests whether the stick is on fire.
Values:
true
$LookedAtBurntOutTorch
Tests whether the player has examined the burnt-out torch, to shorten the descriptions there.
Values:
true/false
$LookedAtDeadGoblin
Tests whether you've look at the dead goblin.
Values:
true
$LookedAtDoor
Tests whether the player has examined the door, to shorten the descriptions there.
Values:
true
$LookedAtGoblin
Tests whether the player has examined the sleeping goblin, to shorten the descriptions there.
Values:
true
$LookedAtLitTorches
Tests whether the player has examined the lit torches, to shorten the descriptions there.
Values:
true/false
$LookedAtSteam
Tests whether the player has examined the steam, to shorten the descriptions there.
Values:
true
$OpenedChest
Tests whether you've opened the chest or not.
Values:
true
$TookStick
Tests whether you took the Goblin's stick or not.
Values:
true
$TorchLit
Tests whether the torch is lit.
Values:
true
$TrainingMove1
Tests how you respond to the first training step, when the goblin is swinging at you.
Values:
Swing
Thrust
HangBack
$TrainingMove2
Tests how you respond to the second training step, when the goblin is thrusting at you.
Values:
Swing
Thrust
HangBack
$TrainingMove3
Tests how you respond to the third training step, when the goblin is hanging back.
Values:
Swing
Thrust
HangBackYou snap your fingers near the goblin's face, trying to see if he's awake. His eyelids stay down, but his stick suddenly snaps out at you. You're just barely able to jump clear in time. Snarling, he opens his eyes and readies to attack. You now remember exactly what goblins are: jerks.
The fight is on—but you can see he's hesitating, taking your measure. Hopefully these initial moments will tell you all you need to know about how to defeat him.
<<display GoblinTraining1>>You grab the stick, and the suddenly snarling goblin smacks you in the face with it. He got in a solid hit<<set $Hearts -= 1>>, bringing your hearts down by one. You now remember exactly what goblins are: jerks.
The fight is on—but you can see he's hesitating, taking your measure. Hopefully these initial moments will tell you all you need to know about how to defeat him.
<<display GoblinTraining1>><center><FooterText>Hearts: $Hearts</FooterText><<if $TookStick is true>>  <<if $LitStick is true>>Burning sticks: 1<<else>>Sticks: 1<</if>><<else>><</if>><<if $FoundKey is true>>  Keys: 1<<else>><</if>></center>How do you react?
[[Swing from the side|Result][$FightResult to "Stalemate"]]
[[Thrust|Result][$FightResult to "PlayerHurt"]]
[[Hang back|Result][$FightResult to "GoblinHurt"]]
<<display Footer>>How do you react?
[[Swing from the side|Result][$FightResult to "GoblinHurt"]]
[[Thrust|Result][$FightResult to "Stalemate"]]
[[Hang back|Result][$FightResult to "PlayerHurt"]]
<<display Footer>>How do you react?
[[Swing from the side|Result][$FightResult to "PlayerHurt"]]
[[Thrust|Result][$FightResult to "GoblinHurt"]]
[[Hang back|Result][$FightResult to "Stalemate"]]
<<display Footer>><<if $Hearts is 0>><<display YouAreDead>><<else>><<if $GoblinHealth is 0>><<display GoblinDeath>><<else>><<set $GoblinMove to either("swings", "thrusts", "hangs back")>>The goblin <<if $GoblinMove is "swings">>swings<<else>><<if $GoblinMove is "thrusts">>thrusts<<else>><<if $GoblinMove is "hangs back">>hangs back<<else>><</if>><</if>><</if>>.
<<display $GoblinMove>><</if>><</if>><<if $FightResult is "Stalemate">><<if $GoblinMove is "swings">>Your swings rebound off each other, lightly stunning you both—but leaving you both uninjured.<<else>><<if $GoblinMove is "thrusts">>Your thrusting blade meets the goblin's, long before either of your are at risk. You bounce off each other, leaving you both unharmed.<<else>><<if $GoblinMove is "hangs back">>You both hang back, leaving your blades to swing pointlessly through the air at nothing.<<else>><</if>><</if>><</if>><<else>><<if $FightResult is "PlayerHurt">><<set $Hearts -= 1>><<if $GoblinMove is "swings">>Before your thrusting sword can reach the goblin, its swing cuts into your side. You opened yourself up to it!<<else>><<if $GoblinMove is "thrusts">>You hang back, but not far enough to avoid the goblin's thrusting blade, which sticks into you, costing you a heart.<<else>><<if $GoblinMove is "hangs back">>You swing, but your sword doesn't reach the goblin as it hangs back—and when you are then unprotected, the goblin slashes your side, hurting you.<<else>><</if>><</if>><</if>><<else>><<if $FightResult is "GoblinHurt">><<set $GoblinHealth -= 1>><<if $GoblinMove is "swings">>By hanging back, you avoid the goblin's blade—and manage to slash the creature's side after its swing, dealing it a solid blow.<<else>><<if $GoblinMove is "thrusts">>Your swing catches the goblin mid-thrust before he gets too far; he left himself open to your attack, and you score a solid hit on him.<<else>><<if $GoblinMove is "hangs back">>Your thrust closes the distance between you and the retreating goblin. Your blade deals a solid, piercing injury to the creature.<<else>><</if>><</if>><</if>><<else>><</if>><</if>><</if>><<if $GoblinHealth is 0>><<else>><html><br></html><html><br></html>It looks to you like the goblin has about $GoblinHealth heart<<if $GoblinHealth gte 2>>s<<else>><</if>> left in him.<</if>>
<<display GoblinFight>>With a screech, the goblin disappears in a surprisingly pretty cloud of glowing purple smoke. You defeated the goblin! He now lies dead on the floor, with his wooden stick beside him.
[[Grab the stick|TakeStick]]
[[Back away from the body|StartOfRoom]]
<<display Footer>>With your last heart broken, the world around you turns to darkness, and you collapse to the floor. The last thing you see are ghostly words forming above you, reading, "Restore from last save?"You take the stick. The goblin's corpse does nothing, but you sense its disapproval.<<set $TookStick to true>>
<<display StartOfRoom>>The goblin's stick, once his trusty weapon, now just a stick, lies beside his hideous corpse.
[[Take the stick|TakeStick]]
[[Look around the room again|StartOfRoom]]
<<display Footer>><<if $LookedAtDeadGoblin is true>>The goblin is pretty dead. Well, actually, he is hideously dead.<<else>>The goblin is pretty dead. Well, actually, he is hideously dead. Does he have a goblin family? Did he have goblin dreams? Would he have wondered about your dreams if he'd succeeded in killing you? You're pretty sure the answer to this last one is no, which makes it easier to shake off the other questions.<<set $LookedAtDeadGoblin to true>><</if>><<if $TookStick is true>>
<<display StartOfRoom>><<else>>
Beside him lies his stick.
[[Grab the goblin's stick|TakeStick]]
[[Back away from the goblin's corpse|StartOfRoom]]
<<display "Footer">><</if>>You hold one end of your stick up to a lit torch, and soon the stick is maintaining a steady flame.<<set $LitStick to true>>
<<display StartOfRoom>>You light the torch, only to immediately hear a strange, rhythmic sound, growing into a jaunty tune of delight, and suddenly a giant, old-timey wooden chest miraculously appears in the middle of the room!<<set $TorchLit to true>>
<<display StartOfRoom>>The chest is huge and looks like something pirates would bury treasure in. <<if $OpenedChest is true>>And it's open and empty.
<<display StartOfRoom>><<else>>And, currently, it is closed.
[[Open the chest|OpenChest]]
[[Look around the room again|StartOfRoom]]
<<display Footer>><</if>>You fling open the chest and can't resist diving deep into its shadowy interior. In moments, you whip forth a giant key that's almost as large as your head.
As you hold it aloft, a dah-dah-daaaaaaah song clip plays. You found a key!<<set $OpenedChest to true>><<set $FoundKey to true>>
<<display StartOfRoom>>The key fits perfectly into the door's large keyhole. With a satisfying CLANK, the door unlocks and swings open, revealing...
...a massive, fiery dungeon. More adventure awaits inside!
But in the meantime, your trusty narrator must turn untrustworthy and head off to bed. More adaptations of one of the Zelda series's greatest dungeons will be in this space soon!
In the meantime, send comments to <html><a href="mailto:davidsky@gmail.com?Subject=Your%20Zelda%20Text%20Adventure%20experiment" target="_top">davidsky@gmail.com</a></html>.He pulls his sword to the side, then swings it at you, right across the midground of your battle.
You can [[swing your sword|GoblinTraining2][$TrainingMove1 to "Swing"]] at him in response, [[thrust your blade|GoblinTraining2][$TrainingMove1 to "Thrust"]] as far forward as it can go, or [[hang back|GoblinTraining2][$TrainingMove1 to "HangBack"]], away from the fray.
<<display "Footer">><<if $TrainingMove1 is "Swing">>Your swings rebound off each other, lightly stunning you both—but leaving you both uninjured. Responding with the same move in swordplay always means a stalement like this. A better reponse to a swing would keep you out of reach—and then you'd have an opening afterward.<<else>><<if $TrainingMove1 is "Thrust">>Before your thrust can reach the goblin, his swing nearly cuts into your side. You're both still hesitant, so you manage to leap back before losing a heart—but you realize you'll never reach the goblin with a thrust when he's swinging. Better to avoid his blade and wait for an opening.<<else>><<if $TrainingMove1 is "HangBack">>By hanging back, you successfully avoid the goblin's swing—and you see an opportunity, post-swing, to slash the creature. You know you'll instinctually leap at this opportunity next time.<<else>><</if>><</if>><</if>>
Now the goblin thrusts his sword at you, cornering you where you stand.
You can [[swing your sword|GoblinTraining3][$TrainingMove2 to "Swing"]] at him in response, also [[thrust your blade|GoblinTraining3][$TrainingMove2 to "Thrust"]] as far forward as it can go, or [[hang back|GoblinTraining3][$TrainingMove2 to "HangBack"]], trying to escape his thrusting blade.
<<display "Footer">><<if $TrainingMove2 is "Swing">>Your swing catches the goblin mid-thrust; he left himself exposed in the midground. He manages to dodge in time, but you know he won't be so fast going forward.<<else>><<if $TrainingMove2 is "Thrust">>Your thrusting blade meets the goblin's, long before either of your are at risk. You bounce off each other, leaving you both unharmed. Responding with the same move in swordplay always means a stalement like this. A better response to a thrust would be a fast swing, to catch him off-guard.<<else>><<if $TrainingMove2 is "HangBack">>You hang back, but not far enough to avoid the goblin's thrusting blade. He's still hesitant, and you manage to lean back just far enough to barely escape his sword's point, but you know you won't get that lucky next time.<<else>><</if>><</if>><</if>>
Now the goblin hangs back, eyeing you cautiously.
You can [[swing your sword|GoblinTraining4][$TrainingMove3 to "Swing"]] at him in response, [[thrust your blade|GoblinTraining4][$TrainingMove3 to "Thrust"]] as far forward as it can go, or [[hang back|GoblinTraining4][$TrainingMove3 to "HangBack"]] just like he's doing.
<<display "Footer">><<if $TrainingMove3 is "Swing">>Your swing doesn't reach the goblin, as he's hanging back—and too late, you realize you've left yourself open. The goblin hesitates a moment too long, but you know he won't miss an opportunity like that again.<<else>><<if $TrainingMove3 is "Thrust">>Your thrust closes the distance between you and the retreating goblin. You hesitate just slightly, giving him the chance to narrowly evade your sword's point, but he won't be so lucky next time.<<else>><<if $TrainingMove3 is "HangBack">>You both hang back, leaving your blades to swing pointlessly through the air at nothing. Responding with the same move in swordplay always means a stalement like this. When the goblin hangs back, it would be better to push forward aggressively, so that he can't escape you.<<else>><</if>><</if>><</if>>
The goblin howls in rage, signalling in Goblinese (Goblinish?) that the fight has now begun in earnest.
<<display GoblinFight>>