You've laid out your beach towel in your favourite spot, slapped on some sunscreen and bedded down on the sand, soaking up rays and listening to gentle rush and draw of the waves.
Only ... it's a little warmer than you expected.
Maybe some [[ice cream->at the ice cream van]] would sort you out?(unless: (passage:)'s tags contains "noheader")[
{You are (display: "location"). | [Your feet are ]<foots|
(if: (passage:)'s name is "at your favourite spot")[(append: ?foots)[ safely on the towel.]]
(else-if: (passage:)'s name is "dead")[(append: ?foots)[ irrelevant.]]
(else-if: (passage:)'s name is "ready to chow down")[(append: ?foots)[ tingling with anticipation.]]
(else-if: (passage:)'s name is "in ice cream heaven")[(append: ?foots)[ most pleased.]]
(else-if: (passage:)'s name is "in ice cream Nirvana")[(append: ?foots)[ one with everything.]]
(else-if: (passage:)'s name is "cooling down")[(append: ?foots)[ still sore.]]
(else:)[(append: ?foots)[ |counter)[ |tootsies>[$feetstatus]]]]
---
}](text-colour: "black")[(text-style: "outline")[(text-color: "yellow")+(text-style: "rumble")[<h1>Hot sand</h1>]]]
by Dave Bloustien
It's a hot summer day at the beach and you've got sensitive feet.
Can you handle it?
(click-goto: ?page, "at your favourite spot")(set: $countdownActive to true)\
(set: $tone to 0)\
You run to the ice cream van, your feet tingling on the hot sand and concrete, a five dollar note clutched in your hand.
The old man behind the counter throws you a smile.
|him>["Hot enough for ya?"]
|hot>[(link: "- It sure is, Mister!")[(set: $tone to it + 1)(replace: ?hot)[(display: "polite")]]
(link: "- Just give me the darn ice-cream, old man.")[(set: $tone to it - 1)(replace: ?hot)[(display: "impolite")]]]{(if: (passage:)'s tags contains "location")[(set: $loc to (passage:)'s name)]
(print: $loc)}(set: $countdownActive to false)You notice a strong smell, like sizzling pork, and your world turns sideways.
You hit the sand. There's no pain anymore. Just shock, as you slowly disolve into the hot, hot sand.
If only you'd bought an ice-cream in time.
You have died.
Would you like to try again?
(link: "- Sure")[(reload:)](set: $countdownActive to true)\
(unless: visits is 0)[Jumping from foot to foot, you rejoin the queue, eventually making your way back to the front.
]\
(if: $flavs's length is 0)[(if: $tone > 0)[The old man gestures grandly to the flavours on display.]\
(if: $tone < 1)[The man stares at you gruffly.]\
[|him>["So what'll it be? We got ..."]]]\
(else:)[Take your pick.]
{|trays>[
(link: "vanilla")[
(set: $flavs to it + (a:"vanilla"))
(set: $nirvana to it + (a:"sweet"))
(replace: ?trays)[Vanilla.]
(show: ?check)] |
(link: "chocolate")[
(set: $flavs to it + (a:"chocolate"))
(set: $nirvana to it + (a:"sweet"))
(replace: ?trays)[Chocolate.]
(show: ?check)] |
(link: "strawberry")[
(set: $flavs to it + (a:"strawberry"))
(set: $nirvana to it + (a:"sweet"))
(replace: ?trays)[Strawberry.]
(show: ?check)] |
(link: "boysenberry")[
(set: $flavs to it + (a:"boysenberry"))
(set: $nirvana to it + (a:"sweet"))
(replace: ?trays)[Boysenberry.]
(show: ?check)] |
(link: "bubblegum")[
(set: $flavs to it + (a:"bubblegum"))
(set: $nirvana to it + (a:"sweet"))
(replace: ?trays)[Bubblegum.]
(show: ?check)] |
(link: "pistachio")[
(set: $flavs to it + (a:"pistachio"))
(set: $nirvana to it + (a:"sweet", "umami"))
(replace: ?trays)[Pistachio.]
(show: ?check)] |
(link: "hazelnut")
[(set: $flavs to it + (a:"hazelnut"))
(set: $nirvana to it + (a:"sweet"))
(replace: ?trays)[Hazelnut.]
(show: ?check)] |
(link: "choc chip")[
(set: $flavs to it + (a:"choc chip"))
(set: $nirvana to it + (a:"sweet"))
(replace: ?trays)[Choc chip.]
(show: ?check)] |
(link: "mint")[
(set: $flavs to it + (a:"mint"))
(set: $nirvana to it + (a:"sweet"))
(replace: ?trays)[Mint.]
(show: ?check)] |
(link: "basil")[
(set: $flavs to it + (a:"basil"))
(set: $nirvana to it + (a:"sweet", "umami"))
(replace: ?trays)[Basil.]
(show: ?check)] |
(link: "rosemary")[
(set: $flavs to it + (a:"rosemary"))
(set: $nirvana to it + (a:"umami"))
(replace: ?trays)[Rosemary.]
(show: ?check)] |
(link: "watermelon and feta")[
(set: $nirvana to it + (a:"sweet", "salty"))
(set: $flavs to it + (a:"watermelon and feta"))
(replace: ?trays)[Watermelon and feta.]
(show: ?check)]
]}
|check)["I'll have a (print: $flavs.join(" and ")) ice-cream, please."
{|him>["(either: "Coming right up!", "Great choice!", "Nice one!", "You have impeccable taste!") But did you want another scoop?"]
(if: $flavs's length < 4)[(append: "scoop?")[ You can totally have another scoop.]]\
(if: $flavs's length >= 4)[(append: "scoop?")[ That's ... quite a lot of ice cream.]]}
{(link: "- Yep.")[(go-to: "at the counter")] |
(link: "Nah, that's plenty.")[(go-to: "at the toppings section")]}]{
(enchant: ?him, (colour: green))
(enchant: ?you, (colour: red))
}"It sure is, Mister!"
The man winks at you.
|him>["I'd say it's hot enough for an ice-cream on the house, wouldn't you?"]
(link-reveal-goto: "- Darn tootin'!", "at the counter")[(set: $money to "free")]"Just give me the darn ice-cream, old man."
He frowns.
|him>["Don't they teach young people manners these days?"]
(link-reveal-goto: "- You're right. I have been terribly rude and I apologise.", "at the counter")[(set: $tone to it +1)]
[[- Don't they teach customer service to old people these days?->in a pickle]](set: $money to "paid")\
(set: $tone to 0)\
(set: $flavs to (a:))\
(set: $extras to (a:))\
(set: $countdownActive to false)\
(set: $count to 0)\
(set: $feetstatus to "safely on the towel.")\
(set: $nirvana to (a:))|him>["Alrighty. One (print: $flavs.join(" and ")) ice-cream."]
He gestures to the toppings and sprinkles.
|him>["Did you want it dipped in chocolate?"
]
{|r1>[(link: "- Yes, please.")[
(set: $extras to it + (a:"chocolate dip"))
(set: $nirvana to it + (a:"sweet"))
(replace: ?r1)[- Yes, please.]
(show: ?q2)] |
(link: "No thanks.")
[ (replace: ?r1)[- No thanks.]
(show: ?q2)] |]
}|q2)[
|him>["Sherbert?"]
{|r2>[(link: "- Sure.")[
(set: $extras to it + (a:"sherbert"))
(set: $nirvana to it + (a:"sour", "sweet"))
(replace: ?r2)[- Sure.]
(show: ?q3)] |
(link: "Nah.")
[ (replace: ?r2)[- Nah.]
(show: ?q3)]
]}]|q3)[
|him>["What about nuts?"]
{|r3>[(link: "- Sounds great!")[
(set: $extras to it + (a:"nuts"))
(set: $nirvana to it + (a:"bitter", "salty"))
(replace: ?r3)[- Sounds great!]
(show: ?q4)] |
(link: "Pfft!")
[ (replace: ?r3)[- Pfft!]
(show: ?q4)]
]}]|q4)[
|him>["Chicken salt?"]
{|r4>[(link: "- Of course!")[
(set: $extras to it + (a:"chicken salt"))
(set: $nirvana to it + (a:"umami", "salty"))
(replace: ?r4)[- Of course!]
(show: ?q5)] |
(link: "Eww!")
[ (replace: ?r4)[- Eww!]
(show: ?q5)]
]}]|q5)[
|him>["Chilli flakes?"]
{|r5>[(link: "- You know it!")[
(set: $extras to it + (a:"chilli"))
(go-to: "at the cash register")] |
(link: "Gross!")
[ (replace: ?r5)[- Gross!]
(show: ?q6)]
]}]|q6)[
|him>["You sure? The spicy kick goes well with (either: ...$flavs).]
{|r5>[(link: "- Okay, fiiiiine.")[
(set: $extras to it + (a:"chilli"))
(go-to: "at the cash register")] |
(link: "No, seriously, that's disgusting.")
[ (go-to: "at the cash register")]
]}](if: visits is 1)[|him>["I don't need to put up with this. We're closed!"]
With a rattling slam, the ice cream vendor pulls down the blind, shutting the ice-cream store for good.
Behind you, the rest of the queue spreads out and ]\
(if: visits > 1)[It's no good. You're tossed back into the fray.
The crowd ]encircles you, angry that you've sabotaged their ice-cream plans.
(either: "They shove at your shoulder.", "They angrily wave their fists in the air.", "A small child scowls at you, and points to her hungry belly.", "Up the back, you see an effigy of yourself, swinging from a scaffold (gosh, that was fast).")(if: $count > 15)[
You think you can smell burning.]
(link: (either: "Climb over the crowd.", "Crawl under their legs.", "Take a swing at the nearest person.", "Push through the crowd."))[(go-to: "in a pickle")]{
<!-- Is the countdown active? -->
(if: $countdownActive)[
<!-- Is there any 'time' left on the countdown counter. -->
(if: $count < 20)[
<!-- Refresh and reveal the displayed counter. -->
(replace: ?tootsies)[$feetstatus]
(show: ?counter)
<!-- (Re) start the countdown timer. -->
(live: 1s)[
<!-- Has the countdown been manually deactivated? -->
(if: not $countdownActive)[
(enchant: ?foots, (text-style: "none"))
(stop:)
]
(else:)[
(set: $count to it + 1)
(if: $count >= 0)[(set: $feetstatus to "nice and warm.")]
(if: $count > 4)[(set: $feetstatus to "quite warm.")]
(if: $count > 8)[(set: $feetstatus to "a little hot, actually.")]
(if: $count > 11)[(set: $feetstatus to "starting to burn.")]
(if: $count > 14)[(set: $feetstatus to "sizzling ...")]
(if: $count > 16)[(set: $feetstatus to "blistering ...")]
(if: $count > 18)[(enchant: ?foots, (text-color: red))]
(if: $count > 20)[(enchant: ?foots, (text-style: "shudder"))]
<!-- If 'time' has run out move to the next passage. -->
(if: $count >= 20)[
(set: $countdownActive to false)
(go-to: "dead")
]
<!-- otherwise refresh the displayed counter. -->
(else:)[
(replace: ?tootsies)[$feetstatus]
]
]
]
]
<!-- No 'time' left on the counter so stop the countdown. -->
(else:)[
(set: $countdownActive to false)
<!-- Move to the next passage if not already there. -->
(if: (passage:)'s name is not "dead")[
(go-to: "dead")
]
]
]
}As soon as your tongue hits the ice-cream, you feel your core temperature drop and your feet return to normal.
The (either: ...$flavs) is great, but it could be better.
(link: "Care to try again?")[(reload:)](set: $countdownActive to false)\
(set: $feetstatus to "cooling down.")\
(replace: ?tootsies)[$feetstatus]\
(show: ?counter)\
(set: $flavs to (a:))\
(if: visits is 1)[(set: $count to 4)You step into the shade of a nearby palm tree and feel the throbbing in your feet slowly subside.
Ahhhhh!
You feel a lot better, but they still smart from the baking sun and you've lost your place in the queue.
Still ... you'll be fine, pending a delicious [[ice cream->at the counter]].]\
(if: visits is 2)[(set: $count to 7)You slip back into the shaded area, feeling the throbbing in your feet slowly subside.
Of course, you've lost your place in the queue again, and your feet aren't cooling down as much as last time.
But don't worry. You'll be fine, once you get yourself an ice cream. [[Maybe give it one more go?->at the counter]]]\
(if: visits is 3)[You're back in the shade again, but for how long? The sun is slowly moving towards its zenith and the shadows are receding.
The cool edge of the palm tree moves towards you. Beyond, in the baking heat, you can see children shouting and laughing, ice-creams in their hands.
Thanks to your hesitation, that ice-cream van is too far away, the sand is a bleached wasteland. You doubt you'd even make it back to your towel.
Perhaps you should have been more decisive.
You could ... [[make a break for the towel->dead]].
Or you could ... [[wait for the inevitable->dead]].]
{(if: $tone < -1)[(go-to: "in a pickle")]
(else:)[
(unless: (passage:)'s tags contains "nofooter")[
(if: visits is 1)[[[- Whoo! So hot. I'm just going to step over into the shade.->in the shade]]]\
(if: visits is 2)[[[- Oochie! I need more time to think. I'm just going to step back into the shade.->in the shade]]]\
(if: visits is 3)[[[- Nup, this is way too hard. Going to sit in the shade for a bit.->in the shade]]]]]}|him>["Okay, so that's a (print: $flavs.join(" and ")) ice-cream with (print: $extras.join(" and "))."]
(if: $money is "free")[|him>["Enjoy."]
[[- Oh wow! Thanks mister!->ready to chow down]]](else:)[
He counts on his fingers.
{(set: $cash to $flavs's length*200+$extras's length*30)
(set: $dols to (floor:$cash/100))
(set: $cents to $cash-$dols*100)
}That'll be $(print: $dols).(print: $cents).\
(if: $cash <= 500)[[- Here you go, my good sir.->ready to chow down]]
(else:)[[- Oof. I don't have enough. Can I order again?->at the counter]]
[[- $(print: $dols).(print: $cents). For an ice cream?! Are you nuts?!->in a pickle]]](set: $countdownActive to false)\
Time slows down. You hesitantly move the ice cream towards your mouth.
Even before you taste it, you can feel your temperature stabilising.
The sand can't hurt you any more. Nothing can.
(if: $nirvana contains all of (a:"salty", "sweet", "umami", "sour"))[[[- Taste it->in ice cream Nirvana]]](else:)[[[- Taste it->in ice cream heaven]]]As soon as your tongue hits the ice-cream, you feel your core temperature drop and your feet return to normal.
The (either: ...$flavs) is perfect, the (print: $nirvana.join(", ")) flavour shooting up your tongue and all the way down to your toes.
This may be the best ice cream you've ever had.
You have won. Give yourself a medal.