Your browser lacks required capabilities. Please upgrade it or switch to another to continue.
Loading…
/*Gil's new styling widgets*/
<<widget "stashlink">>@@.qbn-card;.stash;
<<linkto $args[0]>>
@@<</widget>>
<<widget "houselink">>@@.qbn-card;.house;
<<linkto $args[0]>>
@@<</widget>>
<<widget "scenelink">>@@.qbn-card;.scene;
<<linkto $args[0]>>
@@<</widget>>
/*end Gil's new styling widgets*/
/*
* Comma-separated lists: call with "linkto" for links instead
* of contents.
*/
<<widget "cardlist">>\
<<includeall $args[0] `$args[1] or "content"` "comma">>\
<</widget>>
/*
* Rows and columns of card contents in boxes: call with "linkbox"
* for links, or "coverbox" for covers.
*/
<<widget "cardcolumn">>@@.qbn-column;
<<includeall $args[0] `$args[1] or "contentbox"`>>
@@<</widget>>
<<widget "cardrow">>@@.qbn-row;
<<includeall $args[0] `$args[1] or "contentbox"`>>
@@<</widget>>
/* Comma separator (no serial comma). */
<<widget "comma">><<if $args[0]>> and <<else>>, <</if>><</widget>>
/* Wrapper widgets (card contents or links, optionally boxed). */
<<widget "cover">>\
<<set _qbn_cover to true>><<includecard $args[0]>><<unset _qbn_cover>>\
<</widget>>
<<widget "content">><<if `QBN.available($args[0])`>>\
<<unset _qbn_cover>><<includecard $args[0]>><<removecard $args[0] false>>\
<</if>><</widget>>
<<widget "linkto">><<print '[\[' + $args[0] + ']]'>><</widget>>
<<widget "coverbox">>@@.qbn-card;
<<cover $args[0]>>
@@<</widget>>
<<widget "contentbox">>@@.qbn-card;
<<content $args[0]>>
@@<</widget>>
<<widget "linkbox">>@@.qbn-card;
<<linkto $args[0]>>
@@<</widget>>
/* Conditional Links */
<<widget "linkif">>\
<<if $args[0]>><<= '[\['+($args[2] or $args[1])+'->'+$args[1]+']]'>>\
<<else>>@@.qbn-nolink;<<= $args[2] or $args[1]>>@@<</if>>\
<</widget>>
<<widget "linkcontents">><<linkif `QBN.available($args[1] or QBN.current)` `$args[1] or QBN.current` $args[0]>><</widget>>
/* Choice helpers */
<<widget "skillcheck">>\
<<set _qbnsuccess to $args[0].check($args[1])>>\
<</widget>>
<<widget "gotoresult">>\
<<if _qbnsuccess>><<set $args[0] to $args[0] + ' ' + Success>><</if>>\
<<if State.random() < 0.20 and Story.get('Rare ' + $args[0])>>\
<<set $args[0] to 'Rare ' + $args[0]>>\
<</if>>\
<<unset _qbnsuccess>><<removecard _qbncurrent false>><<goto $args[0]>>\
<</widget>><h1 style="text-align:center;">Welcome!</h1>
<div class="flex" style="justify-content: center;">
<div class="flexitem" style="flex-grow: 0;">
<img src="assets/thumbnail.jpg" style="max-width: 400px; flex-grow: 0; outline: 0.5px solid grey;">
</div>
</div>
<p style= "text-align: center;">Before you begin, please enter your game code below:
<<password "halloween" "Intro" "Let the Fun Begin!">>
</p>/*Macro: <<say>>
Syntax:<<say name [imageSrc]>>...<</say>>
This macro can be used to create speech boxes that aren't based on predefined characters, allowing you to use names that would be unsuitable as macro names, use bit characters that aren't worth defining, or change a character's name or image, or use characters that don't have associated images.
Arguments:
name: a character name that can be used in the text box.
imageSrc: (optional) a URL to an image resource to be used as a character portrait. */
<<say 'Rufus' 'assets/ronald-av.png'>>Hey there poopy head! Hey there poopy head! Hey there poopy head! Hey there poopy head! Hey there poopy head!<</say>>
<div class="sayright">
<<say 'Catgirl' 'assets/suzy-av.png'>>If you don't come with me I'm gonna dump you as my BF!<</say>>
</div>
<<say 'Bug Boy' 'assets/ronald-av.png'>>Ok then!<</say>>
/* without an image */<<say 'Some Guy'>>You n'wah!<</say>><div class="scenetext">
It's 7:00pm and the local kids have been running around madly for an hour already, trying their best to solve the Halloween scavenger hunt. Whoever wins get's a trophy and everyone else gets to share the CANDY CAULDRON.
You're itching to get out there and solve some puzzles, but Dad says you should give the other kids a head start, since your family is new to town. Dad is a detective and because the scavenger hunt was his idea, he doesn't want anyone to think he's favouring you.
So now you're sitting on the couch in front of the TV screen, counting down the seconds til you can start the game.
You put down your controller. The game was kind of boring anyway.
What do you do now?
[[Grab a Glass of Milk]] OR [[Look for Your Younger Brother]]
</div><div class="scenetext">
You walk into the kitchen, open the fridge, and pour yourself a glass of milk.
Through the back window you see some Imps flutter towards the woods. Greedy little creatures. Probably trying to scab some chocolate like they do every year. Imps are thuggish little pests, but as long as there's adults around the Imps are easy enough to deal with.
They do have a sweet tooth though, which makes them a bit of a menace sometimes, and especially at Halloween. It's nice to see some heading //away// from the town for once. Probably got kicked out of someone's garden and are going off to lick their wounds.
[[What's that sound?|The Crime]]
</div><div class="scenetext">
'Patrick!' You call out. Where has he got to? You check his room but he's not there.
But of course he's not. He doesn't have to wait for Halloween like you do.
Patrick's only 7, so if he solves the scavenger hunt and gets the trophy, no one is going to to cry unfair.
You sigh.
If Patrick comes back, you could ask him if he's found any clues. Surely that's allowed?
[[What's that sound?|The Crime]]
</div><div class="scenetext">
You hear the car door slam outside and your mum yell something. She sounds mad.
'What's the CANDY CAULDRON doing out here on the lawn?' Mum frowns as you race out the door.
'I left it on the porch a moment ago and now it's completely EMPTY!'
Oh no. No. No. No.
The CANDY CAULDRON was the scavenger hunt prize. You spent months filling it with delicious treats.
<<linkreplace "Now it's all gone.">>'And someone's kicked over the trash can too!' Mum snorts. 'Geez, steal the candy, vandalise our place - what's Halloween coming to?!'
Patrick comes out the side of the house from the back yard. 'What's going on?' he says. His face goes white when he sees the disaster.
'It's all gone!' he says in a small voice.
Your face goes red and you clench your fists. Who would do this!?
<<linkreplace "Mum rushes over to Patrick ">>...and gives him a hug. 'It's ok sweety,' Mum says, patting Patrick's head. 'I'm sure we'll find the candy.'
She turns to you and gives you a sad smile. 'I'm sorry,' she whispers softly over Patrick's head. 'I know how excited you were.'
Just then Dad comes out the front door wearing a wolf suit and carrying a pumpkin pale. His lips tighten when he sees the empty CANDY CAULDRON.
'A real crime!' he chuckles grimly.
<<linkreplace "You see your opportunity.">>'Dad,' you say. 'Can I try and find out who did it?'
'And miss the scavenger hunt?' Dad says, raising his eyebrows.
'Yeah,' you say calmly. 'I want to have a go at solving a real mystery. That's better than a trophy.'
'Done,' Dad says, and suddenly he grins. 'If you can find the thief before the scavenger hunt finishes, we still might be able to fill the CANDY CAULDRON!'
'Ok,' You say. 'I'll have to be fast!'
'That's right,' Dad says, 'And you'll have to use your detective skills to figure things out as you go!'
You nod. It's time to [[hunt for some evidence!|demo or paid]]<</linkreplace>>
<</linkreplace>><</linkreplace>>
<<set $stash to true>>
</div><h1 style="text-align:center;">Welcome!</h1>
<div class="flex" style="justify-content: center;">
<div class="flexitem" style="flex-grow: 0;">
<img src="assets/thumbnail.jpg" style="max-width: 400px; flex-grow: 0; outline: 0.5px solid grey;">
</div>
</div>
<p style= "text-align: center;">Before you begin, please enter your game code below.
<<password "halloweenhippo" "Game Setup" "Let the Fun Begin!">>
Note: If you're trying out the demo version you can use this code: ''demo''
</p><h1>Game Setup:</h1>
In this game you need to keep your senses sharp and your wits alert!
<span style="color: red;"><-- </span> Your ''Detective XP'' is shown by the <span style="color: red;">red bar </span>to the left.
You gain and lose XP by making inferences throughout the game. //Don't let it drop to zero! :P//
You also need to solve the mystery before the kids get back from the scavenger hunt, so time is precious!
Don't be afraid to click around on things and try stuff out. After all, a good detective gets their hands dirty!
<<if visited() is 1>>
<<if $difficulty is "paid">>
<strong>Choose your difficulty level, and the game will begin! </strong>
<<nobr>>
<<button "Chicken (No timer)">><<set $difficulty to "casual">><<goto [[Hunt]]>><</button>>--|--
<<button "Novice (60 min)">><<set $difficulty to "novice">><<goto [[Hunt]]>><</button>>--|--
<<button "Expert (45 min)">><<set $difficulty to "expert">><<goto [[Hunt]]>><</button>>--|--
<<button "Mastermind (30 min)">><<set $difficulty to "mastermind">><<goto [[Hunt]]>><</button>>
<</nobr>>
<<else>>
<strong> Note: In the free demo mode you get 10 minutes of game time. Buy the full version to get unlimited time. </strong>
When you're ready, click the button below and the game will begin!
<<button "Demo mode (10 min)">><<set $difficulty to "demo">><<goto [[Hunt]]>><</button>>
<</if>>
<<else>>
<- Don't forget you can always RESTART the game if you need to, by opening up the left hand side panel.
[[Back to the Game |Hunt]]
<</if>><<widget "password">> /*The name of the widget */
<<set _password to $args[0]>> /*setting the textbox password */
<<set _forwardingpassage to $args[1]>> /*setting the forwarding passage */
<<if $args[2]>>
<<set _buttonlabel to $args[2]>>/*setting the label for the textbox check button. If Designer hasn't included a button label it willfault to "Check!" */
<<else>>
<<set _buttonlabel to "Check!">>
<</if>>
<span id="answerfeedback"></span><br>
<<textbox "_code" "" autofocus>>
<<button _buttonlabel>>
<<set _code to _code.toLowerCase()>>
<<if _code.indexOf(_password) > -1>> /*checks code against the password set by the widget argument. If password is "brain" any instance of it will work, ie "brained" or "the brain" or "xyzsbrain"*/
<<set $difficulty to "paid">>
<<goto _forwardingpassage>>
<<elseif _code is "demo">>
<<goto _forwardingpassage>>
<<else>>
<<replace "#answerfeedback">>Hmm that doesn't look right...try again?<</replace>>
<</if>>
<</button>>
<</widget>>
/*USAGE: <<password "The Password" "Forwarding Passage" "Button Label">> "The Password", the second is the passage to forward to if the password is correct */<div style="position: fixed; bottom: 5px; right: 5px;"> <<link "Help" "Game Setup">><</link>> </div>
/*TAG-BASED QBN DISPLAY*/
/*<<if tags().includes("location")>> <<include [[Hunt]]>> <</if>> This will display location cards (via the Hunt passage) if you're in a place where you can Hunt*/
/*<<if tags().includes("map")>> <<include [[Map Locations]]>> <</if>> This will display map locations if you're in a place where you can Hunt*/
/*TAG usage*/
/*<<if tags().includes("forest")>>…the active passage is part of the forest…<</if>>
<<if tags("Lonely Glade").includes("forest")>>…the Lonely Glade passage is part of the forest…<</if>>
Story.lookup("tags", "forest");*/
/*-------Hunt QBN PASSAGE DISPLAY---------------------------------------------------------------------- */<<if visited() is 1>> /*Starting the timer on your FIRST visit*/
<<switch $difficulty>>
<<case "casual">>
/* no timer! */
<<case "novice">>
<<script>>setup.startCountdown(60 * 60, 'time is up');<</script>>
<<case "expert">>
<<script>>setup.startCountdown(45 * 60, 'time is up');<</script>>
<<case "mastermind">>
<<script>>setup.startCountdown(30 * 60, 'time is up');<</script>>
<<case "demo">>
<<script>>setup.startCountdown(10 * 60, 'time is up');<</script>>
<<default>>
<<script>>setup.startCountdown(60 * 60, 'time is up');<</script>>
<</switch>>
<</if>>
/*45 lots of 60 seconds, include CONTENTS of the 'time is up' passage (in the "time is up" passage there's a <<goto "death">> */
<<if visited() is 1>><</if>>
<div style="width: 100%; text-align: center;"> Where to next? </div>
<div class="qbn-row">
/* Display STASH */
<<set _stash to true>>
<<cardrow `QBN.cards().sort(QBN.alphabetically)` "stashlink">>
<<unset _stash>>
/* Display LOCATIONS */
<<set _location to true>>
<<cardrow `QBN.cards().sort(QBN.alphabetically)` "houselink">>
<<unset _location>>
/* Display UNIQUE SCENES */
<<set _exploring to true>>
<<cardrow `QBN.cards(6).sort(QBN.alphabetically)` "scenelink">>
<<unset _exploring>>
</div>
<div class="flex">
<div class="flexitem">
<img src="assets/3houses.jpg">
</div>
</div>
<h1 style="width: 100%; text-align: center;">You hunt for clues in the town...</h1>
/*<map name="image_map">
<area alt="Your House" title="Your House" data-passage="2. Your House" coords="616,2,1267,963" shape="rect">
<area alt="Suzy's House" title="Suzy's House" data-passage="3. Suzy's House" coords="1280,4,1911,961" shape="rect">
<area alt="Vinny's House" title="Vinny's House" data-passage="1. Vinny's House" coords="4,4,610,963" shape="rect">
</map>*/
/*<<button "flexy">><<addclass ".qbn-card" "flexitem">><</button>>*/
/*<<set $location to passage()>> Sets the current passage TITLE to a variable. Helpful because it means cards can exclude themselves from a search with "req: $location neq<<goto $location>>*/
/* ---------------- LOCATIONS & MULTI-USE EVENT CARDS -------------------------------------------------------- */<<goto [[death by time]]>>/*QBN
sticky-card
req: _exploring
req: hasVisited("1. Vinny's House")
req: hasVisited("2. Your House")
req: hasVisited("3. Suzy's House")
*/
<div class= "scenetext">
<<switch visited()>>
<<case 1>><br>
You go back to your house and find a note on the kitchen bench:
<br>
<section class="paper"><div class="papertext">
I'm gonna do some investigating myself. I'll be back later.<br>
-Dad
</div> </section>
<<case 2>><br>
You go back home. Dad's still not back, but you see another note on the bench:
<br>
<section class="paper"><div class="papertext">
Ok, I think I've worked out who stole the candy. It's trickier than I thought!<br>
When you think you know who the thief is, and you've got FULL dective XP, meet me back here.
If you don't have full XP you won't find me, so you'll probably need to explore more first! ;)
<br><br>
I'll be waiting for you back here once you've worked it out.
<br><br>
-Dad
</div> </section>
<<default>>
<<if $CurHP lt $MaxHP>><br>
You go back home to find Dad, but then you remember you'll only find him when you have full detective XP.
Better go talk to Ronald, Grandpa or the Clown to earn some XP first!<br>
<<else>><br>
You go back home and find Dad waiting for you.<br>
'It's a bit more complicated then I thought,' he says. 'You need to figure out 3 things.'<br>
'What are they?' you ask, and Dad grins. <br>
'1. Who took the candy out of the CANDY CAULDRON <br>
2. Who has the candy NOW <br>
3. Who the best witness is...to prove your claims' <br>
'Interesting,' you say.<br>
'Once you figure these things out, I'll consider the case solved.'<br>
'How will you know I've figured it out?' you ask.<br>
'There'll be a final test of course!' Dad says enthusiastically, 'and to make it hard, lets say you lose 5 XP for every wrong answer!'<br>
You roll your eyes. He is way too excited about that.<br>
'5 XP!' you groan. 'That means I'll really have to nail it.'<br>
'Exactly!' Dad says. 'When you're ready, take the final test and we'll see how observant you've been...Muhahaha!'<br>
<<button "FINAL TEST">><<goto [[Final Test]]>><</button>>
<</if>>
<</switch>>
<br><br>
<<button "I'll come back later">><<goto [[Hunt]]>><</button>>
</div><div class= "scenetext">
<br>
'Sure you're ready for this?' Dad asks.<br>
'Sure,' you say confidently, but Dad raises an eyebrow. <br>
'Have you found the 3 sets of photos yet?' he asks. If you haven't yet, I recommend you [[keep searching|Hunt]]!'<br>
'I've looked at those photos,' you say, 'I'm ready for this!' <br>
Dad smiles and pulls out his questions...<br><br>
'''Question 1) Who took the candy out of the CANDY CAULDRON?'''<br><br>
<div style="display: flex;
justify-content: center;
flex-wrap: wrap;">
<<link "Harry">><<CurHP -5>><</link>>--
<<link "Suzy">><<CurHP -5>><</link>>--
<<link "Imps">><<CurHP -5>><</link>>--
<<link "Vinny">><<CurHP -5>><</link>>--
<<link "Ronald">><<CurHP -5>><</link>>--
<<link "Ben">><<CurHP -5>><</link>>--
<<link "Grandpa">><<CurHP -5>><</link>>--
<<link "Khafre">><<CurHP -5>><</link>>--
<<link "Patrick">><<goto [[Final Test 2]]>><</link>>--
<<link "Bianca">><<CurHP -5>><</link>>--
<<link "Billy">><<CurHP -5>><</link>>--
<<link "Mum">><<CurHP -5>><</link>>--
<<link "Freddy 4 Arms">><<CurHP -5>><</link>>--
<<link "Dad">><<CurHP -5>><</link>>--
<<link "Clown">><<CurHP -5>><</link>>--
<<link "Dog">><<CurHP -5>><</link>>
</div>
</div><div class= "scenetext">
<br>
'Patrick! That's right!' Dad exclaims. 'Well done!'<br>
'How could Patrick do something like this!?' <br>
Dad sighs. 'Don't be too hard on him. Turns out Imps bullied him and told him
he had to give them everything in the CANDY CAULDRON.
At the last minute though, he changed his mind and put the candy in the clean
trash can instead. Then he could tell the Imps someone else had taken it. Imagine Patrick's horror when he found the trash can empty!
Of course, Patrick didn't tell anyone because that would be admitting his own involvement.' <br>
<br>
'So you know who took the candy out of the trash?' you ask, hoping Dad will drop you a hint.<br>
Dad winks. 'Of course I do,' he says. 'And you already know the answer too don't you?'<br>
You gulp. The moment of truth.<br><br>
'''Question 2) Who has the candy NOW?'''<br><br>
<div style="display: flex;
justify-content: center;
flex-wrap: wrap;">
<<link "Harry">><<CurHP -5>><</link>>--
<<link "Suzy">><<CurHP -5>><</link>>--
<<link "Imps">><<CurHP -5>><</link>>--
<<link "Vinny">><<goto [[Final Test 3]]>><</link>>--
<<link "Ronald">><<CurHP -5>><</link>>--
<<link "Ben">><<CurHP -5>><</link>>--
<<link "Grandpa">><<CurHP -5>><</link>>--
<<link "Khafre">><<CurHP -5>><</link>>--
<<link "Patrick">><<CurHP -5>><</link>>--
<<link "Bianca">><<CurHP -5>><</link>>--
<<link "Billy">><<CurHP -5>><</link>>--
<<link "Mum">><<CurHP -5>><</link>>--
<<link "Freddy 4 Arms">><<CurHP -5>><</link>>--
<<link "Dad">><<CurHP -5>><</link>>--
<<link "Clown">><<CurHP -5>><</link>>--
<<link "Dog">><<CurHP -5>><</link>>
</div>
</div><div class= "scenetext">
<br>
'Yes Vinny!' says Dad. 'Well done!'<br>
Just then, Vinny's dad bursts through the door, dragging Vinny along. <br>
'Vinny has something to say to you,' he says, trying to keep his voice calm.<br>
'I do NOT!' says Vinny quietly, his face red. <br>
'Interesting,' says Dad. 'I was just about to ask a very important question.' <br>
'''Question 3) Who is the best witness to Vinny taking the candy?'''<br><br>
<div style="display: flex;
justify-content: center;
flex-wrap: wrap;">
<<link "Harry">><<CurHP -5>><</link>>--
<<link "Suzy">><<CurHP -5>><</link>>--
<<link "Imps">><<CurHP -5>><</link>>--
<<link "Vinny">><<CurHP -5>><</link>>--
<<link "Ronald">><<CurHP -5>><</link>>--
<<link "Ben">><<CurHP -5>><</link>>--
<<link "Grandpa">><<CurHP -5>><</link>>--
<<link "Khafre">><<CurHP -5>><</link>>--
<<link "Patrick">><<CurHP -5>><</link>>--
<<link "Bianca">><<CurHP -5>><</link>>--
<<link "Billy">><<CurHP -5>><</link>>--
<<link "Mum">><<CurHP -5>><</link>>--
<<link "Freddy 4 Arms">><<CurHP -5>><</link>>--
<<link "Dad">><<CurHP -5>><</link>>--
<<link "Clown">><<CurHP -5>><</link>>--
<<link "Dog">><<goto [[Victory]]>><</link>>
</div>
</div><div class="scenetext">
'Yes Dog!' says Dad thumps the table with his fist. 'He was the only witness who saw the whole thing.'<br>
Dog trots through the door as he speaks and flops down on the carpet at Vinny's Dad's feet.<br>
'Dog sorry. Dog try to stop Vinny,' he grunts. 'Vinny not listen.' <br>
'You don't KNOW I took the candy!' Vinny sniffs. 'It's my word against Dog's!' He looks through the photos on the table.<br>
'Dog's not even IN these pictures!' he says triumphantly. 'Because he...he was at home the whole time.'<br>
'Of course Dog was with you,' Vinny's dad sighs. 'I asked you to walk him myself.'<br>
'But there's no proof that I actually DID!' spits Vinny.<br>
<br>
'Dog WAS with you on that walk Vinny,' Dad says, 'this photo of Suzy's house, taken at 6:00 shows that much.'<br>
You and Vinny lean in closer to get a <<linkreplace "look">>
Look...<br>
<<include [[Suzy's House Photo]]>>
<</linkreplace>>
'I don't see anything,' Vinny sulkily, but you notice his face is a little paler than before.<br>
<<linkreplace "'Well let me help you,' says Dad.">>
<br>
<<include [[Dad WordClue Display]]>>
<</linkreplace>>
</div><<set $DadwordCounter to 0>> /*your very FIRST visit...starting the WordClue array at the start...granpa now has a bunch of riddles to solve! */
<<set $DadwordClues to ["poo"]>> /*array of clue passages. Other ideas: fitbit, airbnb*/
/*character details */
<<set _character to "Dad">>
<<set _img to "assets/"+ _character.toLowerCase() + "-av.png">> /*this is assuming the files are always in assets folder and always the character name followed by "-av" (avatar)*/
<<set _speechbeginning to "Well, let me help you...">>
<<set _wronganswerfeedback to "No, no that's not it. Look closer">>
<<set $reward to 7>>
<<set _nextclue to "I need a hint">>
/*Answer & Hint Setup*/
<<set _answer to "poo">> /*the is both the answer AND the name of the passage where the clues for "tree" are contained!*/
<<arraymaker _answer>> /*Running the widget "arraymaker" for the _answer word. e.g if _answer is "tree it will find the matching "tree" passage and get it's hints*/
<<set _hintArray to _array>> /*grabbing the output of the arraymaker widget (ie all the hints) and setting it to an array*/
<<set _hintCounter to 1>> /*This WILL get reset every time you revisit the passage. It starts on 1 (not 0) because 0 is actually automatically generated as the characters first line (see below)*/
/*A character in a speech bubble! If you don't want it, just use #clues and its content*/
<<say _character _img>><span id="clues">_speechbeginning <br>_hintArray[0]<br> </span><</say>>
<h3>Detective XP hello: <span id="reward">$reward</span></h3>
/*I NEED A CLUE! */
<<button _nextclue>>
<<if _hintCounter gte _hintArray.length>> /*If you're beyond the end of the array, display nothing, otherwise keep showing clues!*/
<<else>>
<<append "#clues" t8n>>_hintArray[_hintCounter]<br><</append>> /*Note: the very last clue should proably reveal the answer*/
<<set $reward-->> /*Lose a point for needing another clue*/
<<replace "#reward">> $reward <</replace>> /*Update reward span*/
<<set _hintCounter++>> /*add 1 to the hint counter*/
<</if>>
<</button>><br>
/*TEXTBOX*/
<<textbox "_code" "" autofocus>>
/*GUESS BUTTON*/
<<button "Guess!">>
<<set _code to _code.toLowerCase()>>
<<if _code.indexOf(_answer) > -1>> /*CORRECT ANSWER -checks code against the password set by the widget argument. If password is "brain" any instance of it will work, ie "brained" or "the brain" or "xyzsbrain"*/
<<CurHP $reward>>
<<replace "#answerfeedback">><br><br>
'Yes, Dog poo!' says Dad, turning to Vinny's Dad. 'And I think you'll find a little bag of Dog Poop at home.' <br>
<br>
'I found it already, as a matter of fact,' Vinny's Dad says. 'It's what made me suspicious in the first place. Vinny never cleans up voluntarily.'<br><br>
Vinny's face has turned red. 'Ok, ok! I did it!' he says, 'But just don't tell the other kids ok?' <br>
'I think we can manage that,' says Dad calmly, winking at Vinny's Dad. 'All we really want is to share the Candy with everyone when the--'<br><br>
--Suddenly the door burst open, and kids flood into the house.<br>
'We finished the hunt!' they cry 'Did you find the candy?'<br>
<br>
'As a matter of fact we did!' Vinny's Dad says, raising an eyebrow. <br>
<<linkreplace "'Vinny's just going to get it, aren't you Vinny?'" t8n>> He whispers something in Vinny's ear.<br>
Vinny runs out, and his Dad grimaces. 'I'm sorry about that,' he says. 'I'll think of a way for him to make it up to you.'<br>
'And I'll need to have a word with Patrick too,' Dad says, sighing. <br><br>
Then he looks at you and smiles. 'A real mystery is better than a scavenger hunt eh?' <br>
You nod. 'Especially when it ends with Candy.' <br><br>
Vinny pulls a full [[CANDY CAULDRON]] through the door. With even more candy than before! <br>
Vinny's Dad winks at you. He must have made Vinny add his own candy.<</linkreplace>>
<</replace>>
<<else>> /*INCORRECT ANSWER*/
<<replace "#answerfeedback">><br>'_wronganswerfeedback'<</replace>>
<<CurHP -1>>
<</if>>
<</button>>
<span id="answerfeedback"></span><h1>You solved the mystery! Candy for all! </h1>
<div class="flex">
<div class="flexitem">
<img src="assets/happyween.png" style="max-width: 70%;">
</div>
</div>
<<script>>setup.stopCountdown();<</script>>It's small
And browny grey
It smells
Dog makes it
You cleaned it up this morning
It's gross to step in!
That's right, it's dog poo!dad
vinnysdad
vinny
vinny-nocape-bag
grandpa
suzy
suzycross
patrick
khafre
bianca
helenasad
helenahappy
clown
harry
dog
skeleton
imp
ronald
ben
hero
mum
billy
paulsuzyshouse
vinnyshouse
yourhouse
woods
cemetary
pumpkintree
street
cauldron/*CHARACTER & LOCATION DISPLAY CODE...Everything here happens AFTER the passage has rendered */
<<if tags().includes("picntext")>> /*if the current passage includes the "picntext" tag, then scan the passage for character and location tags to prepend images to this passage */
/*CHARACTERS */
/*Using the "arraymaker" widget to turn the "character imgs" passage into an array of characters */
<<arraymaker "character imgs">> /*calling on the widget */
<<set _characterarray to _array>> /*grabing output of the widget and setting it to a temporary array */
/*LOCATIONS */
<<arraymaker "location imgs">> /*calling on the widget */
<<set _locationarray to _array>> /*grabing output of the widget and setting it to a temporary array */
/*DISPLAY LOOP */
/*CHARACTER LOOP - checks the tags of the current passage. If that tag IS in the _characterarray, add it to the _charactertitlesarray */
<<for _i to 0; _i lte _characterarray.length; _i++>>
<<if tags().includes(_characterarray[_i])>> /*check CURRENT character against passage tags - is that character in this scene/passage?*/
<<set _charactertitle to _characterarray[_i]>> /*the character IS in the tags, so add it to a _charactertitle variable */
<<set _characterimg to "assets/" + _charactertitle + ".png">> /*Setting image path for current character*/
/*adding the character (with a title and correct image path) at the top of the passage */
<<prepend ".passage">>
<div class="leftsidecharacter characterappear"> /*character on the left */
[img[_charactertitle|_characterimg]]
</div>
<</prepend>>
<</if>>
<</for>>
/*LOCATION LOOP - checks the tags of the current passage. If that tag IS in the _locationarray, add it to the _locationtitlesarray */
<<for _i to 0; _i lte _locationarray.length; _i++>>
<<if tags().includes(_locationarray[_i])>> /*check CURRENT location against passage tags - is that location in this scene/passage?*/
<<set _locationtitle to _locationarray[_i]>> /*the location IS in the tags, so add it to a _locationtitle variable */
<<set _locationimg to "assets/" + _locationtitle + "-co.png">> /*Setting image "cutout" path for current location*/
/*adding the location (with a title and correct image path) at the top of the passage */
<<prepend ".passage">>
<div class="location characterappear">
[img[_locationtitle|_locationimg]]
</div>
<</prepend>>
<</if>>
<</for>>
<</if>>/*QBN
sticky-card
req: _exploring
req: hasVisited("3. Suzy's House")
*/
<div class="scenetext"> /*text class so it has flex and stays to the right is possible */
<<if visited() is 1>>
/*Wordclues SETUP for GRANDPA*/
<<set $grandpa to false>>
<<set $wordCounter to 0>> /*your very FIRST visit...starting the WordClue array at the start...granpa now has a bunch of riddles to solve! */
<<set $wordClues to ["phone","selfie","wikipedia","gps","netflix","nugget","uber","fidget spinner","google","smartwatch"]>> /*array of clue passages. Other ideas: fitbit, airbnb*/
You pop over to Suzy's house and ask if she's seen anything suspicious. Unfortunately it looks like she's got her hands full.<br>
"Mum's out and everybody is having fun except me!" she moans as you walk into the house.<br>
You smile. "Then why are you still at home?" <br>
"I can't leave now," she sighs. Suzy glances at her Grandpa sitting in his rocking chair and whispers, "Grandpa saw something odd and now he's all worried. Mum will kill me when she gets home if I leave him here in this state."<br>
Her Grandpa is muttering something in the corner of the room and rubbing his trouser leg.<br>
"What did he see?" You ask.<br>
"I'm not sure," she says crossly, "his memory isn't great, and I can't get it out of him."<br>
"Maybe it has something to do with the crime!" You say excitedly.<br>
"I doubt it," says Suzy, "but if you can get him to spill the beans, I can finally go trick or treating!"<br>
She looks at you sideways. "You might even get some detective XP too, if you're good enough!"<br>
<<elseif $grandpa is false and visited() gt 1>>
You head back to Suzy's house. Grandpa is still muttering and Suzy looks desparate.<br>
"Can you please try and get Grandpa to talk?" she says, "Mum will kill me when she gets home if I leave him here in this state."<br><br>
//Remember, the more clues you ask Grandad for, the LESS detective XP you'll get!//
<<else>>
You head back to Suzy's house. She waves at you from down the street as you approach, finally free to go trick or treating.
Kids are coming and going from the house. Grandpa looks up from his armchair as you enter the lounge. He looks happy to see you.<br>
"Seeing as you're so good at helping an old fella," he says, "can you help me again? I'm trying to think of the name of another thing..."<br><br>
//Remember, the more clues you ask Grandad for, the LESS detective XP you'll get!//
<</if>>
/* CHOICE TO PLAY OR NOT!? */
<span id="next">
<br><<button "Sorry, not now">><<goto [[Hunt]]>><</button>>--|--
<<button "Sure thing!">><<replace "#next">><<include [[Grandpa Wordclue Display]] >><</replace>> <</button>>
</span>
</div>/*character details */
<<set _character to "Grandpa">>
<<set _img to "assets/"+ _character.toLowerCase() + "-av.png">> /*this is assuming the files are always in assets folder and always the character name followed by "-av" (avatar)*/
<<set _speechbeginning to "Hmmm... yes well, I'm thinking of something...">>
<<set _wronganswerfeedback to "No, no I don't think that's it. Try again.">>
<<set $reward to 3>>
<<set _nextclue to "I need another clue">>
/*Answer & Hint Setup*/
<<if $wordCounter gte $wordClues.length>>
<<set $wordCounter to 0>>
<</if>>
<<set _answer to $wordClues[$wordCounter]>> /*the is both the answer AND the name of the passage where the clues for "tree" are contained!*/
<<arraymaker _answer>> /*Running the widget "arraymaker" for the _answer word. e.g if _answer is "tree it will find the matching "tree" passage and get it's hints*/
<<set _hintArray to _array>> /*grabbing the output of the arraymaker widget (ie all the hints) and setting it to an array*/
<<set _hintCounter to 1>> /*This WILL get reset every time you revisit the passage. It starts on 1 (not 0) because 0 is actually automatically generated as the characters first line (see below)*/
/*A character in a speech bubble! If you don't want it, just use #clues and its content*/
<<say _character _img>><span id="clues">_speechbeginning <br>_hintArray[0]<br> </span><</say>>
<h3>Detective XP: <span id="reward">$reward</span></h3>
/*I NEED A CLUE! */
<<button _nextclue>>
<<if _hintCounter gte _hintArray.length>> /*If you're beyond the end of the array, display nothing, otherwise keep showing clues!*/
<<else>>
<<append "#clues" t8n>>_hintArray[_hintCounter]<br><</append>> /*Note: the very last clue should proably reveal the answer*/
<<set $reward-->> /*Lose a point for needing another clue*/
<<replace "#reward">> $reward <</replace>> /*Update reward span*/
<<set _hintCounter++>> /*add 1 to the hint counter*/
<</if>>
<</button>><br>
/*TEXTBOX*/
<<textbox "_code" "" autofocus>>
/*GUESS BUTTON*/
<<button "Guess!">>
<<set _code to _code.toLowerCase()>>
<<if _code.indexOf(_answer) > -1>> /*CORRECT ANSWER -checks code against the password set by the widget argument. If password is "brain" any instance of it will work, ie "brained" or "the brain" or "xyzsbrain"*/
<<set $wordCounter++>> /*increase $wordCounter by 1, so when you come back to this passage you'll get a NEW wordclue*/
<<set $grandpa to true>>
<<set $phone to true>>
<<goto [[Grandpa Reward]]>>
<<else>> /*INCORRECT ANSWER*/
<<replace "#answerfeedback">><br>'_wronganswerfeedback'<</replace>>
<<CurHP -1>>
<</if>>
<</button>>
<span id="answerfeedback"></span><div class="scenetext">
<<if visited() is 1>>
'Yes PHONE! That's it!' The old man cries and Suzy smiles.<br>
'So...why were you thinking of a phone?' you ask?<br>
'Well because I've got one don't I!' Grandpa says, pulling one out of his pocket. 'I mean, It's not mine, but it belongs to a young chap.'<br>
'Grandad!' says Suzy frowning, 'Why did you take his phone?'<br>
'Well he dropped it didn't he?' Grandad mutters. 'There I was, minding my own business when some Imps and boys drifted from our place to next door...'<br>
He looks at you. 'Er.. YOUR place that is, when suddenly it looked as if the imps were going to start a fight.
After a moment they just flew off to the woods, but then this young chap looks at his phone and nearly jumps out of his skin.'<br>
<<linkreplace "'What happened?'">> 'What happened?' you ask. Maybe he had something to do with the CANDY CAULDRON!<br>
'Well he just suddenly dashed off didn't he? Even dropped his phone in his hurry. I called out to let him know but by the time I got there he was gone.<br>
'What about the other boys and the Imps?' you say quickly. 'Was the CANDY CAULDRON empty when you got there?'<br>
'They were all gone,' Grandpa says shakily, 'And I didn't notice the cauldron I'm afraid. I had my eyes fixed on this here gadget.<br>
'You ARE pretty slow Grandpa,' laughs Suzy. <<linkreplace "Grandpa snorts.">> Grandpa snorts. <br>
'I just didn't want him to lose it.' Grandpa replies. 'Maybe one of you young folk can find him and give it back?'<br>
'Not me!' says Suzy. 'I'm FINALLY going to start on the scavenger hunt!'<br>
'Well you take it then my boy' Grandpa says, pushing the phone into your hands.<br>
'I'm sure you'll run into the boy eventually, and you'll find him quicker than most, if you're anything like your father.'<br>
You look down at the phone. Who knows, maybe it'll <<linkreplace "come in handy.">> come in handy.<br><br>
//The phone has been added to your [[stash|Stash]]!//<</linkreplace>><</linkreplace>><</linkreplace>>
<<else>>
'Yes, that's it!' Grandpa says happily. 'You're becoming quite the detective aren't you?'
<</if>>
<br><br>
<<button "Hunt">><<goto [[Hunt for more clues|Hunt]]>><</button>>
<<CurHP $reward>>
</div>/*QBN
sticky-card
req: _exploring
req: hasVisited("1. Vinny's House")
*/
<div class="scenetext">
<<if visited() is 1>>
/*Wordclues SETUP for CLOWN*/
<<set $clownwordCounter to 0>> /*your very FIRST visit...starting the WordClue array at the start...granpa now has a bunch of riddles to solve! */
<<set $clownwordClues to ["pumpkin","skeleton","web","ghost","candy","vampire","zombie","mummy","witch"]>> /*array of clue passages. Other ideas: fitbit, airbnb*/
A clown greets you as you approach Vinny's house. He has a twinkle in his eye but a kind of intense smile, like he's daring you to NOT find him funny.
<</if>>
<br>
'Would you like to play a funny detective game?' The clown asks, putting his head on one side and grinning.
'I hear you need detective XP. But will you fool me, or will I fool you? Bahahaha!' <br>
/* CHOICE TO PLAY OR NOT!? */
<span id="next">
<br><<button "Nah, not interested">><<goto [[Hunt]]>><</button>>--|--
<<button "Let's dance">><<replace "#next">><<include [[Clown Wordclue Display]] >><</replace>> <</button>>
</span>
</div>/*character details Setup*/
<<set _character to "Clown">>
<<set _img to "assets/"+ _character.toLowerCase() + "-av.png">> /*this is assuming the files are always in assets folder and always the character name followed by "-av" (avatar)*/
<<set _speechbeginning to "Guess the word I'm thinking of!">>
<<set _wronganswerfeedback to "'That's not my word! Absurd! Have you heard? That's not my word!''">>
<<set $reward to 4>>
<<set _nextclue to "Hit me with another clue!">>
/*Answer & Hint Setup*/
/*check you're not at end of clown word clues array!*/
<<if $clownwordCounter gte $clownwordClues.length>>
<<set $clownwordCounter to 0>>
<</if>>
<<set _answer to $clownwordClues[$clownwordCounter]>> /*NEEDS TO BE STORY VARIABLE...This is both the answer AND the name of the passage where the clues for "tree" are contained!*/
<<arraymaker _answer>> /*Running the widget "arraymaker" for the _answer word. e.g if _answer is "tree it will find the matching "tree" passage and get it's hints*/
<<set _hintArray to _array>> /*grabbing the output of the arraymaker widget (ie all the hints) and setting it to an array*/
<<set _hintCounter to 1>> /*This WILL get reset every time you revisit the passage. It starts on 1 (not 0) because 0 is actually automatically generated as the characters first line (see below)*/
/*A character in a speech bubble! If you don't want it, just use #clues and its content*/
<<say _character _img>><span id="clues">_speechbeginning <br>_hintArray[0]<br> </span><</say>>
<h3>Detective XP: <span id="reward">$reward</span></h3>
/*I NEED A CLUE! */
<<button _nextclue>>
<<if _hintCounter gte _hintArray.length>> /*If you're beyond the end of the array, display nothing, otherwise keep showing clues!*/
<<else>>
<<append "#clues" t8n>>_hintArray[_hintCounter]<br><</append>> /*Note: the very last clue should proably reveal the answer*/
<<set $reward-->> /*Lose a point for needing another clue*/
<<replace "#reward">> $reward <</replace>> /*Update reward span*/
<<set _hintCounter++>> /*add 1 to the hint counter*/
<</if>>
<</button>><br>
/*TEXTBOX*/
<<textbox "_code" "" autofocus>>
/*GUESS BUTTON*/
<<button "Guess!">>
<<set _code to _code.toLowerCase()>>
<<if _code.indexOf(_answer) > -1>> /*CORRECT ANSWER -checks code against the password set by the widget argument. If password is "brain" any instance of it will work, ie "brained" or "the brain" or "xyzsbrain"*/
<<set $clownwordCounter++>> /*NEEDS TO BE STORY VARIABLE, NOT TEMPOARY...increase $wordCounter by 1, so when you come back to this passage you'll get a NEW wordclue*/
<<goto [[Clown Reward]]>>
<<else>> /*INCORRECT ANSWER*/
<<replace "#answerfeedback">><br>'_wronganswerfeedback'<</replace>>
<<CurHP -1>>
<</if>>
<</button>>
<span id="answerfeedback"></span><div class="scenetext">
Haha, my word! My WORD!' The clown leaps into the air and clicks his heels together.
<br><br><<button "Hunt">><<goto [[Leave this Joker|Hunt]]>><</button>>
<<CurHP $reward>>
</div>/*QBN
sticky-card
req: _stash
*/
<h1>Stash:</h1> <br>
<h3>Check your gathered clues...</h3><br>
''Photo 1:'' <<if $vinnyhousephoto is true>> <<include "Vinny's House Photo">> <<else>> Not found... <</if>><br>
''Photo 2:'' <<if $suzyhousephoto is true>> <<include "Suzy's House Photo">> <<else>> Not found... <</if>><br>
''Photo 3:'' <<if $yourhousephoto is true>> <<include "Your House Photo">> <<else>> Not found... <</if>><br><br>
''Other items:''<br>
<<if $phone is true>> <<include "The Phone">> <</if>><br>
<<if $biancasitems is true>> <<include "Bianca's Items">><</if>><br><br>
<br><<button "Hunt for clues!">><<goto [[Hunt]]>><</button>>/*QBN
card
req: _exploring
*/<div class= "scenetext">
<<if visited("Hospital")>>
You see Paul, the friendly neighborhood zombie. <br>
'Hey Paul, know anything about who stole the CAULDRON's candy?'<br>
Paul scratches his head. 'No clue,' he says. <br>
'But it might be a good idea to check people's phones. I was trick or treating with Bianca at Vinny's place next door just before it happened, and Bianca got a photo on her phone.'<br>
'Yeah I've seen Bianca already,' you say. 'I'll try to get a few more photos and see if I can piece something together.'<br>
'Good thinking!' says Paul.<br>
<<else>>
You see Paul, the friendly neighborhood zombie. <br>
'Hey Paul, know anything about who stole the CAULDRON's candy?'<br>
Paul scratches his head. 'No clue,' he says. <br>
'But it might be a good idea to check people's phones. I was trick or treating with Bianca at Vinny's place next door just before it happened, and Bianca got a photo on her phone.'<br>
'Good thinking,' you say. 'I'll keep a lookout for her...er what does she look like?'<br>
'Purple hair,' says Paul. 'You can't miss her!'<br>
You thank Paul and head on your way.<br>
<</if>>
<br>
[[Hunt for more clues|Hunt]]
</div>You get to the little hospital clutching Biancas things and see a girl on her way out.
<div class="sayright"> <<say 'Bianca' 'assets/bianca-av.png'>>Hey, that's my candy you've got there!<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>You must be Bianca!<</say>>
<div class="sayright"> <<say 'Bianca' 'assets/bianca-av.png'>>Wait...do I know you?<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Nope! I just found your things and figured you must have come here...are you ok?<</say>>
<div class="sayright"> <<say 'Bianca' 'assets/bianca-av.png'>>Yeah I'm fine now. I ate peanuts by mistake...but I'm ok now.<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Yikes! Good thing you made it here quick enough!<</say>>
<div class="sayright"> <<say 'Bianca' 'assets/bianca-av.png'>>That's right. I got to ride in an ambulance!<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>That's cool! Glad you're ok. Hey I wanted to ask you something...<</say>>
<div class="sayright"> <<say 'Bianca' 'assets/bianca-av.png'>>Go for it!<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>I'm trying to figure out who stole the CAULDRON'S candy. Did you see anything suspicious?<</say>>
<div class="sayright"> <<say 'Bianca' 'assets/bianca-av.png'>>I took a photo next door? Could that be helpful?<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Hard to say really...but could I take a look?<</say>>
<div class="sayright"> <<say 'Bianca' 'assets/bianca-av.png'>>Sure I'll send it to you! *texts you the photo <</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Thanks a million Bianca! I'll add it to my evidence stash. And I'll let you know if I catch the thief.<</say>>
<div class="sayright"> <<say 'Bianca' 'assets/bianca-av.png'>>Good luck! And thanks for bringing my stuff...<</say>> </div>
<br>
//A photo has been added to your [[stash|Stash]]!//
<br>
<br><<button "Hunt">><<goto [[Hunt]]>><</button>>
<<set $vinnyhousephoto to true>>
<<set $biancasitems to false>>/*QBN
card
req: _exploring
req: hasVisited("Hospital")
*/<div class="scenetext">
You go back to your house for a snack and a bite to eat...<br><br>
<div class="sayright"> <<say 'Mum' 'assets/mum-av.png'>>Solved the mystery yet?<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Nope... I really need more evidence. If only I had a photo of OUR house before 7:00! **sigh<</say>>
<div class="sayright"> <<say 'Mum' 'assets/mum-av.png'>>Well I've been talking to Suzy's grandpa, and apparently a boy told him he was concerned about some bullies that he had seen.
Maybe this boy knows something?<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Yes, that's great!<</say>>
<div class="sayright"> <<say 'Mum' 'assets/mum-av.png'>>What do you mean, it's terrible! Bullies in our own neighborhood!<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Right, but it's a lead! Did you get the boy's name?<</say>>
<div class="sayright"> <<say 'Mum' 'assets/mum-av.png'>>No... But I heard he was wearing a skeleton mask.<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Ok, no worries. Thanks mum! I'll look out for him!<</say>>
<br><<button "Hunt">><<goto [[Hunt]]>><</button>>
</div>/*QBN
card
req: _exploring
req: hasVisited("Mum's Clue")
*/<div class="scenetext">
You're walking down the street and you see him! A kid with a skeleton mask on.
<<say 'You' 'assets/hero-av.png'>>Hey so I'm trying to solve a mystery and I think you might be able to help!<</say>>
<div class="sayright"> <<say 'Mummy Boy' 'assets/khafremask-av.png'>>Hmm. I don't know about that...<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>I heard someone with your description took a selfie at Suzy's place? Would you mind if I looked at the photo?<</say>>
<div class="sayright"> <<say 'Mummy Boy' 'assets/khafremask-av.png'>>You've got me mixed up bro. I don't even own a phone!<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Wait, so what's your name anyway?<</say>>
<div class="sayright"> <<say 'Mummy Boy' 'assets/khafremask-av.png'>>The name's Khafre. Later!<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>What the...! Come back!<</say>>
<br><<button "Hunt">><<goto [[Hunt]]>><</button>>
</div>The phone: <br>
<div class="flex">
<img src="assets/phone.png" style="max-width: 50%;">
</div>/*QBN
card
req: $phone
req: _exploring
*/ <div class="scenetext">
As you are walking past the pumpkin tree you hear someone crying.
The sound is coming from behind the tree.
"I can't believe he did this!" you hear a girl say.
<br><br>
[[Maybe he didn't]]--|--[[You sound upset]]
</div><div class="scenetext">
"Maybe he didn't," you say calmly. After all, it is a possibility. <br>
The girl turns to you. "Excuse me, I just got stood up!" She snaps, wiping her eyes quickly and frowning. "You wouldn't do that to a girl would you?" <br>
You shake your head quickly. "No, I wouldn't... I mean, did he just forget or something?"<br>
"Forget!?" says the girl in a harsh voice, "Billy only remembers what he WANTS to remember. He probably just saw some candy and forgot all about it! You boys are all the same!"<br>
You try to give her a sympathetic smile as you back away slowly...<br>
<br><br><<button "Hunt">><<goto [[Hunt]]>><</button>>
</div><div class="scenetext">
"You sound upset," you say gently. <br>
The girl turns to you. The the makeup on her face has started to run.<br>
"I suppose I am upset," she sniffs, wiping her face and taking a deep breath. "I just got stood up on a date." <br>
You shake your head quickly. "Oh no! Is he forgetful or something?"<br>
"Forgetful?" says the girl slowly, "yes I guess he is. But how could he forget our first real date?" <br>
She sighs. "You're right though...Billy probably just saw some candy and forgot all about it! Maybe I'll give him another chance."<br>
"I hope it works out," you say.<br>
"Thanks," she replies, and goes back to looking at her phone.<br>
<br><br><<button "Hunt">><<goto [[Hunt]]>><</button>>
</div>/*QBN
sticky-card
req: $phone
req: hasVisited("Girlfriend")
req: hasVisited("Stash")
req: _exploring
req: $suzyhousephoto neq true
req: hasVisited("Paul")
*/
<<switch visited()>><<case 1>><<set $billyname to "Boy">><</switch>> /*at first you don't know his name */
<div class="scenetext">
You are exploring the woods when you find an older boy sitting under a tree...
He looks at you as you approach. 'Go away kid,' he says, and glances down. Something tells you he's involved.
'I was just wondering if you knew anything about our stolen candy?' you say as politely as you can.
'Just leave me alone ok?'
'Can I just ask one question?'
The boy frowns. 'Look Sherlock, guess my name and I'll tell you anything you like. Until then, buzz off...'
You get a good look at him, and make your decision...
<<button "Sorry, bye!">><<goto [[Hunt]]>><</button>>--|--<<button "I know who you are!">><<replace "#next">> <<password "billy" "Billy Gives You Photo" "Guess!">> <</replace>><</button>>
<span id="next"></span>
</div><div class="sayright"> <<say Billy 'assets/billy-av.png'>>Wow...You really are Sherlock! How did you know?<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Let's just say I bumped into a girl who wasn't...happy.<</say>>
<div class="sayright"> <<say Billy 'assets/billy-av.png'>>Oh no! I've been looking for her everywhere!<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>She's over by the Pumpkin tree...<</say>>
<div class="sayright"> <<say Billy 'assets/billy-av.png'>>Ok thanks. I owe you bro. Sorry for being a jerk before. I was just bummed out.<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Don't worry, I get it.<</say>>
<div class="sayright"> <<say Billy 'assets/billy-av.png'>>And about your stolen candy...
I don't know if it's helpful, but I took a photo of my younger brother Freddy at Suzy's house. Here, I'll send it to you. Maybe it'll help with something?<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Ok thanks! I'll put it in my stash of evidence.<</say>>
<div class="sayright"> <<say Billy 'assets/billy-av.png'>>Awesome. Well...now I'd better go find Helena. Wish me luck!<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Good luck! Just tell her the truth...<</say>>
<div class="sayright"> <<say Billy 'assets/billy-av.png'>> The truth was I just saw candy and forgot about everything else...<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Ok...well... Good luck!<</say>>
//A photo has been added to your [[stash|Stash]]!//
<br><<button "Hunt">><<goto [[Hunt]]>><</button>>
<<set $billyname to "Billy">>
<<set $suzyhousephoto to true>>
<<set $phone to false>>/*QBN
card
req: _exploring
req: $suzyhousephoto
req: hasVisited("Mum's Clue")
req: hasVisited("Skeleton Mask")
req: hasVisited("Dog")
*/
<div class="scenetext">
You're walking down the street and you see... Billy's brother!
<<say 'You' 'assets/hero-av.png'>>So YOU'RE the kid with the Skeleton mask!<</say>>
<div class="sayright"> <<say 'Freddy 4 Arms' 'assets/freddyfourarms-av.png'>>What's that? Oh the mask! Yea I gave it to Khafre.
It didn't fit me properly and it was kind of sweaty. Why do you want it?<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>I don't want the mask, I was told someone in the mask had seen some bullies?<</say>>
<div class="sayright"> <<say 'Freddy 4 Arms' 'assets/freddyfourarms-av.png'>>That's right! I saw some nasty looking Imps at Suzy's place and then followed them to... Um, who are you anyway?<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>I live next door to Suzy. I'm trying to find out who stole the CAULDRON's candy.<</say>>
<div class="sayright"> <<say 'Freddy 4 Arms' 'assets/freddyfourarms-av.png'>>Oooh right, you're that kid. So those Imps I saw... they looked like they were waiting for something, or someone. They looked like they were up to something, so I kept an eye on them.<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>What were they waiting for?<</say>>
<div class="sayright"> <<say 'Freddy 4 Arms' 'assets/freddyfourarms-av.png'>>No idea, but whatever they were waiting for didn't come, and eventually they flew next door...er to your house.
I followed them to see what they would do.<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Did they steal the Candy!?<</say>>
<div class="sayright"> <<say 'Freddy 4 Arms' 'assets/freddyfourarms-av.png'>>Nope. They flew straight to the CANDY CAULDRON, but it was already empty!
Those Imps sure were mad about that. I told 'em to calm down and they nearly attacked me before flying off! Luckily I managed to get some photos of them. <</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Cool...I'd love to see those if you don't mind?<</say>>
<div class="sayright"> <<say 'Freddy 4 Arms' 'assets/freddyfourarms-av.png'>>...and when I looked back, my brother Billy was gone. I don't know where he's gone to. The whole thing was weird.<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Oh right! Billy ran off because he realised he missed a date!<</say>>
<div class="sayright"> <<say 'Freddy 4 Arms' 'assets/freddyfourarms-av.png'>>You know Billy? Of course he missed a date. I might have known!<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Wait, so you're saying the Imps didn't take the candy?<</say>>
<div class="sayright"> <<say 'Freddy 4 Arms' 'assets/freddyfourarms-av.png'>>I mean it looked like they really wanted to...but no, it was empty when they got there.
Anyway, they wouldn't steal something with so many people around. Imps are stupid, and sometimes bully kids, but they wouldn't steal themselves. Too risky.<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Ok, you've given me a lot to think about. Any chance I could grab those photos for evidence?<</say>>
<div class="sayright"> <<say 'Freddy 4 Arms' 'assets/freddyfourarms-av.png'>>Sure, no problem. *texts them to you.<</say>> </div>
<<say 'You' 'assets/hero-av.png'>>Thanks for your help!<</say>>
<div class="sayright"> <<say 'Freddy 4 Arms' 'assets/freddyfourarms-av.png'>>You're welcome. Halloween is no time for bullies.<</say>> </div>
<br>
//Photos have been added to your [[stash|Stash]]!//
<br>
<br><<button "Hunt">><<goto [[Hunt]]>><</button>>
<<set $yourhousephoto to true>>
</div>
/*-------------------------------------------------------*/
/*YOUR HOUSE --------------------------------------*//*QBN
card
req: _exploring
*/<<if visited() gt 1>>
<<goto [[Ronald]]>>
<</if>>
<div class="scenetext">
Your best friend Ronald salutes you. 'Soooo...I hear there's been a stealin'!' he says dramatically. 'I'm coming with you.'
'What, to report on the crime?' you ask drily.
'Exactly!' Ronald grins, brandishing a pencil and notepad. 'If you're off on an adventure, you'll need a writer around!' Ronald is absolutely obessessed with writing and has been trying to get into the school newspaper for over a year now. 10 points for passion...but not the best writer, you have to admit.
'You realise writers don't exactly fit with the Halloween theme Ronald?' you say, <<linkreplace "rolling your eyes.">> rolling your eyes.
'Halloween is anything goofy,' Ronald says confidently.
'And anyway, my skin is green. //GREEN!// I look like Halloween all year round!'
'I guess you've got a point,' you sigh. 'As long as I don't have to help you with your writing!'
'So... about that...' Ronald says, '...I was hoping maybe I could pick your brains along the way, you know, since you're a born detective, AND writer, AND just about everything else.'
This time Ronald sighs and you can't help feeling sorry for him.
'Ok,' you say. [['Let's do this.'|Ronald]]
<</linkreplace>>
</div>/*QBN
sticky-card
req: _exploring
req: hasVisited("Sidekick")
*/<div class="scenetext">
<<if visited() is 1>><<set $ronaldesc = ["sucking on his pencil.","putting his hand on his head.","scratching his head.","rubbing his eyes tiredly."]>>
'Ok I need your help.' Ronald says.<br>
'Apparently most of my writing is TELLING rather than SHOWING.' <br><br>
[[What do you mean?|Showing and Telling Explanation]]<br>
[[Ok I can help with that|Ronald]]
<br>
<<else>>
'Ok so which bit of writing is better?' asks Ronald, <<print $ronaldesc.random()>>
'I'm trying to avoid telling an emotion and instead show the reader that emotion through description/action.'
<br><br>
You look closely at Ronald's scribbled sentences. Which sentence is showing?
<br>
<<include [[Ronald show vs tell GAME MECHANIC]]>><br><br>
[[What's showing again?|Showing and Telling Explanation]]
<</if>>
</div><div class= "scenetext">
Ronald grimaces. 'I was hoping you would know,' he says. 'Here's a note from my teacher. Do you understand it?' He hands you the note:
<section class="paper">
<div class="papertext">
Ronald, <br><br>
TELLING is when you //tell// the reader something, like: "John was very sad that day and wished life could be different."<br><br>
SHOWING is when you use description and action to //show// the reader an ''experience'': "John's breakfast was like dust in his mouth, and he stared out window with vacant eyes."<br><br>
Can you see the difference Ronald? <br>
In the first example, you're simply telling the reader that John IS sad.<br>
In the second example, the reader gets to make that connection themselves.<br><br>
Why does the breakfast taste like dust? Why is John staring out the window? Why are his eyes vacant? //-Ah! He must be sad and unsatisfied.// <br>
The reader is never TOLD that John is sad, they can work it out, because you've given them an ''experience'' that shows sadness.<br>
</div>
</section>
<br>
Ronald looks at you and scratches his head. 'Does that make sense to you?'<br>
You think about it for a moment...<br>
<<linkreplace "Showing is..." t8n>> Showing is... //better// because it helps the reader enter the world of the character, and lets them make inferences about what is happening.<br><</linkreplace>>
<<linkreplace "Telling is..." t8n>> Telling is... //worse// because the reader doesn't get to imagine anything or draw their own conclusions.<br> <</linkreplace>>
[[I've got this.|Ronald]]
</div>/*CHARACTERS*/
/*Get a random gender, a matching character and set temporary character variable*/
<<set $gender to random(1,2)>>
<<if $gender is 1>>
<<gender "female">>
<<set _character = ["Suzy","Bianca","Mum"]>>
<<else>>
<<gender "male">>
<<set _character = ["Harry","Vinny","Ben"]>>
<</if>>
<<set _x to _character.random()>>
<<set _emotiontype to $emotionarray.random()>> /*grabbing an random emotion type/category before including show and tell passage below*/
<<include [[show and tell sentence maker]]>>
/*2 choices setup*/
<<set _successbutton to _show>> <<set _successoutcome to "Yes! That was showing!">>
<<set _failbutton to _tell>> <<set _failoutcome to "Oopsy that was telling">>
<<set _successforwardinglink to "Hunt">>
<<set _failforwardinglink to "Ronald">>
/*SHOW or TELL LINKS, goes with two choices setup^^*/
<span id="choices"> </span> /*this is where the button options will generate to*/
<<timed 0.3s>>
<<set _coinflip to random(1,2)>> /*random result to order buttons randomly*/
<<if _coinflip is 1>>
<<append "#choices">> /*RIGHT button*/
<<link _successbutton>>
<<replace "#choices">>
_successoutcome
<<CurHP +1>>
<br><<button "Sweet, now lets hunt for clues!">><<goto _successforwardinglink>><</button>>
<</replace>>
<</link>>
<br>
<</append>>
<<append "#choices">> /*WRONG button*/
<<link _failbutton>>
<<replace "#choices">>
_failoutcome
<<CurHP -1>>
<br><<button "Try again">><<goto _failforwardinglink>><</button>>
<</replace>>
<</link>>
<</append>>
<<else>> /*put buttons in reverse order with incorrect being first this time*/
<<append "#choices">> /*WRONG button*/
<<link _failbutton>>
<<replace "#choices">>
_failoutcome
<<CurHP -1>>
<br><<button "Try again">><<goto _failforwardinglink>><</button>>
<</replace>>
<</link>>
<br>
<</append>>
<<append "#choices">> /*RIGHT button*/
<<link _successbutton>>
<<replace "#choices">>
_successoutcome
<<CurHP +1>>
<br><<button "Sweet, now lets hunt for clues!">><<goto _successforwardinglink>><</button>>
<</replace>>
<</link>>
<</append>>
<</if>>
<</timed>>/*QBN
card
req: _exploring
req: hasVisited("1. Vinny's House")
*/
<div class="scenetext">
The neighborhood kids are finishing the last round of a flour bomb battle in the street. <br>
You push through quickly, and by the time you get to your house you are covered in coloured flour.
You don't have time for scavenger hunt games though, if you're going to get to the bottom of this mystery.<br><br>
On the front lawn you see Harry and Ben at your house. <br><br>
You get closer and see that they are standing over one of your mum's garden gnomes, which has been pulled from the ground.
The gnome has just been given a huge red smile.<br><br>
'Hey who did this?' you ask. 'You know my mum is kind of precious about those gnomes.'<br><br>
''Harry:'' 'It was Ben. I heard him laughing from the street and came over to see what was going on.'
//(Harry's face paint is white and red and he's wearing a clean cape.)//<br><br>
''Ben:'' 'I don't know who did it, but Harry was here when I came out of the house.'
//(Ben's facepaint is green and red and he's wearing a clean shirt.)//<br><br>
Who is guilty? <br> <br>
<div id="choices">
<<button "Harry">>
<<CurHP +1>>
<<replace "#choices">>
<br> Yes! Harry's cape was clean which means he must have been lying about coming from the street -
the flour bomb game would have covered him in flour.<br>
<<button "Hunt">><<goto [[Hunt]]>><</button>>
<</replace>>
<</button>>--|--
<<button "Ben">>
<<CurHP -1>>
<<replace "#choices">>
<br> No! Ben is innocent. Harry's cape was clean which means Harry must have been lying about coming from the street -
the flour bomb game would have covered him in flour.
<<button "Hunt">><<goto [[Hunt]]>><</button>>
<</replace>>
<</button>>
</div>
</div>
/*VINNY'S HOUSE -------------------------------------------------------*/
/* THE STREET -------------------------------------------------------*//*QBN
card
req: _exploring
*/
<div class="scenetext"><br>
You are cutting across town when you look up and see clouds gathering overhead.
You notice the breeze is a bit colder now too.<br>
How do you respond?<br><br>
<<nobr>>
/*2 choices setup*/
<<set _successbutton to "Duck home for a coat">><<set $rain to true>> <<set _successoutcome to "Good choice. It looked like it was about to rain. A few minutes later you're on your way again and a light, cold rain begins to fall. You are snug and dry in your coat.">>
<<set _failbutton to "Ignore the clouds">> <<set _failoutcome to "You push forward, ignoring the signs. A few minutes later you feel a light, cold rain and shiver.">>
<<set _successforwardinglink to "Hunt">>
<<set _failforwardinglink to "Hunt">>
<</nobr>>
<<include [[two choices display]]>>
</div>/*QBN
card
req: _exploring
*/
<div class="scenetext">
<br>
You come across two boys in a scuffle on the sidewalk.
As you get closer they stop. The bigger boy look at you with a sour face.
'I didn't start it,' He says. You notice he's wearing a green hat that is 2 sizes too small.
'Yes you did!' the smaller boy says angrily. He is wearing a green leprechaun suit and his hair is ruffled.
'He's lying,' says the bigger boy.
<br>
Who is guilty?
<br><br>
<<nobr>>
/*2 choices setup*/
<<set _successbutton to "The big boy">> <<set $rain to true>> <<set _successoutcome to "After some direct questions, the big boy admits he tried to steal the green hat, and that's what started the fight. Good job detective!">>
<<set _failbutton to "The small boy">> <<set _failoutcome to "After some direct questions, the little boy bursts into tears and runs away yelling that his hat is stolen and nobody cares. Oops. Looks like you got that wrong!">>
<<set _successforwardinglink to "Hunt">>
<<set _failforwardinglink to "Hunt">>
<</nobr>>
<<include [[two choices display]]>>
</div>
/*THE WOODS -----------------------------------------*//*QBN
card
req: _exploring
req: hasVisited("Mum's Clue")
*/
<div class="scenetext">
You come across Patrick in the woods. <br>
"Looking for scavenger hunt clues?"<br>
He doesn't respond. He just clenches his fists and looks away.<br>
'Halloween isn't fair!' he mutters and kicks the base of a tree.<br><br>
How do you respond? Patrick seems emotional right now, so you try to read the situation:
<br><br>
[[Patrick seems sad]]--|--[[Patrick seems angry]]
</div><div class="scenetext"><br>
'You mad about something Pat?' you say gently, keeping your distance.<br>
'Yes I AM!' he mutters, and yells, 'I HATE imps!' before stamping off towards home.<br>
<<CurHP +1>><br>
<<button "Hunt">><<goto [[Hunt]]>><</button>>
</div><div class="scenetext"><br>
You put your hand on Patrick's shoulder to try and comfort him but he rips his body away. <br>
'Stop it!' he mutters, 'I'm not a baby. Anway, I'm going home!' He stamps off towards your house."<br>
<<CurHP -1>><br>
<<button "Hunt">><<goto [[Hunt]]>><</button>>
</div>
/*THE CEMETARY -----------------------------------------------------------*//*QBN
card
req: _exploring
req: $cemetary
*/
You come across 3 kids at the cemetary. They tell you the Skeletons are about to wake up, but A and B and C each tell you they are innocent. You notice some context clues. [who is lying?].
How do you respond?
<<nobr>>
/*2 choices setup*/
<<set _successbutton to "THIS IS THE RIGHT CHOICE OPTION">> <<set _successoutcome to "YOU'VE SUCCEEDED AT SOMETHING! I GUESS THAT'S PROGRESS!?">>
<<set _failbutton to "THIS IS THE WRONG CHOICE OPTION">> <<set _failoutcome to "Hmmm you didn't make the right choice...">>
<<set _successforwardinglink to "Hunt">>
<<set _failforwardinglink to "Hunt">>
<</nobr>>
<<include [[two choices display]]>>/*QBN
card
req: _exploring
req: $cemetary
*/
You come across Skeletons at the the cemetary. Skeletons wants more of a type ITEM. you have items and need to infer what to give them from 3 clues [open sesame].
How do you respond?
<<nobr>>
<<set $skeletons to true>>
/*2 choices setup*/
<<set _successbutton to "THIS IS THE RIGHT CHOICE OPTION">> <<set _successoutcome to "YOU'VE SUCCEEDED AT SOMETHING! I GUESS THAT'S PROGRESS!?">>
<<set _failbutton to "THIS IS THE WRONG CHOICE OPTION">> <<set _failoutcome to "Hmmm you didn't make the right choice...">>
<<set _successforwardinglink to "Hunt">>
<<set _failforwardinglink to "Hunt">>
<</nobr>>
<<include [[two choices display]]>>/*QBN
sticky-card
req: _exploring
req: $cemetary
req: $skeletons
*/
Skeletons are starting to wander the town now. What a nuisance!
This Skeleton wants more of a certain kind of food. It's carying A, B and C.
You search around quick and find some things. [open sesame].
How do you respond?
<<nobr>>
<<set $skeletons to true>>
/*2 choices setup*/
<<set _successbutton to "THIS IS THE RIGHT CHOICE OPTION">> <<set _successoutcome to "YOU'VE SUCCEEDED AT SOMETHING! I GUESS THAT'S PROGRESS!?">>
<<set _failbutton to "THIS IS THE WRONG CHOICE OPTION">> <<set _failoutcome to "Hmmm you didn't make the right choice...">>
<<set _successforwardinglink to "Hunt">>
<<set _failforwardinglink to "Hunt">>
<</nobr>>
<<include [[two choices display]]>>
/*QBN TEMPLATE ----------------------------------*//*QBN
card
req: _exploring
req: $forest
req: $location neq QBN.current
req: hasVisited("House2") or hasVisited("House3")
*/
scene text. scene text. scene text. scene text. scene text. scene text.scene text. scene text.
<<nobr>>
/*2 choices setup*/
<<set _successbutton to "THIS IS THE RIGHT CHOICE OPTION">> <<set _successoutcome to "YOU'VE SUCCEEDED AT SOMETHING! I GUESS THAT'S PROGRESS!?">>
<<set _failbutton to "THIS IS THE WRONG CHOICE OPTION">> <<set _failoutcome to "Hmmm you didn't make the right choice...">>
<<set _successforwardinglink to "Hunt">>
<<set _failforwardinglink to "Hunt">>
<</nobr>>
<<include [[two choices display]]>>/*SCENE BUTTON DISPLAY, goes with two choices setup^^*/
<span id="choices"> </span> /*this is where the button options will generate to*/
<<timed 0.3s>>
<<set _coinflip to random(1,2)>> /*random result to order buttons randomly*/
<<if _coinflip is 1>>
<<append "#choices">> /*RIGHT button*/
<<button _successbutton>>
<<replace "#choices">>
_successoutcome
<<CurHP +1>>
<br><<button "Hunt">><<goto _successforwardinglink>><</button>>
<</replace>>
<</button>>
<</append>>
<<append "#choices">> /*WRONG button*/
—|— <<button _failbutton>>
<<replace "#choices">>
_failoutcome
<<CurHP -1>>
<br><<button "Hunt">><<goto _failforwardinglink>><</button>>
<</replace>>
<</button>>
<</append>>
<<else>> /*put buttons in reverse order with incorrect being first this time*/
<<append "#choices">> /*WRONG button*/
<<button _failbutton>>
<<replace "#choices">>
_failoutcome
<<CurHP -1>>
<br><<button "Hunt">><<goto _failforwardinglink>><</button>>
<</replace>>
<</button>>
<</append>>
<<append "#choices">> /*RIGHT button*/
—|— <<button _successbutton>>
<<replace "#choices">>
_successoutcome
<<CurHP +1>>
<br><<button "Hunt">><<goto _successforwardinglink>><</button>>
<</replace>>
<</button>>
<</append>>
<</if>>
<</timed>>
/*END QBN TEMPLATE--------------------------------------------------------*//*Wordclues SETUP*/
<<set $wordClues to ["phone","selfie","wikipedia","gps","netflix","nugget","uber","fidget spinner","google","smartwatch"]>> /*array of clue passages. Other ideas: fitbit, airbnb*/
<<switch visited()>>
<<case 1>><<set $wordCounter to 0>>
<<default>>
<</switch>>
/*Answer & Hint Setup*/
<<if $wordCounter gte $wordClues.length>>
<<set $wordCounter to 0>>
<</if>>
<<set _answer to $wordClues[$wordCounter]>> /*the is both the answer AND the name of the passage where the clues for "tree" are contained!*/
<<arraymaker _answer>> /*Running the widget "arraymaker" for the _answer word. e.g if _answer is "tree it will find the matching "tree" passage and get it's hints*/
<<set _hintArray to _array>> /*grabbing the output of the arraymaker widget and setting it to a permanent variable (array)*/
<<set _hintCounter to 0>> /*setting up the hint counter. This WILL get reset every time you revisit the passage*/
<<set $points to 5>>
CLUES:
<span id="clues"></span>
<span id="points"></span>
<<button "Next clue">>
<<if _hintCounter gte _hintArray.length>> /*If you're beyond the end of the array, display nothing, otherwise keep showing clues!*/
<<else>>
<<append "#clues" t8n>>
_hintArray[_hintCounter]
<</append>> /*Note: the very last clue should proably reveal the answer*/
<<set $points-->> /*Lose a point for needing another clue*/
<<replace "#points">> Points: $points <</replace>> /*Update points span*/
<<set _hintCounter++>> /*add 1 to the hint counter*/
<</if>>
<</button>>
<<button "I know the answer!">>
<<set $wordCounter++>> /*increase $wordCounter by 1, so when you come back to this passage you'll get a NEW wordclue*/
<<set _passage to passage()>>
<<goto _passage>> /*reload current passage*/
<</button>><<nobr>>
/*Answer & Hint Setup*/
<<if $wordCounter gte $wordClues.length>>
<<set $wordCounter to 0>>
<</if>>
<<set _answer to $wordClues[$wordCounter]>> /*the is both the answer AND the name of the passage where the clues for "tree" are contained!*/
<<arraymaker _answer>> /*Running the widget "arraymaker" for the _answer word. e.g if _answer is "tree it will find the matching "tree" passage and get it's hints*/
<<set _hintArray to _array>> /*grabbing the output of the arraymaker widget (ie all the hints) and setting it to an array*/
<<set _hintCounter to 1>> /*This WILL get reset every time you revisit the passage. It starts on 1 (not 0) because 0 is actually automatically generated as the characters first line (see below)*/
<</nobr>>
\
/*A character in a speech bubble! If you don't want it, just use #clues and its content*/
<<say _character _img>><span id="clues">_speechbeginning <br>_hintArray[0]<br> </span><</say>>
<h3>Detective XP: <span id="reward">$reward</span></h3>\
<<button _nextclue>>
<<if _hintCounter gte _hintArray.length>> /*If you're beyond the end of the array, display nothing, otherwise keep showing clues!*/
<<else>>
<<append "#clues" t8n>>_hintArray[_hintCounter]<br><</append>> /*Note: the very last clue should proably reveal the answer*/
<<set $reward-->> /*Lose a point for needing another clue*/
<<replace "#reward">> $reward <</replace>> /*Update reward span*/
<<set _hintCounter++>> /*add 1 to the hint counter*/
<</if>>
<</button>>
<<textbox "_code" "" autofocus>>\
<<button "Guess!">>
<<set _code to _code.toLowerCase()>>
<<if _code.indexOf(_answer) > -1>> /*checks code against the password set by the widget argument. If password is "brain" any instance of it will work, ie "brained" or "the brain" or "xyzsbrain"*/
<<set $wordCounter++>> /*increase $wordCounter by 1, so when you come back to this passage you'll get a NEW wordclue*/
<<set $grandpa to true>>
<<set $phone to true>>
<<goto [[Hunt]]>>
<<else>>
<<replace "#answerfeedback">>_wronganswerfeedback<</replace>>
<</if>>
<</button>>
<span id="answerfeedback"></span>It's the thingamajig all the young people have these days
You know, one of those things you hold in your hand
It makes the buzzing sounds
Suzy's always wanted one
It sends you messages
It's got apps on it
That's right, the answer is _answer. By Jimminy! I don't believe it!You know those kids hold those darn sticks to get one
It's like a picture you take
A photo of yourself
When you're wanting to photograph yourself for a particular moment
A kid on the street told me he had a _______ stick. And now Suzy wants one!
That's right, the answer is _answer. By Jimminy! I don't believe it!You know, that place where you get answers...
It's like a website, or somethin'
It's an Encyclopedia, but online?
Suzy tells me anyone can edit it 'most anytime!
Not sure why people trust it really.
That's right, the answer is _answer. By Jimminy! I don't believe it!It's a new fandangled map thing
People have them in their cars
I'm thinking of learning to use it if my daughter ever gets me a phone
As far as I can tell, it's basically a map, but on your phone
I think it starts with G...?
That's right, the answer is _answer. By Jimminy! I don't believe it!Ok this one should be easy. It's like a movie theatre, but at home.
It's some kind of online library of movies.
I think you have to pay for it...maybe ever month.
And you can choose what movie to watch when you want to. Suzy uses it all the time.
It's like something to do with flicks?
That's right, the answer is _answer. By Jimminy! I don't believe it!I see kids eating this kind of fast food all the time.
They are little and yellowy-gold. I think they've got crumbs on them.
They come in these little red cardboard boxes.
...I think they're made of chicken actually.
And you get them from McDonalds? Burger King?
That's right, the answer is _answer. By Jimminy! I don't believe it!So Suzy tells me there's this new kind of taxi in town.
But it's basically just people in their own cars, not an actual taxi.
You can call up the company, and they'll let a driver know, and you'll get picked up in no time.
I think it starts with U...
That's right, the answer is _answer. By Jimminy! I don't believe it!I want to get Suzy one of those kids gadgets for Christmas
You know those things that all the kids at school had?
The kids spin them in their hands
They're like little propellers that go round and round
They've got ball bearings to make them spin fast...
It's two words
I think the second word is "spinner", so it's a ______ spinner.
That's right, the answer is _answer. By Jimminy! I don't believe it!Ok so here's one. Suzy was telling me I can use the computer to _______ things I want to know.
I think it's also the name of a really big company?
Something about it being a really big number as well?
I don't think it's a website so much as something that SEARCHES other websites?
I know it's very popular, most every young person I know uses it.
That's right, the answer is _answer. By Jimminy! I don't believe it!Ok so people use this one to get fit.
You wear it on your wrist.
Somehow it knows when they are excercising, and it counts their steps or something?
I know it's a certain kind of watch. But it's more than a watch.
I think it's two words joined together, like a ________watch
Maybe it's another word for intelligent?
That's right, the answer is _answer. By Jimminy! I don't believe it!
/*CLOWN CLUES */I first grew from the ground
I'm edible and orange
I can have a glowing face
Sometimes I sit on your doorstep
You can make me into a Jack-o'-lantern
That's right! I'm a pumpkin!I'm made of many connected parts.
I am inside you, under your flesh.
I can break, but I can also mend in time.
I hang around, even after you die.
I'm made of bones.
Hey hey! I'm a skeleton!I'm a tricky, sticky trap!
I'm carefully constructed and very delicate
A many legged creature tends me.
I hang out in high places to catch flying critters.
I catch flies and insects.
Well how-dee-doo, I'm a spiderweb!Sometimes I'm friendly, sometimes I'm not
People are scared of me. Boo!
I get blamed for bumps in the night
Sometimes I'm wispy, sometimes I'm lifelike.
I'm dead.
Boo! I'm a ghost!I'm a collectable delectable at Halloween
I'm multi-coloured and multi-flavoured (though always sweet)
Eat too much of me and you might hurl
Go trick-or-treating to find me
You eat lot of me at Halloween
Hee hee, I'm yummmy gummy Candy!I'm a sucker with pointy teeth
I like red drinks
I don't like garlic
I can turn into a bat
I stay out of the sun
Very good! I'm a Vampire!I'm always hungry
I'm not interested in brainless people
You can't kill me - I'm already dead
I move slowly and make groaning noises
Sometimes I'm green!
Uuuuuuhhhhhhhhhhrrrrrrr! I'm a Zombie!I have a pointy nose...
A black hat
A black cat
A broom
Sometimes I'm green!
Muhahaha I'm a witch!Find me in the desert
In a pyramid or tomb
I'm all wrapped up
I curse those who disturb my sleep
The other kind of "daddy"
Hoho dummy, I think I am a mummy!/*EMOTION WIDGET THAT SETS A RANDOM Synonym EMOTION*/
<<widget "emotion">>
<<switch $args[0]>>
<<case "happy">>
<<set _happy = ["happiness","excitement","exuberance","joy","cheerful glee"]>>
<<set _emotion to _happy.random()>>
<<case "contented">>
<<set _contented = ["contentment","peace","serenity","calm","satisfaction"]>>
<<set _emotion to _contented.random()>>
<<case "sad">>
<<set _sad = ["sadness","sorrow","despair","mournfulness","resignation","misery","grief"]>>
<<set _emotion to _sad.random()>>
<<case "afraid">>
<<set _afraid = ["fear","anxiety","nervous","worry","fright","terror","dread","panic","horror"]>>
<<set _emotion to _afraid.random()>>
<<case "angry">>
<<set _angry = ["anger","fury","rage","annoyance","irritation","resentment","outrage"]>>
<<set _emotion to _angry.random()>>
<<case "disgusted">>
<<set _disgusted = ["disgust","discomfort","nausea","queasiness","revulsion","distaste"]>>
<<set _emotion to _disgusted.random()>>
<<case "confused">>
<<set _confused = ["confusion","bewilderment","tired","exhaustion">>
<<set _emotion to _disgusted.random()>>
<<default>>
Emotion switch error!
<</switch>>
<</widget>>/*WIDGET CONSTRUCTING Array FROM PASSAGE*/
<<widget "arraymaker">> /*the name of the widget*/
/*Get the contents of a variable passage - that is specified in the twine passage. For example, <<arraymaker "somepassage">> would run this widget and turn the contents of "somepassage" into an Array*/
<<set _passageContents to Story.get($args[0])>> /*full argument string in raw and parsed forms—accessed via the $args.raw and $args.full*/
/*Turn the contents into text*/
<<set _passageText to _passageContents.text>>
/*Turn the text into an Array (split here by ENTERS)*/
<<set _array to _passageText.split("\n")>>
<</widget>>
/*
SAMPLE USAGE- the first word is calling on the widget, the second word or number etc. is the argument ie "$args[0]" that you're passing to the widget - this can be a value or a variable etc.
<<set _q to "8x tables">> //setting question passage
<<arraymaker _q>> //Running the arraymaker widget for _q, which means it grabs all content in the passage "8x tables" and turns it into an Array
*/[[show vs tell GAME MECHANIC]]
/*CONSTRUCTING SHOW & TELL ARRAYS BASED ON EACH EMOTION*/
/* 1. call on the show/tell widget each time to draw from an array bank that matches the random emotion above^^*/
/* 2. Then grabbing the temp array that the widget outputs and saving it to a Permanent array */
<<arraymaker "happy">> <<set $happy to _array>>
<<arraymaker "contented">> <<set $contented to _array>>
<<arraymaker "sad">> <<set $sad to _array>>
<<arraymaker "afraid">> <<set $afraid to _array>>
<<arraymaker "angry">> <<set $angry to _array>>
<<arraymaker "disgusted">> <<set $disgusted to _array>>
<<arraymaker "confused">> <<set $confused to _array>>
<<arraymaker "happy tell">> <<set $happytell to _array>>
<<arraymaker "contented tell">> <<set $contentedtell to _array>>
<<arraymaker "sad tell">> <<set $sadtell to _array>>
<<arraymaker "afraid tell">> <<set $afraidtell to _array>>
<<arraymaker "angry tell">> <<set $angrytell to _array>>
<<arraymaker "disgusted tell">> <<set $disgustedtell to _array>>
<<arraymaker "confused tell">> <<set $confusedtell to _array>>/*CHARACTERS*/
/*Get a random gender, a matching character and set temporary character variable*/
<<set $gender to random(1,2)>>
<<if $gender is 1>>
<<gender "female">>
<<set _character = ["Suzy","Bianca","Mum"]>>
<<else>>
<<gender "male">>
<<set _character = ["Harry","Vinny","Ben"]>>
<</if>>
<<set _x to _character.random()>>
<<set _emotiontype to $emotionarray.random()>> /*grabbing an random emotion type/category before including show and tell passage below*/
<<include [[show and tell sentence maker]]>>
/*2 choices setup*/
<<set _successbutton to _show>> <<set _successoutcome to "Ah...that was showing">>
<<set _failbutton to _tell>> <<set _failoutcome to "Oopsy that was telling">>
<<set _successforwardinglink to "Hunt">>
<<set _failforwardinglink to "Ronald">>
/*SHOW or TELL LINKS, goes with two choices setup^^*/
<span id="choices"> </span> /*this is where the button options will generate to*/
<<timed 0.3s>>
<<set _coinflip to random(1,2)>> /*random result to order buttons randomly*/
<<if _coinflip is 1>>
<<append "#choices">> /*RIGHT button*/
<<link _successbutton>>
<<replace "#choices">>
_successoutcome
<<CurHP +1>>
<br><<button "Sweet, now lets hunt for clues!">><<goto _successforwardinglink>><</button>>
<</replace>>
<</link>>
<br>
<</append>>
<<append "#choices">> /*WRONG button*/
<<link _failbutton>>
<<replace "#choices">>
_failoutcome
<<CurHP -1>>
<br><<button "Try again">><<goto _failforwardinglink>><</button>>
<</replace>>
<</link>>
<</append>>
<<else>> /*put buttons in reverse order with incorrect being first this time*/
<<append "#choices">> /*WRONG button*/
<<link _failbutton>>
<<replace "#choices">>
_failoutcome
<<CurHP -1>>
<br><<button "Try again">><<goto _failforwardinglink>><</button>>
<</replace>>
<</link>>
<br>
<</append>>
<<append "#choices">> /*RIGHT button*/
<<link _successbutton>>
<<replace "#choices">>
_successoutcome
<<CurHP +1>>
<br><<button "Sweet, now lets hunt for clues!">><<goto _successforwardinglink>><</button>>
<</replace>>
<</link>>
<</append>>
<</if>>
<</timed>>/*get random show and tell sentences from a suitable _emotiontype category above*/
<<switch _emotiontype>>
<<case "happy">>
<<if $happy.length lte 0>> /*If the array is empty, refresh it!*/
<<arraymaker "happy">> <<set $happy to _array>> /*repopulate using the arraymaker widget */
<</if>>
<<if $happytell.length lte 0>> /*If the tell array is empty, refresh it!*/
<<arraymaker "happy tell">> <<set $happytell to _array>> /*repopulate using the arraymaker widget */
<</if>>
<<set _number to random(0,$happy.length-1)>> /*random number for index*/
<<set _tell to $happytell[_number]>> /*using random number to grab tell member*/
<<set _show to $happy[_number]>> /*this matches the _tell above because I'm using the same random number to grab array member*/
<<set $happy.deleteAt(_number)>> /*deleting that^^ show member from the array so we won't see it again soon*/
<<set $happytell.deleteAt(_number)>> /*deleting that^^ tell member from the array so we won't see it again soon*/
<<case "contented">>
<<if $contented.length lte 0>> /*If the array is empty, refresh it!*/
<<arraymaker "contented">> <<set $contented to _array>> /*repopulate using the arraymaker widget */
<</if>>
<<if $contentedtell.length lte 0>> /*If the tell array is empty, refresh it!*/
<<arraymaker "contented tell">> <<set $contentedtell to _array>> /*repopulate using the arraymaker widget */
<</if>>
<<set _number to random(0,$contented.length-1)>> /*random number for index*/
<<set _tell to $contentedtell[_number]>> /*using random number to grab member*/
<<set _show to $contented[_number]>> /*this matches the _tell above because I'm using the same random number to grab array member*/
<<set $contented.deleteAt(_number)>> /*deleting that^^ show member from the array so we won't see it again soon*/
<<set $contentedtell.deleteAt(_number)>> /*deleting that^^ tell member from the array so we won't see it again soon*/
<<case "sad">>
<<if $sad.length lte 0>> /*If the array is empty, refresh it!*/
<<arraymaker "sad">> <<set $sad to _array>> /*repopulate using the arraymaker widget */
<</if>>
<<if $sadtell.length lte 0>> /*If the tell array is empty, refresh it!*/
<<arraymaker "sad tell">> <<set $sadtell to _array>> /*repopulate using the arraymaker widget */
<</if>>
<<set _number to random(0,$sad.length-1)>> /*random number for index*/
<<set _tell to $sadtell[_number]>> /*using random number to grab member*/
<<set _show to $sad[_number]>> /*this matches the _tell above because I'm using the same random number to grab array member*/
<<set $sad.deleteAt(_number)>> /*deleting that^^ show member from the array so we won't see it again soon*/
<<set $sadtell.deleteAt(_number)>> /*deleting that^^ tell member from the array so we won't see it again soon*/
<<case "afraid">>
<<if $afraid.length lte 0>> /*If the array is empty, refresh it!*/
<<arraymaker "afraid">> <<set $afraid to _array>> /*repopulate using the arraymaker widget */
<</if>>
<<if $afraidtell.length lte 0>> /*If the tell array is empty, refresh it!*/
<<arraymaker "afraid tell">> <<set $afraidtell to _array>> /*repopulate using the arraymaker widget */
<</if>>
<<set _number to random(0,$afraid.length-1)>> /*random number for index*/
<<set _tell to $afraidtell[_number]>> /*using random number to grab member*/
<<set _show to $afraid[_number]>> /*this matches the _tell above because I'm using the same random number to grab array member*/
<<set $afraid.deleteAt(_number)>> /*deleting that^^ show member from the array so we won't see it again soon*/
<<set $afraidtell.deleteAt(_number)>> /*deleting that^^ tell member from the array so we won't see it again soon*/
<<case "angry">>
<<if $angry.length lte 0>> /*If the array is empty, refresh it!*/
<<arraymaker "angry">> <<set $angry to _array>> /*repopulate using the arraymaker widget */
<</if>>
<<if $angrytell.length lte 0>> /*If the tell array is empty, refresh it!*/
<<arraymaker "angry tell">> <<set $angrytell to _array>> /*repopulate using the arraymaker widget */
<</if>>
<<set _number to random(0,$angry.length-1)>> /*random number for index*/
<<set _tell to $angrytell[_number]>> /*using random number to grab member*/
<<set _show to $angry[_number]>> /*this matches the _tell above because I'm using the same random number to grab array member*/
<<set $angry.deleteAt(_number)>> /*deleting that^^ show member from the array so we won't see it again soon*/
<<set $angrytell.deleteAt(_number)>> /*deleting that^^ tell member from the array so we won't see it again soon*/
<<case "disgusted">>
<<if $disgusted.length lte 0>> /*If the array is empty, refresh it!*/
<<arraymaker "disgusted">> <<set $disgusted to _array>> /*repopulate using the arraymaker widget */
<</if>>
<<if $disgustedtell.length lte 0>> /*If the tell array is empty, refresh it!*/
<<arraymaker "disgusted tell">> <<set $disgustedtell to _array>> /*repopulate using the arraymaker widget */
<</if>>
<<set _number to random(0,$disgusted.length-1)>> /*random number for index*/
<<set _tell to $disgustedtell[_number]>> /*using random number to grab member*/
<<set _show to $disgusted[_number]>> /*this matches the _tell above because I'm using the same random number to grab array member*/
<<set $disgusted.deleteAt(_number)>> /*deleting that^^ show member from the array so we won't see it again soon*/
<<set $disgustedtell.deleteAt(_number)>> /*deleting that^^ tell member from the array so we won't see it again soon*/
<<case "confused">>
<<if $confused.length lte 0>> /*If the array is empty, refresh it!*/
<<arraymaker "confused">> <<set $confused to _array>> /*repopulate using the arraymaker widget */
<</if>>
<<if $confusedtell.length lte 0>> /*If the tell array is empty, refresh it!*/
<<arraymaker "confused tell">> <<set $confusedtell to _array>> /*repopulate using the arraymaker widget */
<</if>>
<<set _number to random(0,$confused.length-1)>> /*random number for index*/
<<set _tell to $confusedtell[_number]>> /*using random number to grab member*/
<<set _show to $confused[_number]>> /*this matches the _tell above because I'm using the same random number to grab array member*/
<<set $confused.deleteAt(_number)>> /*deleting that^^ show member from the array so we won't see it again soon*/
<<set $confusedtell.deleteAt(_number)>> /*deleting that^^ tell member from the array so we won't see it again soon*/
<<default>>
Suitable SHOW sentence switch error!
<</switch>>/*SEUP VARIABLES*/
<<set _emotiontype to $emotionarray.random()>> /*grabbing a random TYPE of emotion from the categories in emotionarray before including the show and tell sentence maker below*/
<<include [[emotion array setup]]>> /*sets the story variable arrays*/
<<include [[show and tell sentence maker]]>>
<<emotion _emotiontype>> /*emotion widget gets random synonym emotion called _emotion using _emotiontype as args[0]*/
/*CHARACTER/GENDER SETUP*/
/*Get a random gender, a matching character and set temporary character variable*/
<<set $gender to random(1,2)>>
<<if $gender is 1>>
<<gender "female">>
<<set _character = ["Sue","Ellen","Mary"]>>
<<else>>
<<gender "male">>
<<set _character = ["John","Phil","Tony"]>>
<</if>>
<<set _x to _character.random()>>/*QUIZ SETUP --> COPY PASTE THIS DATA INTO ANY PASSAGE WHERE YOU WANT A QUIZ, AND CHANGE THE VARIABLES!*/
/*QUESTIONS and ANSWERS*/
<<set $numberofquestions to 5>> /*This is how many quiz questions and answers should display*/
<<set $myCorrectQuestionsArray = ["right1","right2","right3","right4","right5","right6"]>> /*I NEED TO REPLACE THE ARRAY HERE WITH WHATEVER DATA (AN ARRAY) OF CORRECT QUESTIONS!*/
<<set $myWrongQuestionsArray = ["wrong1","wrong2","wrong3","wrong4","wrong5","wrong6"]>> /*I NEED TO REPLACE THE ARRAY HERE WITH WHATEVER DATA (AN ARRAY) OF CORRECT QUESTIONS!*/
<<set $truefalse = ["T","T","T"]>> /*Inititialise number of options variable and start with one true by default. Can add more T's if you want!*/
/*LOOP to populate $truefalse question options variable with trues and falses AND labels for answers*/
<<for _i to $truefalse.length; _i lt $numberofquestions; _i++>> /*the index here is set to the LENGTH of the $truefalse variable above, so if you add more T's it should work it out and as many F's as it needs*/
<<set $truefalse.push("F")>> /*add falses to fill the array*/
<</for>>
/*QUESTION LABELS - actually important because it's how the buttons determine if an answer is correct*/
<<set $alphabet =["X","Y","Z","POO","E","F","G","H"]>>
<<set $questionlabels = []>> /*Initialise answerlabels array with one label (later it will grab more labels from alphabet above, starting with B (position 1 in the array)*/
<<for _i to 0; _i lt $numberofquestions; _i++>>
<<set $questionlabels.push($alphabet[_i])>> /*add question labels from alphabet^^ based on the number of questions^^*/
<</for>>
/*PLAYER FEEDBACK*/
<<set _right to "Hooray you did it!">> /*this is the default display text when player get's answer right*/
<<set _wrong to "Oopsy...try again!">> /*this is the default display text when player get's answer wrong*/
/*DISPLAY*/
<<include [[quiz display GAME MECHANIC]]>>/*DISPLAYS QUESTIONS AND ANSWERS BASED ON THE DATA IN THE QUIZ SETUP*/
QUESTIONS:
<span id ="questions"></span>
BUTTONS:
<span id ="buttons"></span>
DEBUGGING:
Questions: $numberofquestions
Truefalse array: $truefalse
Question Labels: $questionlabels
Answer array: <<timed 2s>>_answer<</timed>>
<<nobr>>
<<set _answer = []>> /*Initialise temporary empty answer array (just the answer for this turn*/
<<set _currentpassage to passage()>> /*setting current passage to a variable so the buttons below can goto it*/
/*QUESTION AND ANSWER LOOP...Has to be delayed for DOM reasons*/
<<timed .3s>>
/*For each option, get a random true or false from the answer options array then assign the matching question AND answer */
<<for _counter to 0; _counter lt $numberofquestions; _counter++>>
/*ADD A QUESTION (and determine if it's true or false)*/
<<set _currentoption to $truefalse.pluck()>> /*removes a random T or F (true or false) from the answer options array*/
<<if _currentoption is "T">> /*this option should be CORRECT (question AND answer)*/
<<set _truequestion to $myCorrectQuestionsArray.pluck()>> /*Grab random TRUE question */
<<append "#questions">>$questionlabels[_counter] _truequestion. <</append>> /*assign label AND TRUE question*/
/*ADD A TRUE BUTTON*/
<<append "#buttons">>
<<button $questionlabels[_counter]>>
<<replace "#buttons">>_right<</replace>> /*replace this span so players can't continue clicking!*/
<<timed 2s>>
<<goto _currentpassage>>
<</timed>>
<</button>>
<</append>>
<<else>> /*this option is INCORRECT */
<<set _falsequestion to $myWrongQuestionsArray.pluck()>> /*Grab random FALSE question */
<<append "#questions">>$questionlabels[_counter] _falsequestion. <</append>> /*assign label AND FALSE question*/
/*ADD A FALSE BUTTON*/
<<append "#buttons">>
<<button $questionlabels[_counter]>>
<<replace "#buttons">>_wrong<</replace>> /*replace this span so players can't continue clicking!*/
<<timed 3s>>
<<replace "#buttons">>
<<button "Next">>
<<goto _currentpassage>> /*give player a button to go to the next question. They can examine their mistake and when they're ready, move on*/
<</button>>
<</replace>>
<</timed>>
<</button>>
<</append>>
<</if>>
<</for>>
<</timed>>
<</nobr>>\<<widget "gender">> /*the name of the widget*/
<<if $args[0] is "male">>
<<set $he to "he">>
<<set $him to "him">>
<<set $his to "his">>
<<set $himself to "himself">>
<<set $He to "He">>
<<set $Him to "Him">>
<<set $His to "His">>
<<set $Himself to "Himself">>
<<set $son to "daughter">>
<<set $witch to "witch">>
<<set $wife to "wife">>
<<set $wizard to "wizard">>
<<set $prince to "prince">>
<<else>>
<<set $he to "she">>
<<set $him to "her">>
<<set $his to "her">>
<<set $himself to "herself">>
<<set $He to "She">>
<<set $Him to "Her">>
<<set $His to "Her">>
<<set $Himself to "Herself">>
<<set $son to "son">>
<<set $witch to "wizard">>
<<set $wife to "husband">>
<<set $wizard to "witch">>
<<set $prince to "princess">>
<</if>>
<</widget>>_x laughed and punched $his fist into the air
_x couldn't stop grinning
_x held $his breath while $his brother unwrapped the gift
_x giggled as $he turned the pages in $his book
_x went on every ride at the theme park that day
_x ran into the lounge, skipping and dancing_x smiled happily. Victory at last.
_x was smiling joyfully
_x waited excitedly while $his brother unwrapped the gift
_x turned the pages of the $his book gleefully
_x was energised by the theme park
_x cheerfully entered the lounge. $He was full of joy_x turned to gaze at the setting sun and the sharp angles in $his face melted.
_x closed $his eyes, sipped $his chocolate milkshake and smiled
_x flopped onto the couch with a chuckle, and breathed deeply
_x watched the light on the water, humming softly
_x walked slowly, letting the smell of earth and flowers wash over $him_x turned to gaze at the setting sun, his face the picture of peace.
_x sipped $his chocolate milkshake in satisfaction
_x flopped onto the couch contentedly
_x sat by the river and felt a serene calm.
_x always loved how peaceful the garden was_x sighed as $he watched $his laptop sink beneath the waves
_x's shoulders sank as $he heard the news
_x sniffed, and blew $his nose loudly on a tissue
_x turned towards $his friend with cold, lifeless eyes
_x's breathing came in deep, heaving gasps
_x didn't want to talk to anyone. It was too hard
_x stared out the window with sunken eyes
_x's father asked if $he was still having trouble getting out of bed
Each day, _x felt like there was a little less air in the world
_x let the flowers fall from $his grasp onto the gravestone_x was miserable when $his laptop sank
_x's felt sad as $he heard the terrible news
_x looked like $he had just been crying
_x turned towards $his friend with a look of resignation
_x's sobbed in despair
_x resigned $himself to a sorrowful silence
_x was miserable living alone. $He found it soul destroying
_x was so miserable $he couldn't get out of bed
_x grappled with a growing feeling of despair
_x placed the flowers on the gravestone mournfully_x's heart was beating rapidly in $his chest
_x's breath caught in $his throat
_x's face grew white as $he watched $his watch
_x waited until all the lights were on in the house before entering
_x tried to slow $his breathing. It's alright, $he told $himself
_x crept slowly down the stairs, freezing at every noise
_x didn't want anyone knowing $he always took 2 spare torches to the woods.
_x kept pacing up and down, his eyes wide
_x wiped sweat off $his forehead
_x swallowed. $His mouth was dry_x's heart was pounding with dread
_x was terrified
_x started to panic as $his time ran out
_x was too scared to enter the house in the dark
_x tried to comfort $himself and calm his growing sense of terror
_x went nervously down the stairs, terrified of what would happen if they woke
_x had an unreasonable fear of the woods, especially at night time
_x kept pacing up and down the room fearfully
_x's face was filled with worry
_x knew $he looked terrified_x slammed his cards down on the table
_x walked out of the room and slammed the door
_x kicked the stuffed teddy across the room
_x punched the couch cushion and sighed
_x puffed like a bull about the charge
_x clenched and unclenched $his fists
_x said, "I need a shower to cool off"
_x screamed at the car in front, and beeped the horn 3 times_x was furious after the game
_x left the room in a fit of fury
_x felt angry, like $he wanted to hurt someone or something
_x felt rage rising within $himself and struggled to contain it
_x sniffed angrily, like a bull about the charge
_x looked mad, real mad
_x decided to leave the room and let his anger boil down
_x was irritated easily, and turned into a raging devil behind the wheel spat into the ashtray and tried to stop $himself gagging
_x clutched $his stomach and ran to the bathroom
_x grimaced as $he bit into the olive
_x choked on the bread. It tasted like old socks dipped in manure
_x watched the toad slurp up the slime. $He had to look away
After the ride, _x held $his stomach for the next hour
_x's face was green. $He closed $his eyes and moaned a little every time the boat rocked_x spat out the cigarette in disgust
_x felt the queasiness hit him in a wave of nausea
_x thought the olive was gross
_x reeled in shock at the foul tasting bread. It was truly disgusting
_x watched the toad eating the slime. It was revolting
_x felt sick after the ride and almost puked
_x's face was green. $He was feverish, and the movement of the waves made $him feel sick5 coffees later, _x scratched $his head and stared blankly at the puzzle.
_x stifled a yawn. "It's too tricky for me"
_x held $his head in his hands. "What's the answer!?" $he mumbled
_x went over every detail until $his head was swimming
_x lost himself in the labyrinth of possibilities
_x shook $his head and tried to clear $his thoughts
_x tried to watch the magician's hands, but it all happened so fast_x The puzzle was extremely difficult, and _x tried in vain to solve it
_x was tired and gave up easily
_x felt exhausted, but $he had to know the answer
_x struggled to piece it all together. It was such a muddle
_x was confused by the number of different options
_x felt muddled and tried to refocus $himself
_x couldn't understand how the magician did the trickCREATING AN OBJECT WITH 2 PROPERTIES:
<<set $Object to {"Strength":12, "Constitution": 15}>>
OBJECT USAGE EXAMPLES:
1. Accessing the "Strength" key value:
Strength is $Object["Strength"] /*This should display: "Strength is 12"*/
2. Updating the "Strength" key value:
<<set $Object["Strength"] +=2>> /*This should update the value of Strength to: 14 */
3. Adding a property to the object, and in this case it's a sugarcube variable:
<<set $SugarcubeVariable to 3>>
<<run $Object["key3"] = $SugarcubeVariable;>> /*This should add third property to the object with a key called "key3" and a value that matches whatever the $SugarcubeVariable happens to be*/
4. Deleting a property: /*Deleting properties follow the same rules as deleting anything else in JavaScript. To directly use JavaScript in SugarCube, you can use "<<run>>" or "<<script>>" macros)
So, for example, to delete a single property you'd go:*/
<<run delete $Object["Constitution"]>> /*This should delete the property "Constitution" from the object, along with it's matching value*/
Testing all values in a Twine passage:
Strength is: $Object["Strength"], Constitution is: $Object["Constitution"], key3 is: $Object["key3"]<link href="https://fonts.googleapis.com/css2?family=Libre+Baskerville:wght@400;700&display=swap" rel="stylesheet">http://www.gogamewise.com
<br><br>
<div class="flex" style="align-items: baseline; justify-content: center;">
<div id="volumeslider">Sound:<<volume>></div>
</div>
<span class="credits">[[Credits]]</span>
/*VERTICAL HEALTHBAR DISPLAY FOR STORY CAPTION*/
<div id="verticalhealthbarbkg" class="vertbarbkg">
<div id="verticalhealthbar" class="vertbar"></div>
</div>
<<run Health2($CurHP, $MaxHP, "verticalhealthbar", false)>>!!!These Awesome People Made this Game Possible:
-Hannah for her Graphic Design work
-Josh Grams for his excellent TinyQBN storylet engine!
-TME for his awesome widgets and various code advice
-Hiev for awesome widgets and healthbars etc.
-Chris Klimas for Twine!
[[Back to Game|Hunt]]<<set $points to 5>>
<<set $textboxbutton to "Check!">>
<<set $handlimit to 3>>
<<set $beans to false>>
<<set $reward to 3>>
<<set $difficulty to "demo">>
<<set $emotionarray = ["happy","contented","sad","afraid","angry","disgusted"]>>
<<include [[emotion array setup]]>>
/*STOW UI BAR*/
<<script>>UIBar.stow()<</script>>
/*HEALTH*/
<<set $MaxHP to 10>> /* Maximum Hit Points */
<<set $CurHP to 5>> /* Current Hit Points */
/*SOUNDS */
<<set _sound = setup.Path + "error.mp3">>
<<cacheaudio "error" _sound>>
<<set _sound = setup.Path + "victory.mp3">>
<<cacheaudio "victory" _sound>>/* widget fuction that adds or subtracts health, plays appropriate sound and sends you to the death passage if you're dead!*/
<<widget "CurHP">>
/*LOSE HEALTH */
<<set $CurHP to $CurHP + $args[0]>> /*Gain or lose as much HP as the widget argument[0] */
/*AUDIO */
<<if $args[0] gt 0>> /*GAIN HP, so play victory sound */
<<audio "victory" volume 0.5 play>>
<<audio "victory" fadeoverto 1 0>>
<<timed 1s>> <<audio "victory" stop>> <</timed>>
<<else>> /*no gain of HP, so play error sound */
<<audio "error" volume 0.5 play>>
<<audio "error" fadeoverto 1.5 0>>
<</if>>
/*GAME-BASED STUFF */
<<if $CurHP lte 0>> /*IF HP loss dropped player below 0 send them to the death passage! */
<<timed 1.5s>>
<<audio "error" stop>>
<<goto [[death]]>>
<</timed>>
<</if>>
<<if $CurHP gte $MaxHP>> /*IF that gain put player OVER max HP, set HP to Max HP*/
<<set $CurHP to $MaxHP>>
<</if>>
/*UPDATE HEALTHBAR! */
<<run Health2($CurHP, $MaxHP, "verticalhealthbar", false)>>
<</widget>><<set _confidence to 0>>
Your Detective XP ran out :(
Your confidence took a blow, so you spend some time reflecting on what you know so far...
Maybe you can rebuild your confidence with some new ideas?
//Hint: Find the 3 sets of photos!//
<span id="confidence">Your confidence: _confidence</span>
<<button "Think...">>
<<set _confidence++>>
<<replace "#confidence">>Your confidence: _confidence<</replace>>
<<if _confidence gte 10>>
<<replace "#confidence" t8n>>
Your confidence is restored!
<<button "Get back in the Game!">> <<set $CurHP to 5>> <<goto [[Hunt]]>> <</button>>
<</replace>>
<</if>>
<</button>>Your time ran out! :(
Your inference detective skills are not as sharp as you thought they were.
<h1>The thief has escaped & the candy is lost!
:( </h1>
<<button "Go back in time and try again">>
<<run Engine.restart()>>
<</button>><<link "choice 1">><<goto [[choice 1]]>><</link>><<link "choice 2">><<goto [[choice 2]]>><</link>><<link "choice 3">><<goto [[choice 3]]>><</link>>
<div class="pagecontainer">
<div class="boss">
<img src="boss.png" alt="scary boss!" class="bossappear">
<br style="clear:both" />
<p>McCluckenstein</p>
</div>
<div class="bossactions">
<p>The chicken drooled hungrily... The little greent thing looked pretty delicious but the chicken was disturbed by the way it was jumping about. Finally it decided to go for it. Springing towards its prey it squarked: </p>
<div class="bossdialogue">
<p>I'm gonna peck you to kingdom come!</p>
</div>
</div>
<div class="hero">
<img src="thankyou.png" alt="Hero">
<br style="clear:both" />
<p>Some Deluded Fool</p>
</div>
<div class="heroactions">
<p> You stare wide eyed at the chicken as it leaps towards you.. It's beady eyes bore into yours, it's wings are stretched wide and it's talons are heading straight for your eyeballs! You have to spook it! You jump in the air crying:</p>
<div class="herodialogue">
<p>You're nothing but a smelly old chicken! I've seen scarier things than you in my kids nappy! Cluck off why doncha!!??
</p>
</div>
<p>What are you going to do next?</p><ul>
<li><<link "Jump on it's back">><<goto [[choice 1]]>><</link>></li>
<li><<link "Poke it in the eye">><<goto [[choice 2]]>><</link>></li>
<li><<link "Roll up into a ball and play dead">><<goto [[choice 3]]>><</link>></li>
</ul>
</div>CHOICE 1~!//Photos of Your House - taken on Freddy's phone. What's happening here?//<br>
<div class="flex">
<div class="flexitem">
<div> i) <img src="assets/yourhouse-phonepic1.jpg" style="max-width: 500px;"> </div>
<div> ii) <img src="assets/yourhouse-phonepic2.jpg" style="max-width: 500px;"> </div>
<div> iii) <img src="assets/yourhouse-phonepic3.jpg" style="max-width: 500px;"> </div>
</div>
</div>//Photo of Vinny's House - taken on Bianca's phone. Hmm what is going on?//<br>
<div class="flex">
<div class="flexitem">
<img src="assets/vinnyshouse-phonepic.jpg" style="max-width: 500px;">
</div>
</div>//Photo of Suzy's House - taken on Billy's phone. Can you figure out what's happening?//<br>
<div class="flex">
<div class="flexitem">
<img src="assets/suzyshouse-phonepic.jpg" style="max-width: 500px;">
</div>
</div>/*QBN
sticky-card
req: _location
*/
<div class="imageMapObserve flex"> /*the "imageMapObserve" class around the image is for HiEv's image map resizing... the "flexitem" is so it grows and shrinks. And there's "flex" in the passage tag (a flex container)*/
<div class="flexitem">
<img src="assets/yourhouse-presentday.jpg" usemap="#yourhouse_map"> /*This is the image path. A sugarcubey alternative might be: "<img @src="setup.ImagePath+'MarioScreen.png'" usemap="#image-map" width="80%">"*/
</div>
<p>You head over your place... The scene of the crime!</p>
</div>
[[Hunt for clues|Hunt]]
<map name="yourhouse_map">
<area alt="Mr Pumpkin. Aka Dad." title="Mr Pumpkin. Aka Dad." data-passage="Find Dad" coords="254,566,440,945" shape="rect">
<area alt="Mrs Pumpkin. Aka Mum." title="Mr Pumpkin. Aka Mum." coords="768,469,903,647" shape="rect">
<area alt="Your younger brother Patrick. Looks upset." title="Your younger brother Patrick. Looks upset." data-passage="Patrick" coords="675,598,773,780" shape="rect">
<area alt="Ronald. Nerdy best friend." title="Ronald. Nerdy best friend." data-passage="Sidekick" coords="1169,595,1334,914" shape="rect">
<area alt="Trash can. Knocked over. Empty." title="Trash can. Knocked over. Empty." coords="440,721,596,813" shape="rect">
<area alt="The CANDY CAULDRON! Empty :(" title="The CANDY CAULDRON! Empty :(" coords="839,651,1065,830" shape="rect">
<area alt="You. Yep, that's you! You're having a weird out-of-body experience right now..." title="You. Yep, that's you! You're having a weird out-of-body experience right now..." data-passage="" coords="99,591,252,945" shape="rect">
<area alt="A ridiculous bear suit. Where did he even get it??" title="A ridiculous bear suit. Where did he even get it??" coords="262,462,412,565" shape="rect">
</map>/*QBN
sticky-card
req: _location
*/
<div class="imageMapObserve flex"> /*the "imageMapObserve" class around the image is for HiEv's image map resizing... the "flexitem" is so it grows and shrinks. And there's "flex" in the passage tag (a flex container)*/
<div class="flexitem">
<img src="assets/vinnyshouse-presentday.jpg" usemap="#vinnyhouse_map"> /*This is the image path. A sugarcubey alternative might be: "<img @src="setup.ImagePath+'MarioScreen.png'" usemap="#image-map" width="80%">"*/
</div>
<p>You head over to Vinny's place.. Let's have a look around!</p>
</div>
[[Hunt for clues|Hunt]]
<map name="vinnyhouse_map">
<area alt="Vinny's Dad. Nice guy." title="Vinny's Dad. Nice guy." coords="600,528,782,806" shape="rect">
<area alt="Oooh someone dropped this! " title="Oooh someone dropped this! " data-passage="Bianca's Items" coords="893,784,1033,870" shape="rect">
<area alt="Eeek!" title="Eeek!" coords="1420,869,1490,942" shape="rect">
<area alt="2 Friends on the scavenger hunt..." title="2 Friends on the scavenger hunt..." coords="1102,611,1423,936" shape="rect">
<area alt="Harold the clown. What an intense guy!" title="Harold the clown. What an intense guy!" data-passage="Clown" coords="89,510,461,925" shape="rect">
<area alt="Vinny's dog. Tied up." title="Vinny's dog. Tied up." data-passage="Dog" coords="482,609,556,673" shape="rect">
</map>/*QBN
sticky-card
req: _location
*/
<div class="imageMapObserve flex"> /*the "imageMapObserve" class around the image is for HiEv's image map resizing... the "flexitem" is so it grows and shrinks. And there's "flex" in the passage tag (a flex container)*/
<div class="flexitem">
<img src="assets/suzyshouse-presentday.jpg" usemap="#suzyhouse_map" > /*This is the image path. A sugarcubey alternative might be: "<img @src="setup.ImagePath+'MarioScreen.png'" usemap="#image-map" width="80%">"*/
</div>
<p>You head over to Suzy's place.. Maybe someone here knows something!</p>
</div>
[[Hunt for clues|Hunt]]
<map name="suzyhouse_map"> /*This value MUST match the usemap value above, but WITHOUT the "#" */
<area alt="Sassy Suzy. Looks unhappy about something..." title="Sassy Suzy. Looks unhappy about something..." data-passage="Grandpa" coords="832,601,980,889" shape="rect">
<area alt="Suzy's Grandpa. Eccentric." title="Suzy's Grandpa. Eccentric." data-passage="Grandpa" coords="677,565,835,888" shape="rect">
<area alt="Some kids having fun on the scavenger hunt..." title="Some kids having fun on the scavenger hunt..." coords="1068,673,1389,919" shape="rect">
<area alt="A plastic bag. Flies buzz round it. Hmm..." title="A plastic bag. Flies buzz round it. Hmm..." coords="441,847,489,897" shape="rect">
<area alt="Vinny. Looks pleased about something..." title="Vinny. Looks pleased about something..." data-passage="Vinny" coords="374,677,485,848" shape="rect">
</map>/*QBN
sticky-card
req: _exploring
*/
<<if visited() gt 1>>
<<goto [[Question Dog]]>>
<</if>>
<div class="scenetext">
<br>At Vinny's front door you are greeted by Dog. Yes, that's his name. <br>
He's a real straight talker, and he never understood why anyone would want to call him anything other than just "Dog".<br><br>
Dog goggles at you as you approach and lifts a fat little paw.<br>
'Dog want to walk now,' he puffs, and strains at his leash.<br>
'I'm not really supposed to let you off, Dog, you know that,' you say. 'But I would like to ask you some questions.'<br>
'Dog don't like questions,' says Dog, tossing his head to look at the street. 'So many smellings!' he pants softly. <br>
'Are you just going to ignore me then?' you ask. The little fellow can be a right pest.<br><br>
You try a different tack.<br><br>
[[Offer Dog a treat|Give Dog a Treat]]--|--[[Threaten Dog if he doesn't help you|Threaten Dog]]
</div><div class="scenetext"><br>
'What if I were to get you a little something?' You say, looking casual. 'A little Halloween snack?'<br>
Dog's ears stick straight up and he licks his chops.<br>
'What kind of snack snack?' He slobbers, tugging at his leash again. <br>
'Something sweet,' you say carelessly, 'something...yummy.'<br>
Dog barks happily, and paws at the ground. 'Ask questions, give snacks! Dog helps!' he froths.
<br><br>
[[Question Dog]]
</div><div class="scenetext"><br>
You look at Dog with hard eyes. 'If you don't help me, I'll have to tell Vinny's dad you've been digging up our garden.'<br>
'No! Please! Dog sorry!' Dog whimpers, and then whines, 'Dog can't help himself!'<br>
'I can see that!' you say sternly. 'Now will you answer my questions?'<br>
'Dog helps!' he pants, 'Dog helps!'
<br><br>
[[Question Dog]]
</div><div class="scenetext">
<<if $beans is true>> <<goto [[Dog Reveals All]]>> <</if>>
<<switch visited()>>
<<case 1>><br>
You start to question Dog. 'Do you know anything about who stole our candy?'<br>
Dog looks at you with his beady little eyes and nods. So he does know something.<br>
'Did you see who did it?'<br>
'Dog sees many candies in trash,' Dog sniffs.<br>
'Which trash?' <br>
'You trash.' Dog mutters. <br>
'Could that have been the CANDY CAULDRON candy?<br>
'Dog not talk,' Dog growls. 'Give treats first.'<br>
You sigh. 'Ok I'll come back later,' you tell him.<br>
<<case 2>><br>
You try to ask Dog more questions about the candy he saw.<br>
'C'mon Dog. Did you see who took it out of the trash can?'<br>
Dog whines, and puts his paws over his eyes. 'Dog not say.'<br>
'Does that mean you do know?' You ask.<br>
Dog growls softly in his throat but then his eyes narrow. 'Give treats, Dog say!' he says with a sly little grin, and looks around quickly to see if anyone is watching. <br>
'Ok,' you say, 'it's a deal.'<br>
<<case 3>><br>
'Find snacks?' Dog barks as you approach.
'Not yet,' you say. 'Can you just tell me what you know?'
Dog barks a laugh. 'No snack. No tell. No.'
<<default>><br>
Dog looks up hopefully as you approach, but when he sees you don't have any snacks for him he snorts and puts his head back down.
<</switch>>
<br>
[[Come back later|Hunt]]
</div><div class="scenetext">
<<switch visited()>>
<<case 1>>
<br>
You hold the fresh wild beans in your hand. Time to get Dog to talk.<br>
'I hear you like BEANS dog.'<br>
Dog sits up and his eyes widen. 'Beans, yes. Dog like beans yes.'<br>
You toss Dog the beans.<br>
'Tell me what you know,' you say.<br>
'Dog saw something important,' Dog grunts as he wolfs down the beans.<br>
'Can you tell me what you saw?'<br>
Dog shakes his head. 'No talk yet. When you accuse thief, then Dog tell.'<br>
'Why won't you tell me now?'
Dog looks around furtively. 'Dog has spoken.'
<br>
<<default>>
<br>
'Thanks beans,' Dog grunts happily, chewing on the last bit of bean.
Dog looks at you with one eye shut. 'Why here?'<br>
You pause. Why ARE you here? 'Um...I just thought I'd see if you wanted to tell me more?'<br>
Dog shakes his head. 'When you accuse thief. Dog will tell.'<br>
'Ok deal.' You say, trying to sound cool. 'Deal.'<br>
<</switch>>
<br>
[[Hunt for more clues|Hunt]]
</div><div class="scenetext"><br>
/*QBN
card
req: _exploring
req: hasVisited("Question Dog")
req: hasVisited("Grandpa Reward")
*/
You are walking through the woods when you come across Suzy.<br>
'Seen anything suspicious?' you ask hopefully.<br>
'Not, yet,' she says, 'and hey, thanks so much for helping Grandad earlier, he was driving me nuts!'<br>
'No problem,' you say. She's a nice kid.<br>
'I've found all kind of interesting things on this scavenger hunt!' she says happily. 'So much more fun than staying at home.'<br>
'What have you found so far?' you ask.<br>
'Not many clues I'm afraid, but look at these green beans!' she brandishes a fistful of wild green beans.<br>
'Huh, what are you going to do with them?'<br>
'Give them to dog of course! He LOVES fresh beans.'<br>
Suddenly you stop in your tracks.
<br><br>
[[Could I give them to dog?|Suzy Gives You the Beans]]
</div><div class="scenetext"><br>
'Sure!' says Suzy, handing you the beans. 'Dog is a funny beast, but he'll do anything for food!'
<br>
//You take the beans!//<br><br>
[[Keep hunting for clues|Hunt]]
<<set $beans to true>>
</div>/*QBN
card
req: _exploring
req: hasVisited("1. Vinny's House")
*/
You discover some strange items on Vinny's lawn. Looks like someone left these behind...
<<include "Bianca's Items">>//Items://
<div class="flex">
<img src="assets/biancasitems.png" style="max-width: 500px;" class="flexitem" >
</div>
<<if visited("Hospital") is 0>>
Where could the person who had these have gone to?<br><br>
You look at the items closely, and then think about where the person could have gone...<br><br>
//Hint: Enter the location, and if you're right, you'll go there when you click explore!//<br>
<<password "hospital" "Hospital" "Explore that location">>
<</if>>
<<if passage() isnot 'Stash'>>
//These items have been added to your [[Stash]]!
<<else>>
<</if>>
<<if visited() is 1>>
<<set $biancasitems to true>>
<</if>>/*QBN
card
req: _exploring
*/
<div class="scenetext"> <br>
You come across Vinny on his way home from Suzy's place.<br>
He's carrying a small bag of something, but you notice straight away he's not wearing his usual vampire cape. <br>
'Where's your cape Vinny?' you say casually. 'You love that thing!'<br>
'Ugh...' says Vinny in a disinterested voice. 'It was too hot.'<br>
'Right,' you say. 'And what's in the bag?'<br>
'Nosy aren't you?' Vinny frowns. 'Just some...candy. Hey have you found any clues for the scavenger hunt yet?'<br>
'I'm not doing the scavenger hunt,' you say. 'I'm going to catch whoever stole the CAULDRON's candy!'<br>
Vinny looks at you and smirks. 'If a thief is stupid enough to leave a trail they DESERVE to be caught!'<br>
'Well I guess we'll find out!' you say hotly.<br>
'I guess we shall,' Vinny muses. 'If you find any clues, let me know.'<br>
<br>
[[Keep searching for clues|Hunt]]
</div>/*QBN
card
req: _exploring
*/
<div class="scenetext"> <br>
You see Patrick moping about in the lounge room and wonder if he saw anything unusual.<br>
'Hey Pat, do you know anything about the stolen candy?' you ask.<br>
'I don't want to talk about it,' he says, 'I just want it back NOW!'<br>
'Calm down,' you say, trying to sound reassuring. 'We'll get it back!'<br>
'You really think so?' says Pat, sitting up on the couch. 'I can't believe it's...gone.'<br>
It seems to really have knocked him around. You didn't think it would hit him this hard, but then again he is only 7.<br>
'Don't worry,' you say. 'I'll catch whoever took the candy out of the CAULDRON and make 'em pay!' You pound your fist into your hand, and Patrick's face goes white. <br>
'Just be careful out there,' he says softly. 'Those nasty Imps are around you know?'<br>
You nod, and head for the door.<br>
<br>
[[Keep searching for clues|Hunt]]
</div>/*QBN
card
req: _exploring
req: hasVisited("1. Vinny's House")
req: hasVisited("2. Your House")
req: hasVisited("3. Suzy's House")
req: hasVisited("Patrick")
req: hasVisited("Freddy 4 Arms")
*/
<div class="scenetext">
You come across some Imps in the woods.<br>
'Look, it's him!' says one Imp to another. 'Pumpkin boy!' The other Imp snarls and they both flap over to you, their claws bristling.<br>
'Buzz off,' you say, and reach for a stick. Nasty little pests.<br>
'You're the boy!' the first Imp says in an accusing tone. <br>
'Yes, look at Pumpkin!' says the other, his greedy little eyes turning red.<br>
'I don't know who you think I am,' you say, trying to sound tough, 'but you've got me mixed up. I've never seen you in my life.'<br>
'You promised us...' said the first Imp. 'You PROMISED!'<br>
'And we WAITED for you,' said the second. 'But you never came!'<br>
'YOU BETRAYED US!' they both screech, and flap towards you, beating their wings.<br>
You yell and thrash your stick over your head as you beat a hasty retreat from the woods. <br><br>
What's got into them!?<br>
<br>
[[Keep searching for clues|Hunt]]
</div>