// Created with Squiffy 5.1.3 // https://github.com/textadventures/squiffy (function(){ /* jshint quotmark: single */ /* jshint evil: true */ var squiffy = {}; (function () { 'use strict'; squiffy.story = {}; var initLinkHandler = function () { var handleLink = function (link) { if (link.hasClass('disabled')) return; var passage = link.data('passage'); var section = link.data('section'); var rotateAttr = link.attr('data-rotate'); var sequenceAttr = link.attr('data-sequence'); if (passage) { disableLink(link); squiffy.set('_turncount', squiffy.get('_turncount') + 1); passage = processLink(passage); if (passage) { currentSection.append('
'); squiffy.story.passage(passage); } var turnPassage = '@' + squiffy.get('_turncount'); if (turnPassage in squiffy.story.section.passages) { squiffy.story.passage(turnPassage); } if ('@last' in squiffy.story.section.passages && squiffy.get('_turncount')>= squiffy.story.section.passageCount) { squiffy.story.passage('@last'); } } else if (section) { currentSection.append('
'); disableLink(link); section = processLink(section); squiffy.story.go(section); } else if (rotateAttr || sequenceAttr) { var result = rotate(rotateAttr || sequenceAttr, rotateAttr ? link.text() : ''); link.html(result[0].replace(/"/g, '"').replace(/'/g, '\'')); var dataAttribute = rotateAttr ? 'data-rotate' : 'data-sequence'; link.attr(dataAttribute, result[1]); if (!result[1]) { disableLink(link); } if (link.attr('data-attribute')) { squiffy.set(link.attr('data-attribute'), result[0]); } squiffy.story.save(); } }; squiffy.ui.output.on('click', 'a.squiffy-link', function () { handleLink(jQuery(this)); }); squiffy.ui.output.on('keypress', 'a.squiffy-link', function (e) { if (e.which !== 13) return; handleLink(jQuery(this)); }); squiffy.ui.output.on('mousedown', 'a.squiffy-link', function (event) { event.preventDefault(); }); }; var disableLink = function (link) { link.addClass('disabled'); link.attr('tabindex', -1); } squiffy.story.begin = function () { if (!squiffy.story.load()) { squiffy.story.go(squiffy.story.start); } }; var processLink = function(link) { link = String(link); var sections = link.split(','); var first = true; var target = null; sections.forEach(function (section) { section = section.trim(); if (startsWith(section, '@replace ')) { replaceLabel(section.substring(9)); } else { if (first) { target = section; } else { setAttribute(section); } } first = false; }); return target; }; var setAttribute = function(expr) { var lhs, rhs, op, value; var setRegex = /^([\w]*)\s*=\s*(.*)$/; var setMatch = setRegex.exec(expr); if (setMatch) { lhs = setMatch[1]; rhs = setMatch[2]; if (isNaN(rhs)) { if(startsWith(rhs,"@")) rhs=squiffy.get(rhs.substring(1)); squiffy.set(lhs, rhs); } else { squiffy.set(lhs, parseFloat(rhs)); } } else { var incDecRegex = /^([\w]*)\s*([\+\-\*\/])=\s*(.*)$/; var incDecMatch = incDecRegex.exec(expr); if (incDecMatch) { lhs = incDecMatch[1]; op = incDecMatch[2]; rhs = incDecMatch[3]; if(startsWith(rhs,"@")) rhs=squiffy.get(rhs.substring(1)); rhs = parseFloat(rhs); value = squiffy.get(lhs); if (value === null) value = 0; if (op == '+') { value += rhs; } if (op == '-') { value -= rhs; } if (op == '*') { value *= rhs; } if (op == '/') { value /= rhs; } squiffy.set(lhs, value); } else { value = true; if (startsWith(expr, 'not ')) { expr = expr.substring(4); value = false; } squiffy.set(expr, value); } } }; var replaceLabel = function(expr) { var regex = /^([\w]*)\s*=\s*(.*)$/; var match = regex.exec(expr); if (!match) return; var label = match[1]; var text = match[2]; if (text in squiffy.story.section.passages) { text = squiffy.story.section.passages[text].text; } else if (text in squiffy.story.sections) { text = squiffy.story.sections[text].text; } var stripParags = /^

