<div class="chapterHead"><h2>Chapter 1</h2><hr><h1>Chapter Title</h1></div>
Hello! This is Dark Water, a simple Harlowe template for interactive stories made by (link:"Darthsuki")[(gotoURL:"http://darthsuki.tumblr.com/";)] on tumblr. This template is free for personal and comercial use, but please provide a link to the file when possible so that others can find it as well!
Features included in this template:
* Simple Inventory System (via the Gersande's Blog, (link:"documentation here")[(gotoURL:"https://gersande.com/blog/designing-inventories-in-twine-2-with-the-built-in-harlowe-macros/";)])
* Reader Input Functionality (via Ex Post Geek, (link:"documentation here")[(gotoURL:"https://exgeekfacto.blogspot.com/2018/02/InputStyles.html")])
* A hide-able header for specific passages by using the code found at the 'startup' passage (basically tagging it as true/shown or false/hidden)
* A simple save/load function (as Harlowe does not have one by default); it will save progress and reader-input information!
* Two start options: if the player wants to start the story right away and if they want to set up their personal settings (name, pronouns, etc) first.
<div class="center"><div class="storychoice">[[Let's get to know you first...|Personal Settings Start]]</div></div><div class="center"><div class="storychoice">[[Just start the story!|Start]]</div></div>
(if: not ((passage:)'s tags contains "menu"))[(set: $lastPassage to (passage:)'s name)]This template was made with the intention of being a longer project, so by using Sugarcube the reader has the option to save their game in multiple slots. The reader also has the ability to access their inventory and change their personal settings at any time; no need to restart the game to change their name!
If you want to check out the credits and resources page you need to-
Oh, what's that on the ground?
<div class="center"><div class="storychoice">[[Pick up the item|Credits]]</div></div>
(if: not ((passage:)'s tags contains "menu"))[(set: $lastPassage to (passage:)'s name)](if: $showheader is 'true') [<ul class="headerLinks"><li class="save"><i class="fas fa-hdd"></i>(link:"Save Game")[(if:(save-game:"Slot A"))[Game Saved!](else: )[Sorry, I couldn't save your game.]]</li><li class="load"><i class="fas fa-upload"></i>(if: $Saves contains "Slot A")[ (link: "Load Game")[(load-game:"Slot A")]
]</li><li class="restart"><i class="fa fa-fast-backward" aria-hidden="true"></i>[[Restart Game->Introduction]]<li><i class="fas fa-archive"></i>[[Game Inventory]]</li><li><i class="fas fa-cogs"></i>[[Personal Settings]]</li></ul></div></div></div><!--TURN TAGS INTO CSS CLASSES-->{(print: "<script>$('html').removeClass(\)</script>")(if: (passage:)'s tags's length > 0)[(print: "<script>$('html').addClass('" + (passage:)'s tags.join(' ') + "'\)</script>")]}<hr>]
<div class="inventory"><div class="center">
<h2>Your Inventory</h2>
(if: $inv's length > 0)[](else:)[Your inventory is empty.](if: $inv contains "Credits and Resources")[<i class="fas fa-archive"></i> [[Credits and Resources]]]
</div>
<div class="center">(link-goto: "Leave Menu", $lastPassage)</div><div class="center"><h1>Personal Settings</h1>Your First Name: <input type="text" data-varname="firstname">\
<script>processInputElements();</script>
Your Last Name: <input type="text" data-varname="lastname">\
<script>processInputElements();</script>
Your Age: <input type="text" data-varname="age">\
<script>processInputElements();</script>
[[Submit Settings|Pronouns]]
(if: not ((passage:)'s tags contains "menu"))[(set: $lastPassage to (passage:)'s name)]<div class="center"><h1>Personal Settings</h1>Your First Name: <input type="text" data-varname="firstname">\
<script>processInputElements();</script>
Your Last Name: <input type="text" data-varname="lastname">\
<script>processInputElements();</script>
Your Age: <input type="text" data-varname="age">\
<script>processInputElements();</script>
<hr><h1>Pronouns</h1>Replace the bolded words with your desired pronouns; it will default to they/them if nothing is entered.
**They** are playing this game. <input type="text" data-varname="sp">\
<script>processInputElements();</script>
I gave the game to **them**. <input type="text" data-varname="op">\
<script>processInputElements();</script>
**Their** game has been saved. <input type="text" data-varname="pd">\
<script>processInputElements();</script>
The game is **theirs.** <input type="text" data-varname="pp">\
<script>processInputElements();</script>
The player is in a class all by **themself**. <input type="text" data-varname="rp">\<script>processInputElements();</script>
(link-goto: "Leave Menu", $lastPassage)
[(if: $firstname is 0)
[(set: $firstname to "Wanderer")](if: $lastname is 0)
[(set: $lastname to "")](if: $age is 0)
[(set: $age to "21")](if: $sp is 0)
[(set: $sp to "they")](if: $op is 0)
[(set: $op to "them")](if: $pd is 0)
[(set: $pd to "their")](if: $pp is 0)
[(set: $pp to "theirs")](if: $rp is 0)
[(set: $rp to "themself")]]<div class="center"><h1>Pronouns</h1>Replace the bolded words with your desired pronouns; it will default to they/them if nothing is entered.
**They** are playing this game.
<input type="text" data-varname="sp">\
<script>processInputElements();</script>
I gave the game to **them**.
<input type="text" data-varname="op">\
<script>processInputElements();</script>
**Their** game has been saved.
<input type="text" data-varname="pd">\
<script>processInputElements();</script>
The game is **theirs.**
<input type="text" data-varname="pp">\
<script>processInputElements();</script>
The player is in a class all by **themself**.
<input type="text" data-varname="rp">\
<script>processInputElements();</script>
[[Submit Settings|Start]]
(if: not ((passage:)'s tags contains "menu"))[(set: $lastPassage to (passage:)'s name)]{[(if: $firstname is 0)
[(set: $firstname to "Wanderer")](if: $lastname is 0)
[(set: $lastname to "")](if: $age is 0)
[(set: $age to "21")](if: $sp is 0)
[(set: $sp to "they")](if: $op is 0)
[(set: $op to "them")](if: $pd is 0)
[(set: $pd to "their")](if: $pp is 0)
[(set: $pp to "theirs")](if: $rp is 0)
[(set: $rp to "themself")]] (set: $inv to (a:))(set: $inv to $inv - (a: "Item"))
(set: $showheader to 'true')}<div class="chapterHead"><h1>Credits and Resources</h1><hr></div>
(link:"Gersande's Blog")[(gotoURL:"https://gersande.com/blog/designing-inventories-in-twine-2-with-the-built-in-harlowe-macros/";)] for putting everything together to make an inventory system simple and more-or-less easy to understand how to implement
(link:"Ex Geek Facto")[(gotoURL:"https://exgeekfacto.blogspot.com/2018/02/InputStyles.html")] for their information about reader inputs and how to implement them in a way that doesn't make you go crazy.
(link:"The Twine Wiki")[(gotoURL:"https://twinery.org/wiki/harlowe:reference")] for SO MANY resources and documentation I've scarcely touched but are super useful for anyone getting into using Twine
(link:"Astrid Dalmady")[(gotoURL:"https://astriddalmady.com/resources")] for an impressive library of resources in writing interactive fiction including everything from program resources to the concept of interactive fiction itself.
<div class="center">[[Back to Inventory|Game Inventory]](set: $inv to $inv + (a: "Credits and Resources"))You've picked up an item! To see the credits and further resources to use this template, check them out by accessing the inventory found on the left side of the screen.
(if: not ((passage:)'s tags contains "menu"))[(set: $lastPassage to (passage:)'s name)]