';
-
- // Inject pause menu button into all story passages
- if (passage.tags && (passage.tags.includes("page") || passage.tags.includes("variation"))) {
- twPassage.html(pauseMenuHTML + twPassage.html());
- }
-});
-
-//
-// Helpers
-//
-
-// Prints a debug message to the console if in debug mode
-function debugMessage(message) {
- if (debug) console.log("DEBUG: " + message);
-}
-
-// Checks network connection
-window.story.networkCheck = function (nextPassage) {
- $.get(apiUrl + "status").done(function() {
- debugMessage("Connection to server made successfully");
-
- window.story.network = true;
- }).catch(function(error) {
- debugMessage("Connection to server failed: " + error);
-
- saveNotification = SimpleNotification.error({
- title: "Network Connection Failed!",
- text: "Could not connect to the remote server, Cloud Saving unavailable."
- }, {
- duration: 10 * 1000,
- position: "bottom-right"
- });
- // Show the next passage regardless
- }).then(function() {
- window.story.show(nextPassage);
- });
-}
-
-// Shows "No Connection" error message
-window.story.noConnection = function () {
- saveNotification = SimpleNotification.error({
- title: "Network Connection Failed!",
- text: "Could not connect to the remote server, Cloud Saving unavailable."
- }, {
- duration: 10 * 1000,
- position: "bottom-right"
- });
-}
-
-// Redirects one passage to another after a given time
-window.story.redirect = function (pageName, time = 5) {
- debugMessage(`Redirecting to ${pageName} in ${time} seconds`);
-
- let timeLeft = time;
-
- function tick() {
- if (--timeLeft === 0) window.story.show(pageName);
-
- _.delay(tick, 1000);
- }
-
- _.delay(tick, 1000);
-};
-
-// Displays text on screen after x period of time
-window.story.delayedText = function (time = 1000, id = "delayed", fadeIn = 1000) {
- debugMessage(`Showing delayed text ${id} in ${time} milliseconds`);
-
- _.delay(function() {
- $(`#${id}`).fadeIn(fadeIn);
- }, time);
-}
-
-// Sets an achievement and shows a popup
-window.story.achievement = function (chapter, shorthand, title, text) {
- try {
- if (window.story.state.achievements[chapter][shorthand]) {
- debugMessage(`Chapter ${chapter} achievement ${shorthand} already earned`);
- return;
- } else {
- debugMessage(`Chapter ${chapter} achievement ${shorthand} earned, showing ${achievements}`);
- }
-
- window.story.state.achievements[chapter][shorthand] = true;
- } catch (_) {
- window.story.state.achievements[chapter] = {};
- window.story.state.achievements[chapter][shorthand] = true;
- }
-
- if (achievements) {
- SimpleNotification.info({
- title: `Achievement: ${title}`,
- text,
- }, {
- duration: 10 * 1000,
- position: "bottom-right",
- closeButton: false,
- closeOnClick: false
- });
- }
-};
-
-// Sets a story choice
-window.story.setChoice = function (chapter, choice, value = true) {
- debugMessage(`Chapter ${chapter} choice ${choice} set to ${value}`);
-
- try {
- window.story.state.choices[chapter][choice] = value;
- } catch (_) {
- window.story.state.choices[chapter] = {};
- window.story.state.choices[chapter][choice] = value;
- }
-};
-
-// Gets a story choice
-window.story.getChoice = function (chapter, choice) {
- try {
- return window.story.state.choices[chapter][choice];
- } catch (_) {
- // TODO: Replace with an enum or similar, since
- // there are cases where the choice not being set
- // should result in a different action from the
- // choice being set to false
- return false;
- }
-};
-
-// Gets all the choices from a chapter
-window.story.getChoices = function (chapter) {
- try {
- return Object.entries(window.story.state.choices[chapter]) || [];
- } catch (_) {
- return [];
- }
-}
-
-// Returns the name picked for Tiffany
-window.story.tiffany = function () {
- try {
- return window.story.state.choices["Chapter1"]["TiffanyName"] || "Tiffany";
- } catch (_) {
- return "Tiffany";
- }
-}
-
-// Links a player's account to the current session
-window.story.linkCode = function () {
- const input = $("#linkingCode");
- const button = $("#linkingCodeButton");
- const code = input.val();
-
- saveNotification = SimpleNotification.info({
- title: "Linking account"
- }, {
- position: "bottom-right"
- });
-
- input.prop("disabled", true);
- button.attr("onclick", "");
-
- if (!code || code === "") {
- debugMessage(`Empty linking code provided`);
-
- saveNotification.setType("error");
- saveNotification.setTitle("Error: No Code");
- saveNotification.setText("No code entered!");
-
- input.prop("disabled", false);
- button.attr("onclick", "window.story.linkCode()");
- return;
- }
-
- if (code.length != 9) {
- debugMessage(`Linking code wrong length`);
-
- saveNotification.setType("error");
- saveNotification.setTitle("Error: Invalid Code");
- saveNotification.setText("Entered code is invalid!");
- input.prop("disabled", false);
- button.attr("onclick", "window.story.linkCode()");
- return;
- }
-
- $.post(apiUrl + "link", {
- code
- }).done(function(data) {
- debugMessage(`Account linked with code ${code}`);
-
- saveNotification.setType("success");
- saveNotification.setTitle("Account Linked!");
-
- window.story.player.name = data.userName;
- window.story.player.id = data.userId;
- window.story.player.key = data.userKey;
-
- debugMessage(`Name: ${window.story.player.name}, ID: ${window.story.player.id}, User Key: ${window.story.player.key}`);
-
- window.story.saving = true;
-
- window.story.show("Linked");
- }).catch(function(error) {
- debugMessage(`Account failed to link with code ${code}: ` + error);
-
- SimpleNotification.error({
- title: `Error: ${error.status}`,
- text: error.responseText
- }, {
- position: "bottom-right"
- });
-
- input.prop("disabled", false);
- button.attr("onclick", "window.story.linkCode()");
- });
-}
-
-// Saves player's game
-window.story.saveGame = function () {
- saveNotification = SimpleNotification.info({
- title: "Auto-Saving..."
- }, {
- position: "bottom-right"
- });
-
- $.post(apiUrl + "save", {
- key: window.story.player.key,
- data: {
- saveSlot: window.story.saveSlot,
- saveData: JSON.stringify(window.story.state)
- }
- }).done(function() {
- debugMessage("Game saved");
-
- saveNotification.setType("success");
- saveNotification.setTitle("Auto-Save Complete!");
- }).catch(function(error) {
- debugMessage("Game failed to save: " + error);
-
- saveNotification.setType("error");
- saveNotification.setTitle("Auto-Save Failed!");
- saveNotification.setText(error.responseText);
- });
-}
-
-// Loads all player saves
-window.story.loadSaves = function (newGame = false) {
- $.post(apiUrl + "saves", {
- key: window.story.player.key
- }).done(function(data) {
- debugMessage(`Loaded ${data.length} saves for ${window.story.player.key}`);
-
- $("#slotsLoading").hide();
-
- if (data.length === 0 && !newGame) {
- saveNotification = SimpleNotification.message({
- title: "No Saved Games!"
- }, {
- position: "bottom-right"
- });
- return;
- }
-
- if (!newGame) {
- $.each( data, function( _, value ) {
- const lastUsed = new Date(value.lastActive);
- $("#savesContainer").append(`Save Slot ${value.slot} Chapter: ${value.data.lastPassage.charAt(1)} Last passage: ${value.data.lastPassage} Last Used: ${lastUsed.toLocaleDateString()}`);
- });
- } else {
- $.each( data, function( _, value ) {
- $("#saveSlot" + value.slot).text("Save Slot " + value.slot + " (In Use)");
- });
- }
-
- if (newGame) {
- $("#saveSlotSelector").fadeIn(500);
- } else {
- $("#savesContainer").fadeIn(500);
- }
- }).catch(function(error) {
- debugMessage(`Failed to load saves for ${window.story.player.key}: ` + error);
-
- saveNotification = SimpleNotification.error({
- title: "Load Failed!",
- text: error.responseText
- }, {
- position: "bottom-right"
- });
- });
-}
-
-// Loads a player's save
-window.story.loadSave = function (saveSlot) {
- window.story.show("Loading Save");
-
- saveNotification = SimpleNotification.info({
- title: "Loading Save..."
- }, {
- position: "bottom-right"
- });
-
- $.post(apiUrl + "load", {
- key: window.story.player.key,
- saveSlot: saveSlot,
- }).done(function(data) {
- debugMessage(`Loaded save ${saveSlot} for ${window.story.player.key}`);
-
- justLoaded = true;
-
- window.story.state = data;
- window.story.saveSlot = saveSlot;
-
- saveNotification.setType("success");
- saveNotification.setTitle("Save Loaded!");
-
- _.delay(function() {
- window.story.show(window.story.state.lastPassage);
- }, 1000);
- }).catch(function(error) {
- debugMessage(`Failed to load save ${saveSlot} for ${window.story.player.key}: ` + error);
-
- saveNotification.setType("error");
- saveNotification.setTitle("Load Failed!");
- saveNotification.setText(error.responseText);
-
- _.delay(function() {
- window.story.show("Saved Games");
- }, 1000);
- });
-}
-
-// Hides generate button and shows linking form
-window.story.toggleLinkingDisplays = function (reverse = false) {
- debugMessage(`Linking buttons toggled (${reverse})`);
-
- if (!reverse) {
- $("#generateButton").hide();
- $("#linkingForm").show();
- } else {
- $("#generateButton").show();
- $("#linkingForm").hide();
- }
-}
-
-// Selects a slot of a new game, and starts new game
-window.story.selectSlot = function () {
- debugMessage(`Starting game in save slot ${$("#slots").val()}`);
-
- window.story.saveSlot = $("#slots").val();
-
- saveNotification = SimpleNotification.info({
- title: "Save Slot " + window.story.saveSlot + " Selected"
- }, {
- position: "bottom-right"
- });
-
- _.delay(function() {
- window.story.show("C1 Intro");
- }, 1000);
-}
-
-// Shows an example save notification
-window.story.exampleSave = function () {
- saveNotification = SimpleNotification.info({
- title: "Auto-Saving..."
- }, {
- position: "bottom-right"
- });
-
- _.delay(function() {
- saveNotification.setType("success");
- saveNotification.setTitle("Auto-Save Complete!");
- }, 1000);
-}
-
-// Toggles Debug Mode off
-window.story.toggleDebug = function () {
- debugMessage(`Debug toggled (${!debug})`);
-
- debug = !debug;
-
- if (debug) {
- debugNotification = SimpleNotification.message({
- title: "Alpha Build",
- text: "Content subject to change!",
- }, {
- position: "bottom-right",
- sticky: true,
- closeButton: false,
- closeOnClick: false
- });
- } else {
- debugNotification.remove();
- }
-
- SimpleNotification.info({
- title: `Debug Mode ${debug ? "Enabled" : "Disabled"}`
- }, {
- duration: 2 * 1000,
- position: "bottom-right",
- closeButton: false,
- closeOnClick: false
- });
-}
-
-// Toggles Custom Font
-window.story.toggleFont = function () {
- debugMessage(`Font toggled (${!font})`);
-
- font = !font;
-
- if (font) {
- $("body").css({
- "font-size": "unset",
- "font": "27px 'DeadWalking', Arial, sans-serif"
- });
- } else {
- $("body").css({
- "font": "unset",
- "font-size": "27px"
- });
- }
-
- SimpleNotification.info({
- title: `Font ${font ? "Enabled" : "Disabled"}`
- }, {
- duration: 2 * 1000,
- position: "bottom-right",
- closeButton: false,
- closeOnClick: false
- });
-}
-
-// Loads statistics
-window.story.loadStats = function () {
- $.post(apiUrl + "stats", {
- key: window.story.player.key,
- chapter: window.story.state.chapter
- }).done(function(data) {
- debugMessage(`Loaded ${data.length} stats for chapter ${window.story.state.chapter} ${window.story.player.key}`);
-
- $("#statsLoading").hide();
-
- for (const stat in data) {
- if (
- !window.story.state.choices[window.story.state.chapter] ||
- // If choice was never set, not to be confused with choice being set to false
- !Object.prototype.hasOwnProperty.call(window.story.state.choices[window.story.state.chapter], stat)
- ) {
- continue;
- }
-
- let message;
-
- if (window.story.getChoice(window.story.state.chapter, stat)) {
- message = `You and ${data[stat][0]} of players ${window.story.choiceDescriptions[window.story.state.chapter][stat][0]}`;
- } else {
- message = `You and ${data[stat][1]} of players ${window.story.choiceDescriptions[window.story.state.chapter][stat][1]}`;
- }
-
- $("#statsContainer").append(`
${message}
`);
- }
-
- $("#statsContainer").fadeIn(500);
- }).catch(function(error) {
- debugMessage(`Failed to load stats for chapter ${window.story.state.chapter} ${window.story.player.key}`);
-
- saveNotification = SimpleNotification.error({
- title: "Load Failed!",
- text: error.responseText
- }, {
- position: "bottom-right"
- });
- });
-}
-
-// Loads achievements
-window.story.loadAchievements = function () {
- // Fake loading to allow the passage to load or else jQuery won't make the changes
- _.delay(function() {
- $("#achievementsLoading").hide();
-
- let earnedAchievements = 0;
- const totalAchievements = Object.entries(window.story.achievementDescriptions[window.story.state.chapter]).length;
-
- $("#achievementsCounter").text(`${earnedAchievements}/${totalAchievements} Achievements Earned`);
-
- for (const [internal, [name, description]] of Object.entries(window.story.achievementDescriptions[window.story.state.chapter])) {
- if (!window.story.state.achievements[window.story.state.chapter] || !window.story.state.achievements[window.story.state.chapter][internal]) {
- continue;
- }
-
- $("#achievementsCounter").text(`${++earnedAchievements}/${totalAchievements} Achievements Earned`);
-
- $("#achievementsContainer").append(`
- ${name}: ${description.replaceAll("*", "")}
`);
- }
-
- if (totalAchievements > 0) $("#achievementsContainer").append(``);
-
- $("#achievementsCounter").fadeIn(500);
- $("#achievementsContainer").fadeIn(500);
- }, 1000);
-}
-
-// Toggles opening of pause menu
-window.story.pauseMenu = function () {
- debugMessage(`Pause menu toggled (${prePausePassage == null})`);
-
- if (prePausePassage == null) {
- prePausePassage = window.passage.name;
-
- window.story.show("Pause Menu");
- } else {
- window.story.show(prePausePassage);
-
- prePausePassage = null;
- }
-}
-
-// Toggles showing of achievements
-window.story.toggleAchievements = function () {
- debugMessage(`Achievements toggled (${!achievements})`);
-
- achievements = !achievements;
-
- SimpleNotification.info({
- title: `Achievements ${achievements ? "Enabled" : "Disabled"}`
- }, {
- duration: 2 * 1000,
- position: "bottom-right",
- closeButton: false,
- closeOnClick: false
- });
-}
-
-// Renders a passage and replaces text
-window.story.customRender = function (passageName) {
- const passage = window.story.passage(passageName);
-
- // Replace %Tiffany% with what the player chose to call Tiffany
- if (passage.source.includes("%Tiffany%")) {
- passage.source = passage.source.replaceAll("%Tiffany%", window.story.tiffany());
- }
-
- return window.story.render(passageName);
-}
-
-//
-// External Scripts
-//
-
-// toggleFullscreen.js
-// https://gist.github.com/demonixis/5188326
-window.story.toggleFullscreen = function (event) {
- let element = document.documentElement;
-
- if (event instanceof HTMLElement) element = event;
-
- const isFullscreen = document.webkitIsFullScreen || document.mozFullScreen || false;
-
- debugMessage(`Fullscreen toggled (${!isFullscreen})`);
-
- element.requestFullScreen = element.requestFullScreen || element.webkitRequestFullScreen || element.mozRequestFullScreen || function () { return false; };
- document.cancelFullScreen = document.cancelFullScreen || document.webkitCancelFullScreen || document.mozCancelFullScreen || function () { return false; };
-
- isFullscreen ? document.cancelFullScreen() : element.requestFullScreen();
-}
-
-// SimpleNotification
-// https://github.com/Glagan/SimpleNotification
-// https://github.com/Glagan/SimpleNotification/blob/master/LICENSE
-const simpleNotification = document.createElement("script");
-simpleNotification.src = "assets/javascript/simpleNotification.min.js";
-
-document.head.appendChild(simpleNotification);
-
-///
-/// Initialization
-///
-
-// Adds Favicons
-$("head").append('');
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 8a99346..48497d2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,8 +9,9 @@
"version": "1.1.0",
"devDependencies": {
"eslint": "^8.41.0",
- "stylelint": "15.6.2",
- "stylelint-config-standard": "^33.0.0"
+ "shx": "^0.3.4",
+ "stylelint": "^15.6.2",
+ "stylelint-config-standard": "33.0.0"
}
},
"node_modules/@babel/code-frame": {
@@ -1217,6 +1218,15 @@
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
"dev": true
},
+ "node_modules/interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
@@ -1525,6 +1535,15 @@
"node": "*"
}
},
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/minimist-options": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
@@ -1999,6 +2018,18 @@
"node": ">=8"
}
},
+ "node_modules/rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+ "dev": true,
+ "dependencies": {
+ "resolve": "^1.1.6"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
"node_modules/redent": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
@@ -2131,6 +2162,39 @@
"node": ">=8"
}
},
+ "node_modules/shelljs": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
+ "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ },
+ "bin": {
+ "shjs": "bin/shjs"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/shx": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz",
+ "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.3",
+ "shelljs": "^0.8.5"
+ },
+ "bin": {
+ "shx": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/signal-exit": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
@@ -3477,6 +3541,12 @@
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
"dev": true
},
+ "interpret": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
+ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
+ "dev": true
+ },
"is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
@@ -3711,6 +3781,12 @@
"brace-expansion": "^1.1.7"
}
},
+ "minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true
+ },
"minimist-options": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
@@ -4038,6 +4114,15 @@
}
}
},
+ "rechoir": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
+ "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==",
+ "dev": true,
+ "requires": {
+ "resolve": "^1.1.6"
+ }
+ },
"redent": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
@@ -4119,6 +4204,27 @@
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true
},
+ "shelljs": {
+ "version": "0.8.5",
+ "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
+ "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ }
+ },
+ "shx": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz",
+ "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.3",
+ "shelljs": "^0.8.5"
+ }
+ },
"signal-exit": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.0.2.tgz",
diff --git a/package.json b/package.json
index 179b65f..e93d294 100644
--- a/package.json
+++ b/package.json
@@ -4,8 +4,9 @@
"description": "Purpose is an episodic story about a young woman struggling with the loss of her sister in the Walker-infested post-apocalyptic world. Join her on her journey as you make decisions that influence the outcome of the story, in this text-based multiple-choice adventure inspired by Telltale Games' The Walking Dead.",
"main": "index.js",
"scripts": {
- "jslint": "eslint . index.js",
- "csslint": "npx stylelint style.css"
+ "jslint": "npx eslint --ext .js \"src\"",
+ "csslint": "npx stylelint \"src/**/*.css\"",
+ "copy": "shx cp -r src/* dist"
},
"repository": {
"type": "git",
@@ -18,7 +19,8 @@
"homepage": "https://github.com/cm8263/Purpose#readme",
"devDependencies": {
"eslint": "^8.41.0",
- "stylelint": "15.6.2",
- "stylelint-config-standard": "^33.0.0"
+ "shx": "^0.3.4",
+ "stylelint": "^15.6.2",
+ "stylelint-config-standard": "33.0.0"
}
}
diff --git a/Purpose.html b/src/Purpose.html
similarity index 54%
rename from Purpose.html
rename to src/Purpose.html
index df278e8..fb8f176 100644
--- a/Purpose.html
+++ b/src/Purpose.html
@@ -10,315 +10,489 @@
- <h1>Chapter One</h1>
-<h3>Poor Choices</h3>
+document.head.appendChild(script);<% window.story.state.chapter = "Chapter1"; %>
-<%
-window.story.state.chapter = "Chapter1";
+<ui>special</ui>
+<music>limping</music>
-window.story.delayedText(2000, "one", 0);
-window.story.delayedText(3000, "two", 0);
-window.story.delayedText(4000, "three", 0);
-window.story.delayedText(5000, "four");
-%>
+<action>Chapter One: Poor Choices</action>
+
+<character.one.limping.ditto>Sarah</character>
+
+<action>Go.</action>
+<action>Run.</action>
+<action>Hide.</action>
+
+<special>back-street</special>
+
+<action>That is what has been repeating in my head, over and over...</action>
+<action>...as I hobble along this street, out in the open...</action>
+<action>...blood dripping from my left leg.</action>
+<action>In my 20 years on this earth I have never done anything more stupid than that; I should know better.</action>
+<action>I do know better... but I slipped up, and it nearly got me killed.</action>
+
+<choices>[[[Continue limping]|C1P2]]</choices><ui>special</ui>
+<special>back-street</special>
+<character.one.limping.ditto>Sarah</character>
+
+<action>I continue to limp down the sidewalk, I'm not feeling too good.</action>
+<action>The adrenaline must be wearing off, I'm starting to get dizzy.</action>
+<action>Might be blood loss, might be nerves; regardless, I need to get off the street.</action>
-<div-#one>Go.</div>
-<div-#two>Run.</div>
-<div-#three>Hide.</div>
+<choices>[[[Look around]|C1P3]]</choices><ui>special</ui>
+<special>back-street</special>
+<character.one.limping.ditto>Sarah</character>
-<div-#four>
+<action>I look around, there are a few houses dotted along either side of the suburban street.</action>
+<action>With my previous encounter still fresh in my mind, I'm not too keen to go back into one, but I don't have much of a choice.</action>
-That is what's repeating in my head, over and over, as I’m hobbling along this sidewalk, out in the open, blood dripping from my left leg.
+<choices>[[[Head to closest house]|C1P4]]</choices><ui>special</ui>
+<special>back-street</special>
+<character.one.limping.ditto>Sarah</character>
-In my 20 years on this earth I have never done anything more stupid than that; I should know better, I do know better... but I slipped up, and it nearly got me killed.
+<action>I B-line it for the nearest house.</action>
-[[[Continue limping]|C1P2]]
+<special>back-wall</special>
-</div>I continue to limp down the sidewalk, I'm not feeling too good. The adrenaline must be wearing off, I'm starting to get dizzy. Might be blood loss, might be nerves; regardless, I need to get off the street.
+<action>It has a decent brick wall surrounding it; that'll do, it should be enough to keep the walkers out for now.</action>
-[[[Look around]|C1P3]]I look around, there are a few houses dotted along either side of the suburban street; with my previous encounter still fresh in my mind, I'm not too keen to go back into one, but I don't have much of a choice.
+<special>back-garden</special>
+<rumble>1 1 200</rumble>
-[[[Head to the closest house]|C1P4]]I B-line it for the nearest house, it has a decent brick wall surrounding it; that'll do, it should be enough to keep the walkers out for now.
+<action>I hop over the wall and land in the back garden, if you could still call it that with how overgrown it is.</action>
+<action>The garden has walls on three sides, and a house on the fourth side. It has a few trees, some with large roots, and a few overgrown flowerbeds; other than that, there's not much here.</action>
+<action>The house is two stories, with the ground floor having a roofed patio, and the top floor a large circular window.</action>
+<action>Getting closer, I can see two ways I might be able to get in: the back door, or a window around the side of the house.</action>
-I hop over the wall and land in the back garden, if you could still call it that with how overgrown it is. The garden has walls on three sides, and a house on the fourth side. It has a few trees, some with large roots, and a few overgrown flowerbeds; other than that, there's not much here.
+<choices>
+ [[[Go to the window]|C1P5V2]]
+ [[[Go to the back door]|C1P5V1]]
+</choices><ui>special</ui>
+<special>back-door</special>
+<character.one.limping.ditto>Sarah</character>
-The house is two stories, with the ground floor having a roofed patio, and the top floor a large circular window. Getting closer, I can see two ways I might be able to get in: the back door, or a window around the side of the house.
+<%
+if (!window.passage.tried) {
+ window.passage.tried = true;
+%>
-[[[Go to the window]|C1P5V2]]<br>
-[[[Go to the back door]|C1P5V1]]<% if (!window.passage.tried) { %>
+<action>I go up the patio steps and head to the back door, it's a large, sturdy-looking wooden door.</action>
+<action>I look down, there's a doormat that reads "COME BACK WHEN YOU HAVE TACOS & BOOZE".</action>
-I go up the patio steps and head to the back door, it's a large, sturdy-looking wooden door.
+<character.one.limping.happy.limping>Sarah</character>
-I look down, there's a doormat that reads "COME BACK WHEN YOU HAVE TACOS & BOOZE", I smirk; yeah, I wish. Looking around the patio, there's nothing much here, just a few dead potted plants, and some crusty old shoes.
+<action>I smirk; yeah, I wish.</action>
+
+<character.one.limping.ditto>Sarah</character>
+
+<action>Looking around the patio, there's nothing much here, just a few dead potted plants, and some crusty old shoes.</action>
<% } else { %>
-I go back up the patio steps and head to the back door.
+<action>I go back up the patio steps and head to the back door.</action>
<% } %>
-<%= window.story.customRender("F: Door entry options") %>
+<%= window.story.render("F: Door entry options") %><ui>special</ui>
+<special>back-window</special>
+<character.one.limping.ditto>Sarah</character>
-<% window.passage.tried = true %><% if (!window.passage.tried) { %>
+<%
+if (!window.passage.tried) {
+ window.passage.tried = true;
+%>
-As I limp up to the window, I can see it has been partially boarded up. The boards look old and rotted, and it doesn't look like they were put up very well in the first place. I shouldn't have any trouble pulling them off.
+<action>As I limp up to the window, I can see it has been partially boarded up.</action>
+<action>The boards look old and rotted, and it doesn't look like they were put up very well in the first place.</action>
+<action>I shouldn't have any trouble pulling them off.</action>
<% } else { %>
-I limp back to the boarded-up window.
+<action>I limp back to the boarded-up window.</action>
<% } %>
-<%= window.story.customRender("F: Window entry options") %>
-
-<% window.passage.tried = true %><%
+<%= window.story.render("F: Window entry options") %><%
window.story.setChoice("Chapter1", "Knocked");
-window.story.delayedText(3000);
-
-_.delay(function() {
- window.story.achievement("Chapter1", "Knocked", "Knock, knock", "Who's *there?*");
- }, 3000);
+window.story.achievement("Chapter1", "Knocked");
%>
-I knock and wait...
+<ui>special</ui>
+<special>back-door</special>
+<character.one.limping.ditto>Sarah</character>
-<div-#delayed>
+<rumble>0.75 0 200</rumble>
+<wait>750</wait>
+<rumble>0.75 0 200</rumble>
+<wait>750</wait>
+<rumble>0.75 0 200</rumble>
+<wait>750</wait>
-Yeah, well, it was worth a try I guess?
+<action>I knock and wait...</action>
+<action>...</action>
+<action>Yeah, well, it was worth a try I guess?</action>
-<%= window.story.customRender("F: Door entry options") %>
+<%= window.story.render("F: Door entry options") %><ui>special</ui>
+<special>back-door</special>
+<character.one.limping.ditto>Sarah</character>
-</div><% if (!window.passage.tried) { %>
+<%
+if (!window.passage.tried) {
+ window.passage.tried = true;
+%>
-I try the door handle: locked... shit. Well, on the bright side that might mean this place hasn't been looted yet. That's only good to me if I can get inside though.
+<action>I try the door handle...</action>
+<action>Locked... shit.</action>
+<action>Well, on the bright side that might mean this place hasn't been looted yet. That's only good to me if I can get inside though.</action>
<% } else { %>
-Still locked. I need to find a way into this place and fast.
+<action>Still locked.</action>
+<action>I need to find a way into this place and fast.</action>
<% } %>
-<%= window.story.customRender("F: Door entry options") %>
+<%= window.story.render("F: Door entry options") %><% window.story.setChoice("Chapter1", "Kicked"); %>
-<% window.passage.tried = true %><% window.story.setChoice("Chapter1", "Kicked") %>
+<ui>special</ui>
+<special>back-door</special>
+<character.one.limping.ditto>Sarah</character>
-I muster what little strength I have left, and kick the door with my good leg. The door shuddered but didn't open. That was pretty loud too.
+<rumble>1 0.5 300</rumble>
-Well, I've committed to this now, so I might as well kick it again, what the hell. I take a breath, pause, then kick the door with all my strength.
+<action>I muster what little strength I have left, and kick the door with my good leg.</action>
+<action>The door shuddered but doesn't open.</action>
+<action>That was pretty loud too...</action>
+<action>Well, I've committed to this now, so I might as well kick it again, what the hell.</action>
-I lose my balance and fall backward, sliding down the patio steps, landing directly on my leg wound, <%= window.story.customRender("F: Mother Comments") %>, but, at least the door opened. I lie there for a moment while the pain subsides.
+<rumble>1 1 300</rumble>
-[[[Get up, and go inside]|C1P6]]<%
-window.story.setChoice("Chapter1", "LookedIn");
+<action>I take a breath, pause, then kick the door with all my strength.</action>
+<character.one.limping.pain.limping>Sarah</character>
+
+<rumble>1 1 200</rumble>
+
+<action>I lose my balance and fall backward, sliding down the patio steps, landing directly on my leg wound.</action>
+<action><%= window.story.render("F: Mother Comments") %>, but, at least the door opened.</action>
+<action>I lie there for a moment while the pain subsides.</action>
+
+<character.one.limping.ditto>Sarah</character>
+
+<choices>[[[Get up, and go inside]|C1P6]]</choices><% window.story.setChoice("Chapter1", "LookedIn"); %>
+
+<ui>special</ui>
+<special>backw-indow</special>
+<character.one.limping.ditto>Sarah</character>
+
+<%
if (!window.passage.tried) {
+ window.passage.tried = true;
%>
-I place my head against the window; the cold glass provides a refreshing moment of relief... Then I open my eyes.
-
-It's dim inside, but I can make out some cupboards, a sink, and what I think is an ironing board; must be a laundry room. Nothing of particular interest sticks out, I can see where the back door enters, it doesn't appear to be blocked by anything. I can also see another door, it must lead to the next room, it's closed.
+<action>I place my head against the window...</action>
+<action>...the cold glass provides a refreshing moment of relief.</action>
+<action>Then I open my eyes.</action>
+<action>It's dim inside, but I can make out some cupboards, a sink, and what I think is an ironing board.</action>
+<action>It must be a laundry room. Nothing of particular interest sticks out.</action>
+<action>I can see where the back door enters, it doesn't appear to be blocked by anything.</action>
+<action>I can also see another door, it must lead to the next room, it's closed.</action>
<% } else { %>
-It's still too dark inside properly. It looks like a laundry room maybe?
+<action>It's still too dark inside properly.</action>
+<action>It looks like a laundry room, maybe?</action>
<% } %>
-<%= window.story.customRender("F: Window entry options") %>
+<%= window.story.render("F: Window entry options") %><% window.story.setChoice("Chapter1", "Kicked", false); %>
+
+<ui>special</ui>
+<special>back-window</special>
+<character.one.limping.ditto>Sarah</character>
+
+<action>I grab the board with both hands and pull, hard.</action>
+<action>Too hard.</action>
+
+<special>back-window-broken</special>
+
+<action>The board comes right off, pulling bits of the moldy window frame it was nailed to with it.</action>
+
+<rumble>1 1 200</rumble>
+
+<action>I fall backward, and narrowly avoid hitting my head on a large tree root.</action>
+
+<character.one.limping.pain.limping>Sarah</character>
-<% window.passage.tried = true %><% window.story.setChoice("Chapter1", "Kicked", false) %>
+<action>I do, however, manage to land directly on my leg wound.</action>
+<action><%= window.story.render("F: Mother Comments") %>.</action>
-I grab the board with both hands and pull hard. Too hard.
+<character.one.limping.ditto>Sarah</character>
-The board comes right off, pulling bits of the moldy window frame it was nailed to with it. I fall backward, and narrowly avoid hitting my head on a large tree root. I did, however, manage to land directly on my leg wound. <%= window.story.customRender("F: Mother Comments") %>.
+<choices>[[[Get up]|C1P5V221]]</choices><% window.story.stopMenuMusic(); %>
-[[[Get up, and go to the window]|C1P5V221]]<% window.story.delayedText(2000, "delayed", 5000) %>
+<ui>minimal</ui>
-<div-#delayed>
+<action>The choices you make have an impact on the story.</action>
-The choices you make have an impact on the story.
+<% if (window.story.saving) { %>
+
+<action>The game saves every few passages. You can also save manually using the save button at the top of the screen.</action>
+
+<% } %>
-<% if (window.story.saving) print("A notification will appear each time the game saves; the game saves every few passages. If you refresh or close the game, you will be able to pick up from the passage the game last showed a save notification at. <a.normal-link onclick=\"window.story.exampleSave()\">Click here</a> to view an example save notification.") %>
+<choices>[[Start Game|C1P1]]</choices><ui>special</ui>
+<special>back-window-broken</special>
+<character.one.limping.ditto>Sarah</character>
-This game has no sound; <a.normal-link href="https://www.youtube.com/watch?v=_Rn3_ZaG678" target="_blank">click here</a> for suggested, optional background music.
+<action>Looking at the window, there's just enough room to squeeze through.</action>
+<action>One problem though: the glass is still intact.</action>
+<action>Normally I'd be looking for a more tasteful way to get in, but that fall knocked my last bit of "taste" out of me.</action>
+<action>I'm getting pretty dizzy now, things are starting to get blurry; not good.</action>
+<action>I need, to get inside.</action>
+<action>Now.</action>
+<action>I look around, I see a small rock I could use to break the glass...</action>
+<action>...or, I could use my elbow.</action>
+<action>The rock would lower my chances of cutting myself.</action>
+<action>But my elbow might be quieter...</action>
-[[Start Game|C1P1]]
-Looking at the window, there's just enough room to squeeze through, one problem though: the glass is still intact. Normally I'd be looking for a more tasteful way to get in, but that fall knocked my last bit of "taste" out of me. I'm getting pretty dizzy now, things are starting to get blurry; not good. I need, to get inside, now.
+<choices>
+ [[[Use elbow]|C1P5V2211]]
+ [[[Use the rock]|C1P5V2212]]
+</choices><ui>special</ui>
+<special>back-window-broken</special>
+<character.one.limping.ditto>Sarah</character>
-I look around, I see a small rock I could use to break the glass... or, I could use my elbow. The rock would lower my chances of cutting myself, but my elbow might be quieter.
+<action>I pick up the rock and throw it at the glass.</action>
-[[[Use elbow]|C1P5V2211]]<br>
-[[[Use the rock]|C1P5V2212]]
-I pick up the rock and throw it at the glass. The glass bursts into shinny dust, and lo and behold, it made a lot of noise.
+<rumble>0.5 0.5 350</rumble>
-<%= window.story.customRender("F: Here goes nothing") %>This is probably a bad idea, but what the hell. I bunch up my sleeve for extra padding, brace my elbow, then push.
+<action>The glass bursts into shinny dust...</action>
+<action>...and lo and behold, it made a lot of noise.</action>
-The glass was not very strong and gave way easily, but the bits of broken glass hitting the floor inside was still loud. I pull my arm back, looks like I tore my sleeve a little bit, but didn't cut myself.
+<%= window.story.render("F: Here goes nothing") %><ui>special</ui>
+<special>back-window-broken</special>
+<character.one.limping.ditto>Sarah</character>
-<%= window.story.customRender("F: Here goes nothing") %><% if (window.story.getChoice("Chapter1", "Kicked")) { %>
+<action>This is probably a bad idea, but what the hell.</action>
+<action>I bunch up my sleeve for extra padding, brace my elbow, then push.</action>
-I get up, walk back up the patio steps, then go through and close the door behind me. Looks like I've busted the lock though, I'll need something to stop the door swinging open.
+<rumble>0.5 0.5 200</rumble>
-I look down and see a small doorstop, perfect. It won't stop anything from getting in, but it will stop the door from flapping in the breeze.
+<action>The glass was not very strong and gave way easily, but the bits of broken glass hitting the floor inside was still loud.</action>
+<action>I pull my arm back, looks like I tore my sleeve a little bit, but didn't cut myself.</action>
-Between the kicking and the fall, I'm feeling very dizzy.
+<%= window.story.render("F: Here goes nothing") %><ui>special</ui>
+<character.one.limping.ditto>Sarah</character>
+
+<% if (window.story.getChoice("Chapter1", "Kicked")) { %>
+
+<action>I get up, walk back up the patio steps, then go through and close the door behind me.</action>
+<action>Looks like I've busted the lock though, I'll need something to stop the door swinging open.</action>
+<action>I look down and see a small doorstop, perfect.</action>
+<action>It won't stop anything from getting in, but it will stop the door from flapping in the breeze.</action>
+<action>Between the kicking and the fall, I'm feeling very dizzy.</action>
<% } else { %>
-I crawl through the window, making sure not to touch any of the broken glass as I get up. The window is pretty small, I was only just able to fit; I doubt a walker would be smart enough to get in, and if a human wanted to get in, well, they could always use the door.
+<action>I crawl through the window, making sure not to touch any of the broken glass as I get up.</action>
+<action>The window is pretty small, I was only just able to fit...</action>
+<action>...I doubt a walker would be smart enough to get in...</action>
+<action>...and if a human wanted to get in, well, they could always use the door.</action>
<% } %>
-I wait a moment for my eyes to adjust to the dark, then I look around the room. <% if (window.story.getChoice("Chapter1", "LookedIn")) { print("It is definitely") } else { print("Looks like") } %> a laundry room, there's a washing machine and dryer in the corner, and an ironing board propped up against one of the walls. The room looks safe for now.
-
-Now that I'm inside, I need to deal with my leg; to do that, I'm going to need some supplies:
+<action>I wait a moment for my eyes to adjust to the dark, then I look around the room. </action>
-- something to clean the wound
-- something to bandage my leg with
+<special>laundryroom</special>
-I could also use a weapon... I left my knife in that guy's head, so I won't be getting that back any time soon.
+<action><% print(window.story.getChoice("Chapter1", "LookedIn") ? "It is definitely" : "Looks like") %> a laundry room.</action>
+<action>There's a washing machine and dryer in the corner, and an ironing board propped up against one of the walls.</action>
+<action>The room looks safe for now.</action>
+<action>Now that I'm inside, I need to deal with my leg.</action>
+<action>I'm going to need some supplies.</action>
+<action>Something to clean the wound, and something to bandage my leg with.</action>
+<action>I could also use a weapon...</action>
+<action>I left my knife in that guy's head, so I won't be getting that back any time soon.</action>
-<%= window.story.customRender("F: Search options") %><%
-if (window.passage.name != "C1P7V1"){
- window.passage.tried = true;
-}
+<choices><%= window.story.render("F: Search options") %></choices><ui>special</ui>
+<special>laundryroom</special>
+<character.one.limping.ditto>Sarah</character>
-if (
- window.story.getChoice("Chapter1", "Soap") &&
- window.story.getChoice("Chapter1", "Tape") &&
- window.story.getChoice("Chapter1", "Tap")
-) {
- window.story.setChoice("Chapter1", "Sink")
-}
+<%
+if (window.story.getChoice("Chapter1", "Soap") && window.story.getChoice("Chapter1", "Tape") && window.story.getChoice("Chapter1", "Tap")) window.story.setChoice("Chapter1", "Sink");
if (!window.story.getChoice("Chapter1", "Sink")) {
if (!window.passage.tried) {
+ window.passage.tried = true;
%>
-I limp over to the sink and take a look. There's a crusty old soap bar sitting next to the tap... I don't think that's going to do me any good. There's also a shelf under the sink.
+<action>I limp over to the sink and take a look.</action>
+<action>There's a crusty old soap bar sitting next to the tap...</action>
+<action>I don't think that's going to do me any good.</action>
+<action>There's also a shelf under the sink.</action>
<%
} else {
%>
-I wonder if there's anything else around here I can use.
+<action>I wonder if there's anything else around here I can use.</action>
<%
-
}
+%>
+
+<% } else { %>
- if (!window.story.getChoice("Chapter1", "Soap")) {
- print("[[[Take the soap bar]|C1P7V11]]<br>");
- }
+<action>Nothing else around the sink.</action>
- if (!window.story.getChoice("Chapter1", "Tape")) {
- print("[[[Look under the sink]|C1P7V12]]<br>");
- }
+<% } %>
- if (!window.story.getChoice("Chapter1", "Tap")) {
- print("[[[Try turning on the tap]|C1P7V13]]<br>");
- }
-
-} else { %>
+<choices>
+ <%
+ if (!window.story.getChoice("Chapter1", "Soap")) print("[[[Take the soap bar]|C1P7V11]]");
-Nothing else around the sink.
+ if (!window.story.getChoice("Chapter1", "Tape")) print("[[[Look under the sink]|C1P7V12]]");
-<% } %>
+ if (!window.story.getChoice("Chapter1", "Tap")) print("[[[Try turning on the tap]|C1P7V13]]");
+ %>
-<%= window.story.customRender("F: Search options") %>
+ <%= window.story.render("F: Search options") %>
+</choices><ui>special</ui>
+<special>laundryroom</special>
+<character.one.limping.ditto>Sarah</character>
-<% window.passage.tried = true %><% if (!window.passage.tried) { %>
+<%
+if (!window.passage.tried) {
+ window.passage.tried = true;
+%>
-I walk over to the cupboards and open them. They have lots of old chemical bottles and cleaning supplies, but, I do find some "Hospital Grade" disinfectant; looks like a cheap home brand bottle, but it's better than nothing. I'm pretty sure this is meant to be used on floors and furniture, but, it will definitely do, considering the circumstances.
+<action>I walk over to the cupboards and open them.</action>
+<action>They have lots of old chemical bottles and cleaning supplies, but, I do find some "Hospital Grade" disinfectant.</action>
+<action>Looks like a cheap home brand bottle, but it's better than nothing.</action>
+
+<character.one.limping.sad.limping>Sarah</character>
+
+<action>I'm pretty sure this is meant to be used on floors and furniture, but, it will definitely do...</action>
+<action>...considering the circumstances.</action>
+
+<character.one.limping.ditto>Sarah</character>
<% } else { %>
-I take another look, but all I find are some old chemicals and cleaning supplies<% if (!window.story.getChoice("Chapter1", "Disinfectant")) print(", nothing useful except maybe that disinfectant") %>.
+<action>I take another look, but all I find are some old chemicals and cleaning supplies.</action>
+<% if (!window.story.getChoice("Chapter1", "Disinfectant")) print("<action>Nothing useful except maybe that disinfectant.</action>"); %>
<% } %>
-<% if (!window.story.getChoice("Chapter1", "Disinfectant")) {
- print("[[[Take the disinfectant]|C1P7V31]]<br>");
-} %>
+<choices>
+ <% if (!window.story.getChoice("Chapter1", "Disinfectant")) print("[[[Take the disinfectant]|C1P7V31]]"); %>
-<%= window.story.customRender("F: Search options") %>
+ <%= window.story.render("F: Search options") %>
+</choices><ui>special</ui>
+<special>machines</special>
+<character.one.limping.ditto>Sarah</character>
-<% window.passage.tried = true %><% if (!window.passage.tried) { %>
+<%
+if (!window.passage.tried) {
+ window.passage.tried = true;
+%>
-I get up to the washing machine and dryer; they look old and dusty, but otherwise in good shape. I remember when I use to have to do my laundry... feels like a lifetime ago now.
+<action>I get up to the washing machine and dryer; they look old and dusty, but otherwise in good shape.</action>
+<action>I remember when I use to have to do my laundry...</action>
+<action>...feels like a lifetime ago now.</action>
<% } else { %>
-Honestly surprising how good shape these things are still in.
+<action>Honestly surprising how good shape these things are still in.</action>
-<% }
+<% } %>
-if (!window.story.getChoice("Chapter1", "Dryer")) {
- print("[[[Search the dryer]|C1P7V22]]<br>");
-}
+<choices>
+ <%
+ if (!window.story.getChoice("Chapter1", "Dryer")) print("[[[Search the dryer]|C1P7V22]]");
-if (!window.story.getChoice("Chapter1", "Washer")) {
- print("[[[Search the washing machine]|C1P7V21]]<br>");
-}
+ if (!window.story.getChoice("Chapter1", "Washer")) print("[[[Search the washing machine]|C1P7V21]]");
+ %>
+
+ <%= window.story.render("F: Search options") %>
+</choices><%
+window.story.setChoice("Chapter1", "Soap");
+window.story.achievement("Chapter1", "Soap");
+%>
- %>
+<ui>special</ui>
+<special>laundryroom</special>
+<character.one.limping.ditto>Sarah</character>
-<%= window.story.customRender("F: Search options") %>
+<action>With a bit of effort, I separate the soap from the bench.</action>
+<action>It's hard as a rock...</action>
-<% window.passage.tried = true %><%
-window.story.setChoice("Chapter1", "Soap");
-window.story.achievement("Chapter1", "Soap", "Nothing wasted", "You never know when it will come in handy!");
+<choices>[[[Return to the sink]|C1P7V1]]</choices><ui>special</ui>
+<special>laundryroom</special>
+<character.one.limping.ditto>Sarah</character>
+
+<% if (!window.passage.tried) {
+ window.passage.tried = true;
%>
-With a bit of effort, I separate the soap from the bench. It's hard as a rock...
+<action>I look in the cabinet under the sink-</action>
-<%= window.story.customRender("C1P7V1") %><% if (!window.passage.tried) { %>
+<character.one.limping.happy.limping>Sarah</character>
-I look in the cabinet under the sink- Bingo! There's some duck tape; that's always useful.
+<action>Bingo! There's some duck tape; that's always useful.</action>
+
+<character.one.limping.ditto>Sarah</character>
+
+<% } else if (window.story.getChoice("Chapter1", "Tape")) { %>
+
+<action>Nothing else there.</action>
<% } else { %>
-Still just the duck tape, not a bad find.
+<action>Still just the duck tape, not a bad find.</action>
<% } %>
-[[[Take the duck tape]|C1P7V121]]<br>
-[[[Return to the sink]|C1P7V1]]
+<choices>
+ <% if (!window.story.getChoice("Chapter1", "Tape")) print("[[[Take the duck tape]|C1P7V121]]"); %>
+ [[[Return to the sink]|C1P7V1]]
+</choices><% window.story.setChoice("Chapter1", "Tap"); %>
-<% window.passage.tried = true %><%
-window.story.setChoice("Chapter1", "Tap");
+<ui>special</ui>
+<special>tap</special>
+<character.one.limping.ditto>Sarah</character>
-window.story.delayedText(2000);
-%>
+<action>I turn on the tap.</action>
+<action>...</action>
-I turn on the tap.
+<character.one.limping.sad.limping>Sarah</character>
-<div-#delayed>
+<action>Nothing: that would have been too good to be true.</action>
-Nothing: that would have been too good to be true.
+<character.one.limping.ditto>Sarah</character>
-<%= window.story.customRender("C1P7V1") %>
+<choices>[[[Return to the sink]|C1P7V1]]</choices><% window.story.setChoice("Chapter1", "Tape"); %>
-</div><% window.story.setChoice("Chapter1", "Tape") %>
+<ui>special</ui>
+<special>laundryroom</special>
+<character.one.limping.ditto>Sarah</character>
-I pick up the duck tape.
+<action>I pick up the duck tape.</action>
-<%= window.story.customRender("C1P7V1") %><%
+<choices>[[[Return to the sink]|C1P7V1]]</choices><ui>special</ui>
+<character.one.limping.ditto>Sarah</character>
+
+<%
let itemsCollected = 0;
for (const [item, value] of window.story.getChoices("Chapter1")) {
switch (item) {
case "Tape":
- if (value) itemsCollected++;
- break;
-
case "Disinfectant":
- if (value) itemsCollected++;
- break;
-
case "Shirt":
if (value) itemsCollected++;
break;
@@ -332,337 +506,668 @@
"I didn't find anything";
window.story.setChoice("Chapter1", "ItemsCollected", itemsCollected);
-
-window.story.delayedText(10000);
%>
-<% print(found) %>, but that's enough searching; my head is pounding now. I've pushed myself too far, but I didn't have much of a choice did I? I just need... I need to... um, shit, come on Sarah, stay with it.
+<action><% print(found) %>, but that's enough searching.</action>
+
+<character.one.limping.sad.limping>Sarah</character>
+
+<action>My head is pounding now. </action>
+<action>I've pushed myself too far, but I didn't have much of a choice did I?</action>
+
+<character.one.limping.ditto>Sarah</character>
+
+<action>I just need...</action>
+<action>...</action>
+<action>I need to...</action>
+<action>Um.</action>
+
+<character.one.limping.angry.limping>Sarah</character>
+
+<action>Shit, come on Sarah, stay with it.</action>
+
+<character.one.limping.ditto>Sarah</character>
-<div#delayed style="Display: None">
+<action>I, need, to...</action>
+<action>...just need to sit down.</action>
-I just need to sit down, for a few minutes... catch my breath...
+<character.one.limping.sad.limping>Sarah</character>
-[[[Colapse and pass out]|C1P8R1]]
+<action>For a few minutes...</action>
+<action>Catch... my... breath...</action>
-</div><%
+<stopmusic/>
+
+<choices>[[[Collapse and pass out]|C1P8R1]]</choices>`<ui>special</ui>
+<special>laundryroom</special>
+<character.one.limping.ditto>Sarah</character>
+
+<%
window.story.setChoice("Chapter1", "Cupboards");
window.story.setChoice("Chapter1", "Disinfectant");
%>
-I pick up the disinfectant.
+<action>I pick up the disinfectant.</action>
-<%= window.story.customRender("F: Search options") %><% window.story.setChoice("Chapter1", "Washer") %>
+<choices><%= window.story.render("F: Search options") %></choices><%
+window.story.setChoice("Chapter1", "Washer");
+if (window.story.getChoice("Chapter1", "Washer") && window.story.getChoice("Chapter1", "Dryer")) window.story.setChoice("Chapter1", "WandD");
+%>
-I open the washing machine: whole lotta nothin.
+<ui>special</ui>
+<special>machines</special>
+<character.one.limping.ditto>Sarah</character>
-<% if (!window.story.getChoice("Chapter1", "Dryer")) {
- print("[[[Search the dryer]|C1P7V22]]<br>");
-} %>
+<action>I open the washing machine: whole lotta nothin.</action>
-<%= window.story.customRender("F: Search options") %>
+<choices>
+ <% if (!window.story.getChoice("Chapter1", "Dryer")) print("[[[Search the dryer]|C1P7V22]]"); %>
+ <%= window.story.render("F: Search options") %>
+</choices><% if (window.story.getChoice("Chapter1", "Washer") && window.story.getChoice("Chapter1", "Dryer")) window.story.setChoice("Chapter1", "WandD"); %>
-<%
-if (
- window.story.getChoice("Chapter1", "Washer") &&
- window.story.getChoice("Chapter1", "Dryer")
-) {
- window.story.setChoice("Chapter1", "WandD");
-}
-%><% if (!window.passage.tried) { %>
+<ui>special</ui>
+<special>machines</special>
+<character.one.limping.ditto>Sarah</character>
-I open the dryer- Jackpot! A 'clean' white shirt, I can use this as a bandage; looks like it has been sitting in here for years, but the closed dryer door did a good job of keeping it clean.
+<% if (!window.passage.tried) {
+ window.passage.tried = true;
+%>
-<% } else { %>
+<action>I open the dryer-</action>
-Still just that one white shirt in the dryer.
+<character.one.limping.happy.limping>Sarah</character>
-<% }
+<action>Jackpot!</action>
+<action>A 'clean' white shirt, I can use this as a bandage.</action>
-if (!window.story.getChoice("Chapter1", "Shirt")) {
- print("[[[Take the shirt]|C1P7V221]]<br>");
-}
+<character.one.limping.ditto>Sarah</character>
-if (!window.story.getChoice("Chapter1", "Washer")) {
- print("[[[Search the washing machine]|C1P7V21]]<br>");
-} %>
+<action>Looks like it has been sitting in here for years.</action>
+<action>I guess the closed dryer door did a good job of keeping it clean.</action>
-<%= window.story.customRender("F: Search options") %>
+<% } else { %>
-<%
-if (
- window.story.getChoice("Chapter1", "Washer") &&
- window.story.getChoice("Chapter1", "Dryer")
-) {
- window.story.setChoice("Chapter1", "WandD");
-}
+<action>Still just that one white shirt in the dryer.</action>
+
+<% } %>
+
+<choices>
+ <%
+ if (!window.story.getChoice("Chapter1", "Shirt")) print("[[[Take the shirt]|C1P7V221]]");
+ if (!window.story.getChoice("Chapter1", "Washer")) print("[[[Search the washing machine]|C1P7V21]]");
+ %>
-window.passage.tried = true;
-%><%
+ <%= window.story.render("F: Search options") %>
+</choices><%
window.story.setChoice("Chapter1", "Dryer");
window.story.setChoice("Chapter1", "Shirt");
+
+if (window.story.getChoice("Chapter1", "Washer") && window.story.getChoice("Chapter1", "Dryer")) window.story.setChoice("Chapter1", "WandD");
%>
-I take out the white shirt.
+<ui>special</ui>
+<special>machines</special>
+<character.one.limping.ditto>Sarah</character>
-<% if (!window.story.getChoice("Chapter1", "Washer")) {
- print("[[[Search the washing machine]|C1P7V21]]<br>");
-} %>
+<action>I take out the white shirt.</action>
-<%= window.story.customRender("F: Search options") %>
+<choices>
+ <% if (!window.story.getChoice("Chapter1", "Washer")) print("[[[Search the washing machine]|C1P7V21]]"); %>
-<%
-if (
- window.story.getChoice("Chapter1", "Washer") &&
- window.story.getChoice("Chapter1", "Dryer")
-) {
- window.story.setChoice("Chapter1", "WandD");
-}
-%><i>
+ <%= window.story.render("F: Search options") %>
+</choices><flashback/>
+<ui>standard</ui>
+<character.one>Unknown</character>
+
+<speech.unknown>Sarah?</speech>
+<speech.unknown>Sarah get up, it's half past one in the afternoon!</speech>
+
+<action>A woman is shouting at me from somewhere downstairs.</action>
+
+<choices>
+ [[...|C1P9V2]]
+ [[No, fuck off|C1P9V3]]
+ [[It's too cold|C1P9V1]]
+</choices><flashback/>
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Unknown</character>
+<sound>knocking</sound>
+
+<action>Someone's softly knocking on the door.</action>
+
+<character.one.angry.eyes>Sarah</character>
+
+<speech.sarah>Go away.</speech>
+
+<character.one>Sarah</character>
+
+<sound>door</sound>
+
+<action>The door opens.</action>
+
+<character.two>Unknown</character>
+
+<speech.unknown>Sis?</speech>
+<speech.unknown>Come on, get up.</speech>
+
+<action>The voice is different from before.</action>
+
+<character.one.sad.eyes>Sarah</character>
+
+<action>I crack my eyes open to look at the source of the voice.</action>
+
+<character.two>Sophia</character>
+
+<action>Sure enough, my sister is standing in the doorway.</action>
+
+<character.two.excited>Sophia</character>
+
+<speech.sophia>You said you'd show me your new workplace today.</speech>
+<speech.sophia>Remember?</speech>
+
+<choices>
+ [[...|C1P11V2]]
+ [[I don't care|C1P11V1]]
+ [[Ask me tomorrow|C1P11V3]]
+</choices><flashback/>
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>?Sophia</character>
+
+<action>She's right up close to my face now.</action>
+<action>I can feel her cold breath.</action>
+
+<speech.sophia>If you don't get up...</speech>
+<speech.sophia>...you'll die.</speech>
+<action>She says in a low monotone voice.</action>
+
+<character.one.sad>Sarah</character>
+
+<speech.sarah>What the fuck...</speech>
+<action>I roll over and open my eyes.</action>
+
+<character.two.close-up.neutral-close-up.close-up>Sophia</character>
+<rumble>1 0.5 300</rumble>
+<sound>stinger</sound>
+
+<action>My sister is right there.</action>
+<action>Inches from my face.</action>
+<action>Staring.</action>
+<action>But, something's wrong.</action>
+<action>Her eyes...</action>
+
+<character.two.demonic>Sophia</character>
+
+<action>...they're like two little pinpricks burning into my soul.</action>
+
+<character.one.angry>Sarah</character>
+
+<speech.sarah>Get off me Sophia!</speech>
+<action>I try to move her.</action>
+
+<character.one.sad.angry>Sarah</character>
+
+<action>But I can't!</action>
+<action>I... I don't have the strength.</action>
+<action>She's like a dead weight on my chest.</action>
-"Sarah? Get up, it's half past one in the afternoon!", a woman shouts.
+<speech.sophia>We can be together.</speech>
+<speech.sophia>Forever.</speech>
+<speech.sophia>Just stop fighting...</speech>
-</i>
+<action>Her eyes are locked with mine, unblinking.</action>
-[[...|C1P9V2]]<br>
-[[No, fuck off|C1P9V3]]<br>
-[[It's too cold|C1P9V1]]<i>
+<choices>
+ [[...|C1P13R1]]
+ [[No, Sophia!|C1P13R1]]
+ [[Sophia, please!|C1P13R1]]
+</choices><ui>standard</ui>
+<character.one.sad.angry>Sarah</character>
+<character.two>Unknown</character>
+<stopmusic/>
-\*Knock knock\*
+<speech.unknown>Woah woah, hey, relax!</speech>
+<speech.unknown>It's alright, you're safe...</speech>
+<speech.unknown>...you're safe now.</speech>
-There's someone at the door.
+<action>It's a woman's voice, but different from the one before.</action>
+<action>I try to open my eyes, but they're so heavy.</action>
+<action>It's blurry, and I can't see properly.</action>
+<action>I can make out a face, it's close to me...</action>
-"Go away", I say, as someone opens the door.
+<character.two.neutral.neutral-mask.neutral-mask>Lucy</character>
-"Sis? Come on, get up. You said you'd show me where your new job is, remember?", a young girl's voice says.
+<action>...but, it's not Sophia's.</action>
-</i>
+<speech.lucy>Just relax, everything's going to be alright.</speech>
-[[...|C1P11V2]]<br>
-[[I don't care|C1P11V1]]<br>
-[[Ask me tomorrow|C1P11V3]]<i>
+<action>She's talking in a soothing voice.</action>
+<action>I can feel a gentle hand on my shoulder.</action>
-They're right up close to my face now, I can feel their breathing.
+<speech.sarah>Soph...</speech>
+<speech.sarah>Sophia...</speech>
+<speech.sarah>I couldn't... I- I tried...</speech>
-"If you don't get up, you'll die", the girl says in a low monotone voice.
+<action>I can hardly manage to sputter.</action>
+<action>Everything's going dark..</action>
-"What the fuck", I whisper as I roll over and open my eyes.
+<speech.lucy>Shh...</speech>
+<speech.lucy>Everything's going to be alright.</speech>
-My sister is right there, inches from my face, staring. But, something is wrong: her eyes, they're like two little pinpricks burning into my soul.
+<choices>[[[Pass out]|C1P14R1]]</choices><ui>special</ui>
+<character.one.pain.eyes>Sarah</character>
+<music>sofa</music>
-"Get off me Sophia", I say as I try to move here; but I can't, I don't have the strength. She's like a dead weight on my chest.
+<action>I wake with a jolt.</action>
+<action>I look around, I don't recognize where I am.</action>
+<action>I'm laying down on a sofa, it smells terrible...</action>
-"We can be together, forever: just let go.", Sophia says, her hazel eyes still locked with mine.
+<character.one.sad.eyes>Sarah</character>
-</i>
+<action>...actually, that might be me.</action>
+<action>The room is dark; it's evening perhaps?</action>
+<action>I'm in some kind of living room.</action>
-[[...|C1P13R1]]<br>
-[[No, Sophia!|C1P13R1]]<br>
-[[Sophia, please!|C1P13R1]]"Woah Woah, hey, relax, it's alright, you're safe... you're safe", a woman's voice says, different from the one before.
+<special>living-room</special>
-I try to open my eyes, but they're so heavy: it's blurry, and I can't see properly. I can make out a face, it's close to me, but, it's not Sophia's.
+<action>There's another sofa across from me, an armchair, and a coffee table in the middle of the room.</action>
+<action>There's a TV and cabinet on one wall, a window on another, and doors on the other two.</action>
+<action>I raise my arm to my head and-</action>
-"Just relax, everything's going to be alright", the woman says in a soothing voice. I feel a gentle hand on my shoulder.
+<character.one.angry.eyes>Sarah</character>
-"Soph... Sophia... I couldn't... I- I tried..." I manage to sputter, but everything's going dark... I don't have the strength...
+<action>What the hell?!</action>
-[[[Pass out]|C1P14R1]]I wake with a jolt. I look around, I don't recognize where I am. I'm laying down on a sofa, it smells terrible... actually, that might be me.
+<character.one.angry>Sarah</character>
-The room is dark; it's evening perhaps? I'm in some kind of living room, there's another sofa across from me, an armchair, and a coffee table in the middle of the room. There's a TV and cabinet on one wall, a window on another, and doors on the other two.
+<action>There's something sticking into my hand, and there's a tube attached.</action>
+<action>I follow the tubing with my eyes to a bag of clear fluid hanging from what looks like an old coat hanger stand.</action>
+<action>Where the hell am I, and what the fuck is in my arm?!</action>
-I raise my arm to my head and- What the hell? There's something sticking into my hand, and there's a tube attached; I follow it with my eyes to a bag of clear fluid hanging from what looks like an old hat hanger.
+<choices>
+ [[[Leave it alone]|C1P15V1]]
+ [[[Try ripping it out]|C1P15V2]]
+ [[[Disconnect the tubing]|C1P15V3]]
+</choices><flashback/>
+<ui>standard</ui>
+<character.one.sad.eyes>Sarah</character>
-Where the hell am I, and what the fuck is in my arm?!
+<speech.sarah>It's too cold... and my bed is so warm.</speech>
-[[[Leave it alone]|C1P15V1]]<br>
-[[[Try ripping it out]|C1P15V2]]<br>
-[[[Try disconnecting the tubing]|C1P15V3]]<i>
+<action>I mumble back.</action>
+
+<%= window.story.render("F: Stay in bed") %><% window.story.achievement("Chapter1", "Filter") %>
+
+<flashback/>
+<ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+
+<speech.sarah>Fuck off, I'll stay in bed as long as I want!</speech>
+
+<character.one.pain.eyes>Sarah</character>
+<character.two>Unknown</character>
+
+<speech.unknown>Watch that tone young woman or you'll be sleeping outside!</speech>
+
+<%= window.story.render("F: Stay in bed") %><flashback/>
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Sophia</character>
+
+<action>I close my eyes, groan, and rollover.</action>
+
+<character.two>?Sophia</character>
-"It's too cold... and my bed is so warm", I mumble back.
+<speech.sophia>Pleeeeeease can you take me today?</speech>
+<speech.sophia>It sounds so cool!</speech>
-</i>
+<action>I hear her ask from behind me.</action>
-<%= window.story.customRender("F: Stay in bed") %><% window.story.achievement("Chapter1", "Filter", "No Filter", "Speaking your mind, *even when you shouldn't.*") %>
+<sound>bed</sound>
-<i>
+<action>She's climbing onto my bed.</action>
+<action>Now she's crawling up towards me.</action>
+<action>I swear, if she gives me a wet willie, I will body slam her.</action>
+<action>I don't care if she's a minor.</action>
-"Fuck off, I'll stay in bed as long as I want!", I whine back.
+<music>flashback</music>
-"Watch that tone young woman or you'll be sleeping outside!", the woman's voice snaps back.
+<choices>[[[Brace for impact]|C1P13]]</choices><flashback/>
+<ui>standard</ui>
+<character.one.sad.eyes>Sarah</character>
+<character.two.excited>Sophia</character>
-</i>
+<speech.sarah>I don't care...</speech>
+<speech.sarah>I'll show you another day.</speech>
+<action>I rub my leg, it's a bit sore.</action>
-<%= window.story.customRender("F: Stay in bed") %><i>
-I groan and rollover.
+<character.two>Sophia</character>
-"Pleeease can you take me today? It sounds so cool!", the girl says.
+<speech.sophia>You keep saying that though!</speech>
-\*Creak, creak\*
+<character.one.angry.eyes>Sarah</character>
-Someone is climbing onto my bed; they're crawling up towards me.
+<speech.sarah>I said no, now get lost already.</speech>
-I swear, if she gives me a wet willie, I will body slam her; I don't care if she's a minor.
+<%= window.story.render("F: Rollover") %><flashback/>
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two.excited>Sophia</character>
-</i>
+<speech.sarah>Not today.</speech>
+<speech.sarah>Remind me tomorrow...</speech>
+<action>I rub my leg, it's a bit sore.</action>
-[[[Brace for impact]|C1P13]]<i>
+<character.two>Sophia</character>
-"I don't care", I grumble. "I'll show you another day", I say as I rub my leg, it's a bit sore.
+<speech.sophia>That's what you said yesterday though!</speech>
-"You keep saying that though!", the girl says.
+<character.one.sad.eyes>Sarah</character>
-"I said no, now get lost", I groan.
+<speech.sarah>And I'll probably say the same thing tomorrow.</speech>
+<action>I groan under my breath.</action>
-</i>
+<%= window.story.render("F: Rollover") %><% window.story.redirect("C1P14", 3) %><% window.story.redirect("C1P15", 7) %><ui>special</ui>
+<special>living-room</special>
+<character.one.sad.eyes>Sarah</character>
-[[[Rollover]|C1P12]]<i>
+<action>I had better not touch it; I don't need another injury.</action>
+<action>Speaking of which, I had better check on my leg.</action>
+<action>I carefully lean forward and inspect my leg.</action>
-"Not today", I grumble. "Remind me tomorrow", I say as I rub my leg, it's a bit sore.
+<character.one.happy.eyes>Sarah</character>
-"That's what you said yesterday though!", the girl says.
+<action>Woah...</action>
+<action>Someone has bandaged it properly...</action>
-"And I'll probably say the same thing tomorrow", I groan under my breath.
+<choices>[[[Inspect the dressing]|C1P16]]</choices><ui>special</ui>
+<special>living-room</special>
+<character.one.angry.eyes>Sarah</character>
-</i>
+<action>I don't what this thing is...</action>
+<action>...who put it in me...</action>
+<action>...or what that fluid is...</action>
+<action>...but I know it's not good!</action>
+<action>This will probably hurt, so I'm better off just pulling it out quickly.</action>
-[[[Rollover]|C1P12]]<% window.story.redirect("C1P14", 3) %><% window.story.redirect("C1P15", 7) %>I had better not touch it; I don't need another injury. Speaking of which, I had better check my leg.
+<speech.sarah>Alright, deep breath, you can do this...</speech>
+<speech.sarah>You can do this.</speech>
-I carefully lean forward and inspect my leg. Someone has bandaged it properly...
+<choices>[[[Pull it out]|C1P16]]</choices><ui>special</ui>
+<special>living-room</special>
+<character.one.sad.eyes>Sarah</character>
-[[[Inspect the dressing]|C1P16]]I don't what this thing is, who put it in me, or what that fluid is, but I know it's not good. This will probably hurt, so I'm better off just pulling it out quickly.
+<action>I don't really want to touch the thing sticking in my hand.</action>
+<action>But there must be a way to disconnect this tubing?</action>
+<action>Taking a closer look, I think I can just unscrew it at the part where the tubing connects with the thing in my hand.</action>
+<action>Worth a shot, here goes nothing.</action>
-Alright, deep breath, you can do this... you can do this.
+<choices>[[[Disconnect the tubbing]|C1P16]]</choices><ui>special</ui>
+<special>living-room</special>
+<character.one>Sarah</character>
+<killmusic/>
-[[[Pull it out]|C1P16]]I don't really want to touch the thing sticking in my hand, but I must be able to disconnect this tubing.
+<sound>behind-door</sound>
-Taking a closer look, I think I can just unscrew it at the part where the tubing connects with the thing in my arm. Worth a shot, here goes nothing.
+<action>I hear something behind me.</action>
+<action>I freeze for a moment, then look behind me.</action>
-[[[Disconnect the tubbing]|C1P16]]\*Creek\*
+<character.one.angry.eyes>Sarah</character>
-I freeze for a moment, then look behind me: there's a closed door, but I can see a shadow underneath- someone's standing on the other side.
+<action>There's a closed door, but I can see a shadow underneath-</action>
-[[...|C1P16V2]]<br>
-[[I'm armed, back off! [Lie]|C1P16V1]]<br>
-[[Who are you? Show yourself!|C1P16V3]]<% window.story.setChoice("Chapter1", "Nothing2") %>
+<character.one.angry>Sarah</character>
-My eyes are locked on the shadow, watching, waiting for it to move.
+<action>Someone's standing on the other side.</action>
-<%= window.story.customRender("F: Meeting Tiffany") %>"I have a weapon, stay away, or I'll kill you!", I shout.
+<choices>
+ [[...|C1P16V2]]
+ [[Show yourself!|C1P16V3]]
+ [[I'm armed, back off! [Lie]|C1P16V1]]
+</choices><% window.story.setChoice("Chapter1", "Nothing2") %>
-<%= window.story.customRender("F: Meeting Tiffany") %>"Who are you, what have you done to me? Show yourself!", I shout.
+<ui>standard</ui>
+<character.one.sad.eyes>Sarah</character>
-<%= window.story.customRender("F: Meeting Tiffany") %>I wince and refrain from shouting several words and I'm sure my mother would kill me if she heardI carefully push out bits of glass still left attached to the frame, and take one last look inside... well shit, here goes nothing.
+<action>My eyes are locked on the shadow, watching, waiting for it to move.</action>
-[[[Climb in the window]|C1P6]]<%
+<%= window.story.render("F: Meeting Tiffany") %><ui>standard</ui>
+<character.one.angry>Sarah</character>
+
+<speech.sarah>I have a weapon, stay away, or I'll kill you!</speech>
+
+<%= window.story.render("F: Meeting Tiffany") %><ui>standard</ui>
+<character.one.angry>Sarah</character>
+
+<speech.sarah>Who are you, what have you done to me?</speech>
+<speech.sarah>Show yourself!</speech>
+
+<%= window.story.render("F: Meeting Tiffany") %>I wince and refrain from shouting several words I'm sure my mother would kill me if she heard<action>I carefully push out bits of glass still left attached to the frame, and take one last look inside...</action>
+<action>Well shit, here goes nothing.</action>
+
+<choices>[[[Climb in the window]|C1P6]]</choices><%
const passageName = window.passage.name;
-if (!passageName.startsWith("C1P7V1")) {
- print("[[[Search the sink]|C1P7V1]]<br>");
-}
+if (!passageName.startsWith("C1P7V1")) print("[[[Search sink]|C1P7V1]]");
-if (!passageName.startsWith("C1P7V3")) {
- print("[[[Search the cupboards]|C1P7V3]]<br>");
-}
+if (!passageName.startsWith("C1P7V3")) print("[[[Search cupboards]|C1P7V3]]");
-if (!passageName.startsWith("C1P7V2")) {
- print("[[[Search the washing machine and dryer]|C1P7V2]]<br>")
-}
+if (!passageName.startsWith("C1P7V2")) print("[[[Search washing machine and dryer]|C1P7V2]]");
%>
+[[[Leave the laundry room]|C1P8]]<choices>
+ <% if (!window.story.getChoice("Chapter1", "Knocked")) print("[[[Knock on door]|C1P5V11]]"); %>
+ [[[Go to window]|C1P5V2]]
+ <% if (window.passage.name != "C1P5V12") print("[[[Try door handle]|C1P5V12]]"); %>
+ [[[Kick the door in]|C1P5V13]]
+</choices><choices>
+ [[[Go to the door]|C1P5V1]]
+ <% if (window.passage.name != "C1P5V21") print("[[[Look inside the house]|C1P5V21]]") %>
+ [[[Pull off lowest board]|C1P5V22]]
+</choices><wait>1000</wait>
+<sound>collapse</sound>
+<rumble>1 1 200</rumble>
+
+<% window.story.redirect("C1P9") %><action>The door is starting to open slowly.</action>
+
+<character.one.angry>Sarah</character>
+
+<action>I tense up ready to fight.</action>
+<action>The door is open far enough now that I can see a person-</action>
+<action>A very small person...</action>
+
+<character.one.angry.eyes>Sarah</character>
+
+<action>...a child...</action>
+
+<character.one>Sarah</character>
+<character.two>Tiffany</character>
+<characteroverride.two>???</characteroverride>
+<music>calm</music>
+
+<action>...a little girl.</action>
+<action>She can't be more than 7 or 8 years old.</action>
+<action>I can just make out shoulder-length blonde hair, bright blue eyes, a dark blue dress with white dots, and some kind of stuffed toy in her hands.</action>
+<action>Our eyes meet and we stare at each other for a moment.</action>
+<action>There's not a hint of fear in her eyes, just pure curiosity.</action>
+
+<choices>
+ [[...|C1P17V2]]
+ [[Hello there?|C1P17V1]]
+ [[What's your name?|C1P17V3]]
+</choices><% if (!window.story.getChoice("Chapter1", "Nothing3")) { %>
+
+<action>She doesn't reply.</action>
+<action>She's just continues to stare.</action>
-[[[Leave the laundry room]|C1P8]]<%
-if (!window.story.getChoice("Chapter1", "Knocked")) {
- print("[[[Knock on the door]|C1P5V11]]<br>");
-}
+<% } %>
-if (window.passage.name != "C1P5V12") {
- print("[[[Try the door handle]|C1P5V12]]<br>");
-}
-%>
-[[[Go back to the window]|C1P5V2]]<br>
-[[[Try kicking the door in]|C1P5V13]]<% const currentPassage = window.passage.name %>
-[[[Go back to the door]|C1P5V1]]<br>
-<% if (currentPassage != "C1P5V21") print("[[[Look inside the house]|C1P5V21]]<br>") %>
-[[[Try pulling the lowest board off]|C15V22]]<% window.story.redirect("C1P9") %>The door is starting to open slowly, I tense up ready to fight.
+<character.two>Unknown</character>
+<killmusic/>
+
+<speech.unknown>Tiffany!</speech>
+
+<action>A woman shouts from somewhere behind her.</action>
+
+<character.two.scared.ditto>Tiffany</character>
+<characteroverride.two>???</characteroverride>
+
+
+<action>The curiosity in her eyes is quickly replaced by panic.</action>
+
+<resetcharacter.two/>
+<sound>door-close</sound>
+
+<action>The door snaps shut again.</action>
+<action>I hear footsteps behind the door and muffled voices.</action>
+
+<character.one.sad.eyes>Sarah</character>
+
+<action>I was ready to fight my way out of here, but, now I'm not sure what to do.</action>
+
+<choices>[[[Wait]|C1P18]]</choices><% window.story.achievement("Chapter1", "HelloThere") %>
+
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Tiffany</character>
+<characteroverride.two>???</characteroverride>
+
+<speech.sarah>Hello there...</speech>
-The door is open far enough now that I can see a person, a very small person: a child, a girl.
+<%= window.story.render("F: Tiffany bad girl") %><% window.story.setChoice("Chapter1", "Nothing3") %>
-She can't be more than 7 or 8 years old... I can just make out shoulder-length blonde hair, bright blue eyes, and a dark blue dress with white dots.
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Tiffany</character>
+<characteroverride.two>???</characteroverride>
-Our eyes meet and we stare at each other for a moment, there's not a hint of fear in her eyes, just pure curiosity.
+<action>I stare into her eyes for a moment longer.</action>
-<%= window.story.customRender("F: Meeting Tiffany options") %><% if (!window.story.getChoice("Chapter1", "Nothing3")) {
- print("She doesn't reply, she's just staring...");
-} %>
+<%= window.story.render("F: Tiffany bad girl") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Tiffany</character>
+<characteroverride.two>???</characteroverride>
-"Tiffany!", a woman says somewhere behind her. The curiosity in her eyes is quickly replaced by panic, and the door snaps shut.
+<speech.sarah>What's your name?</speech>
-I hear footsteps behind the door and muffled voices. I was ready to fight my way out of here, but, now I'm not sure what to do.
+<%= window.story.render("F: Tiffany bad girl") %><ui>standard</ui>
+<character.one>Sarah</character>
-[[[Wait]|C1P18]][[...|C1P17V2]]<br>
-[[Hello there?|C1P17V1]]<br>
-[[What's your name?|C1P17V3]]<% window.story.achievement("Chapter1", "HelloThere", "Hello There", "General Kenobi... you are a bold one.") %>
+<action>The voices have stopped, there's more footsteps.</action>
-"Hello there", I say cautiously.
+<sound>door</sound>
-<%= window.story.customRender("F: Tiffany bad girl") %><% window.story.setChoice("Chapter1", "Nothing3") %>
+<action>The door is opening.</action>
+<action>A woman steps through.</action>
-I stare into her eyes for a moment longer.
+<character.two>Lucy</character>
+<characteroverride.two>???</characteroverride>
-<%= window.story.customRender("F: Tiffany bad girl") %>"What's your name?" I say cautiously.
+<action>They have brown hair done up in a bun, soft brown eyes, is wearing cargo pants and a t-shirt, and is in her mid-30s if I had to guess.</action>
+<action>She has a sort of weathered look about her.</action>
+<action>They've noticed I'm looking them over.</action>
-<%= window.story.customRender("F: Tiffany bad girl") %>The voices stop, there are more footsteps- The door is opening.
+<speech.lucy.!two>Sizing me up are you?</speech>
-A woman steps through. She has brown hair done up in a bun, soft brown eyes, is wearing cargo pants and a t-shirt, and is in her mid-30s if I had to guess. She has a sort of weathered look about her.
+<choices>
+ [[...|C1P18V2]]
+ [[Yeah|C1P18V1]]
+ [[Why would I be?|C1P18V3]]
+</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+<characteroverride.two>???</characteroverride>
-She notices I am looking her over.
+<speech.sarah>Yeah, I am.</speech>
-"Sizing me up are you?", she asks.
+<action>I maintain eye contact.</action>
-[[...|C1P18V2]]<br>
-[[Yeah|C1P18V1]]<br>
-[[Why would I be?|C1P18V3]]"Yeah, I am", I say while keeping eye contact.
+<speech.lucy.!two>How am I fairing?</speech>
-"How am I fairing?", the woman replies.
+<choices>
+ [[...|C1P18V12]]
+ [[A threat|C1P18V11]]
+ [[Not a threat|C1P18V13]]
+</choices><% window.story.setChoice("Chapter1", "Nothing4"); %>
-[[...|C1P18V12]]<br>
-[[A threat|C1P18V11]]<br>
-[[Not a threat|C1P18V13]]<% window.story.setChoice("Chapter1", "Nothing4") %>
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+<characteroverride.two>???</characteroverride>
-Well, she's caught me, no point stopping I suppose. I continue to look her over; she doesn't seem bothered by it. She's still standing in the doorway.
+<action>Well, she's caught me, no point stopping I suppose.</action>
+<action>I continue to look her over, she doesn't seem bothered by it.</action>
+<action>She's still standing in the doorway.</action>
-<%= window.story.customRender("F: My name is Lucy") %>"Why would I be doing a thing like that I wonder?", I remark sarcastically.
+<%= window.story.render("F: My name is Lucy") %><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two>Lucy</character>
+<characteroverride.two>???</characteroverride>
-"Hmm, I don't know; maybe it has something to do with waking up on a stranger couch?", the woman replies without missing a beat.
+<speech.sarah>Why would I be doing a thing like that I wonder?</speech>
-"Could be...", I say back.
+<action>I remark sarcastically.</action>
-<%= window.story.customRender("F: My name is Lucy") %>I stare for a moment longer, then shrug.
+<speech.lucy.!two>Hmm, I don't know, maybe it has something to do with waking up on a stranger's couch?</speech>
-The lady gives me a half-smile.
+<action>She replies without missing a beat.</action>
-<%= window.story.customRender("F: My name is Lucy") %>"You're definitely a threat: I don't know you", I say.
+<speech.sarah>Could be...</speech>
-"Cautious; not a bad trait to have these days.", she replies.
+<%= window.story.render("F: My name is Lucy") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+<characteroverride.two>???</characteroverride>
-<%= window.story.customRender("F: My name is Lucy") %>"You're not a threat: if you wanted to kill me, you'd have done it while I was passed out", I say.
+<action>I stare for a moment longer, then shrug.</action>
-"Good point, but what if I wanted you to be awake when I killed you?", she asks. I stare back at her, unsure how to reply.
+<character.two.happy.mouth>Lucy</character>
+<characteroverride.two>???</characteroverride>
-<%= window.story.customRender("F: My name is Lucy") %>She steps through the door and closes it behind her.
+<action>She gives me a half-smile.</action>
-"My name is Lucy, and it seems you've already met my daughter, Tiffany", Lucy says.
+<%= window.story.render("F: My name is Lucy") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+<characteroverride.two>???</characteroverride>
-"I'd welcome you to our home, but the broken <% window.story.getChoice("Chapter1", "Kicked") ? print("back door") : print("window") %> suggests you already helped yourself", Lucy says as she folds her arms.
+<speech.sarah>Definitely a threat, I don't know you.</speech>
-Guess that explains where I am.
+<speech.lucy.!two>Cautious; not a bad trait to have these days.</speech>
-<% if (!window.story.getChoice("Chapter1", "Knocked")) {
- print("[[...|C1P19V2]]<br>");
-} %>
-[[Sorry|C1P19V1]]<br>
-[[I had no choice|C1P19V3]]<br>
-<% if (window.story.getChoice("Chapter1", "Knocked")) {
- print("[[I did knock|C1P19V4]]");
-} %>Protagonist - Sarah:
+<%= window.story.render("F: My name is Lucy") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+<characteroverride.two>???</characteroverride>
+
+<speech.sarah>You're not a threat.</speech>
+<speech.sarah>If you wanted to hurt me, you'd have done it while I was passed out.</speech>
+
+<speech.lucy.!two>Unless of course I only get my kicks out of hurting people when they're awake.</speech>
+
+<character.one.angry.eyes>Sarah</character>
+
+<action>I stare back at her uneasily, unsure how to reply.</action>
+
+<%= window.story.render("F: My name is Lucy") %><sound>door-close</sound>
+
+<action>She steps through the door and closes it behind her.</action>
+
+<character.two>Lucy</character>
+
+<speech.lucy>My name is Lucy.</speech>
+<speech.lucy>It seems you've already met my daughter, Tiffany.</speech>
+<speech.lucy>I'd welcome you to our home, but the broken <% print(window.story.getChoice("Chapter1", "Kicked") ? "back door" : "window") %> suggests you've already helped yourself.</speech>
+
+<action>She folds her arms disapprovingly.</action>
+<action>I guess that explains where I am.</action>
+
+<choices>
+ [[...|C1P19V2]]
+ [[Sorry|C1P19V1]]
+ <% if (window.story.getChoice("Chapter1", "Knocked")) print("[[I did knock|C1P19V4]]"); %>
+ [[I had no choice|C1P19V3]]
+</choices>Protagonist - Sarah:
- 20 years old
- Brown eyes
- Messy, short brown hair
@@ -687,89 +1192,204 @@
- 27 years old
- Long black hair in a ponytail
- Light green eyes
-- Tall and skinny<% window.story.setChoice("Chapter1", "Nothing5") %>
+- Tall and skinny<% window.story.setChoice("Chapter1", "Nothing5"); %>
+
+<ui>standard</ui>
+<character.one.sad.eyes>Sarah</character>
+<character.two>Lucy</character>
+
+<action>Well, this is awkward...</action>
+<action>I maintain eye contact with her.</action>
+
+<%= window.story.render("F: Anyway, since") %><ui>standard</ui>
+<character.one.sad.eyes>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>Ah, right... sorry about that.</speech>
+
+<action>I awkwardly scratch the back of my head.</action>
+
+<speech.lucy>Don't sweat it, we only set up shop here a few days ago ourselves.</speech>
+
+<%= window.story.render("F: Anyway, since") %><% window.story.setChoice("Chapter1", "NoChoice"); %>
+
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>I didn't have much of a choice.</speech>
+<speech.sarah>If I stayed out there I would have been a meal for the walkers by the end of the day.</speech>
+
+<speech.lucy>That is true, you really weren't in great shape.</speech>
+<speech.lucy>That much I can attest to.</speech>
+
+<%= window.story.render("F: Anyway, since") %><ui>standard</ui>
+<character.one.happy.eyes>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>I did knock before I came in.</speech>
+
+<character.two.happy.mouth>Lucy</character>
+
+<speech.lucy>Yeah, you did.</speech>
+<speech.lucy>I was half tempted to open the door just to see who was crazy enough to still knock these days.</speech>
+
+<%= window.story.render("F: Anyway, since") %><character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<action>Lucy takes a few more steps into the room.</action>
+<action>She then sits in an armchair across from me.</action>
+
+<speech.lucy>Anyway, since you went and collapsed in my laundry room, you left me with a difficult choice.</speech>
+<speech.lucy>Put you outside, which I could tell just by looking at the state you were in would be a death sentence...</speech>
+<speech.lucy>...kill you there and then, which would also, you know, be a death sentence...</speech>
+<speech.lucy>...or, bring you in and patch you up.</speech>
+
+<action>She's says very casually.</action>
+
+<choices>
+ [[...|C1P20V2]]
+ [[Thanks|C1P20V1]]
+ [[Should have let me die|C1P20V3]]
+</choices><% window.story.setChoice("Chapter1", "Nothing6"); %>
+
+<ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two>Lucy</character>
+
+<action>I continue to stare at Lucy.</action>
+
+<%= window.story.render("F: I used your stuff") %><ui>standard</ui>
+<character.one.happy.eyes>Sarah</character>
+<character.two>Lucy</character>
-Well, this is awkward... I maintain eye contact with her.
+<speech.sarah>Thanks for choosing option number three, I think...</speech>
-<%= window.story.customRender("F: Anyway, since") %>"Ah, right... sorry about that", I say as I awkwardly scratch the back of my head.
+<%= window.story.render("F: I used your stuff") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-"Don't sweat it, we only set up shop here a few days ago ourselves", Lucy remarks."
+<speech.sarah>You should have left me to die.</speech>
-<%= window.story.customRender("F: Anyway, since") %><% window.story.setChoice("Chapter1", "NoChoice") %>
+<character.two.happy.eyes>Lucy</character>
-"I didn't have much of a choice, if I stayed out there I would have been a meal for the walkers by the end of the day", I remark.
+<speech.lucy>Oh, and why's that?</speech>
-"That is true, you really weren't in great shape. That much I can attest to that", Lucy replies.
+<speech.sarah>That's what I would have done in your position.</speech>
+<speech.sarah>Supplies are scarce these days, and I was in pretty bad shape.</speech>
+<speech.sarah>I was, and still am, a stranger.</speech>
+<speech.sarah>For all you know, I could have got hurt breaking into someone else's house, just like I did yours.</speech>
-<%= window.story.customRender("F: Anyway, since") %>"I did try knocking before I came in", I remark.
+<character.two.concern.eyes>Lucy</character>
-"Yeah, you did", Lucy chuckles.
+<action>Lucy raises an eyebrow.</action>
-"I was half tempted to open the door just to see who was crazy enough to still knock these days", Lucy says.
+<character.one.sad.eyes>Sarah</character>
-<%= window.story.customRender("F: Anyway, since") %>Lucy takes a few more steps into the room and sits in an armchair across from me.
+<action>Shit, might have given too much away there...</action>
-"Anyway, since you went and collapsed in my laundry room, you left me with a difficult choice: put you outside, which I could tell just by looking at the state you were in would be a death sentence; kill you there and then, which would also, you know, be a death sentence; or bring you in and patch you up", Lucy says very casually.
+<speech.lucy>I guess I'm just too trusting</speech>
-[[...|C1P20V2]]<br>
-[[Thanks|C1P20V1]]<br>
-[[Should have let me die|C1P20V3]]<% window.story.setChoice("Chapter1", "Nothing6") %>
+<%= window.story.render("F: I used your stuff") %><speech.lucy>Yup. It's called a cannula, and that bag it's connected to, is just salty water.</speech>
+<speech.lucy>You're lucky you broke into the one house around here with a nurse in it.</speech>
-I continue to stare at Lucy.
+<character.two.happy>Lucy</character>
-<%= window.story.customRender("F: I used your stuff") %>"Thanks for choosing option number three, I think", I reply cautiously.
+<speech.lucy>Albeit an ill-equipped one.</speech>
-<%= window.story.customRender("F: I used your stuff") %>"You should have left me to die", I state.
+<action>She chuckles at her own comment.</action>
-"Oh, and why's that?", Lucy asks.
+<character.two.concern>Lucy</character>
-"That's what I would have done in your position. Supplies are scarce these days, I was in pretty bad shape, and I was, and still am, a stranger. For all you know, I could have got hurt breaking into someone else's house, just like I did yours", I state matter-of-factly.
+<action>Lucy then pauses and sits forward in her chair.</action>
-"Good point, I guess I'm just too trusting", Lucy replies.
+<speech.lucy>Speaking of injuries, how exactly did you manage to get yourself so scrapped up?</speech>
-<%= window.story.customRender("F: I used your stuff") %>"Yup. It's called a cannula, and that bag it's connected to, is just salty water", Lucy explains.
+<action>Lucy gestures to my leg.</action>
+<action>I suspected this would come up.</action>
+<action>I'm not sure what to say...</action>
-"You're lucky that you broke into the one house around here with a nurse in it, albeit an ill-supplied nurse", Lucy chuckles.
+<choices>
+ [[[Lie to Lucy]|C1P22V2]]
+ [[[Tell Lucy the Truth]|C1P22V1]]
+</choices><% window.story.setChoice("Chapter1", "Lied", false); %>
-Lucy pauses, then sits forward in her chair.
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-"Speaking of injuries, how *did* you manage to get yourself so banged up anyway?", Lucy asks as she gestures to my leg.
+<action>Honesty is the best policy, right?</action>
+<action>I take a deep breath, preparing myself for whatever might happen next.</action>
-[[[Tell Lucy the Truth]|C1P22V1]][[[Lie to Lucy]|C1P22V2]]<% window.story.setChoice("Chapter1", "Lied", false) %>
+<character.one.sad>Sarah</character>
-"I killed a man", I state.
+<speech.sarah>I killed a man.</speech>
-Lucy sits there for a moment, then her slight smile drops as she realizes I wasn't joking.
+<action>Lucy sits there staring.</action>
-She pauses for a moment.
+<character.two.concern>Lucy</character>
-"Did he deserve it?", she asks.
+<action>Her expression tenses up as she realizes I wasn't joking.</action>
+<action>She pauses for a moment.</action>
-[[...|C1P22V12]]<br>
-[[Yes, it was unprovoked|C1P22V11]]<br>
-[[No, wrong place wrong time|C1P22V13]]<% window.story.setChoice("Chapter1", "Lied") %>
+<speech.lucy>Did he deserve it?</speech>
-"I cut myself climbing a fence", I say; I'm not good at lying.
+<choices>
+ [[...|C1P22V12]]
+ [[Yes, it was unprovoked|C1P22V11]]
+ [[No, wrong place wrong time|C1P22V13]]
+</choices><% window.story.setChoice("Chapter1", "Lied"); %>
-"Uh-huh", Lucy says, clearly unconvinced.
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-"Must have been a hellova fence", she adds.
+<action>She might kill me on the spot if I tell her the truth.</action>
+<action>I better come up with something, quickly.</action>
-[[Yeah|C1P22V21]]<br>
-[[It was|C1P22V22]]<br>
-[[Biggest ever|C1P22V23]]<% window.story.setChoice("Chapter1", "Nothing1") %>
+<character.one.sad.eyes>Sarah</character>
-<i>
+<speech.sarah>I, uh, cut myself climbing a fence.</speech>
-I couldn't care less...
+<action>Fuck I'm a terrible lier.</action>
-</i>
+<character.two.concern>Lucy</character>
-<%= window.story.customRender("F: Stay in bed") %>Game & Infrastructure - Christopher "Inferno" M.<br>
+<speech.lucy>Uh-huh.</speech>
+
+<action>She's clearly not convinced.</action>
+
+<speech.lucy>Must have been a hellova fence...</speech>
+
+<choices>
+ [[Yeah|C1P22V21]]
+ [[It was|C1P22V22]]
+ [[Biggest ever|C1P22V23]]
+</choices><% window.story.setChoice("Chapter1", "Nothing1") %>
+
+<flashback/>
+<ui>standard</ui>
+<character.one.sad.eyes>Sarah</character>
+
+<action>I couldn't care less...</action>
+
+<%= window.story.render("F: Stay in bed") %>Game & Infrastructure - Christopher "Inferno" M.<br>
<a href="https://purpose-game.com" target="_blank">https://purpose-game.com</a><br><br>
-Artwork - Daniel "DanDarkDesigns" Ayala<br>
-<a href="https://www.artstation.com/darkcan" target="_blank">https://www.artstation.com/darkcan</a>
+Artwork, UI Design, & Sound Design - Despoina "DesDarkDesigns"<br>
+<a href="https://linktr.ee/despoinanyx" target="_blank">https://linktr.ee/despoinanyx</a>
+
+UI Sound Effects - Kenney Vleugels<br>
+<a href="https://kenney.nl" target="_blank">https://kenney.nl</a>
+
+SFX - Reference Individual File Metadata<br>
+<a href="https://freesound.org/" target="_blank">https://freesound.org/</a>
+<a href="https://creativecommons.org/publicdomain/zero/1.0/" target="_blank">(https://creativecommons.org/publicdomain/zero/1.0/)</a>
+<a href="https://creativecommons.org/licenses/by/3.0/" target="_blank">(https://creativecommons.org/licenses/by/3.0/)</a>
+<a href="https://creativecommons.org/licenses/by/4.0/" target="_blank">(https://creativecommons.org/licenses/by/4.0/)</a>
+
+Music - Reference Individual File Metadata<br>
+<a href="https://www.humblebundle.com" target="_blank">https://www.humblebundle.com</a>
Dead Font Walking Font - Allison James<br>
<a href="https://www.1001fonts.com/dead-font-walking-font.html" target="_blank">https://www.1001fonts.com/dead-font-walking-font.html</a>
@@ -780,9 +1400,21 @@
SimpleNotification - Glagan & Contributors<br>
<a href="https://github.com/Glagan/SimpleNotification" target="_blank">https://github.com/Glagan/SimpleNotification</a>
-toggleFullscreen.js - demonixis<br>
+toggleFullscreen.js - demonixis
<a href="https://gist.github.com/demonixis/5188326" target="_blank">https://gist.github.com/demonixis/5188326</a>
+jquery-typewriter-plugin - 0xPranavDoshi<br>
+<a href="https://github.com/0xPranavDoshi/jquery-typewriter" target="_blank">https://github.com/0xPranavDoshi/jquery-typewriter</a>
+
+Steam-like Trading Card Interaction - imchell<br>
+<a href="https://github.com/imchell/steam-like-card-curation" target="_blank">https://github.com/imchell/steam-like-card-curation</a>
+
+Drift - imgix<br>
+<a href="https://github.com/imgix/drift" target="_blank">https://github.com/imgix/drift</a>
+
+Underscore.js - DocumentCloud & Contributors<br>
+<a href="https://underscorejs.org/" target="_blank">https://underscorejs.org/</a>
+
jQuery - OpenJS Foundation & Contributors<br>
<a href="https://jquery.com/" target="_blank">https://jquery.com/</a>
@@ -790,11 +1422,16 @@
<a href="https://github.com/videlais/snowman" target="_blank">https://github.com/videlais/snowman</a>
Twine 2 - Twine and Twee<br>
-<a href="https://twinery.org/" target="_blank">https://twinery.org/</a>[[[Stay in bed]|C1P11]]<% window.story.setChoice("Chapter1", "Nothing7") %>
+<a href="https://twinery.org/" target="_blank">https://twinery.org/</a><choices>[[[Stay in bed]|C1P11]]</choices><% window.story.setChoice("Chapter1", "Nothing7") %>
-I huff and ignore her.
+<flashback/>
+<ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two.excited>Sophia</character>
-[[[Rollover]|C1P12]]<%
+<action>I huff and ignore her.</action>
+
+<%= window.story.render("F: Rollover") %><%
let verbal = true;
if (
@@ -808,293 +1445,647 @@
) {
verbal = false;
- window.story.achievement("Chapter1", "Nothing", "Silent Treatment", "You have the right to remain silent...");
+ window.story.achievement("Chapter1", "Nothing", "Silent Treatment");
}
%>
-Lucy crosses her arms.
+<character.one>Sarah</character>
+<character.two.concern>Lucy</character>
+
+<action>Lucy crosses her arms.</action>
<% if (window.story.getChoice("Chapter1", "Disinfectant")) { %>
-"You know that disinfectant you had on you is for cleaning floors, right?", Lucy remarks.
+<speech.lucy>You know that disinfectant you had on you is for cleaning floors, right?</speech>
+
+<speech.sarah>Yeah I know, but it was all I could find.</speech>
+<speech.sarah>I couldn't exactly take myself down to the local chemist.</speech>
-"Yeah I know, but it was all I could find. I couldn't exactly take myself down to the local chemist", I reply.
+<%
+if (!verbal) {
+ verbal = true;
+%>
+<speech.lucy>So she does speak...</speech>
+<% } %>
-"<% if (!verbal) { print("She does speak! "); verbal = true; } %>Well, good thing you had it because I was all out, and you would have had a nasty infection if I hadn't used it. Definitely shaved a few days off your recovery", Lucy says.
+<speech.lucy>Well, good thing you had it because I was all out, and you would have had a nasty infection if I hadn't used it.</speech>
+<speech.lucy>Definitely shaved a few days off your recovery.</speech>
<% } else { %>
-"I didn't have anything to properly clean that wound with, so you developed a nasty infection for a little while there. It resolved within a few days though", Lucy says.
+<speech.lucy>Anyway, I didn't have anything to properly clean your wound with, so you picked up a nasty infection.</speech>
+<speech.lucy>Lucky for you, it resolved in a few days, and you're no worse for wear it appears.</speech>
<% } %>
<% if (window.story.getChoice("Chapter1", "Soap")) { %>
-"Also, what the hell was the soap bar for?", Lucy adds.
+<character.two.happy.eyes>Lucy</character>
+
+<speech.lucy>Also, what the hell was the soap bar for?</speech>
<% } %>
-"Hold on, *Days?!*", I exclaim.
+<character.one.happy.eyes>Sarah</character>
+<character.two.concern>Lucy</character>
-"<% if (!verbal) print("She does speak! ") %>Oh yeah, you had one foot in the grave. That's why I had to give you IV fluids, couldn't have you dying of dehydration on me after all the effort I put into *not* killing you", Lucy states calmly.
+<speech.sarah>Hold on, days!?</speech>
-[[[Raise arm]|C1P21V2]]<br>
-[[Like in Hospital?|C1P21V3]]<br>
-[[The thing in my arm?|C1P21V1]]
-I raise my arm with the thing sticking out of it.
+<% if (!verbal) { %>
-<%= window.story.customRender("F: How did you?") %>"Is that what this thing sticking in my arm is for?", I enquire.
+<speech.lucy>Ah, so she does speak.</speech>
-<%= window.story.customRender("F: How did you?") %>"Oh, like when you're in the hospital?", I enquire.
+<% } %>
-<%= window.story.customRender("F: How did you?") %>I look down for a moment, then back at Lucy. But I think that's all she needed to see.
+<speech.lucy>Oh yeah, you had one foot in the grave.</speech>
+<speech.lucy>That's why I had to give you IV fluids.</speech>
+<speech.lucy>Couldn't have you dying of dehydration on me after all the effort I put into not killing you.</speech>
-"I'll take that as a no then", Lucy says in a flat tone.
+<action>This lady has a strange sense of humor...</action>
-<%= window.story.customRender("F: Picking fights") %>
+<choices>
+ [[[Raise arm]|C1P21V2]]
+ [[Like in Hospital?|C1P21V3]]
+ [[The thing in my arm?|C1P21V1]]
+</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-<%= window.story.customRender("F: Dying action") %>"Yes, definitely. <%= window.story.customRender("F: Basement") %>
+<action>I raise my arm with the thing sticking out of it.</action>
-"I didn't mean to walk into his place, he could have just asked me to leave, or tried to talk to me, or something, but instead, he saw a *defenseless little girl*, and tried to kill me. So yeah, it was self-defense. The prick had it coming", I say passionately.
+<%= window.story.render("F: How did you?") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-<%= window.story.customRender("F: Dying action") %>"No, it was a bad case of wrong place, wrong time. <%= window.story.customRender("F: Basement") %>
+<speech.sarah>Is that what this thing sticking in my arm is for?</speech>
-<%= window.story.customRender("F: Picking fights") %>
+<%= window.story.render("F: How did you?") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-<%= window.story.customRender("F: Dying action") %>I was going house by house, scavenging what I could. I went into this one place, started poking around, but I got sloppy, didn't clear the place fully before I started going through it. He was in the basement, and we bumped into each other on the stairs. We looked at each other for a moment, then he came at me with a hacksaw", I explain.
+<speech.sarah>Oh... like, in the hospital?</speech>
-"So it was self-defense", Lucy says, sounding unconvinced."I wasn't trying to pick a fight, hell, I wasn't even trying to find people, I was just looking for food, like everyone else these days. Yes, I was in this guy's house and he probably had the right to defend himself, but I possed no threat to him, and he attacked first... after he came at me, it was me or him", I try to justify.Lucy's expression hasn't changed much, she looks a little tenser though.
+<%= window.story.render("F: How did you?") %><ui>standard</ui>
+<character.one.sad.eyes>Sarah</character>
+<character.two>Lucy</character>
-"Anyway, to put a long story short, I got the upper hand, put him on the floor, and got on top of him, then I plunged my knife deep into the side of his neck. I thought it was over, so I let go... the last thing he did on this earth, was pull that knife out of his neck, and put it in my leg", I explain.
+<action>I look away from Lucy for a moment, studying a speck on the floor, then back.</action>
+<action>But I think that's all she needed to see.</action>
-"I was so surprised, it took me a moment to process what had just happened, and, before I'd even had time to do anything about it, he turned! The walker grabbed me, and I didn't have anything else at hand, so I pulled the same stunt he did: yanked the knife out of my leg, and put it in his fucking head", I say.
+<speech.lucy>I'll take that as a 'no' then.</speech>
-"Language", Lucy snaps.
+<%= window.story.render("F: Picking fights") %>
-[[...|C1P23V2]]<br>
-[[What...?|C1P23V1]]<br>
-[[Seriously?|C1P23V3]]I give her my best 'What the Fuck' look.
+<%= window.story.render("F: Dying action") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-<%= window.story.customRender("F: Habit") %>"What...?", I say, confused.
+<speech.sarah>Yes, definitely.</speech>
-<%= window.story.customRender("F: Habit") %>"Seriously? I just told you I killed a guy and you're worried about my use of the F-Bomb?", I say, confuzzled.
+<%= window.story.render("F: Basement") %>
-<%= window.story.customRender("F: Habit") %>"Sorry, habit. I don't like Tiffany swearing... she's too young", Lucy says apologetically.
+<speech.sarah>Its not like I meant to walk into his place.</speech>
-We look at each other for a few moments.
+<character.one.angry.eyes>Sarah</character>
-"Speaking of names, I never caught yours", Lucy remarks.
+<speech.sarah>He could have just asked me to leave, or tried to talk to me, or something!</speech>
+<speech.sarah>But no, instead, he saw a defenseless little girl, and tried to kill me.</speech>
+<speech.sarah>So yeah, it was self-defense!</speech>
-"It's Sarah", I say.
+<action>I take a breath.</action>
-"Sarah... that's a nice name", Lucy trails off.
+<character.one.angry>Sarah</character>
-We sit in silence for a moment.
+<speech.sarah>The prick had it coming.</speech>
-[[She must mean a lot to you|C1P24]]- Tiffany gets hurt and you use the ducktape and or white shirt to bandage the wound up. If you don't have it or don't use it, Tiff passes out and you carry her, if you do, she spots someone or something useful.
+<%= window.story.render("F: Dying action") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-- Tiff makes fun of/questions why Sophia gave up, make you angry
+<speech.sarah>No, it was a bad case of wrong place, wrong time.</speech>
-- If did not tell Tiff to eat, she gets hungry
+<%= window.story.render("F: Basement") %>
-- Leg wound ~~has affect when running~~ becomes persistent, relay more on Tiffany
+<%= window.story.render("F: Picking fights") %>
-- Revist "Purpose"
+<%= window.story.render("F: Dying action") %><speech.sarah>I was going house to house, scavenging what food I could.</speech>
+<speech.sarah>I went into this one place, started poking around, but I got sloppy...</speech>
+<speech.sarah>I didn't make sure the whole place was empty before I started going through it.</speech>
+<speech.sarah>He was in the basement, we bumped into each other on the stairs.</speech>
+<speech.sarah>We stared at each other for a moment, but then before I could do anything else, he came at me with a hacksaw!</speech>
-- 7 Stages of Grief for Tiffany https://i.redd.it/7zs3hv8ryrh51.jpg
+<character.two.concern.eyes>Lucy</character>
-- Dog companion that carries stuff
+<speech.lucy>So it was self-defense?</speech>
-- Tiff gets sick/a chill from being in the rain
+<action>Lucy doesn't sound convinced.</action><character.one.sad.eyes>Sarah</character>
-- Next flashback is Sarah with Baby Sophia trying to stop her crying in cot"She must mean a lot to you", I say.
+<speech.sarah>I wasn't trying to pick a fight, hell, I wasn't even trying to find people!</speech>
+<speech.sarah>I was just looking for food, like everyone else.</speech>
+<speech.sarah>Yes, I was in this guy's house and he probably had the right to defend himself.</speech>
+<speech.sarah>But I posed no threat to him, and he attacked first...</speech>
+<speech.sarah>After he came at me, it was me or him.</speech>
-"She means everything to me", Lucy replies, not missing a beat.
+<action>I try to sound justified.</action><character.two.concern.eyes>Lucy</character>
-We both sit quietly for a moment.
+<action>Lucy's expression hasn't changed much.</action>
+<action>A little tenser maybe.</action>
-[[Tell me about Tiff|C1P25]]I was trying to get away from a pack of walkers, got cornered, and had to climb it, but it had wire on top of it. Wasn't fun, but I didn't have a choice", I say, trying to sound convincing.
+<character.one>Sarah</character>
-<% if (window.story.getChoice("Chapter1", "NoChoice")) {
- window.story.achievement("Chapter1", "NoChoice", "Broken Record", "You need some new material.");
-%>
+<speech.sarah>Anyway, to put a long story short, I managed to get the upper hand.</speech>
+<speech.sarah>I put him on the floor, and got on top of him.</speech>
+<speech.sarah>And then I plunged my knife deep into the side of his neck.</speech>
-"Seems to be a running theme with you", Lucy remarks.
+<action>I let out a breath I didn't realize I was holding.</action>
-<% } %>
+<speech.sarah>I thought it was over, so I let go...</speech>
-Lucy sighs.
+<action>I force a little chuckle at the thought of the next part.</action>
-"Look, kid- What's your name?", Lucy asks.
+<character.one>Sarah</character>
-[[Sarah|C1P23V4]]"Oh it was. <%= window.story.customRender("F: Got cornered") %>"Yeah, hellova fence. <%= window.story.customRender("F: Got cornered") %>"It was crazy, the biggest fence I'd ever seen. <%= window.story.customRender("F: Got cornered") %>"It's Sarah", I say.
+<speech.sarah>The last thing that man did on this earth, was pull that knife out of his neck, and put it in my leg.</speech>
+<speech.sarah>I was so surprised, it took me a moment to process what had just happened!</speech>
+<speech.sarah>But before I'd even had time to cry out, he turned into walker.</speech>
+<speech.sarah>He, it, grabbed me, and I didn't have anything else to fight with, so...</speech>
-No point in giving a fake name, I'd probably just forget it anyway.
+<action>I wince at the memory.</action>
-"Ok, Sarah, before the world went to hell in a handbasket, I was Wound Care Nurse for 9 years, so I know my cuts pretty well, well enough to know you're full of shit", Lucy states.
+<speech.sarah>...I pulled the same stunt he did: I yanked the knife out of my leg, and put it in its fucking head.</speech>
-Oh boy, not good.
+<speech.lucy>Language.</speech>
-"I don't really care about how you hurt your leg, if you want to keep that to yourself, that's fine. Only one thing matters to me, and she's likely standing on the other side of that door listening right now, so, be straight with me: are you going to do something to get my little girl hurt? Because if the answer is yes... ", Lucy says, as she pulls a knife out from behind her back and rests it on her legs. It looks like an old kitchen knife.
+<action>Lucy's quick snapping of the word catches me off-guard.</action>
-"I'll just kill you now, save us both the hassle", she finishes in a monotone voice.
+<choices>
+ [[...|C1P23V2]]
+ [[What...?|C1P23V1]]
+ [[Seriously?|C1P23V3]]
+</choices><ui>standard</ui>
+<character.one.happy.eyes>Sarah</character>
+<character.two>Lucy</character>
-The air is tense, we stare at each other for a moment.
+<action>I give her my best 'What the Fuck?' look.</action>
-[[She must mean a lot to you|C1P24]]"Tell me about Tiff", I say<% if (window.story.getChoice("Chapter1", "Lied")) print(", trying to change the subject") %>.
+<%= window.story.render("F: Habit") %><ui>standard</ui>
+<character.one.happy.eyes>Sarah</character>
+<character.two>Lucy</character>
-"Tiff*any* is the only good thing left in this world", Lucy remarks.
+<speech>What...?</speech>
-She pauses for a moment.
+<%= window.story.render("F: Habit") %><ui>standard</ui>
+<character.one.happy.eyes>Sarah</character>
+<character.two>Lucy</character>
-"How about a trade. I'll tell you about Tiffany... if you...", Lucy trails off.
+<speech.sarah>Seriously?</speech>
+<speech.sarah>I just told you I killed a dude, and you're worried about my use of the F-Bomb?</speech>
-[[...|C1P25V2]]<br>
-[[Go on...|C1P25V1]]<br>
-[[If I what?|C1P25V3]]<img.title-image>
+<action>This lady must be crazy.</action>
-<div#title-button>
-[[Play Game|Save Options]]
-[[Extras|Extras]]
-[[Settings|Global Settings]]
-[[Credits|Global Credits]]
-</div>Lucy pauses again, then looks at me with an almost apologetic look.
+<%= window.story.render("F: Habit") %><speech.lucy>Sorry... habit.</speech>
-<%= window.story.customRender("F: Tell me about Sophia") %>"Go on...", I say uncertainly.
+<character.two.sad.eyes>Lucy</character>
-<%= window.story.customRender("F: Tell me about Sophia") %>"If I what?", I ask.
+<speech.lucy>I uh, don't like Tiffany swearing...</speech>
+<speech.lucy>She's too young...</speech>
-<%= window.story.customRender("F: Tell me about Sophia") %>Lucy takes a deep breath, what the hell is she about to say that has made her so uncomfortable all of a sudden?
+<action>She sounds almost apologetic.</action>
+<action>There's a few moments of awkward silence.</action>
-"Sophia", she finally says.
+<speech.lucy>Speaking of names... I never caught yours?</speech>
-"If you tell me who Sophia is", she says.
+<speech>It's Sarah.</speech>
-[[[Pause in shock]|C1P26]]menu: Title Screen/Menu/Miscellaneous player interaction stuff.
+<speech.lucy>Sarah... that's a nice name...</speech>
-save: Auto-save when player reaches this page.
+<action>She trails off, her mind clearly somewhere else.</action>
+<action>Maybe she's think about her girl?</action>
-noFade: Do not fade this passage in when swapping passages, it will handle the transition itself.
+<choices>[[She must mean a lot to you|C1P24]]</choices>Moved to https://github.com/orgs/Purpose-Game/projects/1<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-page: Passage is dedicated to telling part of the story.
+<speech.sarah>She must mean a lot to you.</speech>
-variation: Passage is a variation of a story page, as a result of a player choice.
+<speech.lucy>She means everything to me.</speech>
-floater: Passage acts as a template to be included in other passages.
+<action>Lucy replies, not missing a beat.</action>
+<action>We both sit quietly for a few moments.</action>
-redirect: Passage redirects to another passage after a given period of time.
+<choices>[[Tell me about Tiff|C1P25]]</choices><speech.sarah>I was trying to get away from a pack of walkers, and I got cornered.</speech>
+<speech.sarah>I had to climb this fence, but it had wire on top of it.</speech>
+<speech.sarah>Wasn't fun, but I didn't have a choice.</speech>
-info: Passage is for developer reference, not for use in-game (directly).
+<action>I try hard to sound convincing.</action>
-addition: Normal page or variation passage added after story was finished, saves reordering passages.
+<% if (window.story.getChoice("Chapter1", "NoChoice")) {
+ window.story.achievement("Chapter1", "NoChoice");
+%>
+
+<character.two.concern.eyes>Lucy</character>
-No Tag: Temporary/Test pageI pause for a moment. It feels like she just slapped me across the face.
+<speech.lucy>No choice huh?</speech>
+<speech.lucy>Seems to be a reoccurring theme with you.</speech>
-Sophia, my little sister... how does she even know about her? Why does she want to know about her?
+<% } %>
+
+<character.two>Lucy</character>
-"It's pretty clear she's important to you", Lucy says, interrupting my thoughts.
+<action>Lucy sighs.</action>
-"You want to know about what's important in my life, so it seems only fair you tell me about what's important in yours", she stipulates.
+<speech.lucy>Look, kid-</speech>
+<speech.lucy>What's your name?</speech>
-I look at her with a mixture of emotions showing.
+<choices>[[Sarah|C1P23V4]]</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-"How... how do you know-", I start to say.
+<speech.sarah>Oh it was.</speech>
-"You were calling out to her, while you were under. You were on death's doorstep, and that's who was in your mind...", she explains.
+<%= window.story.render("F: Got cornered") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-[[She's dead|C1P27V1]]<br>
-[[I loved her, very much|C1P27V2]]<br>
-[[She gave up a long time ago|C1P27V3]]"She was my sister", I say in a quivering tone, with tears starting to form.
+<speech.sarah>Yeah, hellova fence.</speech>
-I take a deep breath to center myself.
+<%= window.story.render("F: Got cornered") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-"And she's dead", I finish.
+<speech.sarah>It was crazy, the biggest fence I'd ever seen. </speech>
-<%= window.story.customRender("F: Pain in her eyes") %>"I loved-", I start to say, but my emotions flare up and I have to stop.
+<%= window.story.render("F: Got cornered") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-I take a deep breath and wipe away the tears that are forming.
+<speech.sarah>It's Sarah.</speech>
-"I loved my little sister, very, very much", I manage to get out.
+<action>Not much point in giving a fake name, I'd probably just forget it anyway.</action>
-<%= window.story.customRender("F: Pain in her eyes") %>"My little sister...", I trail off, as tears start to run down my face.
+<speech.lucy>Ok, Sarah, before the world went to hell in a handbasket, I was Wound Care Nurse for 9 years.</speech>
+<speech.lucy>So I know my cuts pretty well.</speech>
-I wipe away the tears and try again.
+<character.two.concern>Lucy</character>
-"My little sister, gave up, a long time ago", I manage to get out.
+<speech.lucy>Well enough to know you're full of shit.</speech>
-<%= window.story.customRender("F: Pain in her eyes") %>Lucy looks at me; pain in her eyes.
+<character.one.sad.eyes>Sarah</character>
-"How-", Lucy starts to say, but chocks up on her own emotions.
+<action>Oh boy, not good.</action>
-"How old was she when...", she trails off.
+<speech.lucy>To be honest, I don't really care how you hurt your leg.</speech>
+<speech.lucy>If you want to keep that to yourself, that's fine.</speech>
+<speech.lucy>There's only one thing that matters to me, and she's likely standing on the other side of that door listening right now.</speech>
+<speech.lucy>So, be straight with me: are you going to do something to get my little girl hurt?</speech>
+<speech.lucy>Because if the answer is yes...</speech>
-Why does she want to know that? Why is she pushing me for information? Can't she see this hurts me? Does she not care?
+<action>Lucy pulls out a large kitchen knife out from behind her back and rests it on her legs.</action>
-I pause for a moment, then reply.
+<speech.lucy>I'll just kill you now, save us both the hassle.</speech>
-"Seven", I say.
+<action>The air is tense, we stare at each other.</action>
+<action>I've gotta say something.</action>
-Lucy puts her hand to her mouth, then looks towards the closed door on the other side of the room. The strong "I could kill you where you sit right now" woman from a few minutes ago is gone; replaced by... a mother.
+<choices>[[She must mean a lot to you|C1P24]]</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>Tell me about Tiff.</speech>
<% if (window.story.getChoice("Chapter1", "Lied")) { %>
-I'm glace at her knife. Lucy notices, she looks down at it, then back at me. She puts it away back behind her back.
+<action>I try to change the subject off me.</action>
<% } %>
-[[[Weep quietly]|C1P28]]I quietly let my emotions run. It's been a long time since I've thought about her.
+<speech.lucy>Tiff-ANY is the only good thing left in this world.</speech>
+
+<action>She trails off.</action>
+
+<speech.lucy>How about a trade?</speech>
+<speech.lucy>I'll tell you about Tiffany...</speech>
+
+<character.two.sad.eyes>Lucy</character>
+
+<speech.lucy>...if you...</speech>
+
+<action>She can't look at me.</action>
+<action>She looks really unconformable all of a sudden.</action>
+
+<choices>
+ [[...|C1P25V2]]
+ [[Go on...|C1P25V1]]
+ [[If I what?|C1P25V3]]
+</choices><% window.story.startMenuMusic() %>
+
+<img.title-image>
+
+<div#title-button>
+[[Play Game|Save Options]]
+[[Extras|Extras]]
+[[Settings|Global Settings]]
+[[Credits|Global Credits]]
+</div><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<action>Lucy pauses again.</action>
+
+<character.two.sad.eyes>Lucy</character>
+
+<action>Then looks at me with an almost apologetic look.</action>
+
+<%= window.story.render("F: Tell me about Sophia") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>Go on...</speech>
+
+<action>I'm feeling a bit uncertain about this.</action>
+
+<%= window.story.render("F: Tell me about Sophia") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>If I what?</speech>
+
+<%= window.story.render("F: Tell me about Sophia") %><character.two.happy.eyes>Lucy</character>
+
+<action>Lucy takes a deep breath.</action>
+<action>What the hell is she about to say that has made her so uncomfortable all of a sudden?</action>
+
+<speech.lucy>...Sophia</speech>
+
+<character.one.pain.eyes>Sarah</character>
+
+<action>I feel a pit form in my stomach.</action>
+
+<character.one.sad.eyes>Sarah</character>
+
+<action>I want to verbalize my disbelief, but I'm too shocked to manage even that.</action>
+
+<speech.lucy>I'll tell you about Tiffany, if you tell me who Sophia is.</speech>
+
+<action>How does she know about Sophia?</action>
+<action>Why does she want to know about Sophia?</action>
+<action>What the hell is going on?!</action>
+
+<choices>[[[Pause in shock]|C1P26]]</choices>menu: Title Screen/Menu/Miscellaneous player interaction stuff.
+
+save: Auto-save when player reaches this page.
+
+noFade: Do not fade this passage in when swapping passages, it will handle the transition itself.
+
+page: Passage is dedicated to telling part of the story.
+
+variation: Passage is a variation of a story page, as a result of a player choice.
+
+floater: Passage acts as a template to be included in other passages.
+
+redirect: Passage redirects to another passage after a given period of time.
+
+info: Passage is for developer reference, not for use in-game (directly).
+
+addition: Normal page or variation passage added after story was finished, saves reordering passages.
+
+No Tag: Temporary/Test page/Disused<ui>standard</ui>
+<character.one.sad.eyes>Sarah</character>
+<character.two>Lucy</character>
+
+<action>I pause for a moment.</action>
+<action>It feels like she just gut punched me.</action>
+<action>Sophia, my little sister...</action>
+
+<speech.lucy>It's pretty clear she's important to you.</speech>
+
+<action>Lucy interrupts my thoughts.</action>
+
+<speech.lucy>You want to know about what's important in my life...</speech>
+<speech.lucy>...so it seems only fair you tell me about what's important in yours.</speech>
-We sit in silence for a few minutes, then without saying a word, Lucy gets up and leaves the room; leaving me alone with my consciousness.
+<character.one.pain.eyes>Sarah</character>
-With Lucy gone, I don't have a reason to hold back anymore. I lay back on the sofa, and close my eyes.
+<action>I look at her with a mixture of emotions showing.</action>
-[[[Bawl eyes out]|C1P29]]I begin to bawl.
+<speech.sarah>How... how do you know-</speech>
-Raw, hard, tears.
+<speech.lucy>You called out to her, while you were under, a lot.</speech>
+<speech.lucy>You were on death's doorstep, and that's who was on your mind...</speech>
-I never had the chance to properly mourn her, I was too busy focusing on my own survival, and for what? So I could die somewhere else another day?
+<character.one.sad.eyes>Sarah</character>
-[[[Reflect on Sophia's death]|C1P30]]<% window.story.delayedText(4000, "delayed", 3000) %>
+<action>How do I even explain this...</action>
+<action>I'm not sure I fully understand it myself.</action>
+<action>Lucy is looking at me expecting.</action>
+<action>I channel what little emotional stability I have left and answer.</action>
-I think about her while I'm laying here.
+<choices>
+ [[She's dead|C1P27V1]]
+ [[I loved her|C1P27V2]]
+ [[She gave up|C1P27V3]]
+</choices><ui>standard</ui>
+<character.one.pain.eyes>Sarah</character>
+<character.two>Lucy</character>
-Maybe the reason I never dealt with her death, was because I was scared. Scared that I'd realize that I-
+<speech.sarah>She was my sister...</speech>
-<div-#delayed>
+<action>My voice quivers.</action>
-I have nothing to live for.
+<character.one.sad.eyes>Sarah</character>
-[[[Continue crying]|C1P31]]
+<action>I can feel the burning of tears at the corners of my eyes.</action>
+<action>I take a deep breath to center myself.</action>
-</div>The tears continue to stream down my face.
+<speech.sarah>...and she's dead</speech>
-I had one job as a big sister: look after my little sister, and I failed horribly.
+<action>I manage to finish, before choking on the lump forming in my throat.</action>
+
+<%= window.story.render("F: Pain in her eyes") %><ui>standard</ui>
+<character.one.pain.eyes>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>I loved-</speech>
+
+<action>I choke on a lump forming in my throat and need to stop.</action>
+
+<character.one.sad.eyes>Sarah</character>
+
+<action>I take a deep breath and wipe away the tears forming in the corners of my eyes.</action>
+
+<speech>I loved my little sister, very, very much.</speech>
+
+<action>That's all I can manage to get out.</action>
+
+<%= window.story.render("F: Pain in her eyes") %><ui>standard</ui>
+<character.one.pain.eyes>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>My little sister...</speech>
+
+<action>I trail off, as I notice tears start to run down my face.</action>
+<action>I wipe them away, take a breath, and try again.</action>
+
+<speech.sarah>My little sister... gave up</speech>
+
+<action>I trail off again, as I stare at the floor.</action>
+
+<speech.sarah>She couldn't survive this is world...</speech>
+
+<%= window.story.render("F: Pain in her eyes") %><character.two.sad.eyes>Lucy</character>
+
+<action>Lucy looks at me, pain in her eyes.</action>
+
+<speech.lucy>How did she-</speech>
-How can I live with myself... how have I lived with myself?
+<action>She starts, but changes her mind.</action>
-I'm exhausted... mentally and physically.
+<speech.lucy>How old was she when...</speech>
-[[[Reflect on near-death experience]|C1P32]]I reflect on my near-death experience. Would it have been better if that guy had’ve killed me? I'm tired, I've had enough; what's even the point in living...
+<character.one.angry.eyes>Sarah</character>
-[[I have no purpose|C1P33V1]] [[I need a new purpose|C1P33V2]]<% window.story.setChoice("Chapter1", "NewPurpose", false) %>
+<action>Why does she want to know that?</action>
+<action>Why is she pushing me for information?</action>
+<action>Can't she see this hurts me?</action>
+<action>Does she not care?</action>
-I have no purpose in life. What's the point in living at all?
+<character.one.pain.eyes>Sarah</character>
-The world would be better off without me. People like that guy I killed can attest to that...
+<action>I pause to try and calm myself down.</action>
-[[[Cry yourself to sleep]|C1P33R1]]<% window.story.setChoice("Chapter1", "NewPurpose") %>
+<speech.sarah>Seven.</speech>
-I need a new purpose in life. Something worth living for. Surviving by itself isn't good enough; it's an excuse.
+<action>At first she doesn't react.</action>
+<action>Then she puts her hand to her mouth.</action>
+<action>Lucy looks towards the closed door on the other side of the room.</action>
-I need to atone for what I did.
+<% if (window.story.getChoice("Chapter1", "Lied")) { %>
+
+<action>The strong "I could kill you where you sit right now" woman from a few minutes ago? Gone.</action>
+
+<% } else { %>
-I can't bring Sophia back... but maybe I can find something good in this world to dedicate myself to, in her name.
+<action>The imposing, tough woman from a few minutes ago? Gone.</action>
-[[[Cry yourself to sleep]|C1P33R1]]<%
-window.story.achievement("Chapter1", "RollCredits", "Roll Credits", "And that's a Sin.")
+<% } %>
+
+<action>All I see now...</action>
+<action>...is a mother.</action>
+
+<character.one.sad.eyes>Sarah</character>
+
+<choices>[[[Weep quietly]|C1P28]]</choices><ui>standard</ui>
+<character.one.sad.eyes>Sarah</character>
+<character.two.sad.eyes>Lucy</character>
+
+<action>I quietly let my emotions run.</action>
+<action>It's been a long time since I've thought about Sophia.</action>
+<action>We sit in silence for a few minutes.</action>
+
+<resetcharacter.two/>
+
+<action>Without saying a word, Lucy gets up and leaves the room.</action>
+<action>Leaving me alone with my conscience.</action>
+<action>With Lucy gone, I don't have a reason to hold back anymore.</action>
+
+<ui>special</ui>
+<special>living-room</special>
+<character.one.sad.eyes>Sarah</character>
+
+<action>I lay back on the sofa, and close my eyes.</action>
+
+<choices>[[[Bawl eyes out]|C1P29]]</choices><ui>special</ui>
+<special>living-room</special>
+<character.one.sad>Sarah</character>
+
+<action>I begin to bawl.</action>
+<action>Raw, hard, tears.</action>
+<action>I never had the chance to properly mourn her.</action>
+<action>I was too busy focusing on my own survival, and for what?</action>
+<action>So I could die somewhere else another day?</action>
+
+<choices>[[[Reflect on her death]|C1P30]]</choices><ui>special</ui>
+<special>living-room</special>
+<character.one.sad>Sarah</character>
+
+<action>I think about Sophia while I'm laying here.</action>
+<action>Maybe the reason I never dealt with her death...</action>
+<action>...was because I was scared.</action>
+<action>Scared that I'd realize that now that she's gone, I-</action>
+<action>I have nothing, and no one to live for.</action>
+
+<choices>[[[Continue crying]|C1P31]]</choices><ui>special</ui>
+<special>living-room</special>
+<character.one.sad>Sarah</character>
+
+<action>The tears continue to stream down my face.</action>
+<action>I had one job as a big sister: look after my little sister.</action>
+<action>And I failed.</action>
+<action>Horribly.</action>
+<action>How can I live with myself... how have I lived with myself?</action>
+<action>I'm exhausted...</action>
+<action>Mentally and physically.</action>
+
+<choices>[[[Reflect on experience]|C1P32]]</choices><ui>special</ui>
+<special>living-room</special>
+<character.one.sad>Sarah</character>
+
+<action>I reflect on my near-death experience.</action>
+<action>Would it have been better if that guy had of killed me?</action>
+<action>What's the point in it all.</action>
+<action>I'm tired, I've had enough.</action>
+<action>What's even the point in carrying on...</action>
+
+<choices>
+ [[I have no purpose|C1P33V1]]
+ [[I need a new purpose|C1P33V2]]
+</choices><% window.story.setChoice("Chapter1", "NewPurpose", false); %>
+
+<ui>special</ui>
+<special>living-room</special>
+<character.one.sad>Sarah</character>
+
+<action>I have no purpose in life.</action>
+<action>Why bother going on at all?</action>
+<action>The world would be better off without me.</action>
+<action>People like that guy I killed would attest to that...</action>
+<action>I'm worthless.</action>
+<action>More than that, I'm pathetic.</action>
+<action>And I know it.</action>
+
+<choices>[[[Cry yourself to sleep]|C1P33R1]]</choices><% window.story.setChoice("Chapter1", "NewPurpose"); %>
+
+<ui>special</ui>
+<special>living-room</special>
+<character.one.sad>Sarah</character>
+
+<action>What am I even saying.</action>
+<action>If Sophia could see me now she'd be so disappointed in me.</action>
+<action>"Why are you giving up sis?", she'd probably say.</action>
+<action>"Get up and let's go!"</action>
+<action>She was always pushing me to do more, to be more.</action>
+<action>I might have been the big sister, but she was always the positive one.</action>
+<action>Always the one that supported me get back on my feet when my job inevitably feel through.</action>
+<action>Even near the end, when she didn't want to carry on.</action>
+<action>Even when I forced her to carry on, one step at a time.</action>
+<action>She wanted me to push on...</action>
+<action>...albeit without her.</action>
+<action>To keep living.</action>
+<action>To find something to live for.</action>
+<action>Find...</action>
+<action>...a way to honour her life.</action>
+<action>I've made up my mind.</action>
+<action>I need a new purpose in life.</action>
+<action>Something worth living for.</action>
+<action>Surviving on its own isn't good enough: it's an excuse.</action>
+<action>I need to do more than live.</action>
+<action>I need to live for Sophia.</action>
+
+<choices>[[[Cry yourself to sleep]|C1P33R1]]</choices><%
+window.story.achievement("Chapter1", "RollCredits");
window.story.redirect("C1P34", 7);
-%>"Chapter1", "Knocked" - Knocked on the door to see if anyone was home
+%>"Chapter1", "Knocked" - Knocked on the door to see if anyone was home
"Chapter1", "Kicked" - Kicked the door in to get inside
@@ -1198,1966 +2189,4248 @@
!"Chapter1", "LucySavesStranger" - Lucy stayed inside and tried to keep the stranger out
+"Chapter1", "CharlesName" - Player learns Charles' name.
+
"Chapter1", "TriedToSaveLucy" - Tried to save Lucy, let Tiffany watch her mom die
!"Chapter1", "TriedToSaveLucy" - Did as Lucy asked, took Tiffany and went
-"Chapter1", "StrangerDied" - Made decisions that resulted in the death of the stranger.<img.title-image>
+"Chapter1", "StrangerDied" - Made decisions that resulted in the death of the stranger.<img.title-image>
+
+<%= window.story.render("Credits") %>
+
+[[Back|Title Screen]]<ui>standard</ui>
+<character.one.pain.eyes>Sarah</character>
+<character.two>Unknown</character>
+
+<speech.unknown>Sarah?</speech>
+
+<action>I start to stir from my sleep.</action>
+<action>Someone's speaking in a soft voice.</action>
+<action>And there's someone near my face again...</action>
+<action>Sophia back to haunt me?</action>
+<action>I squint, it's bright and my vision is blurry.</action>
+<action>There's a face, eyes, but...</action>
+<action>...they're blue, very blue.</action>
+
+<choices>[[[Rub eyes]|C1P35]]</choices><ui>standard</ui>
+<character.one.pain.eyes>Sarah</character>
+<character.two>Unknown</character>
+
+<action>I rub my eyes and open them again.</action>
+
+<character.one>Sarah</character>
+<character.two>Tiffany</character>
+
+<speech.tiffany>Sarah?</speech>
+
+<action>It's Tiffany.</action>
+<action>She's sitting on the coffee table, watching me.</action>
+<action>How does she know my name?</action>
+<action>Lucy must have told her...</action>
-<%= window.story.customRender("Credits") %>
+<choices>
+ [[...|C1P35V2]]
+ [[Morning...?|C1P35V1]]
+ [[Lose something over here?|C1P35V3]]
+</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two.happy.eyes>Tiffany</character>
-[[Back|Title Screen]]<i>"Sarah?"</i>, a voice says softly. I start to stir from my sleep.
+<action>I stare back at her for a moment.</action>
-There's someone near my face again... Sophia back to haunt me?
+<%= window.story.render("F: Breakfast?") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two.happy.eyes>Tiffany</character>
-I squint, it's bright and my vision is blurry. There's a face, eyes, but... they're blue, very blue.
+<speech.sarah>Um...</speech>
-[[[Rub eyes]|C1P35]]I rub my eyes and open them again.
+<action>My throat is dry.</action>
+<action>I cough to clear it a little, then try again.</action>
-"Sarah?", the voice says again.
+<speech.sarah>Good morning...?</speech>
-It's Tiffany. She's sitting on the coffee table, watching me.
+<speech.tiffany>Good morning!</speech>
-How does she know my name? Lucy must have told her...
+<action>This is the first time I've heard her talk.</action>
+<action>She speaks cheerily and with a high pitch.</action>
-[[...|C1P35V2]]<br>
-[[Morning...?|C1P35V1]]<br>
-[[Lose something over here?|C1P35V3]]I stare back at her for a moment.
+<speech.tiffany>How did you sleep?</speech>
-<%= window.story.customRender("F: Breakfast?") %>"Um...", I start. My throat is still dry. I cough to clear it a little.
+<speech.sarah>Like a log.</speech>
-"Good morning...?", I say, a hint of uncertainty in my voice.
+<character.two.happy>Tiffany</character>
-"Good morning!", she replies in a cherry, high pitch voice.
+<speech.tiffany>Logs don't sleep silly.</speech>
-"Did you sleep OK?", she asks.
+<speech.sarah>No, it's a figure of-</speech>
+<speech.sarah>You know what, never mind.</speech>
-"Yeah, actually. Like a log", I reply.
+<action>I'm way too tired to try to explain.</action>
+<action>She giggles at me.</action>
-A slightly puzzled look appears across her face.
+<%= window.story.render("F: Breakfast?") %><% window.story.setChoice("Chapter1", "Laughed"); %>
-"Logs don't sleep, they're not alive", she states.
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two.happy.eyes>Tiffany</character>
-"No, I meant- Never mind", I say; it's too early to even try to explain.
+<speech.sarah>Did you lose something over here?</speech>
-She shrugs.
+<character.two.confused.eyes>Tiffany</character>
-<%= window.story.customRender("F: Breakfast?") %><% window.story.setChoice("Chapter1", "Laughed") %>
+<action>A puzzled look appears on her face.</action>
-"Did you lose something over here?", I remark.
+<speech.tiffany>I don't think so...</speech>
-A puzzled look appears on her face.
+<action>She replies in a high-pitched voice.</action>
-"I don't think so", she replies in a high-pitched voice.
+<character.one.happy>Sarah</character>
-I chuckle a little.
+<action>I chuckle a little.</action>
-The puzzled look intensifies.
+<character.two.confused>Tiffany</character>
-"What, what's funny?", she asks.
+<action>Her puzzled look intensifies.</action>
-"Nothing, nothing", I reply, holding back my laughter.
+<speech.tiffany>What, what's funny?</speech>
-She shakes her head.
+<speech.sarah>Nothing, nothing...</speech>
-I can't remember the last time I laughed...
+<action>I manage to say through my stifled laughter.</action>
+<action>She shakes her head.</action>
+<action>I can't remember the last time I laughed...</action>
-<%= window.story.customRender("F: Breakfast?") %>"Would you like some breakfast?", she asks, a hint of excitement in her voice.
+<%= window.story.render("F: Breakfast?") %><character.one>Sarah</character>
+<character.two.happy.eyes>Tiffany</character>
-I'm starving, I hadn't had a proper meal for days before I got here, and who knows how long I've been on this sofa for.
+<speech.tiffany>Would you like some breakfast?</speech>
-[[Yeah, thanks Tiff|C1P35R1]] [[Yeah, thanks Tiffany|C1P35R2]]<%
+<action>There's a hint of excitement in her voice.</action>
+<action>I'm starving, I hadn't had a proper meal for days before I wound up here.</action>
+<action>And who knows how long I've been on this sofa for.</action>
+
+<choices>
+ [[Yeah, Tiff|C1P35R1]]
+ [[Yeah, Tiffany|C1P35R2]]
+</choices><%
window.story.setChoice("Chapter1", "Tiffany", false);
window.story.setChoice("Chapter1", "TiffanyName", "Tiff");
-window.story.redirect("C1P36", 1);
-%><%
+window.story.redirect("C1P36", 0);
+%><%
window.story.setChoice("Chapter1", "Tiffany");
window.story.setChoice("Chapter1", "TiffanyName", "Tiffany");
-window.story.redirect("C1P36", 1);
-%>"Yeah, thanks <% print(window.story.tiffany()) %>", I say.
+window.story.redirect("C1P36", 0);
+%><ui>standard</ui>
+<character.one.happy.eyes>Sarah</character>
+<character.two.happy.eyes>Tiffany</character>
+
+<speech.sarah>Yeah, thanks %Tiffany%.</speech>
+
+<character.two.happy>Tiffany</character>
+
+<action>Her face lights up with a smile.</action>
+
+<% if (window.story.tiffany() === "Tiff") { %>
+
+<action>I think she likes that nickname.</action>
+
+<% } %>
+
+<speech.tiffany>Come on then!</speech>
+
+<action>She jumps up from the table and heads for the door.</action>
+
+<speech.sarah>Hey, %Tiffany%, wait!</speech>
+
+<ui>special</ui>
+<special>living-room</special>
+<character.one>Sarah</character>
+
+<action>Too late, she's already out the door by the time the words leave my mouth.</action>
+<action>I still have this thing in my arm, what did Lucy call it... a cannula, I think?</action>
+<action>The other door swings open behind me, speak of the devil.</action>
+
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.lucy>Morning.</speech>
+<speech.lucy>I didn't think you'd be awake this early.</speech>
+
+<action>Hmph.</action>
+
+<speech.lucy>How are you feeling?</speech>
+
+<action>She closes the door and walks over towards me.</action>
+
+<choices>
+ [[Better|C1P36V1]]
+ [[I'll live|C1P36V2]]
+ [[Like shit|C1P36V3]]
+</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>Better, actually.</speech>
+
+<speech.lucy>Good.</speech>
+<speech.lucy>Those fluids did you the world of good.</speech>
+
+<action>She nods in the direction of the coat hanger stand.</action>
+
+<%= window.story.render("F: Get that out") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>I'll live.</speech>
+
+<character.two.happy.mouth>Lucy</character>
+
+<speech.lucy>Very presumptuous of you.</speech>
+
+<action>A smirk creeps across her face.</action>
+
+<character.two>Lucy</character>
+
+<%= window.story.render("F: Get that out") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>Like shit.</speech>
+
+<character.two.concern.mouth>Lucy</character>
+
+<action>She takes a breath as if to say something, but stops then shakes her head.</action>
-Her face lights up with a smile. <% if (window.story.tiffany() === "Tiff") { print("I think she likes that nickname.") } %>
+<speech.lucy>Well, you look the part.</speech>
+<speech.lucy>Once you get some food in you you'll feel better.</speech>
-"Come on then!", she says, jumping up from the table and heading for the door.
+<%= window.story.render("F: Get that out") %><action>Lucy points at my arm.</action>
-"Hey, <% print(window.story.tiffany()) %>, wait!", I say, but she's already out the door by the time the words leave my mouth.
+<speech.lucy>Let's get that out, shall we?</speech>
-I still have this thing in my arm, what did Lucy call it- a cannula, I think?
+<choices>
+ [[Yeah... sure|C1P37V1]]
+ [[Will it hurt?|C1P37V2]]
+ [[Can I keep it?|C1P37V3]]
+</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-The other door swings open, speak of the devil. Lucy walks in.
+<speech.sarah>Uh, yeah... sure.</speech>
-"Morning, didn't think you'd be awake this early. How are you feeling?", she asks, closing the door behind her.
+<action>I try to sound at least a little confident.</action>
-[[Better|C1P36V1]]<br>
-[[I'll live|C1P36V2]]<br>
-[[Like shit|C1P36V3]]"Better, actually", I say.
+<speech.lucy>Don't stress, it will only take a second.</speech>
-"Good, those fluids did you the world of good", she replies.
+<%= window.story.render("F: Peel back") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-<%= window.story.customRender("F: Get that out") %>"I'll live", I say.
+<speech.sarah>Will it... hurt?</speech>
-"Very presumptuous of you", Lucy says with a smirk.
+<% if (window.story.getChoice("Chapter1", "Lied")) { %>
+
+<speech.lucy>No, not really.</speech>
+<speech.lucy>Might feel a bit weird though.</speech>
+
+<% } else { %>
+
+<speech.lucy>Not as much as pulling a knife out I would imagine.</speech>
+
+<action>Yikes. I can't tell if that was her attempting to be humorous or not.</action>
+
+<% } %>
+
+<%= window.story.render("F: Peel back") %><ui>standard</ui>
+<character.one.happy.eyes>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>Can I keep it? Sounds useful.</speech>
+
+<character.one>Sarah</character>
+
+<speech.lucy>No, they're not designed to be permanent.</speech>
+<speech.lucy>Any more than a few days and you risk getting an infection.</speech>
+
+<%= window.story.render("F: Peel back") %><action>Lucy moves to sit across from me on the coffee table.</action>
+<action>She extends her hand out, beckoning me to give her mine.</action>
+<action>I hesitate for a moment.</action>
+<action>I guess if she wanted to hurt me, she would have done it by now...</action>
+<action>I place my hand in hers.</action>
+<action>She disconnects the tubbing and peels back the tape.</action>
+<action>She reaches into one of the pockets of her cargo pants and takes out a packet of cotton wool balls.</action>
+<action>Then in one smooth motion, she swiftly pulls out the cannula and holds the cotton wool where it was inserted.</action>
+
+<choices>
+ [[Impressive|C1P38V1]]
+ [[[Cry fake pain]|C1P38V2]]
+ [[You're experienced|C1P38V3]]
+</choices><ui>standard</ui>
+<character.one.happy.eyes>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>Impressive, I didn't feel a thing.</speech>
+
+<character.two.happy.mouth>Lucy</character>
+
+<action>Lucy smiles.</action>
+
+<speech.lucy>Thanks, I use to do these daily...</speech>
+<speech.lucy>I miss it sometimes.</speech>
+
+<character.two>Lucy</character>
+
+<action>Her smile fades.</action>
+
+<%= window.story.render("F: Breakfast time!") %><% window.story.achievement("Chapter1", "Drama"); %>
+
+<ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>Argh!</speech>
+
+<action>Lucy doesn't bother to move her head up, just her eyes so they meet mine.</action>
+
+<character.one>Sarah</character>
+<character.two.concern.eyes>Lucy</character>
+
+<action>She gives me a look that says "Really?", then looks away again.</action>
+
+<character.two>Lucy</character>
+
+<action>Well, I thought it was pretty funny.</action>
+
+<%= window.story.render("F: Breakfast time!") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>You've clearly done that a few times before</speech>
+
+<speech.lucy>Mhm, once or twice.</speech>
+
+<action>She mumbles back.</action>
+
+<%= window.story.render("F: Breakfast time!") %>"Chapter1", "Knocked", "Knock, knock", "Who's *there?*"
+
+"Chapter1", "Soap", "Nothing wasted", "You never know when it will come in handy!"
+
+"Chapter1", "Filter", "No Filter", "Speaking your mind, *even when you shouldn't.*"
+
+"Chapter1", "HelloThere", "Hello There", "General Kenobi... you are a bold one."
+
+"Chapter1", "Nothing", "Silent Treatment", "You have the right to remain silent..."
+
+"Chapter1", "NoChoice", "Broken Record", "You need some new material."
+
+"Chapter1", "RollCredits", "Roll Credits", "And that's a Sin."
+
+"Chapter1", "Drama", "Drama Queen", "You should have been an actor."
+
+"Chapter1", "Walkers", "Walkers?", "What do you call the ones that run?"
+
+"Chapter1", "Scorpion", "Scorpion", "*Get over here*"<action>Lucy reaches back into one of her pockets with her free hand.</action>
+<action>She pulls out a roll of tape, then tearing a bit off, secures the cotton wool ball to my hand.</action>
+
+<speech.lucy>Alright, you're good to go.</speech>
+
+<speech.sarah>Just like that?</speech>
+
+<speech.lucy>Just like that.</speech>
+
+<action>She stands up and heads for one of the doors.</action>
+
+<speech.lucy>Let's get some food in you.</speech>
+
+<action>I slowly start to get off the sofa.</action>
+<action>Lucy opens the door.</action>
+
+<speech.lucy>Through here and down this hallway, when you're ready.</speech>
+
+<resetcharacter.two>
+
+<action>Lucy exits through the door, leaving me alone.</action>
+
+<speech.sarah>Thanks...</speech>
+
+<ui>special</ui>
+<special>living-room</special>
+<character.one>Sarah</character>
+
+<action>Well, that sounded like an invitation to have a look around.</action>
+<action>I stand up-</action>
+
+<character.one.pain>Sarah</character>
+
+<action>Woah, my left leg is, like, stiff?</action>
+<action>It feels kinda like when you sit on it for too long and you cut all the blood off from it.</action>
+<action>I slowly take a few steps...</action>
+<character.one.pain.eyes>Sarah</character>
+<action>Yeah, okay, I can manage this.</action>
-<%= window.story.customRender("F: Get that out") %>"Like shit", I say.
+<character.one>Sarah</character>
-She takes a breath as if to say something, but stops then shakes her head.
+<%= window.story.render("F: Living room search options") %><choices>
+ <%
+ if (!window.story.getChoice("Chapter1", "LivingWindow")) print("[[[Look at window]|C1P39V2]]");
-"Hmm, you haven't had anything to eat in days. Once you get some food in you you'll feel better. But first", she says.
+ if (!window.story.getChoice("Chapter1", "Door2")) print("[[[Go to second door]|C1P39V1]]");
-<%= window.story.customRender("F: Get that out") %>Lucy points at my arm.
+ if (!window.story.getChoice("Chapter1", "CoffeeTable")) print("[[[Look at coffee table]|C1P39V3]]");
-"Let's get that out shall we?", she remarks.
+ if (!window.story.getChoice("Chapter1", "Saline")) print("[[[Look at bag of clear fluid]|C1P39V4]]");
-[[Yeah... sure|C1P37V1]]<br>
-[[Will it hurt?|C1P37V2]]<br>
-[[Can I keep it?|C1P37V3]]"Uh, yeah... sure", I say uncertainly.
+ if (!window.story.getChoice("Chapter1", "TVandC")) print("[[[Look at the TV and cabinet]|C1P39V5]]");
+ %>
-Lucy comes over and gives me a reassuring look.
+ [[[Follow Lucy]|C1P40]]
+</choices><% window.story.setChoice("Chapter1", "Door2"); %>
-"Don't worry, it will only take a second", she says.
+<ui>special</ui>
+<special>living-room</special>
+<character.one>Sarah</character>
-<%= window.story.customRender("F: Peel back") %>"Will it, uh, hurt?", I ask uncertainly.
+<action>I walk around to the other door and open it.</action>
+<action>Huh, a familiar sight, it's the laundry room.</action>
+<action>There's a red stain on the floor just near the door.</action>
+<action>I guess that's where I passed out...</action>
+<action>I'm glad I didn't hit my head.</action>
+<action>I close the door.</action>
+
+<%= window.story.render("F: Living room search options") %><% window.story.setChoice("Chapter1", "CoffeeTable"); %>
+
+<ui>special</ui>
+<special>living-room</special>
+<character.one>Sarah</character>
+
+<action>I walk up to the coffee table.</action>
+<action>It's pretty ordinary, a few coffee stains here and there, otherwise in good shape.</action>
+<action>I wonder if Lucy has any coffee?</action>
+<action>I would kill for a coffee.</action>
+
+<%= window.story.render("F: Living room search options") %><ui>special</ui>
+<special>living-room</special>
+<character.one>Sarah</character>
+
+<% if (window.story.getChoice("Chapter1", "TVandC")) { %>
+
+ <%= window.story.render("F: Living room search options") %>
+
+<% } else { %>
+ <% window.story.setChoice("Chapter1", "TVandC"); %>
+
+ <action>I walk over to the TV and cabinet.</action>
+ <action>The TV looks reasonably new, one of those fancy new super flat ones.</action>
+ <action>Well, I guess not new anymore.</action>
+ <action>I bend down and open the cabinet.</action>
+ <action>There's a load of old TV crap, set-top boxes and what have you, and-</action>
+
+ <character.one.happy.eyes>Sarah</character>
+
+ <action>What's this? A spinning top.</action>
+ <action>I wonder what this doing in here.</action>
+
+ <character.one>Sarah</character>
+
+ <choices>
+ [[[Take spinning top]|C1P39V51]]
+ [[[Leave spinning top]|C1P39V5]]
+ </choices>
+<% } %><% window.story.setChoice("Chapter1", "Saline"); %>
+
+<ui>special</ui>
+<special>living-room</special>
+<character.one>Sarah</character>
+
+<action>I walk up to the coat hanger stand and look at the clear bag of fluid.</action>
+<action>What's left of it anyway.</action>
+<action>I take the bag off the hanger.</action>
+<action>It's a long, crumpled up, clear bag, and it looks rather worn.</action>
+<action>There's some writing on it I can still make out though.</action>
+<action>"Sodium Chloride 0.9% 1000ml - For Intravenous Infusion"</action>
+<action>"Sterile non-pyrogenic... osmolality 308 mOsm/kg water... isotonic... pH 4.5 - 7"</action>
+
+<character.one.pain.eyes>Sarah</character>
+
+<action>I feel like I'm back in high school science class again.</action>
+<action>I have no clue what any of this means.</action>
+
+<character.one>Sarah</character>
+
+<action>I put the bag back on the hanger.</action>
+
+<%= window.story.render("F: Living room search options") %><ui>standard</ui>
+<character.one>Sarah</character>
+
+<action>I head to the door Lucy went through, wary of my leg.</action>
+<action>I open the door.</action>
+<action>The hallway has doors on all four sides, and a set of stairs on one side.</action>
+
+<character.two>Unknown</character>
+<characteroverride.two>Lucy</characteroverride>
+
+<speech.unknown>Tiffany, stop playing with your food...</speech>
+
+<resetcharacter.two/>
+
+<action>I can hear Lucy say somewhere behind the furthest door.</action>
+<action>That must be to the kitchen.</action>
+
+<%= window.story.render("F: Hallway search options") %><% window.story.setChoice("Chapter1", "LivingWindow"); %>
+
+<ui>special</ui>
+<special>living-room</special>
+<character.one>Sarah</character>
+
+<action>I walk over to the window.</action>
+<action>It's been boarded up from the outside, but there are a few cracks I can look through.</action>
+<action>I squat down and have a look through one.</action>
+<action>It looks out onto a small front garden and the street, and-</action>
+
+<character.one.happy.eyes>Sarah</character>
+
+<action>Whoa, that's actually quite a lot of walkers.</action>
+<action>Looks like they're just passing through, maybe 10 or 20 of them?</action>
+
+<character.one>Sarah</character>
+
+<action>I should probably let Lucy know...</action>
+<action>Anyway, the front garden is much smaller than the back garden.</action>
+<action>It's got a small fence running around it, only about half a meter high.</action>
+<action>The weather doesn't look great actually, it's pretty overcast, and I can see storm clouds rolling in.</action>
+<action>I wonder how this place will hold up in the rain...</action>
+<action>I stand up again.</action>
+
+<%= window.story.render("F: Living room search options") %><% window.story.setChoice("Chapter1", "SpinningTop"); %>
+
+<ui>special</ui>
+<special>living-room</special>
+<character.one>Sarah</character>
+
+<action>I pick up the spinning top.</action>
+<action>%Tiffany% might like this.</action>
+
+<%= window.story.render("F: Living room search options") %><% window.story.setChoice("Chapter1", "Stairs"); %>
+
+<ui>special</ui>
+<character.one>Sarah</character>
+
+<action>I walk up to the stairs.</action>
+<action>They bend and go to the left as they go up.</action>
+<action>I better not go up there.</action>
<% if (window.story.getChoice("Chapter1", "Lied")) { %>
-"No, not at all. Might feel a bit weird, but shouldn't hurt", she replies.
+ <action>Lucy doesn't trust me as it is, no need to give her an excuse.</action>
+
+<% } else { %>
+
+ <action>I don't want to push my luck and risk a free meal.</action>
+
+<% } %>
+
+<%= window.story.render("F: Hallway search options") %><ui>special</ui>
+<character.one>Sarah</character>
+
+<% if (window.story.getChoice("Chapter1", "FreshenUp")) { %>
+
+ <%= window.story.render("F: Hallway search options") %>
<% } else { %>
+ <% window.story.setChoice("Chapter1", "FreshenUp"); %>
+
+ <action>I walk up to the door on the left and open it.</action>
+ <action>It's a bathroom!</action>
+ <action>I could use a freshening up...</action>
+
+ <choices>
+ [[[Enter bathroom]|C1P40V21]]
+ [[[Leave bathroom]|C1P40V2]]
+ </choices>
+<% } %><% window.story.setChoice("Chapter1", "Frontdoor"); %>
+
+<ui>special</ui>
+<character.one>Sarah</character>
+
+<action>I walk up to the door, it's larger than the other doors, and has locks on it.</action>
+<action>This must be the front door.</action>
+<action>I don't really want to go out there right now.</action>
+
+<% if (window.story.getChoice("Chapter1", "LivingWindow")) { %>
+
+ <action>Especially not with all those walkers out there.</action>
+
+<% } %>
+
+<%= window.story.render("F: Hallway search options") %><% if (!window.story.getChoice("Chapter1", "Haircut")) window.story.setChoice("Chapter1", "Haircut", false); %>
+
+<ui>special</ui>
+<special>kitchen</special>
+<character.one>Sarah</character>
+
+<action>I walk to the end of the hallway, and go through the kitchen door.</action>
+<action>%Tiffany% and Lucy are sitting at a table in the middle of the small room.</action>
+<action>Benches line two sides of the room, and there's a door on the far side.</action>
+<action>There's a portable gas stove with a can of something on top of it on one of the benches.</action>
+
+<% if(window.story.getChoice("Chapter1", "CoffeeTable")) { %>
+
+ <action>No sign of a coffee pot though, damn.</action>
+
+<% } %>
+
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two.happy>Tiffany</character>
+
+<action>%Tiffany% looks up from her meal and sees me, a smile fills her face.</action>
+
+<speech.tiffany>Come sit here!</speech>
+
+<action>She's gesturing to the chair next to her.</action>
+
+<character.two>Lucy</character>
+
+<action>I shoot a glace over at Lucy, who gives a small nod of approval.</action>
+
+<choices>[[[Sit next to %Tiffany%]|C1P42]]</choices><choices>
+ <%
+ if (!window.story.getChoice("Chapter1", "Stairs")) print("[[[Look at stairs]|C1P40V1]]");
+
+ if (!window.story.getChoice("Chapter1", "FreshenUp")) print("[[[Look at left door]|C1P40V2]]");
+
+ if (!window.story.getChoice("Chapter1", "Frontdoor")) print("[[[Look at right door]|C1P40V3]]");
+ %>
+
+ [[[Go to the kitchen]|C1P41]]
+</choices><% window.story.setChoice("Chapter1", "Bathroom"); %>
+
+<ui>special</ui>
+<character.one>Sarah</character>
+
+<action>I step inside.</action>
+<action>There's a sink with some water in it; it looks pretty clean.</action>
+<action>I walk over to it, dip my hands in, and run my hands over my face.</action>
+
+<character.one.happy.eyes>Sarah</character>
+
+<action>Wow, that feels fantastic...</action>
+<action>I don't recall the last time I had a wash.</action>
+
+<character.one>Sarah</character>
+
+<action>I give my face and arms a good scrub.</action>
+<action>The water turns a nasty brown color.</action>
+<action>I look at the mirror above the sink.</action>
+
+<character.one.pain.eyes>Sarah</character>
+
+<action>My eyes are plagued by red lines...</action>
+<action>...my hair is in complete disarray...</action>
+<action>...not to mention it's getting a bit long too.</action>
+<action>I wonder if there's some scissors around here?</action>
+<action>That might be overstepping actually, maybe I should get going</action>
+
+<choices>
+ [[[Leave bathroom]|C1P40V211]]
+ [[[Search for scissors]|C1P40V212]]
+</choices><ui>special</ui>
+<character.one>Sarah</character>
+
+<action>Maybe later.</action>
+<action>I let out the water in the sink, and leave the bathroom.</action>
+
+<%= window.story.render("F: Hallway search options") %><% window.story.setChoice("Chapter1", "Haircut"); %>
+
+<ui>special</ui>
+<character.one>Sarah</character>
+
+<action>I search around the bathroom.</action>
+<action>I find a small vanity box on top of a self in the corner of the room.</action>
+<action>It has some bits and pieces, and-</action>
+<action>Score! A pair of scissors.</action>
+<action>They look in pretty good condition too, only a little rusty.</action>
+<action>I walk back over to the sink and start cutting my hair.</action>
+<action>Doesn't need to be fancy, just functional...</action>
+<action>There we go, that's a bit better.</action>
+<action>I pocket the scissors.</action>
+<action>I doubt that box was Lucy's, judging by all the dust on it.</action>
+<action>Not to mention finding a pair is not easy these days.</action>
+<action>I let the hair filled water in the sink go, and head back into the hallway.</action>
+
+<%= window.story.render("F: Hallway search options") %><ui>special</ui>
+<special>kitchen</special>
+<character.one>Sarah</character>
+<music>calm</music>
+<sound>chair</sound>
+
+<action>I sit down at the table.</action>
+
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.lucy>I'll fix you a bowl.</speech>
+
+<sound>chair2</sound>
+
+<action>She stands up from the table.</action>
+
+<% if (window.story.getChoice("Chapter1", "Haircut")) { %>
+
+ <character.two.confused>Tiffany</character>
+
+ <action>%Tiffany% looks at me, puzzled.</action>
+
+ <speech.tiffany>You look different.</speech>
+ <speech.sarah>I cut my hair.</speech>
+ <speech.sarah>It's important to keep your hair short.</speech>
+ <speech.tiffany>Why?</speech>
+
+ <character.one.pain.eyes>Sarah</character>
+
+ <speech.sarah>So, um, 'bad people', can't grab you as easily...</speech>
+
+ <character.two.confused.neutral>%Tiffany%</character>
+
+ <speech.tiffany>Like the monsters?</speech>
+ <speech.sarah>Well yeah, but also-</speech>
+
+ <character.two.concern.eyes>Lucy</character>
+
+ <action>Lucy is walking back over, shooting me a dirty look.</action>
+
+ <character.one>Sarah</character>
+ <character.two.confused.neutral>%Tiffany%</character>
+
+ <speech.sarah>Uhh...</speech>
+
+<% } else { %>
+
+ <action>Lucy walks over to the portable stove.</action>
+ <action>She stirs the contents of the can on top of it.</action>
+ <action>Then she pours some of it out into a bowl.</action>
+
+ <character.two.happy>Tiffany</character>
+
+ <action>I glance over at %Tiffany%.</action>
+ <action>She's just staring at me and smiling, a little creepy I must say.</action>
+ <action>Lucy walks back over to us.</action>
+
+<% } %>
+
+<ui>special</ui>
+<special>beans</special>
+<character.one>Lucy</character>
+<sound>bowl</sound>
+
+<speech.lucy>Here, Beans and Cheese.</speech>
+
+<choices>[[[Take the bowl]|C1P43]]</choices><ui>standard</ui>
+<character.one.happy.eyes>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>Thanks, I haven't had a hot meal in... well, a long time.</speech>
+
+<speech.lucy>Mhm.</speech>
+
+<action>Lucy grunts.</action>
+<action>I'm starving, I dig right in.</action>
+
+<character.two.confused.sad>Tiffany</character>
+
+<action>I can feel %Tiffany% staring at me.</action>
+<action>I stop eating and look at her.</action>
+<action>She has a hilariously cute look of disgust on her face.</action>
+
+<speech.tiffany>How can you eat that?</speech>
+
+<character.one.happy>Sarah</character>
+
+<action>I stifle a laugh in response, nearly choking on beans.</action>
+
+<character.two.concern.eyes>Lucy</character>
+
+<action>A quick glance at Lucy confirms she is not impressed by the comment.</action>
+
+<speech.lucy>You're free to go find your own meal little miss picky.</speech>
+
+<action>Lucy rolls her eyes.</action>
+
+<choices>
+ [[It tastes good|C1P43V1]]
+ [[You need to eat|C1P43V3]]
+ [[What do you like?|C1P43V2]]
+</choices><% window.story.loadSaves() %>
+
+<img.title-image>
+
+<span#slotsLoading>Loading...</span>
+
+<div-#savesContainer></div>
+
+[[Back|Game Options]]<img.title-image>
+
+This game has an optional Cloud Saving feature, to enable it, click the button below and follow the instructions. itch.io account required.
+
+<% if (window.story.network) { %>
+
+<div#title-button>[[Enable Cloud Saving|Linking]]</div>
+
+<% } else { %>
+
+<div#title-button><a0 onclick="window.story.noConnection()"><s>Enable Cloud Saving</s><br><span.smaller>(Could not connect to remote server)</span></a></div>
+
+<% } %>
+
+If you choose not to enable Cloud Saving, your progress will be lost when you refresh or leave the game.
+
+<div#title-button>[[Continue without Saving|Game Options]]</div>
+
+[[Back|Title Screen]]<img.title-image>
+
+Clicking the button below will open a new tab, ask you to authorize Purpose (this game) to access your public itch.io information, and will then give you a temporary "Linking Code" to use below. Purpose only uses your itch.io information for saving your game progress. Purpose does not have access to your E-Mail, Password, or any other personal information.
+
+<u>NOTE: Treat your Linking Code like a password, do not share it, and if you are recording or streaming, do not show it to your audience. Linking Codes are one use, and expire if not used.</u>
+
+<hr>
+
+<div#title-button>
+ <a#generateButton href="https://purpose-game.com/auth" target="_blank" onclick="window.story.toggleLinkingDisplays()">Generate Linking Code</a>
+</div>
+
+<form-#linkingForm action="javascript:void(0)">
+ <label for="linking-code">Linking Code</label><br>
+ <input#linking-code type="text" name="code" placeholder="Paste Here" autocomplete="off" maxlength="9">
+
+ <button0#linking-codeButton onclick="window.story.linkCode()">Link</button><br>
+
+ <a.small.normal-link onclick="window.story.toggleLinkingDisplays(true)">I need another Linking Code</a>
+</form>
+
+[[Back|Save Options]]<img.title-image>
+
+Thanks for linking your itch.io account with Purpose, <% print(window.story.player.name) %>. Your story progress and achievements will now be saved to the Cloud.
+
+You will need to re-link your account each time you play the game.
+
+<div#title-button>[[Continue|Game Options]]</div><img.title-image>
+
+<div#title-button>
+<%
+if (window.story.saving) {
+ print("[[New Game|New Game]]");
+ print("[[Saved Games|Saved Games]]");
+} else {
+ print("[[New Game|C1 Intro]]");
+ if (window.story.network) print("[[Enable Saving|Save Options]]");
+}
+%>
+<a onclick="window.story.toggleFullscreen()">Toggle Fullscreen</a>
+</div><% window.story.loadSaves(true) %>
+
+<img.title-image>
+
+Select a Save Slot to start a new game.
+
+<u>NOTE: Selecting a Save Slot that is already in use will override any saved data.</u>
+
+<span#slotsLoading>Loading...</span>
+
+<form-#saveSlotSelector action="javascript:void(0)">
+ <label for="slots">Choose a Save Slot:</label>
+ <select#slots name="slots">
+ <option#saveSlot1 value="1">Save Slot 1</option>
+ <option#saveSlot2 value="2">Save Slot 2</option>
+ <option#saveSlot3 value="3">Save Slot 3</option>
+ <option#saveSlot4 value="4">Save Slot 4</option>
+ </select>
+
+ <button0#selectSlotButton onclick="window.story.selectSlot()">Select Slot and Start Game</button>
+</form>
+
+[[Back|Game Options]]<ui>standard</ui>
+<character.one.happy.eyes>Sarah</character>
+<character.two.confused.sad>Tiffany</character>
+
+<speech.sarah>Eat up, it tastes good.</speech>
+
+<action>I say with a mouthful</action>
+
+<speech.tiffany>But, it's all gluggy and gross.</speech>
+
+<character.two.concern.sad>Lucy</character>
+
+<speech.lucy>That's because you let it go cold...</speech>
+
+<action>Lucy replies with a sigh.</action>
+
+<%= window.story.render("F: Come chat") %><ui>standard</ui>
+<character.one.happy.eyes>Sarah</character>
+<character.two.confused.sad>Tiffany</character>
+
+<speech.sarah>What do you like to eat %Tiffany%?</speech>
+
+<character.two.happy>Tiffany</character>
+
+<speech.tiffany>Oh, easy!</speech>
+<speech.tiffany>Pizza and peanut butter sandwiches!</speech>
+
+<speech.sarah>At the same time?</speech>
+
+<speech.tiffany>No silly!</speech>
+
+<speech.sarah>Well, not much of either of those around these days.</speech>
+
+<%= window.story.render("F: Come chat") %><% window.story.setChoice("Chapter1", "Eating"); %>
+
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two.confused.sad>Tiffany</character>
+
+<speech.sarah>Eat up, you need food for strength.</speech>
+
+<speech.tiffany>But, it's all gluggy and gross...</speech>
+
+<speech.sarah>Doesn't matter.</speech>
+<speech.sarah>You never know when you're going to get your next meal.</speech>
+<speech.sarah>Have to eat when you can.</speech>
+
+<character.two.concern.sad>Lucy</character>
+
+<action>I glance at Lucy to gauge her thoughts.</action>
+<action>She looks back uncomfortably, but doesn't say anything.</action>
+
+<character.two.confused.eyes>Tiffany</character>
+
+<speech.tiffany>Hmm, I guess that makes sense.</speech>
+
+<action>She replies, sounding defeated.</action>
+<action>%Tiffany% sticks her spoon into the bowl and starts to eat.</action>
+<action>Maybe I taught her something important.</action>
+
+<%= window.story.render("F: Come chat") %><action>I get back to my bowl.</action>
+
+<character.two>Lucy</character>
+
+<speech.lucy>Sarah, come chat with me when you're finished eating.</speech>
+
+<action>She stands up and heads for the other door.</action>
+
+<character.one.happy.eyes>Sarah</character>
+
+<speech.sarah>Oh yeah, sure...</speech>
+
+<action>Lucy leaves the room.</action>
+<action>I wonder what that's about...</action>
+<action>Also very trusting of her to leave me alone with %Tiffany%.</action>
+
+<choices>[[[Keep eating]|C1P44]]</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Tiffany</character>
+
+<% if (window.story.getChoice("Chapter1", "Eating")) { %>
+
+<action>I look over at %Tiffany%, she's actually making decent process on her meal.</action>
+<action>I suppose that's good.</action>
+
+<% } else { %>
+
+<action>I look over at %Tiffany%, she's still playing with her food...</action>
+
+<% } %>
+
+<% if (window.story.getChoice("Chapter1", "SpinningTop")) { %>
+
+ <action>Oh yeah, I should give this to %Tiffany% before I forget.</action>
+
+ <choices>[[[Give %Tiffany%spinning top]|C1P44V4]]</choices>
+
+<% } else { %>
+
+ <action>With Lucy out of the room, I could find out a bit about %Tiffany%...</action>
+
+ <%= window.story.render("F: Tiff Breakfast Talk Options") %>
+
+<% } %><% window.story.setChoice("Chapter1", "TiffBackstory", "Dad"); %>
+
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Tiffany</character>
+
+<speech.sarah>So, uh, where's your dad?</speech>
+
+<character.two.happy.eyes>Tiffany</character>
+
+<action>%Tiffany% looks up from her meal.</action>
+
+<character.two>Tiffany</character>
+
+<speech.tiffany>He got eaten by monsters...</speech>
+
+<action>She replies, sounding a little downtrodden.</action>
+
+<character.one.pain.eyes>Sarah</character>
+
+<speech.sarah>Ah, I'm sorry to hear that.</speech>
+
+<speech.tiffany>Don't be, he was being silly.</speech>
+
+<character.one.happy.eyes>Sarah</character>
+
+<speech.sarah>Oh...</speech>
+
+<action>I wonder what she means by that...</action>
+
+<speech.sarah>How so?</speech>
+
+<speech.tiffany>He was really lazy all of the time, and kept doing silly things.</speech>
+<speech.tiffany>One day we went down in this cool underground tunnel, and we found a bunch of monsters.</speech>
+<speech.tiffany>Mom picked me up and we ran away, but dad just stood there.</speech>
+<speech.tiffany>Mom tried to tell him to move, but he didn't.</speech>
+<speech.tiffany>I don't know why.</speech>
+<speech.tiffany>Mom doesn't like to talk about it with me...</speech>
+
+<action>We sit for a moment, while I process what the little girl just described to me.</action>
+<action>Damn...</action>
+
+<character.two.happy.eyes>Tiffany</character>
+
+<speech.tiffany>Anyway, what about your dad?</speech>
+
+<action>She remarks cheerfully.</action>
+
+<speech.sarah>Oh well, I'm not sure actually.</speech>
+<speech.sarah>I couldn't get back to him or my mom after everything went tits up.</speech>
+<speech.sarah>I like to think they're out there, somewhere...</speech>
+
+<action>But it's not likely...</action>
+<action>Should I have tried harder to find them?</action>
+<action>They were probably worried sick.</action>
+
+<%= window.story.render("F: Better get going") %><% window.story.setChoice("Chapter1", "TiffBackstory", "Lonely"); %>
+
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Tiffany</character>
+
+<speech.sarah>So... where have you guys been staying?</speech>
+<speech.sarah>Have you moved around a lot?</speech>
+
+<action>%Tiffany% looks up from her meal.</action>
+
+<speech.tiffany>We move houses every once in a while.</speech>
+<speech.tiffany>Sometimes we stay longer, but mom doesn't like doing that.</speech>
+<speech.tiffany>She finds a safe place, and then leaves me there during the day.</speech>
+<speech.tiffany>That way she can go out looking for food and other stuff.</speech>
+
+<action>Lucy leaves %Tiffany% all alone?</action>
+<action>That's rough...</action>
+
+<speech.sarah>That... must be lonely.</speech>
+
+<speech.tiffany>It is, but mom says that it's too dangerous for me to come with her.</speech>
+<speech.tiffany>Except when we move houses, I guess.</speech>
+
+<action>I can tell she's not a huge fan of that arrangement.</action>
+
+<speech.tiffany>What about you?</speech>
+
+<speech.sarah>Oh, me?</speech>
+<speech.sarah>Well uh, I move around a lot.</speech>
+<speech.sarah>Sometimes I'll stay in a house, like you, but most of the time I just sleep wherever it's safest.</speech>
+<speech.sarah>Being by myself means it's pretty easy to pack up and go at a moment's notice, which has its perks.</speech>
+
+<speech.tiffany>Don't you get lonely too?</speech>
+
+<speech.sarah>Sometimes I guess, but I'm used to it.</speech>
+<speech.sarah>I've been on my own for a lonnnng fuckin' time.</speech>
+
+<%= window.story.render("F: Better get going") %><%
+window.story.achievement("Chapter1", "Walkers");
+window.story.setChoice("Chapter1", "TiffBackstory", "Killing");
+%>
+
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Tiffany</character>
+
+<speech.sarah>So... how many walkers have you killed?</speech>
+
+<character.two.happy.eyes>Tiffany</character>
+
+<action>She looks up from her meal, surprised.</action>
+
+<speech.tiffany>Walkers?</speech>
+
+<character.two.confused.eyes>Tiffany</character>
+
+<speech.tiffany>Is that what you call the monsters?</speech>
+
+<speech.sarah>Yeah, the monsters.</speech>
+
+<character.two>Tiffany</character>
+
+<speech.tiffany>Oh...</speech>
+<speech.tiffany>I haven't...</speech>
+
+<action>She trails off, sounding uneasy.</action>
+
+<speech.tiffany>I don't know how to.</speech>
+
+<speech.sarah>It's not hard, you just have to aim for the head.</speech>
+
+<action>I reply with a mouth full, looking at her.</action>
+<action>She doesn't meet my gaze.</action>
+
+<speech.sarah>Might be a little hard, considering how little you are.</speech>
+
+<action>I load another spoonful of beans.</action>
+
+<speech.sarah>But don't let that stop you!</speech>
+
+<action>Her brow furrows like she's deep in thought.</action>
+
+<% if (window.story.getChoice("Chapter1", "Eating")) { %>
+
+<action>There's another piece of useful advise for her.</action>
+
+<% } else { %>
+
+<action>Hopefully she'll take what I said on board.</action>
+
+<% } %>
+
+<character.two.confused.eyes>Tiffany</character>
+
+<speech.tiffany>Why do you call them walkers?</speech>
+
+<action>She's still caught up on that haha.</action>
+
+<character.one.happy.eyes>Sarah</character>
+
+<speech.sarah>Because they fuckin' walk everywhere.</speech>
+
+<%= window.story.render("F: Better get going") %><ui>standard</ui>
+<character.one.pain.eyes>Sarah</character>
+<character.two.confused.eyes>Tiffany</character>
+
+<speech.sarah>Anyway...</speech>
+
+<character.one>Sarah</character>
+
+<speech.sarah>I had better go chat with your mom...</speech>
+
+<action>I get up from the table.</action>
+
+<resetcharacter.two/>
+
+<action>I start for the other door in the room.</action>
+<action>The sound of gentle tapping on the roof indicates it's raining outside.</action>
+<action>I wonder how this place will hold up in the rain.</action>
+<action>I get to the door and open it, then step through.</action>
+<action>It's a dining room, there's a long 8 or so seater table in the middle of the room.</action>
+<action>On one side there's a window with the curtains pulled.</action>
+<action>Another sports a display table with some picture frames on it.</action>
+
+<character.two>Lucy</character>
+
+<action>Lucy is standing at the display table, holding one of the picture frames.</action>
+
+<character.two.happy.eyes>Lucy</character>
+
+<action>Lucy turns to look at me as I close the door.</action>
+
+<character.two>Lucy</character>
+
+<action>She looks away again, back at the picture frame.</action>
+
+<speech.lucy>I'm sorry about last night.</speech>
+
+<choices>
+ [[...|C1P45V1]]
+ [[No stress|C1P45V2]]
+ [[You broke our deal|C1P45V3]]
+</choices><character.two.confused.eyes>Tiffany</character>
+
+<action>%Tiffany%'s face slowly contorts into a look of shock.</action>
+
+<speech.tiffany>Swear!</speech>
+
+<character.one.pain.eyes>Sarah</character>
+
+<action>There's an awkward pause.</action>
+
+<speech.sarah>Um...</speech>
+<speech.sarah>...sorry?</speech>
+
+<action>Another awkward pause.</action>
+<action>I seek refuge in the bowl below me.</action>
+<action>I scrape the last drops out of the bowl.</action>
+
+<choices>[[I better go talk to Lucy|C1P45]]</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<action>I stay by the door.</action>
+<action>An uncomfortable silence settles in.</action>
+
+<%= window.story.render("F: Broke our deal") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<action>This again...</action>
+
+<speech.sarah>Don't worry about it.</speech>
+<speech.sarah>It was clearly... difficult, for both of us.</speech>
+
+<%= window.story.render("F: Broke our deal") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<action>Oh yeah, I'd forgotten.</action>
+
+<speech.sarah>Mhm, you broke our deal.</speech>
+
+<%= window.story.render("F: Broke our deal") %><action>Lucy puts the picture frame down and turns to face me.</action>
+
+<% if (window.passage.name === "C1P45V3") { %>
+
+<speech.lucy>Yes, I did.</speech>
+
+<% } else { %>
+
+<speech.lucy>I broke our deal last night.</speech>
+
+<% } %>
+
+<speech.lucy>That's why I wanted to talk to you.</speech>
+
+<action>Lucy sighs.</action>
+
+<speech.lucy>I'd be lying if I said I didn't ask about your sister...</speech>
+<speech.lucy>Just to find out more about the kind of person you are.</speech>
+
+<action>I figured as much.</action>
+
+<speech.sarah>Well, I'd be lying if I said I didn't ask about %Tiffany% for the same reason.</speech>
+
+<character.two.happy.mouth>Lucy</character>
+
+<action>A slight smile appears across her face.</action>
+
+<speech.lucy>Fair enough.</speech>
+
+<choices>[[[Walk over to Lucy]|C1P46]]</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<action>I walk towards Lucy.</action>
+<action>I glance over at the picture frames she was looking at.</action>
+<action>They're not of her or of %Tiffany%, as I suspected.</action>
+<action>Just some random family.</action>
+<action>A happy, random family.</action>
+
+<speech.lucy>You know, Tiffany used to be like the little boy in these pictures.</speech>
+<speech.lucy>Happy, carefree, and surrounded by loving parents.</speech>
+
+<action>She's talking without making eye contact with me.</action>
+
+<speech.lucy>Then when everything went to shit, she lost all that...</speech>
+<speech.lucy>...and there wasn't a damn thing I could do about it.</speech>
+
+<choices>
+ [[...|C1P46V1]]
+ [[She's still happy|C1P46V2]]
+ [[She's still loved|C1P46V3]]
+</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<action>I look at Lucy, then back at the frames.</action>
+
+<%= window.story.render("F: Happy cuz of you") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>Well, she still looks pretty happy to me.</speech>
+
+<%= window.story.render("F: Happy cuz of you") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two.happy.eyes>Lucy</character>
+
+<speech.sarah>Not all of it.</speech>
+<speech.sarah>You still love her, don't you?</speech>
+
+<character.two>Lucy</character>
+
+<%= window.story.render("F: Happy cuz of you") %><action>Lucy lets out a sigh.</action>
+
+<% if (window.passage.name === "C1P46V1" || window.passage.name === "C1P46V2") { %>
+
+ <speech.lucy>Your seeing a side of her that I haven't seen in a long time.</speech>
+ <speech.lucy>A side I haven't been able to coax out of her since her father died.</speech>
+
+<% } else { %>
+
+ <speech.lucy>Of course I do.</speech>
+ <action>She pauses for a moment.</action>
+ <speech.lucy>But I don't think that's enough.</speech>
+ <speech.lucy>She needs more.</speech>
+
+<% } %>
+
+<action>Lucy continues to look at the frames.</action>
+
+<speech.lucy>Watching how she behaves around you, reminds me how she use to be.</speech>
+<speech.lucy>You are the first thing to bring any joy into her life in a very long time.</speech>
+<speech.lucy>I do my best to keep her alive and fed...</speech>
+<speech.lucy>...but that leaves me so little time to keep her happy.</speech>
+
+<action>She looks away from the frames, at one of the blank walls.</action>
+
+<speech.lucy>Back... before... I used to work all the time.</speech>
+<speech.lucy>Doing shift work meant I didn't get to see Tiffany very much.</speech>
+<speech.lucy>When she wasn't at pre-school, she was home with her father.</speech>
+<speech.lucy>They were such a good team, and how that he's gone...</speech>
+
+<character.two.sad.eyes>Lucy</character>
+
+<action>She finally turns to look at me.</action>
+
+<speech.lucy>I don't know what to do to make her happy anymore.</speech>
+
+<choices>
+ [[...|C1P47V1]]
+ <%
+ switch (window.story.getChoice("Chapter1", "TiffBackstory")) {
+ case "Lonely":
+ print("[[She's lonely|C1P47V31]]");
+ break;
+
+ case "Dad":
+ print("[[She misses her dad|C1P47V32]]");
+ break;
+
+ case "Killing":
+ print("[[She's not involved enough|C1P47V33]]");
+ break;
+ }
+ %>
+</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two.sad.eyes>Lucy</character>
+
+<action>I wonder why Lucy is telling me all this.</action>
+<action>I'm not sure where this is going...</action>
+
+<%= window.story.render("F: Tiff is a child") %>"Jealous?", I ask?
+
+Lucy scoffs.
+
+"Yeah, I guess I am a little bit", she says, smiling slightly.
+
+<%= window.story.render("F: Tiff is a child") %><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two.sad.eyes>Lucy</character>
+
+<action>Says the woman leaving %Tiffany% alone all day!</action>
+
+<speech.sarah>Can you blame her?</speech>
+<speech.sarah>When she's left alone all day long?</speech>
+
+<action>I didn't realize how rude that sounded till the words actually left my mouth.</action>
+<action>Oh well, it's true.</action>
+
+<character.two.concern.eyes>Lucy</character>
+
+<action>Lucy looks at to me with a mixture of anger and shock.</action>
+
+<character.two.sad.eyes>Lucy</character>
+
+<action>It quickly fades away though.</action>
+<action>She knows I'm right.</action>
+
+<%= window.story.render("F: Tiff is a child") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two.sad.eyes>Lucy</character>
+
+<action>I'm not sure how to talk about this with her.</action>
+<action>%Tiffany% only told me a little bit about her dad...</action>
+<action>But I think it needs to be said.</action>
+
+<speech.sarah>I agree that she probably misses her dad...</speech>
+<speech.sarah>...and I won't pretend to understand what he, and the rest of you guys went through...</speech>
+<speech.sarah>..but...</speech>
+
+<action>This is a bad idea, but I'm in deep now, might as well say it.</action>
+
+<speech.sarah>From what I gather, he might not have been the best person to...</speech>
+<speech.sarah>...you know, have around, nowadays.</speech>
+
+<action>No reaction from Lucy.</action>
+
+<character.one.pain.eyes>Sarah</character>
+
+<action>This silence is killing me, I gotta say something else.</action>
+
+<character.one.happy.eyes>Sarah</character>
+
+<speech.sarah>And that's not to say he wasn't a great guy!</speech>
+<speech.sarah>I'm sure he was, but, you know, those feelings can be hard to deal with at the best of times.</speech>
+<speech.sarah>'The apocalypse' isn't really an ideal environment...</speech>
+
+<character.one.pain.eyes>Sarah</character>
+
+<action>I would know...</action>
+<action>We stand in awkward silence again.</action>
+
+<speech.lucy>I appreciate what he was going through must have been difficult.</speech>
+<speech.lucy>But Tiffany and I were relying on him, and I don't think I can ever forgive him.</speech>
+
+<%= window.story.render("F: Tiff is a child") %><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two.sad.eyes>Lucy</character>
+
+<speech.sarah>I'm not sure what you were expecting.</speech>
+
+<action>Lucy looks at me in confusion.</action>
+
+<speech.sarah>%Tiffany% told me she hasn't ever killed a walker.</speech>
+<speech.sarah>Honestly I'm a little impressed that you've gotten this far without her needing to.</speech>
+<speech.sarah>However, for that to be the case, she's obviously lived a far too sheltered life.</speech>
+<speech.sarah>Killing walkers isn't the best example, but you get what I mean right?</speech>
+<speech.sarah>You need to involve her in the day-to-day stuff.</speech>
+<speech.sarah>If for no other reason than one day she's going to need to know how to do it herself, alone.</speech>
+
+<character.two.concern.eyes>Lucy</character>
+
+<action>Lucy takes a breath as if to say something...</action>
+
+<character.two.sad.eyes>Lucy</character>
+
+<action>But stops and looks away instead.</action>
+<action>She knows I'm right.</action>
+<action>That was actually kinda profound of me, huh.</action>
+
+<%= window.story.render("F: Tiff is a child") %><action>Lucy sighs, and moves away over towards the window.</action>
+
+<speech.lucy>Tiffany didn't even get the chance to go to school...</speech>
+<speech.lucy>Didn't get to make friends.</speech>
+<speech.lucy>Didn't get to go out on play dates.</speech>
+<speech.lucy>Didn't get to learn.</speech>
+<speech.lucy>Didn't get to...</speech>
+<speech.lucy>Have a childhood.</speech>
+<speech.lucy>There's not a handbook on 'How to raise a child in the apocalypse', but I'm trying my best.</speech>
+
+<action>She looks out the window.</action>
+<action>...</action>
+<action>I've gotta ask her...</action>
+
+<choices>[[Why did you save me?|C1P48]]</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two.sad.eyes>Lucy</character>
+
+<speech.sarah>Why did you save me, really?</speech>
+
+<action>Lucy is silent for a few moments.</action>
+
+<character.two>Lucy</character>
+
+<action>Then she turns to face me.</action>
+
+<speech.lucy>I saved you, because one day, maybe soon, that might be my little girl, running around out there, needing help.</speech>
+<speech.lucy>And I wanted to prove to myself that there are still good people out there.</speech>
+<speech.lucy>Who would help my girl, in her time of need.</speech>
+
+<action>We stare at each other.</action>
+
+<choices>
+ [[...|C1P48V1]]
+ [[There will be|C1P48V2]]
+ [[There won't be|C1P48V3]]
+</choices><% window.story.setChoice("Chapter1", "WillHelp", false); %>
+
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<action>I'm not sure what to say...</action>
+<action>Lucy looks at me.</action>
+
+<character.two.sad.eyes>Lucy</character>
+
+<action>She nods slowly.</action>
+<action>She understands there are not many good people left.</action>
+
+<%= window.story.render("F: Stay") %><% window.story.setChoice("Chapter1", "WillHelp"); %>
+
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>There will be.</speech>
+
+<character.one.happy.eyes>Sarah</character>
+
+<speech.sarah>I'm sure of it.</speech>
+
+<character.two.happy>Lucy</character>
+
+<action>Lucy looks at me for a moment, then gives a faint smiles.</action>
+
+<speech.lucy>Do you really think so?</speech>
+
+<speech.sarah>Yeah, why not.</speech>
+<speech.sarah>I mean, me standing her after you looked after me is proof, isn't it?</speech>
+
+<speech.lucy>I suppose it is.</speech>
+
+<%= window.story.render("F: Stay") %><% window.story.setChoice("Chapter1", "WillHelp", false); %>
+
+<ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
+
+<speech.sarah>There won't be.</speech>
+<speech.sarah>This isn't a magic fairy world where everyone gets along.</speech>
+<speech.sarah>It's killed or be killed out there.</speech>
+
+<character.two.sad.eyes>Lucy</character>
+
+<speech.lucy>Deep down, I think I know that.</speech>
+
+<%= window.story.render("F: Stay") %><action>Lucy takes a moment to recollect herself.</action>
+
+<character.two>Lucy</character>
+
+<speech.lucy>I've been trying to think of a good way of wording this, but I keep drawing a blank, so I'm just going to say it.</speech>
+<speech.lucy>I want you to think about staying with Tiffany and I for a while.</speech>
+
+<character.one.happy.eyes>Sarah</character>
+
+<action>My heart skips a beat.</action>
+
+<speech.lucy>I know it's a lot to lay on you all at once, but...</speech>
+
+<character.two.happy.eyes>Lucy</character>
+
+<speech.lucy>I think we could make a good team.</speech>
+<speech.lucy>Not to mention your leg still isn't 100%, so you might need a hand with that.</speech>
+
+<action>I haven't been with other people since...</action>
+
+<character.one.sad.eyes>Sarah</character>
+
+<action>Sophia.</action>
+
+<speech.lucy>Plus, I think Tiffany would benefit from having someone closer to her age around.</speech>
+
+<character.one>Sarah</character>
+
+<action>She does realize I'm more than double her age right.</action>
+
+<character.one.happy.eyes>Sarah</character>
+<character.two.happy>Lucy</character>
+
+<speech.lucy>I don't know if you'll be a good or bad influence on her, but I'm willing to find out, if you are.</speech>
+
+<action>This is a lot to process.</action>
+<action>I have to think about it.</action>
+<action>I've known these people for like, five minutes.</action>
+<action>They seem nice, but is this even something I want?</action>
+
+<choices>[[[Think about Lucy's offer]|C1P49]]</choices><ui>standard</ui>
+<character.one.happy.eyes>Sarah</character>
+<character.two.happy>Lucy</character>
+
+<action>I think about it for a minute.</action>
+<action>Lucy staring at me all the while.</action>
+
+<% if (window.story.getChoice("Chapter1", "NewPurpose")) { %>
+
+<action>Well, I said I needed a new purpose...</action>
+<action>...this isn't exactly what I had in mind, but...</action>
+<action>Sigh.</action>
+<action>I can't bring Sophia back.</action>
+<action>But maybe, just maybe...</action>
+
+<character.one.happy>Sarah</character>
+
+<action>I can honor her through helping %Tiffany%.</action>
+
+<% } else { %>
+
+<character.one.pain.eyes>Sarah</character>
+
+<action>I don't know...</action>
+<action>I don't want, no, I can't have another little girl's blood on my hands.</action>
+<action>%Tiffany% might be better off without me.</action>
+
+<character.one.pain>Sarah</character>
+
+<action>I'm worthless after all...</action>
+<action>...right?</action>
+
+<% } %>
+
+<choices>
+ [[I'll stay|C1P50]]
+ [[I'm not staying|C1P50]]
+</choices><ui>standard</ui>
+<character.two.happy>Lucy</character>
+
+<% if (window.story.getChoice("Chapter1", "NewPurpose")) { %>
+
+<character.one.happy>Sarah</character>
+
+<% } else { %>
+
+<character.one.pain>Sarah</character>
+
+<% } %>
+
+<speech.sarah>I-</speech>
+
+<character.one.angry.eyes>Sarah</character>
+<character.two>Unknown</character>
+
+<speech.unknown>AAARGH!</speech>
+
+<action>Someone, or something, screamed that from outside!</action>
+
+<character.two.concern>Lucy</character>
+
+<action>Lucy and I both look towards the direction of the source.</action>
+<action>It sounded like it came from somewhere out the front of the house.</action>
+<action>We look back at each other.</action>
+
+<choices>
+ [[I'll watch %Tiffany%, go!|C1P51V1]]
+ [[You watch %Tiffany%, I'll go!|C1P51V2]]
+</choices><% window.story.setChoice("Chapter1", "Protect"); %>
+
+<ui>standard</ui>
+<character.one.angry>Sarah</character>
+<character.two.concern>Lucy</character>
+
+<speech.sarah>I'll watch %Tiffany%, go find out what the fuck that was!</speech>
+
+<action>Lucy looks at me and nods, then runs out the door.</action>
+
+<resetcharacter.two/>
+
+<action>I follow behind her.</action>
+
+<choices>[[[Go to %Tiffany%]|C1P52V1]]</choices><% window.story.setChoice("Chapter1", "Protect", false); %>
+
+<ui>standard</ui>
+<character.one.angry>Sarah</character>
+<character.two.concern>Lucy</character>
+
+<speech.sarah>You watch %Tiffany%, I'll go find out what the fuck that was!</speech>
+
+<action>I head for the door.</action>
+
+<speech.lucy>Right!</speech>
+
+<choices>[[[Go through the door]|C1P52V2]]</choices><ui>standard</ui>
+<character.one.angry>Sarah</character>
+
+<action>I go through the doorway back into the Kitchen.</action>
+
+<character.two.concern>Lucy</character>
+
+<action>Lucy is already at the door to the hallway</action>
+
+<character.two.confused.sad>Tiffany</character>
+
+<speech.tiffany>Mom?!</speech>
+
+<%= window.story.render("F: Sounds like a guy") %>
+
+<character.two.confused.sad>Tiffany</character>
+
+<speech.sarah>Don't worry, Lucy's handling it.</speech>
+
+<action>I say as I approach %Tiffany%.</action>
+
+<speech.Tiffany>Handling what?</speech>
+
+<action>Her eyes are locked on mine, I can see the fear in them.</action>
+
+<speech.sarah>Nothing good...</speech>
+
+<resetcharacter.two/>
+
+<action>I walk to the corner of the room so I can see down the hallway.</action>
+
+<choices>[[[Look at Lucy]|C1P53V1]]</choices><ui>standard</ui>
+<character.one.angry>Sarah</character>
+
+<action>I walk through the doorway back into the Kitchen.</action>
+<action>Then head straight for the door to the hallway.</action>
+
+<character.two.confused.sad>Tiffany</character>
+
+<speech.tiffany>Sarah?!</speech>
+
+<%= window.story.render("F: Sounds like a guy") %>
+
+<speech.sarah>Stay with your mom, I'm handling it.</speech>
+
+<action>I say as I walk past %Tiffany% and out into the hallway.</action>
+
+<character.two.confused.sad>Tiffany</character>
+
+<speech.tiffany>Handling what?</speech>
+
+<resetcharacter.two/>
+
+<action>I hear her ask behind me.</action>
+<action>But I'm around out the door and headed down the hallway.</action>
+<action>I'm at the front door now, I can hear a commotion outside.</action>
+
+<choices>[[[Look through peephole]|C1P53V2]]</choices><ui>standard</ui>
+<character.one.angry>Sarah</character>
+
+<action>I look down the hallway.</action>
+
+<character.two.concern>Lucy</character>
+
+<action>I can see Lucy standing at the front door.</action>
+<action>She's looking through the peephole.</action>
+
+<character.two>Unknown</character>
+
+<speech.unknown>Someone, please!</speech>
+
+<character.two.concern>Lucy</character>
+
+<action>Lucy steps back from the door and looks at me.</action>
+<action>What is she going to do?</action>
+
+<% if (!window.story.getChoice("Chapter1", "WillHelp") && window.story.getChoice("Chapter1", "Lied")) { %>
+
+ <choices>[[[Watch Lucy]|C1P53V11]]</choices>
+
+<% } else { %>
+
+ <choices>[[[Watch Lucy]|C1P53V12]]</choices>
+
+<% } %><% window.story.setChoice("Chapter1", "LucySavesStranger", false); %>
+
+<ui>standard</ui>
+<character.one.angry>Sarah</character>
+<character.two.concern>Lucy</character>
+
+<action>She holds eye contact for a moment, then looks back at the door.</action>
+<action>Looks like she's made her mind up.</action>
+<action>She looks around the door; is she looking for a way to lock it?</action>
+<action>I guess she's not going out there, probably for the best.</action>
+
+<character.two.confused.sad>Tiffany</character>
+
+<speech.tiffany>Sarah, what's mom doing?</speech>
+
+<action>%Tiffany% says from the table.</action>
+<action>I look back at her, she looks terrified.</action>
+
+<choices>
+ [[...|C1P53V122]]
+ [[She's keeping us safe|C1P53V121]]
+ [[She's helping someone [Lie]|C1P53V123]]
+</choices><% window.story.setChoice("Chapter1", "LucySavesStranger"); %>
+
+<ui>standard</ui>
+<character.one.angry>Sarah</character>
+<character.two.concern>Lucy</character>
+
+<action>She looks away, she must have made up her mind.</action>
+
+<character.two.fighting.ditto>Lucy</character>
+
+<action>Lucy pulls out her knife, opens the door, and disappears through it.</action>
+
+<character.one.happy.eyes>Sarah</character>
+<resetcharacter.two/>
+
+<action>What the hell is she doing?!</action>
+<action>I turn to the boarded-up window on my left.</action>
+<action>I try to find a gap to look through...</action>
+<action>...but between the boards and the rain outside, I can't see jack shit.</action>
+<action>Just walkers.</action>
+
+<character.one.angry.eyes>Sarah</character>
+<character.two.confused.sad>Tiffany</character>
+
+<action>I look back at %Tiffany%.</action>
+<action>She's still sitting at the table, looking terrified.</action>
+
+<choices>
+ [[...|C1P53V112]]
+ [[She'll be fine|C1P53V111]]
+ [[[Extend hand to %Tiffany%]|C1P53V113]]
+</choices><% window.story.networkCheck("Alpha") %>
+
+Loading, please wait...This game is in an alpha state (v<% print(window.story.version) %>), all content is subject to change.
+
+[[Understood|Title Screen]]<ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+
+<action>I look through the peephole.</action>
+
+<% if (window.story.getChoice("Chapter1", "LivingWindow")) { %>
+
+<action>The weather looks to have gotten worse since I looked earlier.</action>
+
+<% } else { %>
+
+<action>The weather looks terrible outside.</action>
+
+<% } %>
+
+<action>The rain is really coming down heavy.</action>
+
+<% if (window.story.getChoice("Chapter1", "LivingWindow")) { %>
+
+<action>There's a lot of walkers outside, even more than when I looked before</action>
+
+<% } else { %>
+
+<action>Looks like there's quite a few walkers out there.</action>
+
+<% } %>
+
+<action>I think they're all focused on something in the middle of the street.</action>
+<action>It's difficult to see, but...</action>
+<action>There!</action>
+<action>There's a guy out there!</action>
+
+<character.two.fighting.ditto>Charles</character>
+<characteroverride.two>???</characteroverride>
+
+<speech.charles.!two.fighting>Get fucked you mindless dogs!</speech>
+
+<action>He's pretty tall, but skinny, wearing a trench coat or something.</action>
+<action>And with the way he's wildly swinging that axe around, he's going to get himself killed.</action>
+
+<resetcharacter.two/>
+
+<action>I step back from the peephole and look towards the end of the hallway.</action>
+
+<character.two.concern>Lucy</character>
+
+<action>Lucy is standing in the corner of the Kitchen, looking at me.</action>
+<action>Our eyes lock for a moment.</action>
+
+<character.two>Unknown</character>
+
+<speech.unknown>You're gonna have to earn your dinner today fuckheads!</speech>
+
+<resetcharacter.two/>
+
+<action>I look back towards the door.</action>
+
+<% if (window.story.getChoice("Chapter1", "WillHelp")) { %>
+
+<action>I told Lucy people still help each other out.</action>
+<action>It might be time to practice what I preach.</action>
+
+<% } %>
+
+<action>I could go out and help him...</action>
+<action>Or, I can make sure nothing gets through this door.</action>
+
+<choices>
+ [[[Help stranger]|C1P53V21]]
+ [[[Do not help stranger]|C1P53V22]]
+</choices><% window.story.setChoice("Chapter1", "SaveStranger"); %>
+
+<ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+
+<action>Shit.</action>
+<action>This is a bad idea.</action>
+<action>I look back at Lucy for a moment.</action>
+
+<% if (window.story.getChoice("Chapter1", "WillHelp")) { %>
+
+<character.two.happy.eyes>Lucy</character>
+<action>She nods.</action>
+
+<% } else { %>
+
+<character.two.concern>Lucy</character>
+<action>She slowly shakes her head at me.</action>
+
+<% } %>
+
+<action>She understands what I'm about to do.</action>
+
+<resetcharacter.two/>
+
+<action>I unlock the door, open it, and step outside.</action>
+<action>I close the door behind me and immediately get slapped by the rain.</action>
+<action>It's pouring out here.</action>
+<action>I reach down for my knife-</action>
+<action>Fuck, I forgot I don't have it!</action>
+
+<% if (window.story.getChoice("Chapter1", "Haircut")) { %>
+
+<action>I feel around in my pockets, ah!</action>
+<action>The scissors!</action>
+<action>Seems like a waste, they'll be ruined...</action>
+<action>...but better than going out here with my bare hands.</action>
+
+<% } else { %>
+
+<action>I feel around in my pockets...</action>
+<action>Nothing I can use as a weapon.</action>
+<action>Shit.</action>
+<action>Guess I'm going to have to be smart about how I move around these walkers.</action>
+
+<% } %>
+
+<action>I look for the guy.</action>
+<action>He's in the middle of the street a couple of meters away.</action>
+<action>He hasn't noticed me, and neither have any of the walkers.</action>
+<action>Between all the noise he's making and the rain, they're totally focused on him.</action>
+<action>There must be at least 20 or 30 walkers...</action>
+<action>No way I can take them all out, not without a proper weapon.</action>
+<action>My options are limited here.</action>
+<action>Maybe I can get his attention from here and have him come to me?</action>
+<action>That would save having to fight my way over to him.</action>
+<action>Or I can try and clear a path to him, and get his attention when I'm closer to him.</action>
+<action>Whatever I decide, I had better do it quick.</action>
+
+<choices>
+ [[[Yell at stranger]|C1P53V211]]
+ [[[Go over to stranger]|C1P53V212]]
+</choices><% window.story.setChoice("Chapter1", "SaveStranger", false); %>
+
+<ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+
+<action>No way in hell am I stepping out there.</action>
+<action>I look back at Lucy for a moment.</action>
+
+<% if (window.story.getChoice("Chapter1", "WillHelp")) { %>
+
+<character.two.sad.eyes>Lucy</character>
+<action>She looks at me, disappointed.</action>
+
+<% } else { %>
+
+<character.two.concern>Lucy</character>
+<action>She slowly nods her head at me.</action>
+
+<% } %>
+
+<resetcharacter.two/>
+
+<action>I look back at the door.</action>
+<action>There's not much in the way of locking...</action>
+<action>In fact, the lock looks busted.</action>
+<action>I guess that's how Lucy and %Tiffany% got in.</action>
+<action>If I could move a chair or a table in front of the door, that might be enough to-</action>
+<action>BANG</action>
+
+<character.one.happy.eyes>Sarah</character>
+
+<action>What the hell?!</action>
+<action>That was on the other side of the door.</action>
+<action>How'd a walker get up here so quickly-</action>
+
+<character.two>Unknown</character>
+
+<speech.unknown>Hey! Anyone in here?</speech>
+
+<character.one.pain.angry>Sarah</character>
+
+<action>That's coming from the other side of the door!</action>
+<action>Shit, shit, shit.</action>
+<action>Now what?!</action>
+
+<character.one.angry>Sarah</character>
+
+<action>It won't take him long to figure out it's not fucking locked!</action>
+
+<choices>
+ [[Go away!|C1P53V221]]
+ [[%Tiffany% run!|C1P53V222]]
+ [[[Hold the door closed]|C1P53V223]]
+</choices><% window.story.achievement("Chapter1", "Scorpion"); %>
+
+<ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+
+<action>I can't go over to him, its too dangerous.</action>
+
+<speech.sarah>Hey! You!</speech>
+
+<character.two.fighting.ditto>Charles</character>
+<characteroverride.two>???</characteroverride>
-"Not as much as pulling a knife out, if that's what you're asking", she remarks, a grin on her face.
+<action>He stops swinging his axe for a moment and looks at me.</action>
+<action>At first his expression is surprised, but he quickly recovers.</action>
-I roll my eyes at her.
+<speech.sarah>Get over here!</speech>
-<% } %>
+<action>He nods, and gets back to swinging.</action>
+<action>Slowly he starts making his way towards me.</action>
-<%= window.story.customRender("F: Peel back") %>"Can I keep it? Seems handy", I ask.
+<resetcharacter.two/>
-"First off, was that a pun? And secondly, no, it'll just increase your chances of getting an infection", she replies.
+<action>Ah crap, my shouting drew some unwanted attention.</action>
+<action>A few walkers have started heading my direction.</action>
-"Yeah, I guess that was", I say as I chuckle.
+<% if (window.story.getChoice("Chapter1", "Haircut")) { %>
-<% if (!window.story.getChoice("Chapter1", "Laughed")) {
- window.story.setChoice("Chapter1", "Laughed");
-%>
+<choices>[[[Use Scissors]|C1P53V2111]]</choices>
-I can't remember the last time I laughed...
+<% } else { %>
-<% } %>
+<choices>[[[Look for a weapon]|C1P53V2112]]</choices>
-<%= window.story.customRender("F: Peel back") %>Lucy sits across from me on the coffee table, then puts her hand out and beckons me to give her my hand.
+<% } %><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
-I place my hand on hers.
+<action>I had better try and get over to him.</action>
+<action>No point yelling and drawing more walkers.</action>
+<action>The path between him and I is actually pretty clear, most of the walkers are on the street.</action>
+<action>There's only one walker directly in my way.</action>
+<action>I start towards it, the rain is covering up the sound of my movement, so I've got that going for me at least.</action>
-She peels back the tape and disconnects the tubbing. She reaches into the pockets of her cargo pants, takes out a ball of cotton wool, then in one smooth motion, swiftly and gently pulls out the cannula, and holds the cotton wool where it was inserted.
+<% if (window.story.getChoice("Chapter1", "Haircut")) { %>
-[[Impressive|C1P38V1]]<br>
-[[[Cry out in fake pain]|C1P38V2]]<br>
-[[You've done that a few times|C1P38V3]]"Impressive, I didn't feel a thing", I remark.
+<action>I get up right behind it.</action>
-Lucy smiles.
+<%= window.story.render("F: Scissor takedown") %>
-"Thanks, I use to do these daily... I miss it sometimes", she replies.
+<% } else { %>
-Her smile fades.
+<character.one.angry>Sarah</character>
-<%= window.story.customRender("F: Breakfast time!") %><% window.story.achievement("Chapter1", "Drama", "Drama Queen", "You should have been an actor.") %>
+<action>I get up right behind it, then I quickly kick out its left knee.</action>
+<action>It makes a pronounced snapping noise and bends abnormally.</action>
+<action>The walker tumbles, I push it to the ground, then stomp its head in.</action>
-"Argh!", I exclaim.
+<character.one.angry.eyes>Sarah</character>
-Lucy doesn't bother to move her head up, just her eyes. She gives me a look that says "Shut up", then looks away again.
+<action>I take a breath, its been a while since I've had to do that.</action>
+<action>Its head has turned to mush... and I now have said mush all over my shoes. Great.</action>
-I thought it was pretty funny.
+<% } %>
-<%= window.story.customRender("F: Breakfast time!") %>"Clearly you've done that a few times before", I remark.
+<choices>[[[Continue forward]|C1P53V2121]]</choices><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
-"Oh yeah, once or twice", she replies.
+<action>I take a few steps forward towards the closest walker, then wait for him to get within arm's length.</action>
-<%= window.story.customRender("F: Breakfast time!") %>"Chapter1", "Knocked", "Knock, knock", "Who's *there?*"
+<%= window.story.render("F: Scissor takedown") %>
-"Chapter1", "Soap", "Nothing wasted", "You never know when it will come in handy!"
+<%= window.story.render("F: Ow my leg") %><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
-"Chapter1", "Filter", "No Filter", "Speaking your mind, *even when you shouldn't.*"
+<action>I look around for a weapon.</action>
-"Chapter1", "HelloThere", "Hello There", "General Kenobi... you are a bold one."
+<character.one.angry>Sarah</character>
-"Chapter1", "Nothing", "Silent Treatment", "You have the right to remain silent..."
+<action>For fuck's sake, there's nothing out here!</action>
+<action>Just a doormat and a potted plant.</action>
-"Chapter1", "NoChoice", "Broken Record", "You need some new material."
+<character.one.happy.eyes>Sarah</character>
-"Chapter1", "RollCredits", "Roll Credits", "And that's a Sin."
+<action>Wait, the plant, that could do.</action>
+<action>I walk over to it and pick it up.</action>
-"Chapter1", "Drama", "Drama Queen", "You should have been an actor."
+<character.one.happy>Sarah</character>
-"Chapter1", "Walkers", "Walkers?", "What do you call the ones that run?"
+<action>It's got a fair bit of weight to it, this will work.</action>
-"Chapter1", "Nerve", "Struck a Nerve", "Found a touchy subject"
+<character.one.angry.eyes>Sarah</character>
-"Chapter1", "Scorpion", "Scorpion", "*Get over here*"Lucy reaches back into her pocket with her free hand and pulls out a roll of... something. It looks like tape, but fabric-like.
+<action>I look back towards the walkers, the closest one is just a few meters from me.</action>
+<action>I get close to it, brace myself, and then throw the potted plant right at it.</action>
+<action>The pot connects with the walker's head and shatters.</action>
+<action>The walker goes down like a sack of potatoes.</action>
-"Alright, you're good to go", Lucy says, tearing a bit of tape off and using it to secure the cotton wool ball to my hand.
+<%= window.story.render("F: Ow my leg") %><character.one.pain>Sarah</character>
-"Let's get some food in you", she says as she gets up and heads towards the door.
+<action>ARGH, shit!</action>
-I slowly get up off the sofa.
+<character.one.pain.eyes>Sarah</character>
-"Through here and down this hallway, when you're ready", Lucy says as she reaches the door, then goes through it, leaving me alone.
+<action>I forgot about my leg.</action>
+<action>That really hurt.</action>
+<action>I look up, there are still two walkers headed for me, shit.</action>
+<action>I take a step back-</action>
+<action>GRRR, shit, I've properly fucked my leg.</action>
+<action>This isn't good.</action>
+<action>I start to hobble back towards the door, pain shooting up my leg.</action>
-That sounded like an invitation to have a look around.
+<character.two.fighting.ditto>Charles</character>
+<characteroverride.two>???</characteroverride>
-I stand up- Woah, my left leg is, like, stiff? It feels kinda like when you sit on it for too long and you cut all the blood off from it.
+<action>I look back over at the stranger.</action>
+<action>We make eye contact for a moment, he sees I'm hurt.</action>
+<action>He nods again, this time with a slight smirk.</action>
-I slowly take a few steps; yeah, I can manage this. She'll be right.
+<speech.charles.fighting>Hey, dummies, over here!</speech>
-<%= window.story.customRender("F: Living room search options") %><%
-if (!window.story.getChoice("Chapter1", "Door2")) {
- print("[[[Go through second door]|C1P39V1]]<br>");
-}
+<action>He does his best to shout over the top of the rain.</action>
+<action>It works, the walkers following me stop and slowly swing back towards him.</action>
-if (!window.story.getChoice("Chapter1", "LivingWindow")) {
- print("[[[Look out of the window]|C1P39V2]]<br>");
-}
+<speech.charles.fighting>Yeah that's right idiots, come over here!</speech>
-if (!window.story.getChoice("Chapter1", "CoffeeTable")) {
- print("[[[Look at the coffee table]|C1P39V3]]<br>");
-}
+<action>He's crazy, but it's working.</action>
-if (!window.story.getChoice("Chapter1", "Saline")) {
- print("[[[Look at bag of clear fluid]|C1P39V4]]<br>");
-}
+<choices>[[[Open the door to the house]|C1P53V21111]]</choices><% window.story.setChoice("Chapter1", "CharlesName"); %>
-if (!window.story.getChoice("Chapter1", "TVandC")) {
- print("[[[Look at the TV and cabinet]|C1P39V5]]<br>");
-}
-%>
+<ui>standard</ui>
+<character.one.pain>Sarah</character>
-[[[Go through hallway door]|C1P40]]<% window.story.setChoice("Chapter1", "Door2") %>
+<action>I shuffle back to the front door and open it.</action>
+<action>I look back towards the stranger.</action>
-I walk around to the other door and open it. Huh, a familiar sight: it's the laundry room.
+<character.two.fighting.ditto>Charles</character>
+<characteroverride.two>???</characteroverride>
-There's a red stain on the floor just near the door, I guess that's where I passed out... good thing I didn't hit my head.
+<action>He's made it most of the way over to me now.</action>
-I close the door.
+<speech.sarah>Hurry up!</speech>
-<%= window.story.customRender("F: Living room search options") %><% window.story.setChoice("Chapter1", "CoffeeTable") %>
+<action>He takes one final swing, then bolts towards the door.</action>
+<action>I step inside and out of the way, right as he comes crashing in.</action>
-I walk up to the coffee table. It's pretty ordinary, a few coffee stains here and there, otherwise in good shape.
+<character.one.angry.eyes>Sarah</character>
-I wonder if Lucy has any coffee? I haven't had any in years.
+<action>I slam the door behind him.</action>
-<%= window.story.customRender("F: Living room search options") %><% window.story.setChoice("Chapter1", "TVandC") %>
+<character.two>Charles</character>
+<characteroverride.two>???</characteroverride>
-I walk over to the TV and cabinet. The TV looks reasonably new, one of those fancy new super flat ones. Well, I guess not new anymore.
+<action>We both stand there for a moment, soaking wet, and panting.</action>
-I bend down and open the cabinet. There's a load of old TV crap, set-top boxes and what have you, and- What's this: a spinning top. What's this doing in here?
+<speech.charles>Thanks...</speech>
-[[[Take spinning top]|C1P39V51]]
+<action>He manages to say, between gasps.</action>
-<%= window.story.customRender("F: Living room search options") %><% window.story.setChoice("Chapter1", "Saline") %>
+<speech.sarah>No problem.</speech>
-I walk up to the hat hanger and look at the clear bag of fluid, what's left of it anyway.
+<character.two>Charles</character>
-I take it off the hanger, it's a long, crumpled up, clear bag, and it looks rather worn. There's some writing on it I can still make out though, "Sodium Chloride 0.9% 1000ml - For Intravenous Infusion". I thought Lucy said it was just salty water...
+<speech.charles>Name's Charles.</speech>
-There's more writing near the bottom, "Sterile non-pyrogenic... osmolality 308 mOsm/kg water... isotonic... pH 4.5 - 7", OK I feel like I'm back in highschool science class again, I have no clue what any of this means.
+<speech.sarah>Sarah; that's Lucy.</speech>
-I put the bag back on the hanger.
+<action>I gesture over my shoulder back towards the kitchen.</action>
+<action>Charles jumps a little, he must not have seen her.</action>
+<action>He quickly recovers and gives a slow-wave.</action>
-<%= window.story.customRender("F: Living room search options") %>I head to the door, wary of my leg. I then go through the door to the hallway. The hallway has doors on all four sides, and a set of stairs on one side.
+<choices>[[[Turn towards Lucy]|C1P53V211111]]</choices><action>I quickly kick out its left knee, it makes a pronounced snapping noise and bends abnormally.</action>
+<action>The walker tumbles, its head bent over, perfectly within reach.</action>
-<i>"Tiffany, stop playing with your food..."</i>, I hear Lucy say somewhere behind the furthest door. That must be to the kitchen.
+<character.one.angry.eyes>Sarah</character>
-<%= window.story.customRender("F: Hallway search options") %><% window.story.setChoice("Chapter1", "LivingWindow") %>
+<action>I take the scissors and drive them deep into the back of its head, it makes a horrid gurgling sound, then flops to the ground.</action>
-I walk over to the window. It's been boarded up from the outside, but there are a few cracks I can look through. I squat down and have a look through one.
+<character.one.angry>Sarah</character>
-It looks out onto a small front garden and the street, and- Whoa, that's actually quite a lot of walkers. Looks like they're just passing through, maybe 10 or 20 of them? I should probably let Lucy know...
+<action>I go to pull the scissors out of its head-</action>
-Anyway, the front garden is much smaller than the back garden, it's got a small fence running around it, only about half a meter high. The weather doesn't look great actually, it's pretty overcast, and I can see storm clouds rolling in. I wonder how this place will hold up in the rain.
+<character.one.angry.eyes>Sarah</character>
-I stand up again.
+<action>Shit, it's snapped off at the handle, leaving the sharp end in the walker's head.</action>
+<action>Figures.</action><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
-<%= window.story.customRender("F: Living room search options") %><% window.story.setChoice("Chapter1", "SpinningTop") %>
+<action>I take a step towards the stranger-</action>
-I pick up the spinning top. <% print(window.story.tiffany()) %> might like this.
+<character.one.pain>Sarah</character>
-<%= window.story.customRender("F: Living room search options") %><% window.story.setChoice("Chapter1", "Stairs") %>
+<action>ARGH, shit!</action>
-I walk up to the stairs, they bend and go to the left as they go up. I better not go up there, <% if (window.story.getChoice("Chapter1", "Lied")) { print("Lucy doesn't trust me as it is, no need to give her another excuse") } else { print("don't want to push my luck and risk a free meal") } %>.
+<character.one.pain.eyes>Sarah</character>
-<%= window.story.customRender("F: Hallway search options") %>I walk up to the door on the left and open it. It's a bathroom! I could really use a freshening up...
+<action>I forgot about my leg.</action>
+<action>I've properly fucked it taking down that walker.</action>
+<action>I'm not as close to him as I would have liked, but this is going to have to do.</action>
-[[[Enter bathroom]|C1P40V21]]
+<speech.sarah>Hey!</speech>
-<%= window.story.customRender("F: Hallway search options") %><% window.story.setChoice("Chapter1", "Frontdoor") %>
+<action>I do my best to shout over the rain, as I wave my hands as well.</action>
-I walk up to the door, it's larger than the other doors, and has locks on it: this must be the front door. I don't really want to go out there right now<% if (window.story.getChoice("Chapter1", "LivingWindow")) print(", not with all those walkers out there") %>.
+<character.two.fighting.ditto>Charles</character>
+<characteroverride.two>???</characteroverride>
-<%= window.story.customRender("F: Hallway search options") %><%
-if (!window.story.getChoice("Chapter1", "Haircut")) {
- window.story.setChoice("Chapter1", "Haircut", false);
-}
-%>
+<action>He stops swinging his axe for a moment and looks at me.</action>
+<action>At first his expression is surprised, but he quickly recovers.</action>
-I walk to the end of the hallway and go through the kitchen door.
+<speech.charles.fighting>Hey!</speech>
-%Tiffany% and Lucy are sitting at a table in the middle of the small room. Benches line two sides of the room, and there's a door on the far side. There's a portable gas stove with a can on top of it on one of the benches<% if(window.story.getChoice("Chapter1", "CoffeeTable")) print(", no coffee pot though, damn") %>.
+<action>He exclaims back at me.</action>
-%Tiffany% looks up from her meal and sees me, a huge smile fills her face.
+<speech.sarah>Come on, let's get inside!</speech>
-"Come sit here!", %Tiffany% says, gesturing to the chair next to her. I look over at Lucy, she gives a slight smile and nods her approval.
+<action>He nods and starts heading towards me, swinging at walkers as he goes.</action>
-[[[Sit next to %Tiffany%]|C1P42]]<%
-if (!window.story.getChoice("Chapter1", "Stairs")) {
- print("[[[Look at stairs]|C1P40V1]]<br>");
-}
+<choices>[[[Head back to the house]|C1P53V21111]]</choices><ui>standard</ui>
+<character.one.angry>Sarah</character>
-if (!window.story.getChoice("Chapter1", "Bathroom") && window.passage.name != "C1P40V2") {
- print("[[[Look at door on the left]|C1P40V2]]<br>");
-}
+<speech.sarah>Go aw-</speech>
-if (!window.story.getChoice("Chapter1", "Frontdoor")) {
- print("[[[Look at door on the right]|C1P40V3]]<br>");
-}
-%>
+<%= window.story.render("F: Door swings open") %><ui>standard</ui>
+<character.one.angry>Sarah</character>
-[[[Go through kitchen door]|C1P41]]<% window.story.setChoice("Chapter1", "Bathroom") %>
+<speech.sarah>%Tiffany% ru-</speech>
-I step inside. There's a sink with some water in it, it looks pretty clean too. I walk over to it, dip my hands in, and run my hands over my face. Wow, that feels great, I don't recall the last time I had a wash.
+<%= window.story.render("F: Door swings open") %><ui>standard</ui>
+<character.one.angry>Sarah</character>
-I give my face and arms a good scrub, the water turns a nasty brown color. I look at the mirror above the sink. My brown eyes are plagued by red lines. My brown messy hair is in complete disarray; it's getting a bit long for my liking too.
+<action>I push against the door with all my weight.</action>
-I wonder if there is a pair of scissors around here?
+<%= window.story.render("F: Door swings open") %><action>CRASH</action>
-[[[Leave bathroom]|C1P40V211]]<br>
-[[[Search for scissors]|C1P40V212]]Ah well, another time. I let out the water in the sink and leave the bathroom.
+<character.two.fighting.ditto>Charles</character>
+<characteroverride.two>???</characteroverride>
-<%= window.story.customRender("F: Hallway search options") %><% window.story.setChoice("Chapter1", "Haircut") %>
+<action>Suddenly, the door swings open, and a man comes crashing through.</action>
+<action>The man lands on the stairs, soaked.</action>
+<action>I get knocked to the ground by the door and land awkwardly on my bad leg.</action>
-I search around the bathroom. I find a small vanity box and open it, it contains some bits and bobs, and- Perfect, a pair of scissors.
+<character.one.pain>Sarah</character>
-I walk back over to the sink and start cutting my hair. Doesn't need to be pretty, just functional...
+<action>Argh, for fuck's sake.</action>
-There we go, that's a bit better.
+<character.one.angry.eyes>Sarah</character>
-I pocket the scissors, I doubt that box was Lucy's, judging by the dust on it, and finding a pair is not easy these days.
+<action>I get onto my knees and look at the man.</action>
-I let the water in the sink go, and head back into the hallway.
+<character.two>Charles</character>
+<characteroverride.two>???</characteroverride>
-<%= window.story.customRender("F: Hallway search options") %>I sit down at the table.
+<action>He props himself up as well and our eyes meet, a look of shock on his face.</action>
+<action>There's a moment of silence, before his expression quickly turns into one of anger.</action>
-"I'll fix you a bowl", Lucy says as she stands up from the table.
+<character.two.angry>Charles</character>
+<characteroverride.two>???</characteroverride>
-<% if (window.story.getChoice("Chapter1", "Haircut")) { %>
+<speech.charles>Oi, why didn't you help me out there!</speech>
+<speech.charles>There's no way you didn't hear me!</speech>
-%Tiffany% looks at me, puzzled.
+<choices>
+ [[I don't know you!|C1P53V2211]]
+ [[I was going to! [Lie]|C1P53V2213]]
+ [[You were going to get yourself killed!|C1P53V2212]]
+</choices><ui>standard</ui>
+<character.one.angry>Sarah</character>
+<character.two.angry>Charles</character>
+<characteroverride.two>???</characteroverride>
-"You look different", she says.
+<action>Who the hell does this guy think he is?</action>
-"I cut my hair; it's important to keep your hair short", I reply.
+<speech.sarah>I don't know you, and I don't owe you shit!</speech>
-"Why?", %Tiffany% asks.
+<%= window.story.render("F: Not now") %><ui>standard</ui>
+<character.one.angry>Sarah</character>
+<character.two.angry>Charles</character>
+<characteroverride.two>???</characteroverride>
-"So, um, *bad people*, can't grab you as easily", I reply.
+<action>Is this guy for real?</action>
-"Like the monsters?", %Tiffany% says.
+<speech.sarah>You were carrying on like a headless chicken!</speech>
+<speech.sarah>You've pulled every walker within a half-mile, and it looked like you were trying to get yourself killed!</speech>
-"Well yeah, but also-", I start to respond.
+<%= window.story.render("F: Not now") %><ui>standard</ui>
+<character.one.angry>Sarah</character>
+<character.two.angry>Charles</character>
+<characteroverride.two>???</characteroverride>
-Lucy is walking back over, shooting me a dirty look.
+<speech.sarah>I was about to, OKAY?</speech>
-I trail off.
+<action>The look on his face tells me he's not convinced.</action>
-<% } else { %>
+<%= window.story.render("F: Not now") %><character.one.concern>Lucy</character>
-She walks over to the portable stove and fills a bowl with the contents of the can. %Tiffany% staring and smiling at me the whole time. Lucy walks back over to me.
+<speech.lucy>Hey!</speech>
+<speech.lucy>Now's not the time, we've got bigger problems.</speech>
-<% } %>
+<action>Lucy says from somewhere behind me.</action>
-"Here you go, Beans and Cheese!", Lucy exclaims.
+<character.two>Charles</character>
+<characteroverride.two>???</characteroverride>
-[[[Take the bowl]|C1P43]]I take the bowl and set it down.
+<action>The stranger looks startled, he must not have seen her.</action>
+<action>He takes a breath as if to say something, but doesn't.</action>
-"Thanks, I haven't had a hot meal in... well, a long time", I remark.
+<character.two.angry>Charles</character>
+<characteroverride.two>???</characteroverride>
-I'm starving, I dig right in.
+<action>He shoots me a dirty look, then begins to stand up.</action>
+<action>What an asshole.</action>
-I can feel %Tiffany% staring at me, I stop eating and look at her. She has a hilariously cute look of disgust on her face.
+<choices>[[[Stand up]|C1P53V22111]]</choices><ui>standard</ui>
+<character.one.angry>Sarah</character>
+<character.two.concern>Lucy</character>
-"How can you eat *that*?", she asks unapologetically.
+<action>I get up off the floor awkwardly, getting knocked down really did a number on my leg.</action>
-I nearly choke laughing; Lucy was not so impressed.
+<%= window.story.render("F: What we need to do now") %><ui>standard</ui>
+<character.one.pain.eyes>Sarah</character>
+<character.two.concern>Lucy</character>
-"You're free to go find your own meal little miss picky", she replies, rolling her eyes.
+<action>I awkwardly spin to face Lucy, I really did a number on my leg.</action>
-[[Eat, it tastes good|C1P43V1]]<br>
-[[What do you like to eat?|C1P43V2]]<br>
-[[You need food for strength|C1P43V3]]<% window.story.loadSaves() %>
+<%= window.story.render("F: What we need to do now") %><speech.sarah>Alright, what we need to do now is-</speech>
-<img.title-image>
+<action>CRASH</action>
+<action>Suddenly a hand appears through one of the boarded-up windows in the hallway, between the front door and the kitchen.</action>
-<span#slotsLoading>Loading...</span>
+<character.two.fighting.ditto>Lucy</character>
-<div-#savesContainer></div>
+<speech.lucy.fighting>Walkers!</speech>
-[[Back|Game Options]]<img.title-image>
+<action>Lucy shouts, as the sound of glass and wood breaking erupts.</action>
-This game has an optional Cloud Saving feature, to enable it, click the button below and follow the instructions. itch.io account required.
+<choices>
+ [[<% print(window.story.getChoice("Chapter1", "SaveStranger") ? "Charles," : "The") %> Bat!|C1P54V21]]
+ [[Upstairs, quickly!|C1P54V22]]
+ [[[Run to %Tiffany%]|C1P54V23]]
+</choices><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two>Charles</character>
-<% if (window.story.network) { %>
+<% if (window.story.getChoice("Chapter1", "SaveStranger")) { %>
-<div#title-button>[[Enable Cloud Saving|Linking]]</div>
+<speech.sarah>Charles, your axe!</speech>
<% } else { %>
-<div#title-button><a0 onclick="window.story.noConnection()"><s>Enable Cloud Saving</s><br><span.smaller>(Could not connect to remote server)</span></a></div>
+<characteroverride.two>???</characteroverride>
-<% } %>
+<speech.sarah>Axe, now!</speech>
-If you choose not to enable Cloud Saving, your progress will be lost when you refresh or leave the game.
+<% } %>
-<div#title-button>[[Continue without Saving|Game Options]]</div>
+<action>He grabs it and throws it in my direction.</action>
+<action>I catch it, and head towards the window, pushing through the pain in my leg.</action>
-[[Back|Title Screen]]<img.title-image>
+<resetcharacter.two/>
-Clicking the button below will open a new tab, ask you to authorize Purpose (this game) to access your public itch.io information, and will then give you a temporary "Linking Code" to use below. Purpose only uses your itch.io information for saving your game progress. Purpose does not have access to your E-Mail, Password, or any other personal information.
+<character.one.angry>Sarah</character>
-<u>NOTE: Treat your Linking Code like a password, do not share it, and if you are recording or streaming, do not show it to your audience. Linking Codes are one use, and expire if not used.</u>
+<action>As I approach, I raise the axe well above my head and bring it down on the arm with all my strength.</action>
+<action>The axe connects with the arm and keeps going.</action>
+<action>The arm makes a horrible snapping noise, as whatever bones were left in the walker's arm turn to dust.</action>
+<action>The axe hits the ground and buries into the wooden floor.</action>
+<action>The arm, pointing 90 degrees downward and only connected by a thin bit of skin now, continues to twitch and wriggle</action>
+<action>I give the axe pull, but it's stuck in the ground.</action>
+<action>No time to muck around with it now.</action>
-<hr>
+<character.two.concern>Lucy</character>
-<div#title-button>
- <a#generateButton href="https://purpose-game.com/auth" target="_blank" onclick="window.story.toggleLinkingDisplays()">Generate Linking Code</a>
-</div>
+<action>I look up towards the kitchen to meet Lucy's gaze.</action>
-<form-#linkingForm action="javascript:void(0)">
- <label for="linking-code">Linking Code</label><br>
- <input#linking-code type="text" name="code" placeholder="Paste Here" autocomplete="off" maxlength="9">
+<speech.sarah>Let's, go!</speech>
- <button0#linking-codeButton onclick="window.story.linkCode()">Link</button><br>
-
- <a.small.normal-link onclick="window.story.toggleLinkingDisplays(true)">I need another Linking Code</a>
-</form>
+<action>Lucy grabs %Tiffany% from somewhere beside her, and starts booking it down the hallway towards me.</action>
-[[Back|Save Options]]<img.title-image>
+<choices>[[[Head for the stairs]|C1P55]]</choices><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
-Thanks for linking your itch.io account with Purpose, <% print(window.story.player.name) %>. Your story progress and achievements will now be saved to the Cloud.
+<speech.sarah>Upstairs, quickly!</speech>
-You will need to re-link your account each time you play the game.
+<character.two.scared>Charles</character>
-<div#title-button>[[Continue|Game Options]]</div><img.title-image>
+<% if (!window.story.getChoice("Chapter1", "SaveStranger")) { %>
-<div#title-button>
-<%
-if (window.story.saving) {
- print("[[New Game|New Game]]");
- print("[[Saved Games|Saved Games]]");
-} else {
- print("[[New Game|C1 Intro]]");
- if (window.story.network) print("[[Enable Saving|Save Options]]");
-}
-%>
-<a onclick="window.story.toggleFullscreen()">Toggle Fullscreen</a>
-</div><% window.story.loadSaves(true) %>
+<characteroverride.two>???</characteroverride>
-<img.title-image>
+<% } %>
-Select a Save Slot to start a new game.
+<action><% print(window.story.getChoice("Chapter1", "SaveStranger") ? "Charles" : "The stranger") %> doesn't need to be told twice, he scrambles to the stairs and starts going up.</action>
-<u>NOTE: Selecting a Save Slot that is already in use will override any saved data.</u>
+<character.two.concern>Lucy</character>
-<span#slotsLoading>Loading...</span>
+<action>I look back at Lucy, she's got %Tiffany% and is headed down the hallway towards me.</action>
+<action>As she passes the window, the hand suddenly reaches out and grabs Lucy's pants.</action>
-<form-#saveSlotSelector action="javascript:void(0)">
- <label for="slots">Choose a Save Slot:</label>
- <select#slots name="slots">
- <option#saveSlot1 value="1">Save Slot 1</option>
- <option#saveSlot2 value="2">Save Slot 2</option>
- <option#saveSlot3 value="3">Save Slot 3</option>
- <option#saveSlot4 value="4">Save Slot 4</option>
- </select>
-
- <button0#selectSlotButton onclick="window.story.selectSlot()">Select Slot and Start Game</button>
-</form>
+<character.two.scared.ditto>Tiffany</character>
-[[Back|Game Options]]"Eat up, it tastes good", I say with a mouthful.
+<speech.tiffany>EEEP!</speech>
-"It's all gluggy and gross", %Tiffany% replies.
+<character.one.angry>Sarah</character>
-"That's because you let it go cold...", Lucy says with a sigh.
+<speech.sarah>Come to me %Tiffany%!</speech>
-<%= window.story.customRender("F: Come chat") %>"What do you like to eat?", I ask %Tiffany%.
+<character.one.concern>Lucy</character>
-"Pizza, and peanut butter sandwiches!", she replies excitedly.
+<action>%Tiffany% doesn't move, but Lucy lets go of her and shoves her in my direction.</action>
-"Not much of that around these days", I remark.
+<character.one>Sarah</character>
-<%= window.story.customRender("F: Come chat") %><% window.story.setChoice("Chapter1", "Eating") %>
+<action>%Tiffany% stumbles towards me, and I catch her in a hug.</action>
-"Eat up, you need food for strength", I say.
+<character.two.fighting.ditto>Lucy</character>
-"But it's all gluggy and gross", %Tiffany% replies.
+<action>I look back at Lucy again, she has her knife out now.</action>
+<action>She takes several quick jabs at the arm, then takes a swipe at it.</action>
+<action>The arm comes clean off from the rest of the walker.</action>
-"Doesn't matter, you never know when you're going to get your next meal. Have to eat while you can", I remark.
+<choices>[[[Head for the stairs]|C1P55]]</choices><ui>standard</ui>
+<character.one.angry>Sarah</character>
-I glance at Lucy. She looks back uncomfortably but doesn't say anything.
+<action>Without thinking I bolt for the kitchen, pushing through the pain in my leg.</action>
-"Hmm, I guess that makes sense", %Tiffany% says, sounding defeated.
+<character.two.concern>Lucy</character>
-%Tiffany% starts to eat, I think I taught her something important.
+<speech.lucy>Stop!</speech>
-<%= window.story.customRender("F: Come chat") %>I get back to my bowl.
+<character.one.angry.eyes>Sarah</character>
-"Sarah, come chat with me when you're finished", Lucy says, as she stands up and heads for the other door.
+<action>I stop dead in my tracks.</action>
-"Yeah, sure", I reply.
+<speech.lucy>We're coming to you.</speech>
-Lucy leaves the room.
+<character.two.scared>Charles</character>
-[[[Keep eating]|C1P44]]<% if (window.story.getChoice("Chapter1", "Eating")) { %>
+<% if (!window.story.getChoice("Chapter1", "SaveStranger")) { %>
-I look over at %Tiffany%, she's actually making decent process on her meal. Good.
+<characteroverride.two>???</characteroverride>
-<% } else { %>
+<% } %>
-I look over at %Tiffany%, she's still playing with her food...
+<action>I nod, and turn back to <% print(window.story.getChoice("Chapter1", "SaveStranger") ? "Charles" : "the stranger") %>.</action>
-<% }
+<speech.sarah>Get upstairs.</speech>
-if (window.story.getChoice("Chapter1", "SpinningTop")) {
- print(`[[[Give %Tiffany% the spinning top]|C1P44V4]]`);
-} %>
+<action>He doesn't need to be told twice, he starts scrambling up the stairs.</action>
-<%= window.story.customRender("F: Tiff Breakfast Talk Options") %><% window.story.setChoice("Chapter1", "TiffBackstory", "Dad") %>
+<character.two.fighting.ditto>Lucy</character>
-"So, uh, where's your dad?", I ask %Tiffany%.
+<action>I look back at Lucy, she's got %Tiffany% in one hand, and her knife in the other.</action>
+<action>They're head down the hallway towards me.</action>
+<action>As she passes the window, she makes one clean swipe at the hand, and it comes clean off.</action>
-She looks up from her meal.
+<character.one>Sarah</character>
-"He got eaten by monsters", she replies, sounding a little downtrodden.
+<action>Impressive.</action>
-"Sorry to hear that", I reply.
+<choices>[[[Head for the stairs]|C1P55]]</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two>Lucy</character>
-"Don't be, he was being silly", she adds.
+<action>I head for the stairs, %Tiffany% and Lucy right behind me.</action>
-"How so?", I ask.
+<% if (window.story.getChoice("Chapter1", "SaveStranger") || window.story.getChoice("Chapter1", "LucySavesStranger")) { %>
-"He was really sad all of the time and kept making silly mistakes. One day we were down in this cool underground train station, and we walked into a bunch of monsters. Mom picked me up and ran away, but dad just stood there, Mom tried to shout at him to move, but he didn't", she remarks.
+<action>No sign of Charles, he must be upstairs already.</action>
-We sit for a moment, while I process what this little girl just described to me.
+<% } else { %>
-"Anyway, where's your dad?", she asks cheerfully.
+<character.two.sad>Charles</character>
+<characteroverride.two>???</characteroverride>
-"I'm not sure, I couldn't get back to him or my mom after everything went to shit. I like to think they're out there somewhere, but it's unlikely", I reply.
+<action>I glance over at the stranger.</action>
+<action>He has two walkers on him now, his face is contorted, but totally silent...</action>
-<%= window.story.customRender("F: Better get going") %><% window.story.setChoice("Chapter1", "TiffBackstory", "Lonely") %>
+<% } %>
-"So, where have you guys been staying, have you moved around a lot?", I ask %Tiffany%.
+<character.two>Lucy</character>
-She looks up from her meal.
+<action>I get to the first step and stop.</action>
+<action>I look behind me to make sure the other two are still following me.</action>
+<action>Lucy hot on my heels, %Tiffany% just behind her.</action>
-"We move houses every few days, sometimes we stay longer, but mostly not. Mom finds a safe house, and then leaves me there during the day to go out looking for food and stuff", she replies.
+<character.one.happy.eyes>Sarah</character>
+<character.two.concern>Lucy</character>
-"That... must be lonely", I say, feeling bad for her.
+<action>BANG, BANG BANG, BANG</action>
+<action>The door!</action>
+<action>Lucy hears it too.</action>
-"Yeah it is, but mom says that it's too dangerous outside for me to come with her, except when we move houses", she replies, sounding a little annoyed.
+<character.one.angry.eyes>Sarah</character>
+<character.two.fighting.ditto>Lucy</character>
-"What about you?", %Tiffany% asks.
+<speech.lucy.fighting>Don't stop, keep going!</speech>
-"Um, I move around a lot. Sometimes I'll stay in a house, like you, but most of the time I just sleep wherever it's safest. Being by myself means it's pretty easy to pack up and go at a moment's notice, which has its perks", I explain.
+<action>She exclaims as she practically pushes %Tiffany% to the stairs.</action>
+<action>She then turns around and throws herself against the door.</action>
+<action>CRASH, BANG</action>
-"Don't you get lonely too?", she asks.
+<speech.lucy.fighting>Argh!</speech>
-"Sometimes, but I'm used to it. I've been on my own for a shit long time", I reply.
+<resetcharacter.two/>
-<%= window.story.customRender("F: Better get going") %><%
-window.story.setChoice("Chapter1", "TiffBackstory", "Killing");
+<action>The front door has come clean off its hinges.</action>
+<action>It's landed on Lucy, and there are a pile of walkers on top of the fallen door!</action>
-_.delay(function() {
- window.story.achievement("Chapter1", "Walkers", "Walkers?", "What do you call the ones that run?")
-}, 30 * 1000);
-%>
+<character.one.angry>Sarah</character>
-"So, how many walkers have you killed?", I ask %Tiffany%.
+<speech.sarah>Shit, no!</speech>
-She looks up from her meal.
+<character.two.scared.ditto>Tiffany</character>
-"Walker? Is that what you call the monsters?", she asks, sounding a little confused.
+<action>I head back down the stairs, passing %Tiffany% who's frozen in place.</action>
-"Yeah, the monsters. How many have you killed?", I reply.
+<resetcharacter.two/>
-"Oh, I haven't killed any... I don't know how to", she replies, sounding uneasy.
+<action>Lucy must have dropped her knife because it's laying on the stairs in front of her.</action>
-"It's not hard, you just have to aim for the head", I reply with a mouth full, looking at her.
+<character.one.fighting.ditto>Sarah</character>
-"Might be a little hard, considering how little you are, but don't let that stop you!", I remark, as I load another spoonful.
+<action>I pick it up and start towards the walkers.</action>
-%Tiffany% looks away for a moment, like she's thinking.
+<character.two>?Lucy</character>
-<% if (window.story.getChoice("Chapter1", "Eating")) { %>
+<speech.lucy>No!</speech>
-I taught her another important thing.
+<action>Lucy wails from somewhere beneath the door.</action>
-<% } else { %>
+<speech.lucy>Get Tiffany and go, please!</speech>
-I think I taught her something important.
+<action>The walkers are starting to get up.</action>
-<% } %>
+<character.two.scared.ditto>Tiffany</character>
-"Why do you call them walkers?", she asks.
+<action>I look back at %Tiffany%, she's still frozen in place, hands to her face, looking down at her mom.</action>
-Still caught up on that, gee.
+<choices>
+ [[[Try to help Lucy]|C1P55V1]]
+ [[[Grab %Tiffany% and go]|C1P55V2]]
+</choices><% window.story.setChoice("Chapter1", "TriedToSaveLucy"); %>
-"Because they bloody walk everywhere", I reply.
+<ui>standard</ui>
+<character.one.fighting.ditto>Sarah</character>
+<character.two.scared.ditto>Tiffany</character>
-<%= window.story.customRender("F: Better get going") %>"Anyway, uh, I had better go chat with your mom", I say, getting up from the table.
+<action>Fuck that, I can't just leave her!</action>
+<action>I step past %Tiffany% back towards Lucy.</action>
-I head to the other door in the room. I can hear rain outside, the gentle tapping on the roof is actually pretty soothing... I get to the door and open it, then step through.
+<resetcharacter.two/>
-It's a dining room, there's a long 8 or so seater table in the middle of the room, a window with the curtains pulled on one wall, and a display table with some picture frames on it on the far wall. Lucy is standing at the display table, holding one of the frames.
+<action>I get to the last step...</action>
+<action>...right as one of the fallen walkers leans over and takes a chunk out of Lucy's neck.</action>
-Lucy turns to look at me as I close the door. She looks away again, back at the picture frame.
+<character.two>?Lucy</character>
-"I'm sorry about last night", she says.
+<speech.lucy>Argh! Ugh...</speech>
-[[...|C1P45V1]]<br>
-[[No stress|C1P45V2]]<br>
-[[You broke our deal|C1P45V3]]%Tiffany%'s face contorts into a look of shock.
+<action>Lucy makes a horrible gurgling sound.</action>
-"Swear!", she exclaims.
+<speech.sarah.fighting>No! NO!</speech>
-There's an awkward pause.
+<character.one.pain>Sarah</character>
-"Um, sorry?", I reply.
+<action>Not again, not again!</action>
-Another awkward pause.
+<speech.lucy>G... go...</speech>
-I scrape the last drops out of the bowl: all finished.
+<action>I can just hear her make out.</action>
+<action>More walkers are coming through the open doorway now.</action>
+<action>There's no way I can get to Lucy, and even if there was...</action>
+<action>I take one last look at Lucy, then spin around to %Tiffany%.</action>
-[[I better go talk to Lucy|C1P45]]I stay by the door, there's an uncomfortable silence.
+<character.two.scared.ditto>Tiffany</character>
-<%= window.story.customRender("F: Broke our deal") %>"Don't worry about it. It was clearly... difficult, for both of us", I say.
+<action>The look on her face will be burned into my brain for as long as I live.</action>
+<action>Her blue eyes staring, unblinking, tears budding in the corners of her eyes, her face slowly going pale.</action>
-<%= window.story.customRender("F: Broke our deal") %>"You broke our deal", I remark.
+<choices>[[[Grab %Tiffany%]|C1P55V11]]</choices><% window.story.setChoice("Chapter1", "TriedToSaveLucy", false); %>
-<%= window.story.customRender("F: Broke our deal") %>Lucy puts the picture frame down and turns to face me.
+<ui>standard</ui>
+<character.one.angry>Sarah</character>
+<character.two.scared.ditto>Tiffany</character>
-"<% if (window.passage.name === "C1P45V3") { print("Yes, I did.") } else { print("I broke our deal, last night.") } %> That's why I wanted to talk to you", Lucy sighs.
+<action>I go down the stairs towards %Tiffany% and grab her by the hand.</action>
-"I'd be lying if I said I didn't ask about... your sister, just to find out more about the kind of person you are", she remarks.
+<speech.sarah>Come on %Tiffany%, we need to go, now!</speech>
-"I'd be lying if I said I didn't ask about <% print(window.story.tiffany()) %> for the same reason", I reply.
+<action>I say as I start pulling her up the stairs.</action>
-Lucy gives a slight smile.
+<speech.tiffany>No! Mom!</speech>
-"Fair enough", she replies.
+<action>The pitch of her scream is piercing.</action>
-[[[Walk over to Lucy]|C1P46]]I walk over to Lucy. I glance down at the picture frames she was looking at, they're not of her, or of %Tiffany%; just some random family, a happy, family.
+<character.two>?Lucy</character>
-"Tiffany used to be like the little boy in these pictures", Lucy says, gesturing to the picture frames.
+<speech.lucy>Argh! Ugh...</speech>
-"Happy, carefree, and surrounded by a loving family. Then when everything went to shit, she lost all that, and there was nothing I could, can, do about it", Lucy remarks.
+<action>Lucy gurgles somewhere behind me.</action>
-[[...|C1P46V1]]<br>
-[[She's still happy|C1P46V2]]<br>
-[[You still love her|C1P46V3]]I look at Lucy, then back at the frames.
+<character.one.pain.eyes>Sarah</character>
-<%= window.story.customRender("F: Happy cuz of you") %>"She still looks pretty happy to me", I state.
+<action>I don't look back.</action>
-<%= window.story.customRender("F: Happy cuz of you") %>"You still love her, she has that", I say.
+<character.two.scared.ditto>Tiffany</character>
-<%= window.story.customRender("F: Happy cuz of you") %>"<% if (window.passage.name === "C1P46V2") { print ("She's happy because of you.") } else { print("And that's not enough.") } %>", Lucy remarks.
+<speech.sarah>%Tiffany%, move!</speech>
-"You are the first thing, the first *person* to bring any joy into her life in a very long time. I try to keep her happy, but I'm so busy trying to keep her alive and fed, I just don't have the time. You don't even need to do anything, just being around you is enough to lift her spirits!", Lucy exclaims.
+<action>I start dragging her up the steps.</action>
-[[...|C1P47V1]]<br>
-[[Jealous?|C1P47V2]]<br>
-<%
-switch (window.story.getChoice("Chapter1", "TiffBackstory")) {
- case "Lonely":
- print("[[She's lonely|C1P47V31]]");
- break;
-
- case "Dad":
- print("[[She misses her dad|C1P47V32]]");
- break;
-
- case "Killing":
- print("[[You don't involve her enough|C1P47V33]]");
- break;
-}
-%>I'm not sure where this is going...
+<choices>[[[Go up the stairs]|C1P56]]</choices><ui>standard</ui>
+<character.one.angry>Sarah</character>
+<character.two.scared.ditto>Tiffany</character>
-<%= window.story.customRender("F: Tiff is a child") %>"Jealous?", I ask?
+<action>I bolt make up the stairs towards %Tiffany%, then grab her by the hand.</action>
-Lucy scoffs.
+<speech.sarah>Come on %Tiffany%, there's nothing we can do for her now.</speech>
-"Yeah, I guess I am a little bit", she says, smiling slightly.
+<action>I say as I start pulling her up the stairs.</action>
+<action>She doesn't say a word, she must be in shock...</action>
+<action>I guess I am too for that matter.</action>
+<action>Lucy continues to gurgle somewhere behind me.</action>
-<%= window.story.customRender("F: Tiff is a child") %>"She's just lonely. And I mean can you blame her, when she's left alone all day long?", I remark. I didn't realize how rude that sounded till the words left my mouth.
+<character.one.pain.eyes>Sarah</character>
-Lucy turns to me with a mixture of anger and shock, but it quickly fades away to a look of pain.
+<action>I don't look back.</action>
-She knows I'm right.
+<choices>[[[Go up the stairs]|C1P56]]</choices><ui>standard</ui>
+<character.one.angry>Sarah</character>
+<character.two.scared.ditto>Tiffany</character>
-<%= window.story.customRender("F: Tiff is a child") %><% window.story.achievement("Chapter1", "Nerve", "Struck a Nerve", "Found a touchy subject") %>
+<action>We climb to the top of the stairs...</action>
-"She just misses her dad; it sounded like he was going through al-", I start.
+<character.one.pain>Sarah</character>
-"Don't talk about my husband", Lucy snaps.
+<action>Why do people keep dying around me?</action>
+<action>Am I just a death magnet?</action>
-I'm caught off guard, I bite my tongue.
+<character.one.angry>Sarah</character>
-"He abandoned us, abandoned *Tiffany*, when she needed him most. That's it, end of story", Lucy spits out.
+<action>Ugh, no time for this now!</action>
+<action>We need to get out of here.</action>
+<action>I start to look around: we are in another hallway.</action>
+<action>There are three doors along the sides and some kind of open room at the end.</action>
-There's an awkward silence. I guess she either doesn't understand, or doesn't want to understand it, from his perspective.
+<character.two.sad.confused>Tiffany</character>
-<%= window.story.customRender("F: Tiff is a child") %>"You don't get her involved enough", I say.
+<speech.tiffany>We need to go back and get her</speech>
-Lucy looks at me in confusion.
+<character.one.pain>Sarah</character>
-"She said she hasn't even killed a walker", I explain.
+<speech.sarah>Huh, what?</speech>
-"How can you expect her to be happy when you don't let her do anything?", I ask.
+<action>I'm caught a little off-guard.</action>
-Lucy takes a breath as if to say something, but stops and looks away instead.
+<speech.tiffany>We need to go get mom!</speech>
-She knows I'm right.
+<action>She's half shouting, half crying.</action>
-<%= window.story.customRender("F: Tiff is a child") %>Lucy moves away towards the window.
+<choices>
+ [[%Tiffany%, she's dead|C1P56V1]]
+ [[Keep your voice down!|C1P56V2]]
+ [[That's not your mom anymore...|C1P56V3]]
+</choices><ui>standard</ui>
+<character.one.happy.eyes>Sarah</character>
+<character.two>Tiffany</character>
-"She's just a child. She didn't even get the chance to go to school...", Lucy trails off.
+<speech.sarah>Oh by the way, I found something for you.</speech>
-"I'm doing the best I can to keep her alive; there's not exactly a handbook on 'How to raise a child in the apocalypse'", she remarks.
+<action>I get the spinning top out of my pocket.</action>
-She looks out the window for a few moments.
+<character.two.happy.eyes>Tiffany</character>
-[[Why did you save me?|C1P48]]"Why did you save me, really", I ask.
+<speech.tiffany>Huh, you did?</speech>
-Lucy is silent for a moment.
+<action>Her eyes light up.</action>
-"I saved you, because one day, maybe soon, that might be my little girl, running around out there, needing help...", she trails off.
+<speech.sarah>Here.</speech>
-She's still facing away from me, but I hear a sniffle.
+<action>I pass %Tiffany% the spinning top.</action>
-"And I can only hope that people are as kind to her, as I have been to you", she finishes.
+<speech.tiffany>What is it?</speech>
-She turns to face me, tears streaking down her eyes.
+<action>She says, taking it in her small hands.</action>
-[[...|C1P48V1]]<br>
-[[They will be|C1P48V2]]<br>
-[[They won't be|C1P48V3]]<% window.story.setChoice("Chapter1", "WillHelp", false) %>
+<speech.sarah>It's called a spinning top.</speech>
+<speech.sarah>It's a toy, kinda.</speech>
-I'm not sure what to say.
+<speech.tiffany>How does it work?</speech>
-<%= window.story.customRender("F: Stay") %><% window.story.setChoice("Chapter1", "WillHelp") %>
+<action>She sounds intrigued.</action>
-"They will be", I say.
+<speech.sarah>Here, I'll show you.</speech>
-<%= window.story.customRender("F: Stay") %><% window.story.setChoice("Chapter1", "WillHelp", false) %>
+<action>I reach out and place my hand on hers, moving the spinning top the correct way up.</action>
+<action>Then I move our hands down to the tabletop.</action>
+<action>I let go.</action>
-"They won't be", I say.
+<speech.sarah>Okay, now you just need to twist your fingers, and let go.</speech>
-<%= window.story.customRender("F: Stay") %><% if (window.passage.name === "C1P48V1") { %>
+<action>She does as I instruct, and the spinning top spins.</action>
+<action>The colors on the spinning top glitter in the poorly lit room.</action>
-Lucy looks at me... she understands there are not many good people left these days. She takes a breath, wiping her tears away.
+<speech.tiffany>Woah...</speech>
-<% } else if (window.passage.name === "C1P48V2") { %>
+<action>We sit and watch it till it spins itself out.</action>
+<action>%Tiffany% picks up the spinning top and examines it more closely.</action>
+<action>Speaking of examining, now isn't a bad time to find out a bit more about %Tiffany%...</action>
-"Do you really think so?", she asks, taking a breath, wiping her tears away.
+<%= window.story.render("F: Tiff Breakfast Talk Options") %><choices>
+ [[Where's dad?|C1P44V1]]
+ [[Where've you been staying?|C1P44V2]]
+ [[How many walkers you killed?|C1P44V3]]
+</choices><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two.confused.sad>Tiffany</character>
-"I do", I say confidently.
+<speech.sarah>Don't worry %Tiffany%, she'll be fine.</speech>
+<speech.sarah>Your mom can handle herself.</speech>
-<% } else if (window.passage.name === "C1P48V3") { %>
+<action>I do my best to sound reassuring.</action>
+<action>She slowly nods her head, but I think she's only doing it for my benefit...</action>
-"Deep down, I think I know that", she says, taking a breath, wiping her tears away.
+<%= window.story.render("F: Clap o' thunder") %><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two.confused.sad>Tiffany</character>
-<% } %>
+<action>I really have no idea what to say to her right now that would make her feel better.</action>
+<action>She looks so frightened.</action>
+<action>Maybe I should have gone outside instead...</action>
-Lucy takes a moment to center herself.
+<%= window.story.render("F: Clap o' thunder") %><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two.confused.sad>Tiffany</character>
-"I'm not sure how to say this, so I'll just say it: I'd like it if you stayed with us", Lucy says.
+<action>Maybe she'll feel better if she holds my hand.</action>
+<action>That use to help Sophia when she was scared...</action>
+<action>I extend my arm out in her direction.</action>
+<action>She looks up at me, keeps still for a moment, then jumps out of her chair.</action>
-My heart skips a beat, I haven't been with other people long term since... Sophia.
+<character.one.happy.eyes>Sarah</character>
-"I know it's a lot to lay on you all at once, but, I've thought about it;<% if (window.story.getChoice("Chapter1", "ItemsCollected") > 0) print(" you're resourceful,") %> you clearly know how to survive out there, you can pull your own weight, and you'll have an influence on Tiffany", she explains.
+<action>She rushes over and wraps both her little arms around my waist.</action>
+<action>Woah, okay, not what I was going for, but sure, that works.</action>
+<action>I lower my arm back down and hold her.</action>
-"Don't know if it will be a good or bad influence, we'll have to find out, together", she says with a slight smile.
+<%= window.story.render("F: Clap o' thunder") %><action>We wait.</action>
-This is a lot to process, I have to think about this for a minute. I've known these people for like, five minutes; they seem nice, but is this even something I want?
+<character.one.angry.eyes>Sarah</character>
-[[[Think about Lucy's offer]|C1P49]]I think about it for a minute, Lucy staring at me all the while.
+<action>Nothing happens for a few moments.</action>
+<action>BANG</action>
+<action>%Tiffany% jumps as the sound of a clap of thunder rings out.</action>
+<action>The weather is really taking a turn for the worst.</action>
+<action>What is Lucy doing out there...</action>
+<action>I haven't heard any shouting in a minute or two.</action>
+<action>SLAM</action>
-<% if (window.story.getChoice("Chapter1", "NewPurpose")) { %>
+<character.two.fighting.ditto>Lucy</character>
-Well, I said I needed a new purpose; this isn't exactly what I had in mind, but...
+<action>This time I jump, as the front door swings open, and Lucy comes crashing through.</action>
-I can't bring Sophia back, but maybe I can honor her through helping %Tiffany%.
+<speech.lucy.fighting>Come on!</speech>
-<% } else { %>
+<action>She's shouting at someone outside.</action>
+<action>She moves to the door, looking ready to close it.</action>
-I don't know... I don't want, no, I *can't* have another little girl's blood on my hands. %Tiffany% might be better off without me.
+<character.one.fighting.ditto>Lucy</character>
+<character.two.fighting.ditto>Charles</character>
+<characteroverride.two>???</characteroverride>
-<% } %>
+<action>Suddenly, a man comes bolting through and crashes into the stairs.</action>
+<action>Lucy kicks the door closed behind him.</action>
-[[I'll stay|C1P50]] [[I'm not staying|C1P50]]"I-", I start to say.
+<choices>[[[Look at the stranger]|C1P54V11]]</choices><% window.story.setChoice("Chapter1", "CharlesName"); %>
+<ui>standard</ui>
+<character.one.happy.eyes>Sarah</character>
+<character.two.fighting.ditto>Charles</character>
+<characteroverride.two>???</characteroverride>
-<i>"AAARGH!"</i>, someone, or something, screams from outside.
+<action>I look at the stranger slumped on the stairs, panting.</action>
+<action>He looks pretty tall, but kinda skinny.</action>
+<action>He's wearing a trench coat or something, has light green eyes, and long black hair in a ponytail.</action>
+<action>I also notice an axe lying next to him, it's covered in walker bits.</action>
-Lucy and I both look towards the direction of the source. It sounded like it came from somewhere outside the front of the house.
+<character.two>Charles</character>
+<characteroverride.two>???</characteroverride>
-[[I got %Tiffany%, go!|C1P51V1]]
-[[Watch %Tiffany%, I'll go!|C1P51V2]]<% window.story.setChoice("Chapter1", "Protect") %>
+<speech.charles>Thanks...</speech>
-"I'll protect %Tiffany%, go find out what *the fuck* that was!", I exclaim.
+<action>He manages to say between breaths.</action>
-Lucy looks at me and nods, then runs out the door, I go right behind her.
+<character.one.concern>Lucy</character>
-[[[Go to %Tiffany%]|C1P52V1]]<% window.story.setChoice("Chapter1", "Protect", false) %>
+<speech.lucy>Don't mention it.</speech>
-"You protect <% print(window.story.tiffany()) %>, I'll go find out what *the fuck* that was!", I exclaim as I head for the door.
+<character.two>Charles</character>
-"Right!", I hear Lucy say behind me.
+<speech.charles>Name's Charles.</speech>
-[[[Go through the door]|C1P52V2]]I go through the doorway back into the Kitchen, Lucy is already at the door to the hallway.
+<speech.lucy>Lucy, and that's Sarah and Tiffany.</speech>
-"Mom?!", %Tiffany% says, sounding distressed.
+<action>She vaguely gestures back down the hallway towards us.</action>
+<action>Charles jumps a little, he must not have seen us.</action>
+<action>He quickly recovers and gives me a nod.</action>
-<i>"Oh fuck, help!"</i>, the voice screams from outside. It sounds like a guy.
+<choices>
+ [[We need to hide|C1P54V111]]
+ [[We need to get out of here|C1P54V112]]
+ [[We need to fortify this place|C1P54V113]]
+</choices><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two>Charles</character>
-"Don't worry, she's handling it", I say as I approach %Tiffany%.
+<speech.sarah>We should hide.</speech>
+<speech.sarah>Those walkers will be on us any minute.</speech>
-"Handling what?", she asks looking at me, fear in her eyes.
+<%= window.story.render("F: Smash") %><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two.confused.sad>Tiffany</character>
-"Nothing good...", I reply.
+<action>I don't know how to explain to her Lucy isn't helping whoever's outside...</action>
-I walk to the corner of the room so I can see down the hallway.
+<%= window.story.render("F: Let me in!") %><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two.confused.sad>Tiffany</character>
-[[[Look at Lucy]|C1P53V1]]I walk through the doorway back into the Kitchen and head straight for the door to the hallway.
+<speech.sarah>She's making sure we stay safe.</speech>
-"Sarah?!", %Tiffany% says, clearly distressed.
+<action>I try to sound reassuring.</action>
+<action>She slowly nods her head, but I think she's unconvinced.</action>
-<i>"Oh fuck, help!"</i>, the voice screams from outside. It sounds like a guy.
+<%= window.story.render("F: Let me in!") %><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two.confused.sad>Tiffany</character>
-"Stay with your mom, I'm handling it", I say as I walk past her and out into the hallway.
+<speech.sarah>She's just, um, helping someone outside, okay?</speech>
-"Handling what?", I hear her ask behind me.
+<action>I look back down the hallway.</action>
-I'm at the front door now, I can hear a commotion outside.
+<character.two.sad.concern>Lucy</character>
-[[[Look through the peephole]|C1P53V2]]I look down the hallway, I can see Lucy standing at the front door. She's looking through the peephole.
+<action>Lucy's looking at me, an uneasy expression on her face, but she quickly gets back to the door.</action>
-<i>"Someone, please!"</i>, the voice screams again.
+<%= window.story.render("F: Let me in!") %><action>BANG BANG BANG</action>
+<action>That sounded like the front door.</action>
-Lucy steps back from the door and looks at me. Our eyes lock: what is she going to do?
+<character.two>Unknown</character>
-<div#lucyAction></div>
+<speech.unknown>Hey! Anyone in here?</speech>
-<script>
-// Using script tags here instead of Underscore templates because you can't use if statements and a render in Interpolation tags
-if (!window.story.getChoice("Chapter1", "WillHelp") && window.story.getChoice("Chapter1", "Lied")) {
- $("#lucyAction").replaceWith(window.story.customRender("F: Lucy stays inside"));
-} else {
- $("#lucyAction").replaceWith(window.story.customRender("F: Lucy goes outside"));
-}
-</script><% window.story.setChoice("Chapter1", "LucySavesStranger", false) %>
+<action>Sounds like a man's voice from the other side of the door.</action>
+<action>They might be trying to get in here!</action>
-She holds eye contact for a moment, then looks back at the door, and looks around it. Is she looking for a way to lock it? I guess she's not going out there. Probably for the best.
+<character.one.fighting.ditto>Lucy</character>
-"Sarah, what's mom doing", %Tiffany% says from the table. I look back at her, she looks terrified.
+<action>Lucy takes a step back from the door and pulls her knife out.</action>
+<action>Shit, what is she going to do?</action>
-[[...|C1P53V122]]<br>
-[[She's keeping us safe|C1P53V121]]<br>
-[[She's helping someone outside [Lie]|C1P53V123]]<% window.story.setChoice("Chapter1", "LucySavesStranger") %>
+<choices>
+ [[%Tiffany%, run!|C1P54V12]]
+ [[Lucy, be careful!|C1P54V12]]
+ [[Lucy, don't do it!|C1P54V12]]
+</choices><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
-Lucy pulls out her knife, opens the door, and disappears through it.
+<action>I take a breath to speak-</action>
+<action>CRASH</action>
-What the hell is she doing?! I turn to the boarded-up window on my left, I try to find a gap to look through, but between the boards and the rain outside, I can't see jack shit... just, walkers.
+<character.two.fighting.ditto>Charles</character>
+<characteroverride.two>???</characteroverride>
-I look back at %Tiffany%, she's still sitting at the table, looking terrified.
+<action>Suddenly, the door swings open, and a man comes crashing through.</action>
-[[...|C1P53V112]]<br>
-[[She'll be fine %Tiffany%|C1P53V111]]<br>
-[[[Extend hand out to %Tiffany%]|C1P53V113]]<% window.story.networkCheck("Alpha") %>
+<character.one.fighting.ditto>Lucy</character>
-Loading, please wait...This game is in an alpha state (v<% print(window.story.version) %>), all content is subject to change.
+<action>Lucy gets knocked out of the way and nearly falls to the ground.</action>
+<action>The man lands on the stairs.</action>
+<action>He's pretty tall, but skinny, wearing a trench coat or something, has light green eyes, long black hair in a ponytail and is soaking wet.</action>
+<action>He is also holding an axe in one hand.</action>
-[[Understood|Title Screen]]I look through the peephole, <% if (window.story.getChoice("Chapter1", "LivingWindow")) { print("the weather has gotten a lot worse too") } else { print("the weather is terrible outside") } %>, the rain is coming down heavy. There's a lot of walkers outside<% if (window.story.getChoice("Chapter1", "LivingWindow")) print(", even more than when I looked before") %>, they're all focused on something in the middle of the street, it's difficult to see... There! A guy outside!
+<character.two>Charles</character>
+<characteroverride.two>???</characteroverride>
-<i>"Get away from me!"</i>, he screams.
+<action>He props himself up on the stars he fell on.</action>
+<action>There's a moment of silence.</action>
-He's pretty tall, but skinny, wearing a trench coat or something, wildly swinging a bat around: he's going to get himself killed.
+<character.two.angry>Charles</character>
+<characteroverride.two>???</characteroverride>
-I step back from the peephole and look towards the end of the hallway. Lucy is standing in the corner of the Kitchen, looking at me. Our eyes lock for a moment.
+<action>Then his expression turns to one of anger.</action>
-<i>"Anyone, please, help!"</i>, the guy screams from outside.
+<speech.charles>Oi, why didn't you-</speech>
-I look back towards the door.<% if (window.story.getChoice("Chapter1", "WillHelp")) print (" I told Lucy people still help each other out, might be time to put my money where my mouth is.") %> I could go out and help him... or, I can make sure nothing gets through this door.
+<action>Before he even has time to finish, Lucy is back on her feet.</action>
+<action>She's lunging towards him with her knife!</action>
-[[[Help the stranger]|C1P53V21]]
-[[[Do not help the stranger]|C1P53V22]]<% window.story.setChoice("Chapter1", "SaveStranger") %>
+<choices>
+ [[...|C1P54V1212]]
+ [[Lucy stop!|C1P54V1211]]
+ [[Watch out for the axe!|C1P54V1213]]
+</choices><ui>standard</ui>
+<character.one.angry>Sarah</character>
+<character.two.fighting.ditto>Lucy</character>
-Shit. This is a bad idea. I look back at Lucy for a moment, <% if (window.story.getChoice("Chapter1", "WillHelp")) { print ("she nods") } else { print("she slowly shakes her head at me") } %>, she understands what I'm about to do. I unlock the door, open it, and step outside.
+<speech.sarah>Lucy, stop!</speech>
-I close the door behind me and immediately get slapped by the rain. It's pouring out here. I reach down for my knife- fuck, I forgot I don't have it!
+<action>What the hell is she doing?!</action>
-<% if (window.story.getChoice("Chapter1", "Haircut")) { %>
+<%= window.story.render("F: wtf") %><ui>standard</ui>
+<character.one.angry>Sarah</character>
+<character.two.fighting.ditto>Lucy</character>
-I feel around in my pockets, ah! The scissors! Seems like a waste, they'll be ruined, but better than going out here with my bare hands...
+<action>I don't know what the hell she's doing, but now isn't the time to interrupt.</action>
-<% } else { %>
+<%= window.story.render("F: wtf") %><ui>standard</ui>
+<character.one.angry>Sarah</character>
+<character.two.fighting.ditto>Lucy</character>
-I feel around in my pockets... nothing I can use as a weapon. Guess I'm going to have to be smart about how I move around these walkers.
+<speech.sarah>Watch out for the axe!</speech>
-<% } %>
+<%= window.story.render("F: wtf") %><character.one.fighting.ditto>Lucy</character>
+<character.two.angry>Charles</character>
+<characteroverride.two>???</characteroverride>
-I look for the guy, he's in the middle of the street a couple of meters away, he hasn't noticed me, and neither have any of the walkers. Between all the noise he's making and the rain, they're totally focused on him.
+<speech.charles>What the- argh, FUCK, are you doing?!</speech>
-They must be at least 20 or 30 walkers, no way we can take them all out, not without proper weapons. My options are limited here: maybe I can get his attention from here and have him come over here to the house, save having to fight my way to him; or, I can try and clear a path to him, and get his attention when I'm closer to him.
+<action>They're both tumbling around on the ground now.</action>
+<action>Lucy has the knife right near his throat, but he has his arms up in front of him.</action>
+<action>She can't push it close enough to get him-</action>
-[[[Yell at him]|C1P53V211]]
-[[[Go over to him]|C1P53V212]]<% window.story.setChoice("Chapter1", "SaveStranger", false) %>
+<speech.charles>ARGH!</speech>
-No way in hell am I stepping out there. I look back at Lucy for a moment, <% if (window.story.getChoice("Chapter1", "WillHelp")) { print ("she looks at me, disapointed, but doesn't say anthing") } else { print("she slowly nods her head at me") } %>.
+<action>Lucy dropped the knife from one hand, caught it with the other, and took a swipe the guy's arm.</action>
+<action>Where did she learn to do that...</action>
-I look at the door, there's not much in the way of locking, in fact, the lock looks busted. I guess that's how Lucy got in. If I could move a chair or a table in front of the door, that might be enough to-
+<character.two.scared>Charles</character>
+<characteroverride.two>???</characteroverride>
-\*Bang\*
+<action>Lucy backs off, the stranger, still on the floor, has started crawling back down the hallway towards the living room.</action>
+<action>Holding the now bleeding arm across his chest.</action>
-What the hell, that was on the other side of the door, how'd a walker get up here so quickly-
+<speech.charles>What the hell is wrong with you people?!</speech>
-"Hey! Anyone in here?", a man's voice shouts from the other side of the door.
+<action>The pain evident in his voice.</action>
+<action>Lucy takes a defensive stance, staying between us and the man.</action>
-Shit! Now what?! It won't take him long to figure out it's not fucking locked!
+<choices>[[[Look at %Tiffany%]|C1P54V12111]]</choices><% window.story.setChoice("Chapter1", "StrangerDied"); %>
-[[Go away!|C1P53V221]]<br>
-[[<% print (window.story.tiffany()) %> run!|C1P53V222]]<br>
-[[[Hold the door closed]|C1P53V223]]<% window.story.achievement("Chapter1", "Scorpion", "Scorpion", "*Get over here*") %>
+<%= window.story.render("F: Feet on seat") %>
-I don't want to have to go over to him, too dangerous.
+<action>I take a step towards her-</action>
+<action>CRASH</action>
-"Hey! You!", I yell at the man.
+<character.one.happy.eyes>Sarah</character>
-He stops swinging his bat for a moment and looks at me, with the expression on his face you'd have thought he just laid eyes on a pot of gold.
+<action>Shit, is Lucy alright?</action>
-"Get over here!", I yell at him.
+<resetcharacter.two/>
-He nods, and gets back to swinging, slowly moving towards me.
+<action>I quickly look back down the hallway.</action>
+<action>A hand has appeared through one of the boarded-up windows in the hallway.</action>
-Uh-oh, that drew some unwanted attention as well. A few walkers have started heading my direction now, shit!
+<character.two.scared>Charles</character>
+<characteroverride.two>???</characteroverride>
-<% if (window.story.getChoice("Chapter1", "Haircut")) { %>
-[[[Use Scissors]|C1P53V2111]]
-<% } else { %>
-[[[Look around for a weapon]|C1P53V2112]]
-<% } %>I had better go over to him, no point yelling and drawing more walkers.
+<action>It's grabbed the stranger by his injured arm.</action>
-The path between him and I is actually pretty clear, most of the walkers are on the street, there's only one walker directly in my way. I start towards it, the rain is covering up the sound of my walking, so I've got that going for me at least.
+<speech.charles>Oh god, no!</speech>
-<% if (window.story.getChoice("Chapter1", "Haircut")) { %>
+<action>He getting pulled towards the window.</action>
+<action>A walker forces its head through the glass.</action>
-I get up right behind it, then <%= window.story.customRender("F: Scissor takedown") %>
+<character.one.fighting.ditto>Lucy</character>
-<% } else { %>
+<speech.lucy.fighting>Walkers!</speech>
-I get up right behind it, then I quickly kick out its left knee, it makes a pronounced snapping noise and bends abnormally. The walker tumbles to its knees. I push it to the ground, then stomp its head in.
+<action>Lucy shouts, as the sound of glass and wood breaking erupts.</action>
-I take a breath, been a while since I've had to do that. Its head has turned to mush... and I have said mush all over my shoes; a problem for later.
+<speech.charles>AAARRHHH!</speech>
-<% } %>
+<action>The man screams, as the walker head takes a bite out of his arm.</action>
+<action>Lucy starts running down the hallway towards us.</action>
-[[[Keep heading towards the stranger]|C1P53V2121]]I take a few steps forward towards the closest walker, then wait for him to get within arm's length. <%= window.story.customRender("F: Scissor takedown") %>
+<%= window.story.render("F: You're heavy") %><character.one.angry.eyes>Sarah</character>
+<character.two.scared.ditto>Tiffany</character>
-<%= window.story.customRender("F: Ow my leg") %>I look around for a weapon. There's nothing out here! Just a doormat and a potted plant.
+<action>I turn towards %Tiffany%.</action>
-Wait, the plant, that could do. I walk over to it and start to pick it up. It's got a fair bit of weight to it. I look back towards the walkers, the closest one is just a few meters from me. I brace myself, and then throw the potted plant right at it.
+<speech.sarah>Come on %Tiffany%, we need to move.</speech>
-The pot connects with the walker's head and shatters. The walker goes down like a sack of potatoes.
+<action>She looks up at me, but doesn't move.</action>
-<%= window.story.customRender("Ow my leg") %>Fuck, I forgot about my leg, argh! That really hurt. I look up, there are still two walkers headed for me, shit. I take a step back- ARGH, shit, I've properly buggered my leg: this isn't good.
+<speech.sarah>Come on!</speech>
-I start to hobble back towards the door, pain shooting up my leg; I look back over at the stranger. We make eye contact for a moment, he sees I'm hurt and I'm being followed. There's a moment of panic in his eyes, then he must have had an idea, because he smiles.
+<action>She still just stares back at me.</action>
-"Hey! Hey, dummies; over here!", he shouts over the top of the rain.
+<character.one>Sarah</character>
-The walkers following me stop and slowly swing back towards him.
+<action>This isn't working, I need to change tactics.</action>
+<action>I stretch my arms out toward her and beckon.</action>
+<action>She looks at me for a moment, then turns and puts her hands up towards me.</action>
+<action>I grab her and pick her up.</action>
+<action>God she's heavier than she looks.</action>
+<action>I balance her properly so she's sitting on my hips, as she wraps her hands around my neck to hold herself.</action>
+<action>I take a step towards the door-</action>
-"Yeah that's right idiots, over here!", he shouts again.
+<character.one.happy.eyes>Sarah</character>
-He must be crazy, but it's working.
+<action>Oof, I forgot about my leg.</action>
+<action>This could be interesting...</action>
-[[[Open the door to the house]|C1P53V21111]]I shuffle back to the front door and open it, I look back towards the stranger. He's made it most of the way over to me now.
+<choices>[[[Head down the hallway]|C1P54V11111]]</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two.confused.sad>Tiffany</character>
-"Come on!", I shout at him.
+<action>I get to the doorway and start down the hallway, %Tiffany% in tow.</action>
-He takes one final swing, then bolts towards the door. I step inside and out of the way, right as he comes crashing in. I slam the door behind him.
+<character.two.concern>Lucy</character>
-We both stand there for a moment, soaking wet, and panting. I notice he's got light green eyes, and long black hair in a ponytail.
+<action>Lucy and I bump into each other.</action>
-"Thanks...", he manages to say, between breaths.
+<character.two.happy.eyes>Lucy</character>
-"Don't mention it", I reply.
+<action>We exchange brief glances, she looks grateful.</action>
-"My name's Charles", he says between puffs.
+<character.two.concern>Lucy</character>
-"Sarah, and that's Lucy", I say as I gesture over my shoulder back towards the kitchen.
+<action>We're halfway down the hallway now, Lucy right behind me-</action>
-Charles jumps a little, he must not have seen her; but he quickly recovers and gives a little slow-wave.
+<character.two.confused.sad>Tiffany</character>
-[[[Turn towards Lucy]|C1P53V211111]]I quickly kick out its left knee, it makes a pronounced snapping noise and bends abnormally. The walker tumbles to its knees, its head bent over, perfectly within reach. I take the scissors and drive them deep into the back of its head, it makes a horrid gurgling sound, then flops to the ground. I go to pull the scissors out of its head, but they snap at the handle, leaving the sharp end in the walker's head. Figures.I take a step towards the stranger- ARGH, shit! I forgot about my leg; I've properly buggered it taking down that walker.
+<speech.tiffany>Eeek!</speech>
-I'm not as close to him as I would have liked, but this will have to do.
+<action>%Tiffany% says right into my ear.</action>
+<action>Before I have a chance to process the sound, her arms around my neck pull back, tight.</action>
-"Hey!", I shout over the rain, as I wave my hands in the air.
+<character.one.pain>Sarah</character>
+<resetcharacter.two/>
-He stops swinging his bat for a moment and looks at me, with the expression on his face you'd have thought he just laid eyes on a pot of gold.
+<action>I choke and fall backward.</action>
+<action>SMACK</action>
+<action>I hit the ground.</action>
+<action>Argh, my leg, again! Can't catch a break...</action>
+<action>I quickly refocus my vision, and look around for %Tiffany%.</action>
-"Hey! Someone actually heard me!", he exclaims happily.
+<character.two.scared.ditto>Tiffany</character>
-"Come on, let's get inside", I say back to him.
+<action>A hand has come through one of the windows and grabbed her leg!</action>
+<action>I gotta get up and-</action>
-He nods and starts heading towards me, swinging as he goes.
+<character.one.fighting.ditto>Lucy</character>
-[[[Head back to the house]|C1P53V21111]]"Go aw-", I start to say.
+<action>Lucy appears out of nowhere with her knife, takes one swipe at the hand, and detaches it from the arm it was connected to.</action>
+<action>Impressive.</action>
-<%= window.story.customRender("F: Door swings open") %>"<% print(window.story.tiffany()) %> ru-", I start to say.
+<character.one.concern>Lucy</character>
-<%= window.story.customRender("F: Door swings open") %>I lean on the door-
+<speech.lucy>Are you alright Tiffany?</speech>
-<%= window.story.customRender("F: Door swings open") %>\*Crash\*
+<speech.tiffany>Yes.</speech>
-Suddenly, the door swings open, and a man comes crashing through. I get knocked to the ground by the door and land awkwardly on my bad leg. Argh, fuck's sake. The man lands on the stairs, soaked.
+<action>%Tiffany% replies as a small squeak.</action>
-I get onto my knees and look at the man, he props himself up as well and our eyes meet, a look of shock on his face. He's got light green eyes, and long black hair in a ponytail... and he has a bat.
+<speech.lucy>Rest when you're dead Sarah, move!</speech>
-There's a moment of silence. His expression turns to one of anger.
+<action>Lucy says as she helps %Tiffany% up.</action>
+<action>She's right, this is not a good spot to be in.</action>
+<action>I manage to get on my knees, pain shooting up my bad leg.</action>
+<action>I push through it and get back on my feet.</action>
-"Oi, why didn't you help me out there! There's no way you didn't hear me!", the stranger says angrily.
+<choices>[[[Head for the stairs]|C1P55]]</choices><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two>Charles</character>
-[[I don't know you!|C1P53V2211]]<br>
-[[You were going to get yourself killed!|C1P53V2212]]<br>
-[[I was going to! [Lie]|C1P53V2213]]Who the hell does this guy think he is?
+<speech.sarah>We should get moving.</speech>
+<speech.sarah>Those walkers won't take long to get in here.</speech>
-"I don't know you, and I don't owe you shit!", I snap back.
+<%= window.story.render("F: Smash") %><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two>Charles</character>
-<%= window.story.customRender("F: Not now") %>Is this guy for real?
+<speech.sarah>We need to fortify this place, ASAP.</speech>
+<speech.sarah>Those walkers will make quick work of those shitty windows.</speech>
-"You were carrying on like a headless chicken! You've pulled every walker within a half-mile, and it looked like you were trying to get yourself killed!", I snap back at him.
+<%= window.story.render("F: Smash") %><%= window.story.render("F: Feet on seat") %>
-<%= window.story.customRender("F: Not now") %>"I was about to, OK?", I say; the look on his face says he's not convinced.
+<character.two>Unknown</character>
+<characteroverride.two>Lucy</characteroverride>
+
+<speech.unknown>I'm coming!</speech>
-<%= window.story.customRender("F: Not now") %>"Hey! Now's not the time, we've got bigger problems", Lucy says from somewhere behind me.
+<action>Lucy shouts from the hallway.</action>
-The stranger looks startled, he must not have seen her. He takes a breath as if to say something, but doesn't. He shoots me a dirty look, then begins to stand up.
+<%= window.story.render("F: You're heavy") %><action>Charles stands up.</action>
-What an asshole.
+<speech.charles>She's right.</speech>
-[[[Stand up]|C1P53V22111]]I get up off the floor awkwardly, getting knocked down really did a number on my leg.
+<character.one.happy.eyes>Sarah</character>
+<character.two.scared.eyes>Charles</character>
-<%= window.story.customRender("F: What we need to do now") %>I awkwardly spin towards Lucy, I really did a number on my leg.
+<action>SMASH</action>
+<action>A hand suddenly appears through one of the boarded-up windows in the hallway, near Charles.</action>
-<%= window.story.customRender("F: What we need to do now") %>"Alright, what we need to do now is-", I begin to say.
+<character.one.happy.sad>Lucy</character>
-\*Crash\*
+<speech.lucy>Walkers!</speech>
-A hand appears through one of the boarded-up windows in the hallway, between the front door and the kitchen.
+<action>Lucy shouts, as the sound of glass and wood breaking erupts.</action>
-"Walkers!", Lucy shouts, as the sound of glass and wood breaking around the house starts to be heard.
+<speech.charles>Shit!</speech>
-[[<% if (window.story.getChoice("Chapter1", "SaveStranger")) { print("Charles,") } else { print("The") } %> Bat!|C1P54V21]]<br>
-[[Upstairs, quickly!|C1P54V22]]<br>
-[[[Run to the kitchen]|C1P54V23]]<% if (window.story.getChoice("Chapter1", "SaveStranger")) { %>
-"Charles, the bat!", I turn and shout.
-<% } else { %>
-"The bat!", I turn and shout.
-<% } %>
+<character.one.fighting.ditto>Lucy</character>
-He grabs it and throws it in my direction, I catch it, and head towards the window, pushing through the pain in my leg. As I approach, I raise the bat well above my head and bring it down on the arm with all my strength.
+<action>Lucy moves towards him to help.</action>
-The bat hits the arm and keeps going; the arm makes a horrible snapping noise, as whatever bones were left in the walker's arm turned to dust. The bat hits the ground and splits in two. The arm, pointing 90 degrees downward now, continues to twitch and wriggle.
+<speech.lucy.fighting>Head upstairs!</speech>
-I drop the bat and look up towards the kitchen to meet Lucy's gaze.
+<action>Lucy shouts over her shoulder at %Tiffany% and I.</action>
+<action>We need to get going, now.</action>
-"Let's, go!", I shout.
+<choices>[[[Get %Tiffany%]|C1P54V1111]]</choices><img.title-image>
-Lucy grabs <% print(window.story.tiffany()) %> from somewhere beside her and starts booking it down the hallway towards me.
+<%= window.story.render("Settings") %>
-[[[Head for the stairs]|C1P55]]"Upstairs, quickly!", I shout.
+[[Back|Title Screen]]<img.title-image>
-<% if (window.story.getChoice("Chapter1", "SaveStranger")) { print("Charles") } else { print("The stranger") } %> doesn't need to be told twice, he scrambles to the stairs and starts going up.
+<div#title-button>
+[[Artwork|Artwork]]
+<a href="https://purpose-game.com" target="_blank">Website</a>
+<a href="https://discord.gg/jNgAEjW7gd" target="_blank">Discord</a>
+<a href="https://github.com/cm8263/Purpose" target="_blank">GitHub</a>
+</div>
-I look back at Lucy, she's got <% print(window.story.tiffany()) %> and is headed down the hallway towards me. As she passes the window, the hand suddenly reaches out and grabs Lucy's pants. <% print(window.story.tiffany()) %> screams.
+[[Back|Title Screen]]<div#title-button>
+[[Sarah]]
+[[Tiffany]]
+[[Lucy]]
+[[Charles]]
+[[Sophia]]
+</div>
-"Come to me!", I shout at <% print(window.story.tiffany()) %>.
+[[Back|Extras]]<%= window.story.render("F: Artwork") %>
-<% print(window.story.tiffany()) %> doesn't move, but Lucy lets go of her and shoves her in my direction. <% print(window.story.tiffany()) %> stumbles towards me, and I catch her in a hug.
+<% window.story.createGalleryItem(1, "Sarah", "neutral"); %>
+<% window.story.createGalleryItem(2, "Sarah", "limping"); %>
+<% window.story.createGalleryItem(3, "Sarah", "fighting"); %>
+<% window.story.createGalleryItem(4, "Sarah", "pain", "pain", "neutral"); %>
+<% window.story.createGalleryItem(5, "Sarah", "happy", "happy", "neutral"); %>
+<% window.story.createGalleryItem(6, "Sarah", "sad", "sad", "neutral"); %>
+<% window.story.createGalleryItem(7, "Sarah", "angry", "sad", "neutral"); %><%= window.story.render("F: Artwork") %>
-I look back at Lucy again, she has her knife out now. She quickly stabs the arm several times, then takes a swipe at it. The arm comes clean off.
+<% window.story.createGalleryItem(1, "Tiffany", "neutral"); %>
+<% window.story.createGalleryItem(2, "Tiffany", "scared"); %>
+<% window.story.createGalleryItem(3, "Tiffany", "confused", "confused", "neutral"); %>
+<% window.story.createGalleryItem(4, "Tiffany", "happy", "happy", "neutral"); %>
+<% window.story.createGalleryItem(5, "Tiffany", "sad", "sad", "neutral"); %><ui>standard</ui>
+<character.one.pain>Sarah</character>
+<character.two.sad.confused>Tiffany</character>
-[[[Head for the stairs]|C1P55]]Without thinking I bolt for the kitchen, pushing through the pain in my leg.
+<speech.sarah>%Tiffany%, listen to me.</speech>
+<speech.sarah>I know you don't want to accept this right now, but Sarah is gone.</speech>
+<speech.sarah>And unless you want...</speech>
-"No!", Lucy shouts. I stop running.
+<action>I was going to say unless you want to join her, but I don't want to give her any ideas.</action>
-"We'll come to you", she says. I nod, and turn back to <% if (window.story.getChoice("Chapter1", "SaveStranger")) { print("Charles") } else { print("the stranger") } %>.
+<speech.sarah>...unless you want to waste the sacrifice she made, for you, we need to go, now.</speech>
-"Get upstairs", I shout. He doesn't need to be told twice, he starts scrambling up the stairs.
+<%= window.story.render("F: Softening the blow") %><ui>standard</ui>
+<character.one.pain>Sarah</character>
+<character.two.sad.confused>Tiffany</character>
-I look back at Lucy, she's got <% print(window.story.tiffany()) %> in one hand, her knife in the other, and is head down the hallway towards me. As she passes the window, she makes one clean swipe at the hand and it comes clean off. Impressive.
+<speech.sarah>Keep your voice down %Tiffany%!</speech>
+<speech.sarah>Those walkers are going to find their way up here soon enough, no need to speed them along.</speech>
-[[[Head for the stairs]|C1P55]]<% window.story.delayedText(20 * 1000) %>
+<%= window.story.render("F: Softening the blow") %><ui>standard</ui>
+<character.one.pain>Sarah</character>
+<character.two.sad.confused>Tiffany</character>
-I head for the stairs, %Tiffany% and Lucy right behind me. <% if (window.story.getChoice("Chapter1", "SaveStranger") || window.story.getChoice("Chapter1", "LucySavesStranger")) { print("No sign of Charles, he must be upstairs already.") } else if (window.story.getChoice("Chapter1", "StrangerDied")) { "I glance over at the stranger, he has two walkers on him now; his face is contorted, but totally silent... poor guy." } %>
+<speech.sarah>%Tiffany%, that's...</speech>
+<speech.sarah>That's not your mom anymore.</speech>
-I get to the first step and stop, I look behind me to make sure the other two are still following me. %Tiffany% hot on my heels, Lucy just behind her.
+<%= window.story.render("F: Softening the blow") %><action>Tears run down her small face, she doesn't reply.</action>
-\*Bang, bang bang, bang\*
+<speech.sarah>We will mourn your mum later, I promise</speech>
-The door! Lucy hears it too.
+<action>I add, trying to soften the blow.</action>
+<action>CREAK, CREAK, CREAK</action>
-"Don't stop, keep going!", she exclaims, practically pushing %Tiffany% to the stairs, then turning around and throwing herself against the door. I start heading up-
+<character.one.angry.eyes>Sarah</character>
-<div-#delayed>
+<action>I look behind me to the stairs, I can hear walkers making their way up.</action>
+<action>Time to move.</action>
-\*Crash, bang\*
+<choices>[[[Look around the hallway]|C1P57]]</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two.sad.confused>Tiffany</character>
-"Argh!", Lucy shouts behind me.
+<action>Pulling %Tiffany% along behind me, I start down the hallway.</action>
+<action>I stick my head through the first doorway.</action>
+<action>It looks like an office, it has a desk, a computer, some books, and nothing else; nothing useful.</action>
+<action>I hobble down to the next door, this one is a bedroom.</action>
+<action>It has a bed frame but no mattress, a wardrobe, and a cupboard.</action>
+<action>The cupboard door is open, I can see a few clothes hanging, but no weapons or tools to help get us out of here.</action>
+<action>I head for the final door, it's closed.</action>
+<action>I open it: another bedroom.</action>
+<action>Two mattresses on the floor, backpacks in the corner of the room, and a pair of clothes sitting on top of a dresser...</action>
+<action>This must be where %Tiffany% and Sarah were sleeping.</action>
-I look behind me; the front door has come clean off its hinges, landed on Lucy, and there are four or five walkers piled on top of the fallen door!
+<character.two.sad.eyes>Tiffany</character>
-"Shit, no!", I exclaim, as I head back down the stairs. Lucy must have dropped her knife because it's laying on the stairs in front of her. I pick it up and start towards the walkers.
+<action>I look down at %Tiffany%, she still has tears running down her face, but she looks otherwise emotionless.</action>
+<action>I don't know if that's good or bad considering the circumstances.</action>
-"No!", Lucy wails.
+<choices>[[[Look at the backpacks]|C1P58]]</choices><ui>standard</ui>
+<character.one>Sarah</character>
+<character.two.sad.eyes>Tiffany</character>
-"Get Tiffany and go, please!", she cries out.
+<action>I step into the room and go over to the backpacks.</action>
+<action>One is a black sling backpack, with a single strap that connects with a clip in the middle.</action>
+<action>This one must be... was, Sarah's.</action>
+<action>I look at the other one, it's a smaller white backpack with polka dots...</action>
+<action>%Tiffany%'s.</action>
-The walkers are starting to get up. I look down at %Tiffany%, she's frozen in place, hands to her face, looking down at her mom.
+<character.one.neutral.neutral.neutral-backpack>Sarah</character>
-[[[Try to help Lucy]|C1P55V1]]
-[[[Grab %Tiffany% and go]|C1P55V2]]
+<action>I pick up the sling backpack and strap it on.</action>
+<action>Then pick up the white one.</action>
-</div><% window.story.setChoice("Chapter1", "TriedToSaveLucy") %>
+<speech.sarah>Put this on %Tiffany%.</speech>
-Fuck that, I can't just leave her!
+<action>She just stares back at me blankly.</action>
-I step past %Tiffany% back towards Lucy. I get to the last step right as one of the fallen walkers leans over and takes a massive chunk out of Lucy's neck.
+<character.one.pain.neutral.neutral-backpack>Sarah</character>
-"Argh! Ugh...", Lucy gurgles.
+<action>We don't have time for this.</action>
-"No!", I exclaim. Not again, not again!
+<character.two.sad.neutral.neutral-backpack>Tiffany</character>
-"Just... go...", Lucy manages to gargle.
+<action>I spin her around, as gently as I can, and put the backpack on her.</action>
+<action>%Tiffany% acting limp as I put her arms through the small straps.</action>
+<action>I pick up the clothes from the dresser and shove them into %Tiffany%'s bag.</action>
+<action>I quickly look around for anything else useful: there's nothing.</action>
-More walkers are coming through the open doorway now. I take one last look at Lucy, then spin around to %Tiffany%.
+<choices>[[[Leave the room]|C1P58A1]]</choices>Hello!
-The look on her face will be burned into my brain for as long as I live. Her blue eyes staring, unblinking, tears budding in the corners of her eyes, her face slowly going pale. She won't forget this.
+Thanks for poking around the source code. For starters, if you're looking at this in your browser, or you've downloaded the HTML file from itch.io, the source code is freely available on GitHub, so go get it from there instead: https://github.com/cm8263/Purpose
-[[[Grab %Tiffany%]|C1P55V11]]<% window.story.setChoice("Chapter1", "TriedToSaveLucy", false) %>
+It goes without saying that there may be spoilers in here, either in passages you might not have seen or in the developer reference passages. Also, taking a look under the hood can ruin the magic, so, fair warning.
-I go down the stairs towards %Tiffany% and grab her by the hand.
+All that out of the way, have fun, and feel free to leave PRs on GitHub with improvements!
-"Come on %Tiffany%, we need to go, now!", I say, pulling her up the stairs.
+- Christopher<ui>standard</ui>
+<character.one.neutral.neutral.neutral-backpack>Sarah</character>
-"No! Mom!", she screams, the pitch of her voice is piercing.
+<action>That stupid soap bar, perfect!</action>
+<action>I take it out of my pocket, it's still hard as a rock.</action>
+<action>Just what I need.</action>
-"Argh! Ugh...", Lucy gurgles somewhere behind me. I don't look back.
+<%= window.story.render("F: The window shatters") %><ui>standard</ui>
+<character.one.neutral.neutral.neutral-backpack>Sarah</character>
+<character.two.sad.neutral.neutral-backpack>Tiffany</character>
-"%Tiffany%, move!", I shout, continuing to pull her up the stairs.
+<action>I step out onto the patio roof behind %Tiffany%, it's bucketing rain out here.</action>
+<action>I can barely see, and it's soo windy out here too.</action>
-[[[Go up the stairs]|C1P56]]I go up the stairs towards %Tiffany% and grab her by the hand.
+<character.one.pain.neutral.neutral-backpack>Sarah</character>
-"Come on %Tiffany%, there's nothing we can do for her", I say, pulling her up the stairs.
+<action>I shield my eyes from the rain and look down at the garden, it's clear of walkers, good.</action>
-She doesn't say a word, she must be in shock... I guess I am too for that matter.
+<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
-"Ugh, ugh...", Lucy gurgles somewhere behind me. I don't look back.
+<character.two>Charles</character>
+
+ <% if (!window.story.getChoice("Chapter1", "CharlesName")) { %>
+
+ <characteroverride.two>???</characteroverride>
+
+ <% } %>
-[[[Go up the stairs]|C1P56]]We climb to the top of the stairs... Why do people keep dying around me? Am I just a death maganet? Ugh, no time for this now, we need to get out of here.
+<speech.charles>Well now what?</speech>
-I start to look around, we are in another hallway, there are three doors along the sides and some kind of open room at the end.
+<action>He shouts over the rain.</action>
+<action>Gee, give us a second, will you?</action>
-"We need to go back and get her", %Tiffany% says.
+<% } %>
-"What?", I reply, caught a little off-guard.
+<action>I look around for a good way to get down off the roof...</action>
+<action>I don't see anything that would help us get down.</action>
-"We need to go get mom!", she half shouts half cries.
+<character.two.sad.neutral.neutral-backpack>Tiffany</character>
-[[%Tiffany%, she's dead|C1P56V1]]<br>
-[[Keep your voice down!|C1P56V2]]<br>
-[[That's not your mom anymore...|C1P56V3]]"Hey, I got you something", I say to %Tiffany%, as I get the spinning top out of my pocket.
+<action>I could probably lower %Tiffany% down myself, but how would I get down?</action>
+<action>Ugh, one problem at a time.</action>
-"You did?", she replies, her eyes lighting up as if it was Christmas.
+<speech.sarah>%Tiffany%, come over here, I'm going to lower you down.</speech>
-"Here", I say, holding out the spinning top.
+<action>I have to shout to be heard over the rain.</action>
+<action>We step over towards the edge of the roof; the stairs leading up to the patio directly below us.</action>
-"What is it?", %Tiffany% asks, taking it in her small hands.
+<speech.tiffany>How are you going to get me down there?</speech>
-"It's called a spinning top... it's a toy, kinda", I reply.
+<action>She whimpers in response.</action>
+<action>I can barely hear her, but at least she's talking again.</action>
-"How does it work?", %Tiffany% says, sounding intrigued.
+<speech.sarah>You're going to start to climb down, then I'm going to hold your hands and lower you the rest of the way.</speech>
-"Let me show you", I reply.
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-I reach out and place my hand on hers, move the spinning top the correct way up, then move our hands down to the tabletop. I take my hand back.
+<speech.tiffany>I can't do that!</speech>
-"Now, grab the top, and twist", I remark.
+<action>She looks up at me with her piercing blue eyes wide open.</action>
-She does, and the spinning top spins.
+<choices>
+ [[You need to|C1P59V1]]
+ [[Yes you can, it's not so bad|C1P59V2]]
+ [[%Tiffany%, less talking, more doing|C1P59V3]]
+</choices><ui>standard</ui>
+<character.one.pain.neutral.neutral-backpack>Sarah</character>
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-"Woah", %Tiffany% says, as the colors on the spinning top glitter.
+<speech.sarah>I know this is scary %Tiffany%, but you need to, or else the monsters are going to get us.</speech>
-We both sit and watch it for a moment, till it spins itself out.
+<%= window.story.render("F: Lowering") %><ui>standard</ui>
+<character.one.pain.neutral.neutral-backpack>Sarah</character>
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-<%= window.story.customRender("F: Tiff Breakfast Talk Options") %>[[Where's your dad?|C1P44V1]]<br>
-[[Where have you guys been staying?|C1P44V2]]<br>
-[[How many walkers have you killed?|C1P44V3]]<br>
+<speech.sarah>Yes you can %Tiffany%, it's not as bad as it looks, I promise.</speech>
-[[[Go talk to Lucy]|C1P45]]"Don't worry <% print (window.story.tiffany()) %>, she'll be fine. She can handle herself", I say, trying to sound reassuring.
+<action>I try to sound reassuring.</action>
-She slowly nods her head, but I think she's only doing that for my benefit...
+<%= window.story.render("F: Lowering") %><ui>standard</ui>
+<character.one.pain.neutral.neutral-backpack>Sarah</character>
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-<%= window.story.customRender("F: Clap o' thunder") %>I really have no idea what to say to her right now that would make her feel better.
+<speech.sarah>Less talking, more doing %Tiffany%.</speech>
+<speech.sarah>The sooner you start, the sooner you finish</speech>
-<%= window.story.customRender("F: Clap o' thunder") %>Maybe she'll feel better if she holds my hand, I don't know...
+<%= window.story.render("F: Lowering") %><action>She looks away from me and down at the edge of the roof, then slowly nods her head.</action>
-I extend my arm out in her direction, she looks up at me, keeps still for a moment, then jumps out of her chair. She rushes over and wraps both her little arms around my waist.
+<speech.sarah>Alright, good.</speech>
+<speech.sarah>Carefully climb off the edge, then hang onto it, and I'll grab you, okay?</speech>
-Woah, OK, that's not what I was going for, but sure, that works. I lower my arm back down and hold her.
+<action>%Tiffany% precariously lowers herself off the roof.</action>
-<%= window.story.customRender("F: Clap o' thunder") %>Nothing happens for a few moments.
+<character.two.scared.scared.scared-backpack>Tiffany</character>
-\*Bang\*
+<speech.tiffany>Mmmmm</speech>
-<% print (window.story.tiffany()) %> jumps as the sound of a clap of thunder rings out. The weather is really taking a turn for the worst.
+<action>She murmurs nervously.</action>
+<action>I slowly start to lay flat on the roof.</action>
-What is Lucy doing out there... I haven't heard any shouting in a minute or two.
+<speech.sarah>Everything's fine, I'm right here.</speech>
+<speech.sarah>Just hang on tight, it's slippery.</speech>
-\*Slam\*
+<speech.tiffany>Grab me, grab me now!</speech>
-This time I jump, as the front door swings open, and Lucy comes crashing through.
+<action>She squeaks.</action>
-"Come on!", she shouts at someone outside.
+<speech.sarah>Don't worry, I've got you, I got you.</speech>
-She moves to the door, looking ready to close it. Suddenly, a man comes bolting through and crashes into the stairs. Lucy kicks the door closed behind him.
+<action>I say as I crawl forward and grab her by the wrists.</action>
-[[[Look at the stranger]|C1P54V11]]I look at the stranger slumped on the stairs, panting. He looks pretty tall but kinda skinny, he's wearing a trench coat or something, got light green eyes, and long black hair in a ponytail; he's soaking wet. I also notice a bat lying next to him, it's covered in walker bits.
+<speech.sarah>Alright, you need to let go of the roof, I've got you now.</speech>
-"Thanks...", he manages to say, between breaths.
+<action>She doesn't move.</action>
-"Your welcome", Lucy replies.
+<speech.sarah>Trust me %Tiffany%.</speech>
-"My name's Charles", he says between puffs.
+<action>She looks up at me, and we lock eyes for a moment.</action>
+<action>I stare, unblinking, trying to convey confidence.</action>
+<action>She must be buying it because without looking back down, she lets go.</action>
-"I'm Lucy, and that's Sarah and Tiffany", she says, gesturing back down the hallway towards us.
+<speech.sarah>Oof</speech>
-Charles jumps a little, he must not have seen me; but he quickly recovers and gives me a little slow-wave.
+<action>I let out, as I take her whole body weight.</action>
-[[We need to hide|C1P54V111]]<br>
-[[We need to get out of here|C1P54V112]]<br>
-[[We need to fortify this place|C1P54V113]]"We need to hide, and quickly. Those walkers will be on us any minute.", I say.
+<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
-<%= window.story.customRender("F: Smash") %>I don't know how to explain to her Lucy isn't helping whoever's outside...
+<character.two>Charles</character>
-<%= window.story.customRender("F: Let me in!") %>"She's making sure we stay safe, OK?", I reply, trying to sound reassuring.
+ <% if (!window.story.getChoice("Chapter1", "CharlesName")) { %>
+
+ <characteroverride.two>???</characteroverride>
+
+ <% } %>
-She slowly nods her head, but I think she's convinced.
+<speech.charles>Careful not to drop her!</speech>
-<%= window.story.customRender("F: Let me in!") %>"She's just, um, helping someone outside, OK"?, I say.
+<character.one.angry.neutral.neutral-backpack>Sarah</character>
-I look back down the hallway, Lucy's looking at me, an uneasy expression on her face, but she quickly gets back to the door.
+<action>I shoot him a dirty look, then turn my focus back to %Tiffany%.</action>
-<%= window.story.customRender("F: Let me in!") %>\*Bang, bang, bang\*
+<% } %>
-That sounded like the front door.
+<choices>[[[Lower %Tiffany% down]|C1P60]]</choices><ui>standard</ui>
+<character.one.pain.neutral.neutral-backpack>Sarah</character>
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-"Hey! Anyone in here?", a man's voice shouts from the other side of the door.
+<action>I start to lower %Tiffany% down, crawling closer to the edge to get her further down.</action>
+<action>I stop when most of my upper body is hanging off the edge, scared I'll lose my balance.</action>
-Shit, whoever's out there, is about to come in here!
+<speech.sarah>That's as far as I can go %Tiffany%.</speech>
-Lucy takes a step back from the door and pulls her knife out.
+<action>She looks back up at me, hanging over the stairs.</action>
-Oh fuck, what is she going to do?
+<speech.tiffany>I can swing myself to the top of the stairs.</speech>
-[[<% print (window.story.tiffany()) %> run!|C1P54V12]]<br>
-[[Lucy, be careful!|C1P54V12]]<br>
-[[Lucy, don't do it!|C1P54V12]]I take a breath to speak-
+<speech.sarah>Yeah, good idea %Tiffany%.</speech>
-\*Crash\*
+<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
-Suddenly, the door swings open, and a man comes crashing through. Lucy gets knocked out of the way and nearly falls to the ground. The man lands on the stairs.
+<character.two>Charles</character>
-He's pretty tall, but skinny, wearing a trench coat or something, got light green eyes, long black hair in a ponytail and he's soaking wet. He is also holding a bat.
+ <% if (!window.story.getChoice("Chapter1", "CharlesName")) { %>
+
+ <characteroverride.two>???</characteroverride>
+
+ <% } %>
-He props himself up, a look of shock on his face. I don't think he knew we were in here.
+<speech.charles>Are you sure that's a good idea?</speech>
-There's a moment of silence. His expression turns to one of anger.
+<action>I ignore him.</action>
-"Oi, why didn't you-", the stranger starts to say angrily, but before he can finish, Lucy is back on her feet, and lunging towards him with her knife.
+<% } %>
-[[...|C1P54V1212]]<br>
-[[Lucy stop!|C1P54V1211]]<br>
-[[Watch out for the bat!|C1P54V1213]]"Lucy stop!", I shout at her. What the hell is she doing?!
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-<%= window.story.customRender("F: wtf") %>I don't know what the hell she's doing, but now is not the time to interrupt.
+<action>I brace myself as best I can, then nod.</action>
+<action>She starts to swing, I slide a little but manage to otherwise stay still.</action>
-<%= window.story.customRender("F: wtf") %>"Watch out for the bat!", I shout.
+<speech.tiffany>Let go!</speech>
-<%= window.story.customRender("F: wtf") %>"What the- argh, FUCK, are you doing?!", the man shouts, while tumbling around with Lucy.
+<resetcharacter.two/>
-Lucy has the knife right near his throat, but the man has his arms up in front of him, she can't push it close enough to get him- Suddenly the man cries out in pain: Lucy dropped the knife from one hand, caught it with the other, and took a swipe the guy's arm. Where did she learn to do that...
+<action>I release my grip and she disappears out of view onto the patio.</action>
+<action>I wait a moment for her to say something.</action>
-Lucy backs off, the stranger, still on the floor, crawling back down the hallway towards the living room, holding the now bleeding arm across his chest.
+<speech.sarah>You alright %Tiffany%?</speech>
-"What the hell is wrong with you people?!", he cries out, pain in his voice.
+<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
-Lucy takes a defensive stance, staying between us and the man.
+<character.two>Charles</character>
-[[[Look at %Tiffany%]|C1P54V12111]]<% window.story.setChoice("Chapter1", "StrangerDied", false) %>
+ <% if (!window.story.getChoice("Chapter1", "CharlesName")) { %>
+
+ <characteroverride.two>???</characteroverride>
+
+ <% } %>
-I look over at %Tiffany%, she's got her feet up on the seat, and she's buried her head in her knees. She must be terrified. I take a step towards her-
+<speech.charles>Yeah you good down there?</speech>
-\*Crash\*
+<% } %>
-Oh god is Lucy alright? I quickly look back down the hallway.
+<character.one.pain.neutral.neutral-backpack>Sarah</character>
-A hand has appeared through one of the boarded-up windows in the hallway and grabbed the stranger by his injured arm.
+<action>There's a moment's pause.</action>
-"Oh god, no!", he cries out, as he gets pulled to the window, and a walker forces its head through the glass.
+<clearwait>3000</clearwait>
-"Walkers!", Lucy shouts, as the sound of glass and wood breaking around the house starts to be heard.
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-"AAAHHH!", the man screams, as the walker takes a bite out of his arm.
+<speech.tiffany>I'm alright.</speech>
-Lucy starts running down the hallway towards us.
+<character.one.happy.neutral.neutral-backpack>Sarah</character>
-<%= window.story.customRender("F: You're heavy") %>"Come on %Tiffany%, we need to move", I say as I get up to her.
+<action>I let out a breath.</action>
+<action>Alright, now to figure out how to get me down there.</action>
-She looks up at me, scared, but doesn't move.
+<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
-"Come on!", I repeat, but she just stares back at me.
+<character.two>Charles</character>
+
+ <% if (!window.story.getChoice("Chapter1", "CharlesName")) { %>
+
+ <characteroverride.two>???</characteroverride>
+
+ <% } %>
+
+<speech.charles>Can you lower me down?</speech>
-We don't have time for this, I stretch my arms out toward her and beckon. She turns and puts her hands up, I grab her and pick her up. My goodness, she's heavier than she looks.
+<character.one.angry.neutral.neutral-backpack>Sarah</character>
-I balance her properly so she's sitting on my hips, as she wraps her hands around my neck to hold herself. I take a step towards the door- oof, I forgot about my leg, this could be interesting.
+<speech.sarah>What? No!</speech>
-[[[Head down the hallway]|C1P54V11111]]I get to the doorway and start down the hallway, %Tiffany% in tow. Lucy and I exchange brief glances: she looks grateful.
+<action>I snap back.</action>
-I'm halfway down the hallway, Lucy right behind me-
+<% } %>
-"AAAAAHHHH!", %Tiffany% screams from behind me. Before I have a chance to stop, her arms around my neck pull back, tight. I choke and fall backward.
+<choices>[[[Stand up]|C1P61]]</choices><ui>standard</ui>
+<character.one.neutral.neutral.neutral-backpack>Sarah</character>
-\*Smack\*
+<action>I get back up and step away from the edge.</action>
+<action>Alright, maybe if-</action>
-I hit the ground. Argh, my leg, again! Can't catch a break... I've landed on my bad leg, and bumped my head. I quickly refocus my vision, and look around for %Tiffany%.
+<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
-A hand has come through one of the windows and grabbed her leg, that must be why she screamed and fell. I gotta get up and-
+<character.two>Charles</character>
-Lucy appears with her knife, takes one swipe at the hand, and detaches it from the arm it was connected to. Impressive.
+ <% if (!window.story.getChoice("Chapter1", "CharlesName")) { %>
+
+ <characteroverride.two>???</characteroverride>
+
+ <% } %>
-"No time for a nap Sarah", Lucy says to me, as she helps %Tiffany% up.
+<speech.charles>Shit, watch out!</speech>
-"Move!", she shouts.
+<% } %>
-She's right, this is not a good spot to be in. I manage to get on my knees, pain shooting up my leg, but I push through it and manage to stand.
+<character.one.happy.angry.neutral-backpack>Sarah</character>
-[[[Head for the stairs]|C1P55]]"We need to get out of, fast. Those walkers won't take long to get in here.", I say.
+<speech.sarah>Argh!</speech>
-<%= window.story.customRender("F: Smash") %>"We need to fortify this place, ASAP. Those walkers will make quick work of those shitty windows.", I say.
+<action>I instinctively cry out.</action>
-<%= window.story.customRender("F: Smash") %>I look over at %Tiffany%, she's got her feet up on the seat, and she's buried her head in her knees. She must be terrified.
+<% if (window.story.getChoice("Chapter1", "Haircut")) { %>
-"I'm coming", I hear Lucy shout from the hallway.
+<action>Something is grabbing my jacket!</action>
+<action>I spin around to see a walker hand flailing through the window, I instinctively take a few steps back-</action>
-<%= window.story.customRender("F: You're heavy") %>Charles looks up.
+<character.one.pain.angry.neutral-backpack>Sarah</character>
-"She's right", he says.
+<action>SHIT, too many steps!</action>
+<action>I step backward right off the patio roof.</action>
-\*Smash\*
+<% } else { %>
-A hand suddenly appears through one of the boarded-up windows in the hallway, near Charles.
+<action>Something is grabbing my hair!</action>
+<action>I get pulled backward, pain shooting over my scalp.</action>
+<action>I fall down and the grip releases, looking up, I see a walker hand through the window.</action>
+<action>I roll out of the way and start to get up-</action>
+<action>Uh oh.</action>
+<action>CREEEEEEEEEEEEK-</action>
+<action>CRACK</action>
+<action>My hand, then my arm, then my whole body goes through the patio roof as it collapses inwards.</action>
+<% } %>
-"Walkers!", Lucy shouts, as the sound of glass and wood breaking around the house starts to be heard.
+<resetcharacter.two/>
-"Shit!", Charles shouts.
+<character.one.neutral.neutral.neutral-backpack>Sarah</character>
-Lucy moves towards him to help.
+<clearwait>3500</clearwait>
-"Head upstairs", Lucy shouts over her shoulder.
+<action>I feel the strangest sense of relaxation...</action>
+<action>The air and rain rushing over me as I rapidly approach the ground.</action>
-We need to get going, now.
+<clearwait>1500</clearwait>
-[[[Get %Tiffany%]|C1P54V1111]]<img.title-image>
+<action>But it only lasts a moment.</action>
+
+<choices>[[[Hit the ground]|C1P61R1]] </choices><% window.story.redirect("C1P62", 5) %><i>"Sarah? Sarah!"</i>, a voice yells, somewhere far away. I groan and start to stir.
-<%= window.story.customRender("Settings") %>
+</div><% window.story.redirect("C1P62", 5) %><flashback/>
+<ui>standard</ui>
+<character.one.neutral.neutral.neutral-backpack>Sarah</character>
-[[Back|Title Screen]]<img.title-image>
+<speech.unknown>"Sarah? Sarah!"</speech>
-<div#title-button>
-[[Artwork|Artwork]]
-<a href="https://purpose-game.com" target="_blank">Website</a>
-<a href="https://discord.gg/jNgAEjW7gd" target="_blank">Discord</a>
-<a href="https://github.com/cm8263/Purpose" target="_blank">GitHub</a>
-</div>
+<action>I groan and start to stir.</action>
+<action>I'm laying on my side, and there's someone near my face, again...</action>
+<action>Hopefully it's %Tiffany% here to offer me breakfast again...</action>
+<action>that would be nice...</action></action>
-[[Back|Title Screen]]<img.title-image>
+<action>I squint, my vision is blurry. There's a face, but... it has no eyes?</action>
-<div#title-button>
-[[Sarah|Sarah]]
-[[Tiffany|Tiffany]]
-</div>
+<choices>[[[Rub own eyes]|C1P63]]</choices><ui>standard</ui>
-[[Back|Extras]]<img.sarah-image>
+<character.one.neutral.neutral.neutral-backpack>Sarah</character>
-Daniel "DanDarkDesigns" Ayala<br>
-<a href="https://www.artstation.com/darkcan" target="_blank">https://www.artstation.com/darkcan</a>
+<action>I move my arm to my face-</action>
-[[Back|Artwork]]<img.tiffany-image>
+<character.one.pain.pain.neutral-backpack>Sarah</character>
-Daniel "DanDarkDesigns" Ayala<br>
-<a href="https://www.artstation.com/darkcan" target="_blank">https://www.artstation.com/darkcan</a>
+<action>AH, oh the pain!</action>
-[[Back|Artwork]]"%Tiffany%, listen to me: I know you don't want to accept this right now, but Sarah is gone, and unless you want...", I start to say; I was going to say unless you want to join her, but I don't want to give her any ideas.
+<character.one.pain.neutral.neutral-backpack>Sarah</character>
-"...unless you want to waste the sacrifice she made, <i>for you</i>, we need to go, now.", I finish.
+<action>That was enough to jolt me properly awake.</action>
+<action>I'm on the ground, laying in large puddle, face to face with a walker who's crawling right towards me.</action>
+<action>I need to get up.</action>
+<action>I roll onto my back, pain shoots up my neck, holy crap does it hurt.</action>
+<action>I try to push myself up, but the pain in my arms is too great, I collapse back down again.</action>
+<action>I turn my head towards the walker-</action>
+<action>It's lunging at me!</action>
+<action>I grab its arms and hold it off, its mangled face snapping its teeth, trying to take a bite out of me.</action>
+<action>I manage to brace the walker on one arm, pain like I've never felt before radiating from it</action>
+<action>I reach down for Sarah's knife with the other arm-</action>
+<action>Oh come on, it's not there!</action>
+<action>I frantically look around for it.</action>
-<%= window.story.customRender("F: Softening the blow") %>"Keep your voice down %Tiffany%! Those walkers are going to find their way up here soon enough, no need to encourage them.", I remark.
+<% if (window.story.getChoice("Chapter1", "TiffBackstory") == "Killing") { %>
-<%= window.story.customRender("F: Softening the blow") %>"%Tiffany%, that's... that's not your mom anymore", I say, looking at her.
+<action>SPLAT!</action>
-<%= window.story.customRender("F: Softening the blow") %>Tears run down her small face, she doesn't reply.
+<action>I splutter, the walker just vomited blood or something all over my face!</action>
+<action>The weight of the walker lifts, I push it off and wipe my face so I can see again.</action>
+<action>I look at the walker...</action>
+<action>A knife is stuck square through the middle of its head, with the end poking out of its face just next to one of its eye sockets.</action>
+<action>I look to my right, %Tiffany% is stood there, hands to her chest, a blood splatter across her face quickly being washed away by the rain.</action>
-"We will mourn her later, I promise", I add, trying to soften the blow.
+<speech.sarah>%Tiffany%...</speech>
+<!-- TODO: Special of Tiffany w/ knife & blood -->
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-\*Creak, creak, creak\*
+<action>THUNK!</action>
-I look behind me to the stairs, I can hear the walkers making their way up.
+<action>I look over just in time to see a walker fall off the patio roof down onto the ground, with another close behind it.</action>
-Time to move.
+<speech.sarah>We need to go.</speech>
-[[[Look around the hallway]|C1P57]]Pulling %Tiffany% along behind me, I start down the hallway. I stick my head through the first doorway: it looks like an office, it has a desk, a computer, some books, nothing else, and nothing useful.
+<choices>[[[Get up]|C1P64]]</choices>
-I hobble down to the next door, this one is a bedroom; it has a bed frame but no mattress, a wardrobe, and a cupboard. The cupboard door is open, I can see a few clothes hanging, but no weapons or tools to help get us out of here.
+<% } else { %>
-I head for the final door, it's closed. I open the door, another bedroom; two mattresses on the floor, backpacks in the corner of the room, a pair of clothes sitting on top of a dresser... this must be where %Tiffany% and Sarah were sleeping.
+<action>There, it's just behind me, but out of reach.</action>
+<action>%Tiffany%, I need %Tiffany%'s help! </action>
+<action>Where is she?</action>
+<action>I look for her...</action>
+<action>There!</action>
+<action>She's hiding behind a tree near the edge of the garden.</action>
-I look down at %Tiffany%, she still has tears running down her face, but she looks otherwise emotionless. I don't know if that's good or bad considering the circumstances.
+<speech.sarah>%Tiffany%- help me!</speech>
-[[[Look at the backpacks]|C1P58]]I step into the room and go over to the backpacks.
+<action>Reluctantly she steps out from behind the tree and approaches.</action>
-One is a black sling backpack, with a single strap that connects with a clip in the middle; must have been Sarah's.
+<choices>
+ [[Push it off!|C1P63V1]]
+ [[Use the knife!|C1P63V2]]
+ [[Get me the knife!|C1P63V3]]
+</choices>
+<% } %><ui>standard</ui>
+<character.one.neutral.neutral.neutral-backpack>Sarah</character>
-I look at the other one, it's a smaller white backpack, with a teddy bear strapped to the side... %Tiffany%'s...
+<action>I go over to the table and rip the net off one of the clamps.</action>
+<action>Then I remove the clamp from the table; it's got some weight to it...</action>
+<action>Perfect.</action>
+<action>I walk back over to the window.</action>
-I pick up the sling backpack and strap it on, then pick up the white one.
+<%= window.story.render("F: The window shatters") %><character.two.sad.neutral.neutral-backpack>Tiffany</character>
-"Put this on %Tiffany%", I say. She just stares back at me, blank.
+<speech.sarah>Step back %Tiffany%.</speech>
-We don't have time for this.
+<action>She shuffles back a few steps, not far enough for my liking.</action>
+<action>I step in front of her.</action>
+<action>Then take aim, and swing; throwing it at the window.</action>
+<action>The window shatters, then falls apart, leaving only the frame remaining.</action>
+<action>A strong gust of wind blows through, and rain starts dripping in.</action>
-I spin her around, as gently as I can, and put the backpack on her. %Tiffany% acting limp as I put her arms through the small straps.
+<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
-I quickly look around for anything else useful: there's nothing.
+<character.two>Charles</character>
-[[[Leave the room]|C1P58A1]]Hello!
+ <% if (!window.story.getChoice("Chapter1", "CharlesName")) { %>
+
+ <characteroverride.two>???</characteroverride>
+
+ <% } %>
-Thanks for poking around the source code. For starters, if you're looking at this in your browser, or you've downloaded the HTML file from itch.io, the source code is freely available on GitHub, so go get it from there instead: https://github.com/cm8263/Purpose
+<speech.charles>Nicely done.</speech>
-It goes without saying that there may be spoilers in here, either in passages you might not have seen or in the developer reference passages. Also, taking a look under the hood can ruin the magic, so, fair warning.
+<% } %>
-All that out of the way, have fun, and feel free to leave PRs on GitHub with improvements!
+<action>THUD, THUD, THUD</action>
+<action>I look over my shoulder-</action>
-- ChristopherThat stupid soap bar, perfect! I take it out of my pocket, still hard as a rock: just what I need.
+<character.one.angry.neutral.neutral-backpack>Sarah</character>
-<%= window.story.customRender("F: The window shatters") %>I step out onto the patio roof behind %Tiffany%, it's bucketing rain out here, I can barely see, and it's pretty windy too. I shield my eyes from the rain and look down at the garden, it's clear of walkers, good.
+<action>Walkers!</action>
+<action>They've made it up the stairs, and they're headed down the hallway towards us.</action>
<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
-"Well now what?", the stranger shouts over the rain. Gee, give us a second, will you?
+<action>The stranger sees them too.</action>
+
+<speech.charles>Shit...</speech>
+
+<action>He goes to the remnants of the window and steps through.</action>
+<action>Nice of him to wait for us...</action>
<% } %>
-I look around for a good way to get down off the roof... I don't see anything that would help us get down. I could lower %Tiffany% down alright, but how would I get down? Shit, one problem at a time.
+<character.two.sad.neutral.neutral-backpack>Tiffany</character>
+
+<speech.sarah>Time to go %Tiffany%.</speech>
+
+<action>I say, turning to face her.</action>
+<action>She looks absolutely miserable, but I can't do anything about that right now.</action>
+<action>I take her hand again and go back to the window.</action>
+
+<speech.sarah>Step through, watch your head.</speech>
-"%Tiffany%, come over here, I'm going to lower you down", I shout over the rain.
+<action>%Tiffany% complies, without saying a word.</action>
-We step over towards the edge of the roof, the stairs leading up to the patio directly below us.
+<resetcharacter.two/>
-"How are you going to get me down there?", she whimpers in response, I can barely hear her, but at least she's speaking again.
+<action>I take one last look over my shoulder...</action>
-"You're going to start to climb down, then I'm going to hold your hands and lower you the rest of the way", I reply.
+<choices>[[[Step through the window]|C1P59]]</choices><ui>standard</ui>
-"I can't do that", she says, looking at me with her piercing blue eyes wide open.
+<character.one.neutral.neutral.neutral-backpack>Sarah</character>
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-[[You need to|C1P59V11]]<br>
-[[Yes you can, it's not so bad|C1P59V12]]<br>
-[[%Tiffany%, less talking, more doing|C1P59V13]]"I know this is scary %Tiffany%, but you need to, or else the walkers are going to get us", I state.
+<% if (!window.story.getChoice("Chapter1", "TiffBackstory") == "Killing") { %>
-<%= window.story.customRender("F: Lowering") %>"Yes you can %Tiffany%, it's not as bad as it looks, I promise", I say reassuringly.
+<speech.sarah>Well done %Tiffany%</speech>
-<%= window.story.customRender("F: Lowering") %>"Less talking, more doing %Tiffany%. The sooner you start, the sooner you finish" I state.
+<action>I say, breathless.</action>
+<action>She looks a bit shaken.</action>
-<%= window.story.customRender("F: Lowering") %>She looks away from me and down at the edge of the roof, then slowly nods her head.
+<% } %>
-"Ok, good. <i>Carefully</i> climb off the edge, then hang onto it, and I'll grab you, OK?", I say. %Tiffany% precariously lowers herself off the roof.
+<character.one.pain.pain.neutral-backpack>Sarah</character>
-"Mmmmm", she murmurs nervously.
+<action>I force myself up off the ground, pain screaming from every part of my body.</action>
-I slowly start to lay flat on the roof.
+<% if (window.story.getChoice("Chapter1", "TiffBackstory") == "Killing") { %>
-"It's alright, I'm right here. Just hang on tight, it's slippery", I remark.
+<action>I pull the knife out of the walker's head.</action>
-"Ok, grab me, grab me now!", she squeaks.
+<% } else { %>
-"I got you, I got you", I say, as I crawl forward and grab her by the wrists.
+<action>I take %Tiffany%'s hand.</action>
-"Alright, you need to let go, I've got you. Trust me", I state.
+<% } %>
-She looks up at me, we lock eyes for a moment. I stare, unblinking, trying to convey confidence. She must be buying it because without looking back down, she lets go.
+<character.one.neutral.neutral.neutral-backpack>Sarah</character>
-"Oof", I let out, as I take her whole body weight.
+<action>Looking around, the house is a no-go, which only leaves the way I came in originally, the back wall.</action>
<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
-"Careful not to drop her!", the stranger remarks.
+<character.two>Charles</character>
-I shoot him a dirty look, then turn my focus back to %Tiffany%.
+ <% if (!window.story.getChoice("Chapter1", "CharlesName")) { %>
+
+ <characteroverride.two>???</characteroverride>
+
+ <% } %>
-<% } %>
+<speech.charles>Hey, you alright?</speech>
-[[[Lower %Tiffany% down]|C1P60]]I start to lower %Tiffany% down, crawling closer to the edge to get her further down. I stop when most of my upper body is hanging off the edge, scared I'll lose my balance.
+<action>He says coming up from behind us.</action>
-"That's as far as I can go %Tiffany%", I say, as she looks back up at me, hanging over the stairs.
+<speech.sarah>Where the hell were you?</speech>
-"I can swing myself to the top of the stairs", %Tiffany% says.
+<speech.charles>I had to climb down a drainpipe to get off the roof.</speech>
+<speech.charles>I wasn't so keen on your rapid decent option.</speech>
-"Yeah, good idea %Tiffany%", I reply.
+<action>I roll my eyes.</action>
-<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
+<speech.sarah>We're going over the back wall.</speech>
-"Are you sure that's a good idea?", the stranger asks.
+<speech.charles>Yeah, alright, good idea.</speech>
-I ignore him.
+<action>He replies as he starts heading towards it.</action>
<% } %>
-I brace myself as best I can, then nod. She starts to swing, I slide a little but manage to otherwise stay still.
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-"Let go!", she says, I release my grip and she disappears out of view onto the patio. I wait a moment for her to say something.
+<% if (window.story.getChoice("Chapter1", "Kicked")) { %>
-"You alright %Tiffany%?", I ask.
+<action>I look back at the house.</action>
+<action>The back door is wide open, and walkers are making their way down the patio steps.</action>
+<action>Guess that doorstop didn't pose much of an obstacle to them.</action>
-<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
+<% } %>
-"Yeah you good down there?", the stranger adds.
+<action>I start towards the back wall, pulling %Tiffany% along behind me.</action>
+<action>As we get towards it, I feel more resistance on my arm from %Tiffany%...</action>
+<action>...she's trying to get me to stop.</action>
+<action>I comply and face her.</action>
-<% } %>
+<character.two.sad.sad.neutral-backpack>Tiffany</character>
-There's a moment's pause.
+<speech.sarah>What, what's wrong?</speech>
-"I'm alright", she replies.
+<action>I say quickly, wary of the walkers slowly approaching from our rear.</action>
-I let out a breath, alright, now to figure out how to get me down there.
+<speech.tiffany>We have to go back for mom.</speech>
+<speech.tiffany>We can't leave her there with all the monsters!</speech>
-<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
+<action>Tears again budding in the corners of her big blue eyes.</action>
-"Can you lower me down?", the stranger asks.
+<choices>
+ [[I know how you feel|C1P64V1]]
+ [[We will end up dead too|C1P64V2]]
+ [[Now is not the time %Tiffany%!|C1P64V3]]
+</choices><ui>standard</ui>
-"What? No!", I snap back.
+<character.one.neutral.neutral.neutral-backpack>Sarah</character>
+<character.two.sad.sad.neutral-backpack>Tiffany</character>
-<% } %>
+<action>I painfully drop down on one knee to be at eye level with her.</action>
-[[[Stand up]|C1P61]]<% window.story.delayedText(15 * 1000) %>
+<speech.sarah>%Tiffany%, believe me, I know exactly how you are feeling right now.</speech>
+<speech.sarah>But I need you to be brave like your mom was, can you do that for me?</speech>
-I get back up and step away from the edge.
+<%= window.story.render("F: Look behind") %><ui>standard</ui>
-Alright, maybe if-
+<character.one.neutral.neutral.neutral-backpack>Sarah</character>
+<character.two.sad.sad.neutral-backpack>Tiffany</character>
-<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
+<action>I painfully drop down on one knee to be at eye level with her.</action>
+<action>Gently, I grab both her shoulders and look her directly in the eyes. </action>
-"Shit, watch out!", the stranger shouts.
+<speech.sarah>%Tiffany%, I understand you are processing a lot of emotions right now...</speech>
+<speech.sarah>...but unless you and I get over that wall, you're not going to be alive to process them.</speech>
-<% } %>
+<%= window.story.render("F: Look behind") %><ui>standard</ui>
-"Argh!", I let out.
+<character.one.angry.neutral.neutral-backpack>Sarah</character>
+<character.two.sad.sad.neutral-backpack>Tiffany</character>
-<% if (window.story.getChoice("Chapter1", "Haircut")) { %>
+<speech.sarah>%Tiffany%, now is not the time!</speech>
+<speech.sarah>I'm so, so sorry that your mom is dead...</speech>
+<speech.sarah>...but unless you want to end up just like her, we need to get over this wall.</speech>
-Something is grabbing my jacket! I spin around to see a walker hand flailing through the window, I instinctively take a few steps back- SHIT, too many steps! I step backward right off the patio roof.
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-<% } else { %>
+<action>She stares back at me, a lick of anger visible across her face.</action>
-Something is grabbing my hair! I get pulled backward, pain shooting over my scalp. I fall down and the grip releases, looking up, I see a walker hand through the window. I roll out of the way and start to get up- uh oh.
+<character.one.sad.neutral.neutral-backpack>Sarah</character>
-\* Creeeeeeak, crack \*
+<action>Shit, this isn't working...</action>
+<action>I painfully drop down on one knee to be level with her. </action>
-My hand, then my arm, then my whole body goes through the patio roof as it collapses inwards.
+<%= window.story.render("F: Look behind") %><action>I look behind her, walkers are fast approaching.</action>
+<action>We really need to get moving.</action>
-<% } %>
+<character.one.sad.neutral.neutral-backpack>Sarah</character>
+<character.two.sad.sad.neutral-backpack>Tiffany</character>
-<div-#delayed>
+<speech.sarah>Look, %Tiffany%, when my sister died... I was a wreck.</speech>
+<speech.sarah>I didn't know what to do, and it took a long time for me to come to terms with what happened.</speech>
+<speech.sarah>Honestly, I'm still processing it to this day.</speech>
+<speech.sarah>I know you don't care about anything else at the moment but your mom, but try to understand that your mom died so you could live.</speech>
+<speech.sarah>Don't let her death be for nothing, please.</speech>
-I feel the strangest sense of relaxation... the air and rain rushing over me as I rapidly approach the ground. But it only lasts a moment.
-
-[[[Hit the ground]|C1P61R1]]
+<action>We continue to stare at each other.</action>
+<action>The walkers nearly on us now.</action>
+<action>Rain soaking us both.</action>
-</div><% window.story.redirect("C1P62", 5) %><i>"Sarah? Sarah!"</i>, a voice yells, somewhere far away. I groan and start to stir.
+<clearwait>2000</clearwait>
-I'm laying on my side, and there's someone near my face, again... Hopefully it's %Tiffany% here to offer me breakfast again... that would be nice...
+<action>I can't leave her here, I just can't, I wouldn't be able to live with myself.</action>
-I squint, my vision is blurry. There's a face, but... it has no eyes?
+<choices>[[[Pled with %Tiffany%]|C1P65]]</choices><ui>standard</ui>
-[[[Rub own eyes]|C1P63]]I move my arm to my face- AH, oh the pain! That was enough to jolt me properly awake. I'm on the ground, laying in large puddle, face to face with a walker who's crawling right towards me.
+<character.one.sad.neutral.neutral-backpack>Sarah</character>
+<character.two.sad.sad.neutral-backpack>Tiffany</character>
-I need to get up. I roll onto my back, pain shoots up my neck, holy crap does it hurt. I try to push myself up, but the pain in my arms is too great, I collapse back down again. I turn my head towards the walker- it's lunging at me!
+<speech.sarah>Please, %Tiffany%...</speech>
-I grab its arms and hold it off, its mangled face snapping its teeth, trying to take a bite out of me. I manage to brace the walker on one arm, pain like I've never felt before radiating from it; I reach down for Sarah's knife with the other arm- oh come on, it's not there! I quickly look around for it-
+<action>I say, exhausted.</action>
+<action>I look behind her again, scores of walkers are approaching.</action>
+<action>I'm chilled to the bone thanks to this rain, and barely have the strength to walk.</action>
+<action>I can't take on those walkers, even with Lucy's knife, nor can I force %Tiffany% to go anywhere.</action>
-<% if (window.story.getChoice("Chapter1", "TiffBackstory") == "Killing") { %>
+<clearwait>1000</clearwait>
-\* Splat \*
+<action>I can't leave her, and she won't leave...</action>
+<action>...so I guess we're both dying here today.</action>
-I splutter, the walker just vomited blood or something all over my face! The weight of the walker lifts, I push it off and wipe my face so I can see again. I look at the walker... a knife is stuck square through the middle of its head, with the end poking out of its face just next to one of its eye sockets. I look to my right, %Tiffany% is stood there, hands to her chest, a blood splatter across her face quickly being washed away by the rain.
+<resetcharacter.one/>
+<resetcharacter.two/>
-"%Tiffany%...", I start.
+<action>I sigh, close my eyes, and lower my head.</action>
-\* Thunk \*
+<clearwait>1000</clearwait>
-I look over just in time to see a walker fall off the patio roof down onto the ground, with another close behind it.
+<action>I can hear the walkers all around us now.</action>
+<action>Their collective drones making an almost musical sound when paired with the sound of the rain.</action>
-"We need to go", I say back to %Tiffany%.
+<clearwait>3000</clearwait>
-[[[Get up]|C1P64]]
+<action>Oof.</action>
+<action>One of the walkers has grabbed me.</action>
+<action>Their firm arms wrapped around me...</action>
+<action>...head on my neck, preparing to take a bite...</action>
-<% } else { %>
-There, it's just behind me, but out of reach. %Tiffany%, I need %Tiffany%'s help! Where is she?
+<clearwait>2000</clearwait>
-I look for her... there! She's hiding behind a tree near the edge of the garden.
+<!-- TODO: SFX here -->
+<action>SNIFFLE</action>
+<action>Huh?</action>
+<action>I open my eyes-</action>
-"%Tiffany%- help!", I manage to shout.
+<character.one.happy.neutral.neutral-backpack>Sarah</character>
+<character.two.sad.sad.neutral-backpack>Tiffany</character>
-Reluctantly she steps out from behind the tree and approaches.
+<action>It's not a walker, it's %Tiffany%!</action>
+<action>And she's crying.</action>
-[[Push it off!|C1P63V1]]<br>
-[[Use the knife!|C1P63V2]]<br>
-[[Get me the knife!|C1P63V3]]
-<% } %>I go over to the table, rip the net off one of the clamps, then remove the clamp from the table; it's got some weight to it: perfect. I walk back over to the window.
+<speech.tiffany>I'm sorry...</speech>
-<%= window.story.customRender("F: The window shatters") %>"Step back %Tiffany%", I say. She shuffles back a few steps, not far enough for my liking; I step in front of her. I take aim, and swing, throwing it at the window.
+<action>She whispers into my ear.</action>
-The window shatters, then falls apart, leaving only the frame remaining. A strong gust of wind blows through, and rain starts dripping in.
+<character.one.happy.happy.neutral-backpack>Sarah</character>
-<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
+<action>I can't help but smile.</action>
-"Nicely done", the stranger remarks.
+<speech.sarah>Don't worry, everything will be alright.</speech>
-<% } %>
+<choices>[[[Pick %Tiffany% up]|C1P66]]</choices><ui>standard</ui>
-\*Thud, thud, thud\*
+<character.one.neutral.neutral.neutral-backpack>Sarah</character>
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-I look over my shoulder- walkers! They've made it up the stairs, and they're headed down the hallway towards us.
+<action>With a new found strength, I hold %Tiffany% and push myself up off my knee.</action>
-<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
+<character.one.pain.neutral.neutral-backpack>Sarah</character>
-The stranger sees them too.
+<action>I topple and nearly fall, but manage to recover.</action>
+<action>Walkers have us mostly surrounded now, leaving the back wall as the only escape route.</action>
+<action>I hastily carry %Tiffany% the last few meters to the wall, then stop.</action>
-"Shit", he mutters. He goes to the window and steps through. Nice of him to wait for us...
+<speech.sarah>%Tiffany%, I need you to climb to the top of the wall, okay?</speech>
-<% } %>
+<speech.tiffany>But I'm too small.</speech>
-"Time to go %Tiffany%", I say, turning to face her. She looks absolutely miserable, but I can't do anything about that right now. I take her hand again and go back to the window.
+<speech.sarah>Don't worry, I'm going to give you a boost up, but you need to do the rest.</speech>
-"Step through, watch your head", I say. %Tiffany% complies, without saying a word. I take one last look over my shoulder...
+<action>I look over my shoulder, we only have seconds.</action>
-[[[Step through the window]|C1P59V1]]<% if (!window.story.getChoice("Chapter1", "TiffBackstory") == "Killing") { %>
+<speech.sarah>We're only going to get one shot at this, are you ready?</speech>
-"Well done %Tiffany%", I say, breathless. She looks a bit shaken.
+<action>She takes a deep breath.</action>
-<% } %>
+<speech.tiffany>Ready</speech>
-I force myself up off the ground, pain screaming from every part of my body. <% if (window.story.getChoice("Chapter1", "TiffBackstory") == "Killing") { print(`I pull the knife out of the walker's head, and`) } else { print(`I take %Tiffany%'s hand and`) } %> look around: the house is a no-go, which only leaves the way I came in originally, the back wall.
+<choices>[[[Boost %Tiffany% up]|C1P67]]</choices><ui>standard</ui>
-<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
+<character.one.pain.neutral.neutral-backpack>Sarah</character>
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-"Hey, you alright?", the stranger says, coming up from behind us.
+<action>I bend my knees, then shove %Tiffany% as high as I can manage.</action>
-"Where the hell were you?", I ask.
+<character.one.pain.pain.neutral-backpack>Sarah</character>
-"I had to climb down a drainpipe to get off the roof, I wasn't so keen on your rapid decent option", he replies.
+<action>A crippling pain shoots up my back-</action>
+<action>I don't get her up as far as I thought I could.</action>
+<action>But she manages to grab the top of the wall with her little hands.</action>
-I roll my eyes.
+<speech.sarah>Good girl %Tiffany%!</speech>
+<speech.sarah>Now climb, climb!</speech>
-"We're going over the back wall", I say.
+<action>I grab her dangling legs and push her up.</action>
+<action>Between my pushing and her climbing, she is able to lay flat on top of the wall.</action>
+<action>She spins around and looks back down at me.</action>
-"Yeah, alright, good idea", he replies as he starts heading towards it.
+<speech.tiffany>Look out!</speech>
-<% } %>
+<character.two.scared.scared.scared-backpack>Tiffany</character>
-<% if (window.story.getChoice("Chapter1", "Kicked")) { %>
+<resetcharacter.two/>
-I look back at the house. The back door is wide open, and walkers are making their way down the patio steps. Guess that doorstop didn't pose much of an obstacle to them.
+<action>I swing around: a walker is reaching out of me, only a meter away.</action>
-<% } %>
+<character.one.fighting.fighting.fighting-backpack>Sarah</character>
-I start towards the back wall, pulling %Tiffany% along behind me. As we get to it, I feel more resistance on my arm from %Tiffany%: she's trying to get me to stop. I comply and face her.
+<action>I pull out Lucy's knife and take a swing at the arm.</action>
+<action>The knife connects, and I manage to take part of the rotting arm off from the rest of the body.</action>
+<action>The walker is up in my face now.</action>
+<action>Instinctively, I contract my arm and then swing hard at the walker.</action>
+<action>My hand hits the side of the walker's head.</action>
+<action>I would imagine that should have hurt, but I'm in so much pain right now, I don't even feel it.</action>
+<action>The force is enough to knock the walker's jaw off its head and cause it to stumble into another walker next to it.</action>
-"What, what's wrong?", I say quickly, wary of the walkers slowly approaching from our rear.
+<character.two.scared.scared.scared-backpack>Tiffany</character>
-"We have to go back for mom, we can't leave her here with the monsters!", she says, tears again budding in the corners of her big blue eyes.
+<speech.tiffany>Come on!</speech>
-[[I know how you feel|C1P64V1]]<br>
-[[We will end up dead too|C1P64V2]]<br>
-[[Now is not the time %Tiffany%!|C1P64V3]]I painfully drop down on one knee to be level with her.
+<action>Walkers are approaching me from all angles: it's now or never.</action>
-"%Tiffany%, believe me, I know exactly how you are feeling right now, but I need you to be brave like your mom was", I say to her.
+<choices>[[[Climb the wall]|C1P68]]</choices><ui>standard</ui>
-<%= window.story.customRender("F: Look behind") %>I painfully drop down on one knee to be level with her, then gentle grab both of her shoulders and look her directly in the eyes.
+<character.one.pain.pain.neutral-backpack>Sarah</character>
+<character.two.scared.scared.scared-backpack>Tiffany</character>
-"%Tiffany%, I understand you are processing a lot of emotions right now, but unless you and I get over that wall, you're not going to be alive to process them", I say to her.
+<action>I spin around, and with the last of my strength, jump.</action>
+<action>I grab the top of the wall and begin to worm my way up, but it's slippery from the rain.</action>
-<%= window.story.customRender("F: Look behind") %>"%Tiffany%, now is not the time! I'm so, so sorry that your mom is dead, but unless you want to end up just like her, we need to get over this wall.", I say to her.
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-She stares back at me, a lick of anger visible across her face. Shit, this isn't working...
+<action>I feel %Tiffany% grabbing my hoodie trying to help pull me up, but I'm far too heavy for her.</action>
+<action>Halfway up I feel hands grabbing at my feet.</action>
+<action>Without looking, I kick out and try to use my feet to get a better grip on the wall.</action>
+<action>Shit- one of the walkers has grabbed my leg!</action>
-I painfully drop down on one knee to be level with her.
+<choices>[[[Push against walker]|C1P69]]</choices><ui>standard</ui>
-<%= window.story.customRender("F: Look behind") %>I look behind her, walkers fast approaching. We really need to get moving.
+<character.one.pain.pain.neutral-backpack>Sarah</character>
+<character.two.confused.sad.neutral-backpack>Tiffany</character>
-"Look, %Tiffany%, when my sister died, I was a wreck: I didn't know what to do, and it took a long time for me to come to terms with what happened; I'm still processing it to this day", I explain to her.
-"I know you don't care about anything else in the world at the moment except your mom, but try to understand that your mom died so you could live. Don't let her death be in vain", I say, trying to reason her.
+<action>I lean back slightly and push myself up using the walker as a stepping stone.</action>
+<action>I swing myself up, past %Tiffany%, and over onto the other side.</action>
-We continue to stare at each other, the walkers nearly on us now, rain soaking us both. I can't leave her here, I just can't, I wouldn't be able to live with myself.
+<resetcharacter.two/>
-[[[Pled with %Tiffany%]|C1P65]]<%
-window.story.delayedText(27 * 1000, "one");
-window.story.delayedText(35 * 1000, "two");
-%>
+<action>I land awkwardly and fall to the ground.</action>
-"Please, %Tiffany%", I say, exhausted.
+<character.two.neutral.neutral.neutral-backpack>Tiffany</character>
-I look behind her again, scores of walkers are approaching. I'm chilled to the bone thanks to this rain, and barely have the strength to walk; I can't take on those walkers, even with Lucy's knife, nor can I force %Tiffany%. I can't leave her, and she won't leave: so I guess we're both dying here today. I sigh, close my eyes, and lower my head.
+<action>%Tiffany% jumps down and lands gracefully beside me.</action>
+<action>I lay for a moment...</action>
-I can hear the walkers all around us now, their collective drones making an almost musical sound when paired with the sound of the rain...
+<character.one.pain.happy.neutral-backpack>Sarah</character>
-<div-#one>
+<action>Even though every inch of my body is screaming in pain, I manage to let a little chuckle out.</action>
-Oof, one of the walkers has grabbed me. Their firm arms wrapped around me, their head on my neck, likely preparing to take a bite...
+<speech.sarah>Holy shit...</speech>
-</div>
+<character.two.happy.happy.neutral-backpack>Tiffany</character>
-<div-#two>
+<speech.tiffany>Swear!</speech>
-\* Sniffle \*
+<action>I can hear the grin in her voice.</action>
-Huh? I open my eyes- it's not a walker, it's %Tiffany%... and she's crying.
+<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
+
+<character.two>Charles</character>
-"I'm sorry", %Tiffany% whispers.
+ <% if (!window.story.getChoice("Chapter1", "CharlesName")) { %>
+
+ <characteroverride.two>???</characteroverride>
+
+ <% } %>
-I smile.
+<speech.charles>Hey, what took you guys so long?</speech>
-"Don't worry, everything will be alright", I reply softly.
+<% } %>
-[[[Pick %Tiffany% up]|C1P66]]
+<clearwait>3000</clearwait>
-<div-#two>
-I muster all my strength and push myself up off my knee. I topple and nearly fall, but manage to recover. Walkers have us mostly surrounded now, the only option is the back wall.
+<character.two.happy.neutral.neutral-backpack>Tiffany</character>
-I hastily carry %Tiffany% the last few meters to the wall, then stop.
+<speech.tiffany>So, what do we do now?</speech>
-"%Tiffany%, I need you to climb to the top of the wall, okay?", I say.
+<choices>[[Continue|C1 End]]</choices><ui>minimal</ui>
-"But I'm too small", she replies.
+<action>Chapter One</action>
+<action>Poor Choices</action>
-"I'm going to give you a boost up, but you need to do the rest", I reply.
+<choices>[[Continue|C1 Achievements]]</choices><% window.story.loadStats() %>
-I look over my shoulder, we only have seconds.
+<span#statsLoading>Loading...</span>
+
+<div-#statsContainer></div>
-"We're only going to get one shot at this, are you ready?", I ask.
+[[Continue|C1 Credits]]<img.title-image>
-She takes a deep breath.
+<span>Loading Save...</span><span#achievementsLoading>Loading...</span>
-"Ready", %Tiffany% says.
+<div-#achievementsContainer>
+ <span#achievementsCounter></span>
+ <hr>
+</div>
-[[[Boost %Tiffany% up]|C1P67]]I bend my knees, then shove %Tiffany% as high as I can manage. A crippling pain shoots up my back, I don't get her as far as I thought I could. She manages to grab the top of the wall with her little hands.
+[[Continue|C1 Statistics]]
-"Good girl %Tiffany%! Now climb!", I exclaim, as I grab her dangling legs and push her up.
+<% window.story.loadAchievements() %><%= window.story.render("Credits") %>
-Between my pushing and her climbing, she is able to lay flat on top of the wall. She spins around and looks back down at me.
+[[Continue|C2 Intro]]<ui>standard</ui>
+<character.one.pain.neutral.neutral-backpack>Sarah</character>
+<character.two.sad.neutral.neutral-backpack>Tiffany</character>
-"Look out!", she screams.
+<action>We exit the room and go to the end of the hallway, there's a games room of sorts.</action>
+<action>There's a table tennis table in the middle of the open space, a sofa and TV in the corner, and also a large circular window: that's where the light was coming from.</action><character.one.pain.neutral.neutral-backpack>Sarah</character>
+<resetcharacter.two/>
-I swing around: a walker is reaching out of me, only a meter away. I pull out Lucy's knife and take a swing at the arm. The knife connects, and I manage to take part of the rotting arm off from the rest of the body.
+<action>I go over to the window and take a closer look.</action>
+<action>The rain outside is really heavy now, it's hard to see more than a few meters.</action>
+<action>On the other side of the window is the patio roof, that might be our ticket out of here, if I can find a way to get this window open...</action>
+<action>CREAK CREAK, CREAK, CREAK CREAK</action>
+<action>Crap, the stairs behind us, no time to waste.</action>
+<action>I look at the window frame, it doesn't look like it was designed to be opened.</action>
-The walker is up in my face now. Instinctively, I contract my arm and then swing hard at the walker's head. My hand hits the side of the walker's head; I would imagine that should have hurt, but I'm in so much pain right now, I don't even feel it. The force is enough to knock the walker's jaw away from its head and cause it to stumble into another walker behind it.
+<% if (!window.story.getChoice("Chapter1", "Kicked")) { %>
-"Come on!", %Tiffany% shouts from behind me.
+<action>That's alright though, I'm already a window opening expert.</action>
-Walkers are approaching me from all angles: it's now or never.
+<% } %>
-[[[Climb the wall]|C1P68]]I spin around, and with the last of my strength, jump. I grab the top of the wall and begin to worm my way up. It's slippery from the rain, I feel %Tiffany% grabbing my hoodie trying to help pull me up, but I'm far too heavy for her.
+<% if (window.story.getChoice("Chapter1", "Soap")) { %>
-Halfway up I feel hands grabbing at my feet. Without looking, I kick out and try to use my feet to get a better grip on the wall. Shit- one of the walkers has grabbed my leg!
+<action>I feel around in my pockets for anything useful...</action>
-[[[Push against walker]|C1P69]]<% window.story.delayedText(25 * 1000) %>
+<choices>[[[Feel hard object]|C1P58V11]]</choices>
-I lean back slightly and push myself up using the walker as a stepping stone. I swing myself up, past %Tiffany%, and over onto the other side. I land awkwardly and fall to the ground. %Tiffany% jumps down and lands gracefully beside me.
+<% } else { %>
-I lay for a moment; even though every inch of my body is screaming in pain, I manage to let a little chuckle out.
+<action>I look around for something to break the glass with...</action>
+<action>The table tennis table has a clamp on either side holding the net up, they look pretty solid.</action>
-"Holy shit", I say.
+<choices>[[[Use Clamp]|C1P58V12]]</choices>
-"Swear", %Tiffany% replies; I can hear the grin in her voice.
+<% } %><%= window.story.render("F: Games Room") %>
<% if (!window.story.getChoice("Chapter1", "StrangerDied")) { %>
-"Hey, what took you guys so long?", the stranger says, walking over.
+<%= window.story.render("F: Stranger Alive") %>
<% } %>
-<div-#delayed>
-
-"So, what do we do now?", she asks.
-
-[[Continue|C1 End]]
+<%= window.story.render("F: The window") %><character.two>Charles</character>
-</div><%
-window.story.delayedText(2000, "one", 500);
-window.story.delayedText(5000, "two", 500);
-window.story.delayedText(8000, "three", 500);
-%>
+<% if (window.story.getChoice("Chapter1", "LucySavesStranger")) { %>
-<div-#one>
-<h1>Chapter One</h1>
+<action>Charles is standing at the window.</action>
+<action>He turns around and faces us.</action>
-</div>
+<speech.charles>Hey, are you guys okay?</speech>
-<div-#two>
-<h3>Poor Choices</h3>
-</div>
+<action>He looks past us.</action>
-<div-#three>
-[[Continue|C1 Achievements]]
-</div><% window.story.loadStats() %>
+<speech>Where's the other lady?</speech>
-<span#statsLoading>Loading...</span>
+<action>I shake my head slowly.</action>
-<div-#statsContainer></div>
+<speech.charles>Shit...</speech>
+<speech.charles>Sorry for uh, your loss.</speech>
-[[Continue|C1 Credits]]<img.title-image>
+<speech.sarah>Thanks...</speech>
+<speech.sarah>We need to get out of here, any ideas?</speech>
-<span>Loading Save...</span><% window.story.loadAchievements() %>
+<speech.charles>I'm with you on that.</speech>
-<span#achievementsLoading>Loading...</span>
-<div-#achievementsContainer>
- <span#achievementsCounter></span>
- <hr>
-</div>
+<% } else if (!window.story.getChoice("Chapter1", "SaveStranger")) { %>
-[[Continue|C1 Statistics]]<%= window.story.customRender("Credits") %>
+<action>The stranger is standing next to the window.</action>
-[[Continue|C2 Intro]]We exit the room and go to the end of the hallway, there's a games room of sorts. There's a table tennis table in the middle of the open space, a sofa and TV in the corner, and there's also a large circular window: that's where the light was coming from.I go over to the window and take a closer look; the rain outside is really heavy now, it's hard to see more than a few meters. On the other side of the window is the patio roof, that might be our ticket out of here, if I can find a way to get this window open...
+<character.one.angry.angry.neutral-backpack>Sarah</character>
-\*Creak creak, creak, creak creak\*
+<action>Oh boy, am I going to give this shithead a piece of my mind.</action>
-The stairs behind us, no time to waste. I look at the window frame, it doesn't look like it was designed to be opened<% if (!window.story.getChoice("Chapter1", "Kicked")) { print(", but that's alright, I'm already a window opening expert") } %>...
+<speech.sarah>Are you proud of yourself, huh?!</speech>
+<speech.sarah>Your little performance out there, got Lucy killed!</speech>
-<% if (window.story.getChoice("Chapter1", "Soap")) { %>
-I feel around in my pockets for anything useful...
+<character.two.angry>Charles</character>
+<characteroverride.two>???</characteroverride>
-[[[Use Soap Bar]|C1P58V11]]
-<% } else { %>
-I look around for something to break the glass with... The table tennis table has a clamp on either side holding the net up, they look pretty solid.
+<action>He spins around to face me, his face already red with anger.</action>
+<action>Clearly he's ready for round two as well.</action>
-[[[Use Clamp]|C1P58V12]]
-<% } %><%= window.story.customRender("F: Games Room") %>
+<speech.charles>If you had the balls to come outside and help, maybe things would have been different!</speech>
+<speech.charles>Had you considered that, bitch!?</speech>
-<div#strangerAlive></div>
+<speech.sarah>What fuckin' fantasy land do you live in where you expect strangers to risk their lives for you?</speech>
+<speech.sarah>Strangers with children to look after, no less!</speech>
-<script>
-// Using script tags here instead of Underscore templates because you can't use if statements and a render in Interpolation tags
-if (!window.story.getChoice("Chapter1", "StrangerDied")) {
- $("#strangerAlive").replaceWith(window.story.customRender("F: Stranger Alive"));
-}
-</script>
+<speech.charles>Children?!</speech>
-<%= window.story.customRender("F: The window") %><%
-if (window.story.getChoice("Chapter1", "LucySavesStranger")) { %>
+<action>He pauses briefly.</action>
-Charles is standing next to the window. He turns around and faces us.
+<character.two>Charles</character>
+<characteroverride.two>???</characteroverride>
-"Hey, are you guys OK? Where's that lady?", he asks.
+<speech.charles>What children?</speech>
-I shake my head slowly.
+<action>He adds, quieter than before.</action>
+<action>We stand for a moment, then he bends his head and takes a step to his side to see around me.</action>
-"Oh shit, for real? But she was like, totally badass five seconds ago!", he says.
+<character.one.sad.neutral.neutral-backpack>Tiffany</character>
-"I'm like, really sorry for your loss, she seemed really chill", he adds.
+<action>%Tiffany% had been hiding behind me for the duration of the pissing match.</action>
+<action>He leans back again.</action>
-Who speaks like that anymore?
+<character.one.angry.angry.neutral-backpack>Sarah</character>
-"Thanks... we need to get out of here, any ideas?", I ask.
+<speech.charles>That lady... was she her-</speech>
-"Yeah totally; I had a look around up here, but there's no way out. The only thing is this window, but I can't find a way to open it", he replies.
+<speech.sarah>Yes, and now thanks to you, she's dead.</speech>
-<% } else if (!window.story.getChoice("Chapter1", "SaveStranger")) { %>
+<action>I deliberately cut him off.</action>
-The stranger is standing next to the window. Oh boy, am I going to give this shithead a piece of my mind.
+<speech.charles>I- I didn't know...</speech>
-"Are you proud of yourself, huh? Your little performance out there, got Lucy killed!", I shout angrily.
+<speech.sarah>Save it.</speech>
+<speech.sarah>We need to get out of here.</speech>
-He spins around to face me, his face already red with anger; clearly, he's ready for round two as well.
+<speech.charles>Yeah... right, okay.</speech>
-"If you had the balls to come outside and help, maybe things would have been different, had you considered that bitch?", he retorts.
+<% } %>
-"What fuckin' fantasy land do you live in where you expect strangers to risk their lives for you? Strangers with children to look after, no less?!"
+<speech.charles>I had a look around up here, but there's no way out.</speech>
+<speech.charles>Only thing is this window, but it doesn't seem like it opens.</speech><ui>standard</ui>
+<character.one.pain.neutral.neutral-backpack>Sarah</character>
+<character.two.sad.sad.neutral-backpack>Tiffany</character>
-"Children?! What children?", he replies, sounding like I've caught him off guard.
+<speech.sarah>Push this thing off me %Tiffany%!</speech>
-We stand for a moment, then he bends his head and takes a step to his side to see around me. %Tiffany% has been hiding behind me this whole time.
+<action>She slowly approaches from the side, then takes a bit of a run-up.</action>
+<action>With both hands outstretched, she pushes the walker off me.</action>
+<action>It rolls, landing on its back; immediately starting to get up again.</action>
+<action>I crawl towards the knife, then pick it up.</action>
+<action>The walker is nearly on my again-</action>
+<action>It lunge-</action>
+<action>SPLOSH</action>
+<action>I was ready for it this time.</action>
+<action>I put the knife clean between its eyes, or rather, where its eyes should have been.</action>
+<action>The walker goes limp and flops to the ground.</action>
-He leans back again.
+<choices>[[[Get up]|C1P64]]</choices><ui>standard</ui>
+<character.one.pain.neutral.neutral-backpack>Sarah</character>
+<character.two.sad.sad.neutral-backpack>Tiffany</character>
-"That lady... was she her-", he starts.
+<speech.sarah>Use the knife %Tiffany%!</speech>
-"Yes, and now she's dead, no thanks to you", I grumble, cutting him off.
+<action>Pointing to it with my free hand.</action>
-"I- I didn't know", he stumbles.
+<resetcharacter.two/>
-"Save it. We need to get out of here", I reply.
+<action>She goes around behind me out of sight...</action>
-"Yeah... right. I had a look around up here, but there's no way out. The only thing is this window, but I can't find a way to open it", he says.
+<character.two.sad.sad.neutral-backpack>Tiffany</character>
-<% } %>"Push this thing off me %Tiffany%!", I shout.
+<action>...then comes back over and stands off to my side.</action>
-She slowly approaches from the side, then takes a bit of a run-up and with both hands stretched outwards, pushes the walker off me.
+<speech.tiffany>Wha- what do I do with it?</speech>
-It rolls one and lands on its back, it immediately starts to get up again. I crawl back towards the knife, then pick it up. The walker is nearly on my again, it lunges, I put the knife clean between its eyes, or rather, where its eyes should have been.
+<speech.sarah>Stab it %Tiffany%!</speech>
+<speech.sarah>In the head! The head!</speech>
-The walker goes limp and flops to the ground.
+<action>I reply frantically.</action>
+<action>I can't hold this thing for much longer.</action>
+<action>%Tiffany% comes right up next to the walker...</action>
+<action>Raises the knife almost comically high above her head, then...</action>
+<!-- TODO: SFX here -->
+<action>SPLAT</action>
-[[[Get up]|C1P64]]"Use the knife %Tiffany%!", I shout, pointing to it with my free hand.
+<character.one.neutral.neutral.neutral-backpack>Sarah</character>
-She goes around behind me out of sight, then comes back over and stands off to my side.
+<action>Walker bits get all over my face.</action>
+<action>%Tiffany% steps back, the walker goes limp and I push it off.</action>
+<action>I reach over and pull the knife out of the back of its head.</action>
-"What do I do with it?", she shouts.
+<choices>[[[Get up]|C1P64]]</choices><ui>standard</ui>
+<character.one.pain.neutral.neutral-backpack>Sarah</character>
+<character.two.sad.sad.neutral-backpack>Tiffany</character>
-"Stab it %Tiffany%, in the head! The head!", I reply frantically; I can't hold this thing for much longer.
+<speech.sarah>Get me the knife %Tiffany%!</speech>
-%Tiffany% comes right up next to the walker and I, raises the knife almost comically high above her head, then brings it down.
+<action>Pointing to it with my free hand.</action>
-\* Splat \*
+<resetcharacter.two/>
-Walker bits get all over my face, %Tiffany% steps back, the walker goes limp and I push it off. I reach over and pull the knife out of the back of its head.
+<action>She goes around behind me out of sight...</action>
-[[[Get up]|C1P64]]"Get me the knife %Tiffany%!", I shout, pointing to it with my free hand.
+<character.two.sad.sad.neutral-backpack>Tiffany</character>
-She goes around behind me out of sight, then comes back over and stands over me, nerviosuly holding out the knife. If I grab it like that I'm going to cut myself, no time to muck around. I grab %Tiffany%'s hand with my free hand and pull the knife and her along with it the last few inches to the walker's head.
+<action>...then comes back over and stands over me, nervously holding out the knife blade first.</action>
+<action>If I grab it like that I'm going to cut myself, no time to muck around.</action>
+<character.two.happy.sad.neutral-backpack>Tiffany</character>
+<action>I grab %Tiffany%'s wrist with my free hand and pull the knife and her along with it the last few inches to the walker's head.</action>
+<!-- TODO: SFX here -->
+<action>SPLAT</action>
+<action>Walker bits get all over my face.</action>
-\* Splat \*
+<character.two.sad.sad.neutral-backpack>Tiffany</character>
-Walker bits get all over my face, I let go of %Tiffany%'s hand and she steps back out of the way, the walker, knife still in it’s head, goes limp, and I push it off. I reach over and pull the knife out of its face.
+<action>I let go of %Tiffany% and she steps backwards.</action>
+<action>The walker, knife still in it's head, goes limp: I push it off.</action>
+<action>I reach over and pull the knife out of its face.</action>
-[[[Get up]|C1P64]]### Chapter Two
+<choices>[[[Get up]|C1P64]]</choices>### Chapter Two
<%
window.story.delayedText(4000, "one", 0);
@@ -3178,19 +6451,97 @@
[[Return the Main Menu|Title Screen]]
-</div><img.title-image>
+</div><img.title-image>
-<%= window.story.customRender("Settings") %>
+<%= window.story.render("Settings") %>
-<a0 onclick="window.story.pauseMenu()">Resume</a><div#title-button>
+<a0.sound-confirm onclick="window.story.pauseMenu()">Resume</a><div#title-button>
<p>Game Version: v<% print(window.story.version) %></p>
- <a onclick="window.story.toggleDebug()">Toggle Debug Mode<br><span.smaller>(Recommended for Mobile Users)</span></a>
<a onclick="window.story.toggleFont()">Toggle Font</a>
<a onclick="window.story.toggleAchievements()">Toggle Achievements</a>
-</div><div#title-button>
+ <a onclick="window.story.toggleFullscreen()">Toggle Fullscreen</a>
+</div><div#title-button>
[[Launch Game|Network Check]]
-</div>
+</div>This game has a lot of images: UI, characters, etc.
+We're loading those images right now.
+Please sit tight!
+
+<progress#loading-bar max="100"></progress>
+<label#loading-bar-label for="loading-bar">0%</label><input#debugSelector type="text" placeholder="Type Passage Here" autocomplete="off" value="C1P"></input>
+<button#debugGo>Go</button>
+
+<br><hr>
+
+C<input#debugSelectorC type="text" placeholder="Type Chapter Here" autocomplete="off" value="1"></input>
+P<input#debugSelectorP type="text" placeholder="Type Passage Here" autocomplete="off" autofocus></input>
+V<input#debugSelectorV type="text" placeholder="Type Variation Here" autocomplete="off"></input>
+<button#debugGo2>Go</button>
+
+<script>
+ $("#debugGo").click(function() {
+ const passage = $("#debugSelector").val();
+
+ window.story.show(passage.startsWith("C1") ? passage.toUpperCase() : passage);
+ });
+
+ $("#debugGo2").click(function() {
+ let chapter = $("#debugSelectorC").val();
+ let passage = $("#debugSelectorP").val();
+ let variation = $("#debugSelectorV").val();
+
+ if (chapter) chapter = `C${chapter}`;
+ if (passage) passage = `P${passage}`;
+ if (variation) variation = `V${variation}`;
+
+ window.story.show(chapter + passage + variation);
+ });
+</script><choices>[[[Rollover]|C1P12]]</choices><action>%Tiffany% sounds scared.</action>
+
+<character.two>Unknown</character>
+
+<speech.unknown>Get off me you sons of bitches!</speech>
+
+<action>The voice from outside again.</action>
+<action>It sounds like a guy.</action><ui>standard</ui>
+<character.one.angry.eyes>Sarah</character>
+<character.two.scared.ditto>Tiffany</character>
+
+<action>I look at %Tiffany%.</action>
+<action>She's got her feet up on the seat, and buried her head in her knees.</action>
+<action>She must be terrified.</action><div#gallery-container.gallery>
+ <img#gallery-image-1>
+ <img#gallery-image-2>
+ <img#gallery-image-3>
+ <img#gallery-image-4>
+ <img#gallery-image-5>
+ <img#gallery-image-6>
+ <img#gallery-image-7>
+ <img#gallery-image-8>
+</div>
+
+Character Artwork - Despoina "DesDarkDesigns"<br>
+<a href="https://linktr.ee/despoinanyx" target="_blank">https://linktr.ee/despoinanyx</a>
+
+[[Back|Artwork]]<%= window.story.render("F: Artwork") %>
+
+<% window.story.createGalleryItem(1, "Lucy", "neutral"); %>
+<% window.story.createGalleryItem(2, "Lucy", "neutral", "neutral-mask", "neutral-mask"); %>
+<% window.story.createGalleryItem(3, "Lucy", "fighting"); %>
+<% window.story.createGalleryItem(4, "Lucy", "concern", "concern", "neutral"); %>
+<% window.story.createGalleryItem(5, "Lucy", "happy", "happy", "neutral"); %>
+<% window.story.createGalleryItem(6, "Lucy", "sad", "sad", "neutral"); %><%= window.story.render("F: Artwork") %>
+
+<% window.story.createGalleryItem(1, "Charles", "neutral"); %>
+<% window.story.createGalleryItem(2, "Charles", "fighting"); %>
+<% window.story.createGalleryItem(3, "Charles", "angry", "angry", "neutral"); %>
+<% window.story.createGalleryItem(4, "Charles", "sad", "sad", "neutral"); %>
+<% window.story.createGalleryItem(5, "Charles", "scared", "scared", "neutral"); %><%= window.story.render("F: Artwork") %>
+
+<% window.story.createGalleryItem(1, "Sophia", "neutral"); %>
+<% window.story.createGalleryItem(2, "Sophia", "close-up", "neutral-close-up", "close-up"); %>
+<% window.story.createGalleryItem(3, "Sophia", "demonic", "demonic", "neutral"); %>
+<% window.story.createGalleryItem(4, "Sophia", "excited", "excited", "neutral"); %>