(.*)<\/p>$/; var stripParagsMatch = stripParags.exec(text); if (stripParagsMatch) { text = stripParagsMatch[1]; } var $labels = squiffy.ui.output.find('.squiffy-label-' + label); $labels.fadeOut(1000, function() { $labels.html(squiffy.ui.processText(text)); $labels.fadeIn(1000, function() { squiffy.story.save(); }); }); }; squiffy.story.go = function(section) { squiffy.set('_transition', null); newSection(); squiffy.story.section = squiffy.story.sections[section]; if (!squiffy.story.section) return; squiffy.set('_section', section); setSeen(section); var master = squiffy.story.sections['']; if (master) { squiffy.story.run(master); squiffy.ui.write(master.text); } squiffy.story.run(squiffy.story.section); // The JS might have changed which section we're in if (squiffy.get('_section') == section) { squiffy.set('_turncount', 0); squiffy.ui.write(squiffy.story.section.text); squiffy.story.save(); } }; squiffy.story.run = function(section) { if (section.clear) { squiffy.ui.clearScreen(); } if (section.attributes) { processAttributes(section.attributes); } if (section.js) { section.js(); } }; squiffy.story.passage = function(passageName) { var passage = squiffy.story.section.passages[passageName]; if (!passage) return; setSeen(passageName); var masterSection = squiffy.story.sections['']; if (masterSection) { var masterPassage = masterSection.passages['']; if (masterPassage) { squiffy.story.run(masterPassage); squiffy.ui.write(masterPassage.text); } } var master = squiffy.story.section.passages['']; if (master) { squiffy.story.run(master); squiffy.ui.write(master.text); } squiffy.story.run(passage); squiffy.ui.write(passage.text); squiffy.story.save(); }; var processAttributes = function(attributes) { attributes.forEach(function (attribute) { if (startsWith(attribute, '@replace ')) { replaceLabel(attribute.substring(9)); } else { setAttribute(attribute); } }); }; squiffy.story.restart = function() { if (squiffy.ui.settings.persist && window.localStorage) { var keys = Object.keys(localStorage); jQuery.each(keys, function (idx, key) { if (startsWith(key, squiffy.story.id)) { localStorage.removeItem(key); } }); } else { squiffy.storageFallback = {}; } if (squiffy.ui.settings.scroll === 'element') { squiffy.ui.output.html(''); squiffy.story.begin(); } else { location.reload(); } }; squiffy.story.save = function() { squiffy.set('_output', squiffy.ui.output.html()); }; squiffy.story.load = function() { var output = squiffy.get('_output'); if (!output) return false; squiffy.ui.output.html(output); currentSection = jQuery('#' + squiffy.get('_output-section')); squiffy.story.section = squiffy.story.sections[squiffy.get('_section')]; var transition = squiffy.get('_transition'); if (transition) { eval('(' + transition + ')()'); } return true; }; var setSeen = function(sectionName) { var seenSections = squiffy.get('_seen_sections'); if (!seenSections) seenSections = []; if (seenSections.indexOf(sectionName) == -1) { seenSections.push(sectionName); squiffy.set('_seen_sections', seenSections); } }; squiffy.story.seen = function(sectionName) { var seenSections = squiffy.get('_seen_sections'); if (!seenSections) return false; return (seenSections.indexOf(sectionName) > -1); }; squiffy.ui = {}; var currentSection = null; var screenIsClear = true; var scrollPosition = 0; var newSection = function() { if (currentSection) { disableLink(jQuery('.squiffy-link', currentSection)); } var sectionCount = squiffy.get('_section-count') + 1; squiffy.set('_section-count', sectionCount); var id = 'squiffy-section-' + sectionCount; currentSection = jQuery('

', { id: id, }).appendTo(squiffy.ui.output); squiffy.set('_output-section', id); }; squiffy.ui.write = function(text) { screenIsClear = false; scrollPosition = squiffy.ui.output.height(); currentSection.append(jQuery('
').html(squiffy.ui.processText(text))); squiffy.ui.scrollToEnd(); }; squiffy.ui.clearScreen = function() { squiffy.ui.output.html(''); screenIsClear = true; newSection(); }; squiffy.ui.scrollToEnd = function() { var scrollTo, currentScrollTop, distance, duration; if (squiffy.ui.settings.scroll === 'element') { scrollTo = squiffy.ui.output[0].scrollHeight - squiffy.ui.output.height(); currentScrollTop = squiffy.ui.output.scrollTop(); if (scrollTo > currentScrollTop) { distance = scrollTo - currentScrollTop; duration = distance / 0.4; squiffy.ui.output.stop().animate({ scrollTop: scrollTo }, duration); } } else { scrollTo = scrollPosition; currentScrollTop = Math.max(jQuery('body').scrollTop(), jQuery('html').scrollTop()); if (scrollTo > currentScrollTop) { var maxScrollTop = jQuery(document).height() - jQuery(window).height(); if (scrollTo > maxScrollTop) scrollTo = maxScrollTop; distance = scrollTo - currentScrollTop; duration = distance / 0.5; jQuery('body,html').stop().animate({ scrollTop: scrollTo }, duration); } } }; squiffy.ui.processText = function(text) { function process(text, data) { var containsUnprocessedSection = false; var open = text.indexOf('{'); var close; if (open > -1) { var nestCount = 1; var searchStart = open + 1; var finished = false; while (!finished) { var nextOpen = text.indexOf('{', searchStart); var nextClose = text.indexOf('}', searchStart); if (nextClose > -1) { if (nextOpen > -1 && nextOpen < nextClose) { nestCount++; searchStart = nextOpen + 1; } else { nestCount--; searchStart = nextClose + 1; if (nestCount === 0) { close = nextClose; containsUnprocessedSection = true; finished = true; } } } else { finished = true; } } } if (containsUnprocessedSection) { var section = text.substring(open + 1, close); var value = processTextCommand(section, data); text = text.substring(0, open) + value + process(text.substring(close + 1), data); } return (text); } function processTextCommand(text, data) { if (startsWith(text, 'if ')) { return processTextCommand_If(text, data); } else if (startsWith(text, 'else:')) { return processTextCommand_Else(text, data); } else if (startsWith(text, 'label:')) { return processTextCommand_Label(text, data); } else if (/^rotate[: ]/.test(text)) { return processTextCommand_Rotate('rotate', text, data); } else if (/^sequence[: ]/.test(text)) { return processTextCommand_Rotate('sequence', text, data); } else if (text in squiffy.story.section.passages) { return process(squiffy.story.section.passages[text].text, data); } else if (text in squiffy.story.sections) { return process(squiffy.story.sections[text].text, data); } else if (startsWith(text,'@') && !startsWith(text,'@replace')) { processAttributes(text.substring(1).split(",")); return ""; } return squiffy.get(text); } function processTextCommand_If(section, data) { var command = section.substring(3); var colon = command.indexOf(':'); if (colon == -1) { return ('{if ' + command + '}'); } var text = command.substring(colon + 1); var condition = command.substring(0, colon); condition = condition.replace("<", "<"); var operatorRegex = /([\w ]*)(=|<=|>=|<>|<|>)(.*)/; var match = operatorRegex.exec(condition); var result = false; if (match) { var lhs = squiffy.get(match[1]); var op = match[2]; var rhs = match[3]; if(startsWith(rhs,'@')) rhs=squiffy.get(rhs.substring(1)); if (op == '=' && lhs == rhs) result = true; if (op == '<>' && lhs != rhs) result = true; if (op == '>' && lhs > rhs) result = true; if (op == '<' && lhs < rhs) result = true; if (op == '>=' && lhs >= rhs) result = true; if (op == '<=' && lhs <= rhs) result = true; } else { var checkValue = true; if (startsWith(condition, 'not ')) { condition = condition.substring(4); checkValue = false; } if (startsWith(condition, 'seen ')) { result = (squiffy.story.seen(condition.substring(5)) == checkValue); } else { var value = squiffy.get(condition); if (value === null) value = false; result = (value == checkValue); } } var textResult = result ? process(text, data) : ''; data.lastIf = result; return textResult; } function processTextCommand_Else(section, data) { if (!('lastIf' in data) || data.lastIf) return ''; var text = section.substring(5); return process(text, data); } function processTextCommand_Label(section, data) { var command = section.substring(6); var eq = command.indexOf('='); if (eq == -1) { return ('{label:' + command + '}'); } var text = command.substring(eq + 1); var label = command.substring(0, eq); return '' + process(text, data) + ''; } function processTextCommand_Rotate(type, section, data) { var options; var attribute = ''; if (section.substring(type.length, type.length + 1) == ' ') { var colon = section.indexOf(':'); if (colon == -1) { return '{' + section + '}'; } options = section.substring(colon + 1); attribute = section.substring(type.length + 1, colon); } else { options = section.substring(type.length + 1); } var rotation = rotate(options.replace(/"/g, '"').replace(/'/g, ''')); if (attribute) { squiffy.set(attribute, rotation[0]); } return '' + rotation[0] + ''; } var data = { fulltext: text }; return process(text, data); }; squiffy.ui.transition = function(f) { squiffy.set('_transition', f.toString()); f(); }; squiffy.storageFallback = {}; squiffy.set = function(attribute, value) { if (typeof value === 'undefined') value = true; if (squiffy.ui.settings.persist && window.localStorage) { localStorage[squiffy.story.id + '-' + attribute] = JSON.stringify(value); } else { squiffy.storageFallback[attribute] = JSON.stringify(value); } squiffy.ui.settings.onSet(attribute, value); }; squiffy.get = function(attribute) { var result; if (squiffy.ui.settings.persist && window.localStorage) { result = localStorage[squiffy.story.id + '-' + attribute]; } else { result = squiffy.storageFallback[attribute]; } if (!result) return null; return JSON.parse(result); }; var startsWith = function(string, prefix) { return string.substring(0, prefix.length) === prefix; }; var rotate = function(options, current) { var colon = options.indexOf(':'); if (colon == -1) { return [options, current]; } var next = options.substring(0, colon); var remaining = options.substring(colon + 1); if (current) remaining += ':' + current; return [next, remaining]; }; var methods = { init: function (options) { var settings = jQuery.extend({ scroll: 'body', persist: true, restartPrompt: true, onSet: function (attribute, value) {} }, options); squiffy.ui.output = this; squiffy.ui.restart = jQuery(settings.restart); squiffy.ui.settings = settings; if (settings.scroll === 'element') { squiffy.ui.output.css('overflow-y', 'auto'); } initLinkHandler(); squiffy.story.begin(); return this; }, get: function (attribute) { return squiffy.get(attribute); }, set: function (attribute, value) { squiffy.set(attribute, value); }, restart: function () { if (!squiffy.ui.settings.restartPrompt || confirm('Are you sure you want to restart?')) { squiffy.story.restart(); } } }; jQuery.fn.squiffy = function (methodOrOptions) { if (methods[methodOrOptions]) { return methods[methodOrOptions] .apply(this, Array.prototype.slice.call(arguments, 1)); } else if (typeof methodOrOptions === 'object' || ! methodOrOptions) { return methods.init.apply(this, arguments); } else { jQuery.error('Method ' + methodOrOptions + ' does not exist'); } }; })(); var get = squiffy.get; var set = squiffy.set; squiffy.story.start = '_default'; squiffy.story.id = 'ed37112aa4'; squiffy.story.sections = { '_default': { 'text': "

Let us begin.

", 'passages': { }, }, 'begin': { 'text': "

People run about you screaming. The village is burning with a fiery rage only possessed beasts can cause. You hear the shrill cry of your younger brother as you see him slung over an orc?s shoulder. The orc is charging towards Rastrallal woods. What you can?t figure out is why orcs would attack. They have been at peace with human beings for more than a century. Why would they suddenly break the treaty? You see your father fending off an orc. You should help him!

\n

You can help or cower in fright.

", 'passages': { }, }, 'help': { 'text': "

You rush up behind the orc that is attacking your father. The orc turns around and snarls at you. Just then, your father slams his sword down on the orc's head. The orc falls to the ground, dead. When the orc dies, it falls in a patch of torchlight. You look down and notice that its face is different from that of the orcs you have watched the merchants trading with. This orc is heavily muscled and its eyes are blood-red. As you watch, a small worm exits a hole in the orc?s cheek. It squirms along the ground towards you.

\n

You can stomp on it or examine it.

", 'passages': { }, }, 'cower in fright': { 'text': "

You run around, looking for safety for yourself. Your father manages to kill his attacker. He rushes over to you. 'Look at that orc's body! Something is possessing these orcs.'\nYou examine it and notice that its face is different from that of the orcs you have watched the merchants trading with. This orc is heavily muscled and its eyes are blood-red. As you watch, a small worm exits a hole in the orc?s cheek. It squirms along the ground towards you.

\n

You can stomp on it or examine it.

", 'passages': { }, }, 'stomp on it': { 'text': "

You stomp on what you hope is the worm's head with your boot and kill it. Then the orc carrying your little brother takes a boat and begins to paddle away.

\n

You can run towards the dock or you can go to dad.

", 'passages': { }, }, 'examine it': { 'text': "

You look closer at this worm. It is pale white and squirms around on the ground. These worms must have been controlling the orcs that attacked your town! To make sure that this worm does no more damage, you crunch its head under your boot heel. Then the orc carrying your little brother takes a boat and begins to paddle away.

\n

You can run towards the dock or you can go to dad.

", 'passages': { }, }, 'run towards the dock': { 'text': "

You run to the dock but there is nothing you can do. The orc paddles away too quickly and after that the battle dies down.

\n

Continue...

", 'passages': { }, }, 'go to dad': { 'text': "

Dad yells at you to return to the house and you obey. Sadly, the orc escapes from your father. After that, the battle subsides.

\n

Continue...

", 'passages': { }, }, 'Continue...': { 'text': "

You wake up, cold sweat on your forehead. Once again you have dreamed about that fateful night when you lost your brother. The next day, your father went into Rastrallal wood to search for your brother. Neither were ever seen again. This was a year ago. You wanted to go, but were too young. You have provided for yourself and have still have not spent much of the money that your father gave you. You keep it tucked away in a cabinet in the kitchen.

\n

You work in a mine. While it is grueling labor, it pays your expenses. Today is your last day at the mine. At the exit is a chest containing your paycheck. You open it and inside is a black cloak. Interesting. You then leave the mine to go home. Back at your house, you set down a work pack. You walk into your room. Inside, there is a stool with a mirror behind it.

\n

You can change your clothes or stare in the mirror.

", 'passages': { }, }, 'change your clothes': { 'text': "

You put on nicer clothes. You decide that you finally have saved enough money to search for your brother. You decide to ask the king for supplies.

\n

You arrive at the king's palace and knock on the huge wooden doors. A guard opens the door and looks around, pretending not to see anyone.

\n

You can politely clear your throat or kick the guard in the shins.

", 'passages': { }, }, 'stare in the mirror': { 'text': "

You look at yourself in the mirror. While you probably could stand here all day, you have more important things to do. You decide that you finally have saved enough money to search for your brother. You decide to ask the king for supplies.

\n

You arrive at the king's palace and knock on the huge wooden doors. A guard opens the door and looks around, pretending not to see anyone.

\n

You can politely clear your throat or kick the guard in the shins.

", 'passages': { }, }, 'politely clear your throat': { 'text': "

The guard laughs at your politeness and leads you in the palace.

", 'passages': { }, }, 'kick the guard in the shins': { 'text': "

As many know, a kick in the shins is very painful. Unfortunately for you, the guard was wearing armor on his shins. The only person hurt was you. The guard laughs at you and pushes you down to the ground. After that, he lets you in the palace.

", 'passages': { }, }, 'in the palace': { 'text': "

You enter a large hall with tons of pictures of kings before your time. The guard leads you to the king?s formal receiving room. Then you enter the courtroom.

\n

The King shoots an annoyed glare at the guard. ?Why have you brought me this peasant??

\n

The guard stutters. You snort to yourself, the guard is getting busted. You knew the only reason he let you come in was to embarrass yourself but that backfired. \nThe king turns to you. "What are you here for?"

\n

?Well sire,? you respond, ?I am of age and I want to go on a quest to find my brother.?

\n

?Great.?

\n

?Can you at least give me something that I can have??

\n

?Fine,? says the king. "You can have this.?

\n

He summons his royal armorer, whispers something in his ear, then says that he can spare one sword only. He makes it seem like a big deal, even though his throne is probably worth 1000 of whatever he gives you.

\n

The king gives you a rusty sword, you take it, then leave the palace.

\n

Well, that went well, you think to yourself. You see a boy with black hair and gray rags watching you.

\n

Should you speak to the beggar or continue on your way?

", 'passages': { }, }, 'speak to the beggar': { 'text': "

?Who are you?? you ask.

\n

?I?m just an orc out of place.? He responds.

\n

?You don?t look like an orc,? you say critically.

\n

?Yeah, I?m half-orc."

\n

?I see.?

\n

You go to the village square.

", 'passages': { }, }, 'continue on your way': { 'text': "

You walk away while the boy continues watching you. That?s weird, you think to yourself. You continue down the path and after a while, you notice that the boy has followed you.

\n

You raise your unsharpened sword as threateningly as you can and say, ?What do you want??

\n

The boy cocks his head and says, ?Nothing. I just couldn?t help but see that you looked lost.?

\n

?Well, I?m not, so you can stop following me now.?

\n

The boy holds his hands up in a 'well, aren?t you a ball of sunshine' gesture.

\n

You go to the village square.

", 'passages': { }, }, 'village square': { 'text': "

There are four establishments that look promising. An armor shop, a weapon shop, a magical items shop, or a tavern.

", 'passages': { 'armor shop': { 'text': "

You go there and you buy chainmail armor.

\n

You should probably go the the dock.

", }, 'weapon shop': { 'text': "

You go there and buy a battle-ax.

\n

You should probably go the the dock.

", }, 'magical items shop': { 'text': "

You go there and buy a scroll, with which you learn a spell.

\n

You should probably go the the dock.

", }, 'tavern': { 'text': "

You go into the tavern and look around. It looks like the usual description of a tavern. You see glass on the floor and wonder if it was such a good idea to come in here. ?Whatcha want?? Calls the raggedy tavern keeper, ?You look a little young to be in here.?

\n

You can say, ?I don't need anything but a dinner? or stand tall and say, ?I can take on anyone any day, no matter how tall or strong! And that includes you and others who insult me!?

", }, }, }, '?I can take on anyone': { 'text': "

The tavern keeper grins. He is the type of person who enjoys fights. ?You want to make good on your boast?? he says. He points to a dark corner. ?Over there is a man named Mark Hammerfist. He is called that because of his fighting skills. He is the champion here. Beat him, and I will give you a free meal and 20 yen.?

\n

You agree.

\n

You set your weapons and armor down on the counter and step up onto a raised platform. The men in the tavern begin pounding their cups of ale on the table in a steady rythym. "Fight! Fight! Fight!"

\n

You attack first and hit Mark in his nose. He grunts and seems uninjured. He strikes at you like lightning. Fortunately, your reflexes are well-tuned. You dodge, grab Mark's forearm, and, using his momentum, throw him off the platform. The tavern cheers.

\n

The tavern keeper grudgingly gives you the promised rewards.

\n

You should probably go the the dock.

", 'passages': { }, }, '?I don\'t need anything but a dinner?': { 'text': "

You buy a dinner for yourself and eat it quietly.

\n

You should probably go to the dock.

", 'passages': { }, }, 'dock': { 'text': "

After you get your stuff, you walk towards the dock. As you're walking, you have flashbacks of that night. You shake your head to snap out of it. Then beggar, still following you, asks if you're ok.

\n

You can answer the beggar or ignore him.

", 'passages': { }, }, 'answer the beggar': { 'text': "

?I?m fine,? you say.

\n

?But you don?t?? he says.

\n

?I said ?I'm fine!? you growl.

\n

He sighs. "My name is Troy. I would like to help you wherever you are going."

\n

You suspiciously ask, "Why? What's in it for you?"

\n

He grunts. "I noticed that you are on the dock. Most of my family lives across the lake. I thought we could possibly go together. I can handle myself in a fight."

\n

You decide that someone to keep your back would be helpful. "Fine."

\n

You and Troy buy a rowboat and head off.

", 'passages': { }, }, 'ignore him': { 'text': "

He waits for you to answer and then sighs. "My name is Troy. I would like to help you wherever you are going."

\n

You suspiciously ask, "Why? What's in it for you?"

\n

He grunts. "I noticed that you are on the dock. Most of my family lives across the lake. I thought we could possibly go together. I can handle myself in a fight."

\n

You decide that someone to keep your back would be helpful. "Fine."

\n

You and Troy buy a rowboat and head off.

", 'passages': { }, }, 'head off': { 'text': "

You have completed the sea leg of your journey and have just landed. Rastrallal wood is dark and gloomy. You and Troy stick together and explore until the sun dips below the horizon. You build a fire and sit around it, roasting a deer Troy killed. When the deer is done roasting you cut it up with your knife. You and Troy are not able to eat it all, so you pack up some and put it in your pack. With your stomach full and blazing fire, you start to wonder how long you were actually on the water.

\n

You can ask Troy how much time passed or just sit and enjoy the cool night air.

", 'passages': { }, }, 'ask Troy how much time passed': { 'text': "

?Hey, Troy, how long were we on the water?? you ask.\n?We were on that lake for about two full moons. Why?" he looks at you.\n?Thanks. For some reason I just wasn't keeping track of the time,? you admit.

\n

Later, you feel tired and your head starts to nod. Troy volunteers to take the first watch. He is supposed to wake you up in an hour, but something jolts you awake in the middle of the night. You look around for Troy, but do not see him. You search the cave and find no sign of him. The next thing you hear is a yell that sounds like Troy.

\n

You can look for Troy or search for signs.

", 'passages': { }, }, 'just sit and enjoy the cool night air': { 'text': "

You sit for a while and look at the stars.

\n

Later, you feel tired and your head starts to nod. Troy volunteers to take the first watch. He is supposed to wake you up in an hour, but something jolts you awake in the middle of the night. You look around for Troy, but do not see him. You search the cave and find no sign of him. The next thing you hear is a yell that sounds like Troy.

\n

You can look for Troy or search for signs.

", 'passages': { }, }, 'look for Troy': { 'text': "

You go walking towards that sound and you find Troy in pitched battle with a ghoul. You take on the ghoul and beat it. When you finish, you see cuts and bruises all over Troy and his clothes are ripped. He then he passes out. You drag his body under a tree and look around for something to help him. Suddenly, you see a scouting party of orcs.

\n

You can ask them for help or flee for your life.

", 'passages': { }, }, 'search for signs': { 'text': "

You walk to your tent to grab your weapons but, out of nowhere, a man in all black with fangs white as snow comes and jumps on you. After you knock him off of you, you see a dagger, which he dropped, and use it against him. You plunge the dagger into his chest and he gives on last forlorn howl and falls to the ground. You then look for Troy.

\n

You find Troy in pitched battle with another ghoul. You take on the ghoul and beat it. When you finish, you see cuts and bruises all over Troy and his clothes are ripped. He then he passes out. You drag his body under a tree and look around for something to help him. Suddenly, you see a scouting party of orcs.

\n

You can ask them for help or flee for your life.

", 'passages': { }, }, 'ask them for help': { 'text': "

You push down the fear of getting gruesomely killed and wave at the orcs saying, ?I have one of your own kind who is wounded. We were traveling together.? The biggest one snorts, but says something to the other orcs in a different language. They take you to their village and put you under heavy guard. The orcs are not used to outsiders. You learn that this was Troy's hometown after putting him in the medical tent. \nYou are a little angry that Troy abandoned his watch.

\n

You can voice your disappointment or get over it.

", 'passages': { }, }, 'flee for your life': { 'text': "

The orc scouting party spots you. They surround you before you even have a chance to draw your weapons. They put you under heavy guard but still take you to their village. The orcs are not used to outsiders. You learn that this was Troy's hometown after putting him in the medical tent. \nTroy weakly croaks, ?I once lived here. This is my home.?\nYou are a little angry that Troy abandoned his watch.

\n

You can voice your disappointment or get over it.

", 'passages': { }, }, 'voice your disappointment': { 'text': "

"Why weren't you on the watch, you idiot?" you yell at him.\nTroy looks at you and then his eyes close.\nYou shake him and find out that he has passed out.

\n

Gradually, the orcs become used to your presence. You visit the medical tent often, checking on your friend. It appears that he is gradually getting better, and after a period of a few weeks, he appears to be in full health.

\n

One day, you are lounging around, looking for something to do, when you hear a loud crunch from the north side of the city. You run towards it and find a golem. It has killed many brave guards already. You must stop this creature of destruction!

\n

You walk towards the golem. As you do so, you can see people running away from it. You hear a loud bang, Then you run towards it and you see a golem smashing and running through buildings. You spot the golem about to step on a baby.

\n

You can save the baby or go after the golem.

", 'passages': { }, }, 'get over it': { 'text': "

You don't say anything.

\n

Gradually, the orcs become used to your presence. You visit the medical tent often, checking on your friend. It appears that he is gradually getting better, and after a period of a few weeks, he appears to be in full health.

\n

One day, you are lounging around, looking for something to do, when you hear a loud crunch from the north side of the city. You run towards it and find a golem. It has killed many brave guards already. You must stop this creature of destruction!

\n

You walk towards the golem. As you do so, you can see people running away from it. You hear a loud bang, Then you run towards it and you see a golem smashing and running through buildings. You spot the golem about to step on a baby.

\n

You can save the baby or go after the golem.

", 'passages': { }, }, 'save the baby': { 'text': "

You run toward the baby at full speed, and when you are about 10 feet away you do a tuck and roll and grab the baby. Then you toss it on a mattress safe and sound, but the golem?s left foot steps on you.

\n

You have died.

\n

You must begin again.

", 'passages': { }, }, 'go after the golem': { 'text': "

You hit it with the sword but it breaks and you are hit. The golem then steps on the baby and kills it. Then it starts running to you, but your leg is stuck under some rubble. Just in time, Troy rushes in on the scene. He has fully recovered from the ghoul incident and he defeats the golem to save you.

\n

Troy frees you from the rubble and takes you to a hut.

", 'passages': { }, }, 'hut': { 'text': "

Troy gives you a sketch of himself and an orc woman in a white dress. You look closer and notice that her face is smudged. You fold the sketch and put it in your pocket because they remind you of someone, then walk out to the market.

", 'passages': { }, }, 'market': { 'text': "

Suddenly a trumpet resounds in the city. You are being summoned to the king orc! You know not why. Guards surround you and try to lead you to the king.

\n

You can go peacefully with them or fight them.

", 'passages': { }, }, 'go peacefully with them': { 'text': "

You peacefully cooperate with the guards and they bring you to the king.

", 'passages': { }, }, 'fight them': { 'text': "

You begin to lay about you with your fists. There are so many guards that they overwhelm you. Though a few leave with black eyes or bloody noses, none are seriously injured. They still bring you to the king.

", 'passages': { }, }, 'king': { 'text': "

The king says, ?I regret to do this, but it is out of necessity. I will get straight to the point. You must be out of this city by tomorrow morning.?\nYou gasp. ?But...why? Have I done anything but good here? Show me my wrong and I will gladly leave.?\nThe king sighs. ?It is not something that you have done wrong. The golem that ransacked the north part of the city was sent by our feral ?cousins?. They are searching for you and we have received messengers saying that if you do not leave, they will continue terrorizing the people.?\n?I understand, O King.?\nTroy, who has not said anything yet, says, ?I will go with you! You are my friend, and though we started out roughly, you have yet to abandon me. You saved me from the ghoul. This is the only way that I can repay you.?\nThe king then dismisses you.

", 'passages': { }, }, 'dismisses': { 'text': "

After gathering supplies for a journey, you return to the forest. As you walk deeper into the woods you start to hear the shrill cry of your younger brother again, and you once again seem to see the outline of the orc running with him.

\n

Troy startles you out of your recollections by saying, ?We should find shelter.?\nYou sarcastically say, ?You don?t think I know that??\nTroy bluntly states, ?You showed no sign of your intelligence on this matter...?\n?Anyway, I looked over a map of this place while we were still at the village so there should be a cave near here.?

\n

After some time walking in the cold, you find a cave and set up camp there. You sleep. The next day you wake up from a dream of your brother calling for help. You want to be alone and think for a short time.

\n

You can leave by yourself or wake Troy.

", 'passages': { }, }, 'leave by yourself': { 'text': "

You leave the cave to be alone for a little while. After about an hour of quiet meditation, you hear something slipping into the heavy snow behind you. You turn around only to see Troy.\nYou suspiciously say, ?Wait, what are you doing here??\nTroy shrugs. ?I could ask you the same thing."\n?I don?t know, I wanted to be alone for a while.?\nTroy grunts.

\n

You go back to the cave.

", 'passages': { }, }, 'wake Troy': { 'text': "

You shake Troy awake and tell him that now is a good time to wake up. You walk together for about an hour in silence and then you spot a deer. Troy aims and looses an arrow at it. The deer drops to the ground, and you and Troy carry it back to the cave.

", 'passages': { }, }, 'back to the cave': { 'text': "

You suggest exploring the cave further. The cave?s passageways are extensive and you wander around in them with Troy. It is then that you notice that whenever passageways intersect, there is a mark pointing a certain way. You point it out to Troy and you follow the marks. After perhaps a mile of walking in the underground maze, you find a crack that spills light on the ground. It appears that this is a secret entrance into a courtyard of a stone castle. Feral orcs patrol the walls of the place. You also spot a ghoul walking in.

\n

You almost shout, ?Shazia, my brother, is here!?\nTroy looks worried. ?We can?t go in.?\nCalming down, you say, ?We will retrieve our supplies from the cave and camp there one more night.?

", 'passages': { }, }, 'cave': { 'text': "

As you pack, you see a leather book fall out of Troy's bag. When you open it you see drawings and notes of everything he meets, even you. It said that you are very secretive, your plans aren?t that smart but they work. You hand the book back to him and sit down by the fire.

", 'passages': { }, }, 'by the fire': { 'text': "

You ask Troy, "Do you have a plan to get in ??

\n

?Yes, and all we need is a black cloak,? Troy answers

\n

?Lucky for me, I always have one.? You remove it from your pack.

\n

?Good, then we enter at dawn, but may I ask, who are we trying to save??

\n

?I?m trying to save my brother, and hopefully my father too.?

\n

After a good night's sleep, you mobilize. You go over the plan again with Troy and decide to enter the dungeons, thinking that at least one of them will be in there.

", 'passages': { }, }, 'dungeons': { 'text': "

After descending several long staircases you finally come to the dungeons. The stench of rotting flesh began at about the third staircase down and has definitely worsened. As you get to the bottom of the staircase, you find more guards. Troy speaks to them and they allow you to pass.

", 'passages': { }, }, 'pass': { 'text': "

When no one is in sight, Troy unbinds your arms and you look around. The contents of the cells vary, yet you find nothing living. Some cells only contain bones, others have corpses that still have some flesh left on them. What is interesting, though, is that the bodies are never whole. Some have lost arms. Those prisoners were the lucky ones. It appears that others have been bent backwards over stone altars made for just that purpose.\nContinue

", 'passages': { }, }, 'Continue': { 'text': "

After searching for a while, you say, "They must not be here in the dungeons! Could they be...No. They are still alive. But where would they be?"\n?Maybe they're in a different part of this place,? Troy suggests.\n?I just don?t get it,? you grumble.\nTroy's face lights up. ?What about the throne room?? \nYou doubt it. ?Why would he be there??\n?Why not??

", 'passages': { }, }, 'throne room': { 'text': "

Troy loosely ties your arms and you ascend the long staircases. Finally, you get there. No guards bar your way. This surprises you. You think about it for a moment, then dismiss it as nothing. The throne room is vast and spacious. Your father is nowhere to be seen, but in the middle of the room, you see your younger brother. Shazia is on a chain and holding the chain is an orc.

", 'passages': { }, }, 'holding the chain is an orc': { 'text': "

"Quit moving or I will twist you into knots!" the orc yells.

\n

You try to lunge forward but Troy holds you back and claps his hand over your mouth. You see the sense in this and do not struggle.\nThe orc growls, ?Show yourself or it is the end for you, whoever you may be!"\n"Stay here," Troy orders.\nTroy walks up to the orc and says ?lt is only I, coming to bring Shazia to the master."\nThe orc suspiciously looks at Troy. "Who are you? I have not seen you about here before. You are like a small one, yet pretend to have the authority of a full one. If you were truly sent by the master, he would have given you a sign to show guards. Show it to me, and you shall have the prisoner."\nTroy sighs. ?We are doing this the hard way, then.? With a ringing sound of steel, he draws his sword from his sheath.

\n

You can hide from the orc or < a class=\"squiffy-link link-section\" data-section=\"back Troy up\" role=\"link\" tabindex=\"0\">back Troy up.

", 'passages': { }, }, 'hide from the orc': { 'text': "

You stay away from the combat, feeling that Troy can take on at least one orc. Didn't he say he could handle himself in a fight?

\n

After Troy finishes off the orc, you have a word with Shazia.

", 'passages': { }, }, 'back Troy up': { 'text': "

You help him take on the orc and easily finish off this one.\nYou decide to have a word with Shazia.

", 'passages': { }, }, 'word with Shazia': { 'text': "

First things first. You ask, ?Where?s dad??

\n

Shazia says, ?Hello to you too. He was taken from me at the beginning. Every few days they let me see him, but I haven?t seen him for 2 weeks now. I think he might be dead."

\n

You bite your tongue. ?I know he wouldn't give up that easily. He?s still alive. ?

\n

?I know, but don?t get your hopes up. They had no use for him, so they must?ve killed him. I can?t believe I?m still alive.?

\n

?Since when did you become so cynical??

\n

?Since I was locked up in a cage for years! What do you think? I?ve been beaten about a dozen times for not telling them what they want to know. I don?t even know what they want to know! Something about a wrong that must be righted or something like that. I wasn?t even conscious half the time."

\n

You end the conversation.

", 'passages': { }, }, 'end the conversation': { 'text': "

Suddenly the doors of the room burst open and you sense a cold entity. A ghoul steps forth and grabs Troy with its icy-cold fingers. Troy lets forth a strangled cry.

\n

You can help Troy again or leave him.

", 'passages': { }, }, 'help Troy again': { 'text': "

You help Troy and you both escape the orc palace.

\n

When you get home, you are praised for saving the realm.

", 'passages': { }, }, 'leave him': { 'text': "

Troy dies.

\n

You and Shazia escape the orc palace.

\n

When you get home, you are praised for saving the realm.

", 'passages': { }, }, } })();