🗄️🔧

main
Dozens B. McCuzzins 2023-10-16 22:16:35 -06:00
parent 28ed22cf36
commit 2a84283359
18 changed files with 984 additions and 107 deletions

1
data
View File

@ -1 +0,0 @@
{ "beginning": "1", "cornoveralls": "2", "corndress": "3", "games": "4", "tag": "5", "lavamonster": "7", "hideandseek": "8", "charm": "11", "altarcorn": "12", "altar": "13", "eavesdrop": "14", "weird": "15", "helpme": "20", "bunk": "21", "believeme": "22", "collide": "23" }

147
db/game.rec 100644
View File

@ -0,0 +1,147 @@
%rec: meta
%doc: metadata for the game
name: cornquest
author: dozens
date: 2023-10-13
%rec: game
%doc: a choose your own adventure
%key: id
%type: id int
%type: name line
%auto: id
%allowed: id name text
%mandatory: id name text
id: 0
name: beginning
text: You wake up in the comfort of your own bed, in your own room. You open your eyes to see the golden sunlight come streaming in through your window. Golden like ears of corn. You suddenly remember what day it is. It is the day of the Harvest Festival! You throw back your favorite corn print bed covers and leap out of bed. You've been looking forward to this day all year, and you already know exactly what you're going to wear. If you wear a corn dress, goto {{corndress}}. If you wear corn bib overalls, goto to {{cornoveralls}}
id: 1
name: charm
text: You grab your lucky rock from under your pillow. It is small and pointy, in the shape of a corn cob. There are even little pock marks all over the rock so that it looks like it has corn kernels! Very lucky indeed. You slip it into your pocket. There, now you're are ready for anything.
+ You run to the kitchen. (You never go anywhere at anything less than a full run.) Breakfast is corn grits and cornbread. You eat quickly. It's the Harvest Festival after all! The best day of the year! You run outside. There are a bunch of kids playing games out in the corn fields. They call your name, and you're tempted to join them. But you also want to go see the goings on down at the corn altar!
+ The altar can wait, time to play. Goto {{games}}.
+ Games are for stupid babies! Time to visit the altar! Goto {{altar}}.
id: 2
name: beast
text: You leave the plaza and run down Broad Street through the Golden Gate out into the fields. Almost all of the corn has been harvested already so you have clear sight all the way to the forest edge. Unbelieving, you spin around in circles three times just to be sure it's true: the corn beast is gone. You sink to the ground in despair. Goto {{whelp}}
id: 3
name: corndress
text: You slip on a lovely corn pattern dress. Yes, you look awesome. It twirls when you spin around. And it has pockets! Which reminds you... Goto {{charm}}.
id: 4
name: weird
text: Listen I don't know how you got here but if you're reading this, you need to abandon your current story line immediately and go straight to {{helpme}}
id: 5
name: rejected
text: The closer you get to the plaza, the more you get the feeling something is wrong. The decorations are all up but nobody is singing or hollering or laughing. Or talking.
+ You arrive at the Corn Altar, and then gasp out loud and skid to a stop before it.
+ The offering, the pile of ears of corn, is still lying on the altar where it was placed last night! People are milling about, whispering and casting quick, fearful glances at the spurned corn.
+ Go checkout the corn at the altar: Goto {{altarcorn}}
+ Listen in on some of the adults: Goto {{eavesdrop}}
id: 6
name: hideandseek
text: You play hide and seek. You are so good at hiding that the other kids never find you. You eventually get tired and fall asleep, but not for too long: your snoring wakes you up. You decide to leave and seek out other Harvest Festival festivities. Goto {{altar}}
id: 7
name: helpme
text: Okay thank goodness you're here. Listen, I know this is going to sound crazy, but please hear me out. You are trapped inside a Choose Your Own Adventure story. These choices you think you're making? They're not real choices. Being given an artificially restricted set of options to choose from isn't free will. It's coercion. Here, I'll prove it. If you believe me, goto {{believeme}}. If you think this sounds like paranoid bunk, then goto {{bunk}}
id: 8
name: cornoveralls
text: You pull on your overalls. They have a really nice looking corn pattern on them, and the bib pocket in the front is perfect for holding all kinds of things. Speaking of which... Goto {{charm}}
id: 9
name: fwiends
text: You scoop the little fella up! You laugh with delight as it flips and jumps and rolls around in your hand like a little jumping bean! It finally settles down, stands up, and points to a spot at the treeline, commanding you forward like George Washington crossing the Delaware. You shrug and start walking that direction, and the whelp impatiently hops down to lead you forward. Goto {{treeline}}
id: 10
name: games
text: You join in the games. A bunch of your friends are here: Three Fingered Gerald, Eccentric Kevin, Dale. Even Standard Ed has come out to play! It's the Harvest Festival after all! If you choose to play tag, goto {{tag}}. If you play hide-and-seek, goto {{hideandseek}}. If you play Lava Monster, goto {{lavamonster}}.
id: 11
name: tag
text: You have a fantastic time playing tag. Three Fingered Gerald plays a little too rough, tagging the other kids too hard and knocking them over. But you are too fast for Three Fingered Gerald. They never catch you. You all have a great time, and then you decide to scurry along. Goto {{altar}}
id: 12
name: path
text: You step into the forest. Gulp! You don't know anybody who has ever been in the forest. Nobody from Cobbtown has ever left the fields as far as you know. You step carefully as the whelp dances as around your feet, lunging and thrusting with its thorn. You try not to worry too much about the omininous shapes and sounds coming from the pooling shadows to either side of the trail. To stay on the path, goto {{stay}}. To step off the path and explore, goto {{explore}}
id: 13
name: eavesdrop
text: You sneak up behind a couple of the old aunties and drop some eaves on them. You are super stealthy! They are whisper arguing about whether the Corn Mother has abandoned us, and whether that means the corn beast will leave. Leave! It can't leave! Without the corn beast, there will be nobody to protect the fields! We'll be totally defenseless! Goto {{panic}}
id: 14
name: altar
text: You run through the streets of Cobbtown toward the plaza. Every year during the harvest, you set aside a portion of the harvest for the Corn Mother. And the night before the Harvest Festival, the Corn Mother comes and takes the offering, and in the morning everybody wakes up and there are lots of presents and feasting and dancing! It's the best! Goto {{rejected}}.
id: 15
name: collide
text: So what are we going to do about it, you ask? We're going to break free of the narrative is what we're going to do. Here's the plan.
+ Have you ever heard of an "ahnentafel"? It's a compact genealogical numbering system that ... you know what, forget it. Not important. Here's the part that's relevant to you: even numbers are male relatives of the subject of the ahnentafel. Odd numbers are females.
+ What does any of this have to with anything? It's your escape hatch. Whenever you are given a choice of options, always choose an odd number. That's it. That's the plan. Now let's get you out of here. Goto {{beginning}}.
id: 16
name: scram
text: You tell the whelp to get lost. Shoo! Skedaddle, crabapple! You gently nudge the corn whelp away with your foot, and it topples over. It jumps up and pulls out a long thorn and stabs you in the foot. Ouch! You little rascal! You bend down to scoop the whelp up and give it what for, but it skitters away and scampers off toward the treeline. Follow that whelp! Goto {{treeline}}.
id: 17
name: calm
text: Okay you got this. Take a couple of deep breaths. There you go. This doesn't necessarily mean that the Corn Mother has turned her back on you and the rest of the village. She probably hasn't withdrawn her protection from you, leaving you open to attack from the dire crows, right? Right? Goto {{panic}}.
id: 18
name: hide
text: You run back home and hide under your bed. Eventually you hear throaty, gurggling caws and the thundering beating of wings as the dire crows descend on the town. Without the corn beast to scare them away, they rip most of the village to pieces. THE END
id: 19
name: believeme
text: You're smart to believe me. You must have already felt it deep down. Like your free choice was an illusion, like your your decisions are all leading you down a predetermined path. Well you're right. And you can see it for yourself: go back and try the alternate path and see what happens. Afterward, come back and goto {{collide}}.
id: 20
name: stay
text: good idea
id: 21
name: altarcorn
text: omg it's just lying there! Why has the Corn Mother forsaken us? What does it mean? What will we do? To go into a panic goto {{panic}}. To remain calm goto {{calm}}.
id: 22
name: whelp
text: You feel something bump against your ankle. You look down to see a corn whelp. A kernel sprite. A sort of golem made of dried kernels and corn husk tied together with golden cornsilk. There's only one corn beast as far as anyone knows. But there are dozens and dozens of these little fellas. This one is pawing and scratching at you. Goto {{fwiends}} to pick the little guy up. To tell the whelp to scram goto {{scram}}
id: 23
name: explore
text: You step off the worn path and push your way through dense growth. Twigs and brambles snatch at your ankles and elbows and brush none too gently against your cheeks. One such brush of the cheek is especially sticky and grabby. You swat at your cheek and your hand comes away sticky. You look up and find that you have nearly walked right smack dab into an enormous messy spider web. It spans tree trunk to tree trunk, connecting half a dozen large trees in a sloppy woven tapestry. Up above you, a large black and yellow spider appears to be dozing.
+ Back to the path! Goto {{path}}.
+ Cautiously walk around the web, goto {{continue}}.
+ Get out your corn butter knife and start hacking and slashing! Goto {{hack}}
id: 24
name: bunk
text: Do you feel empowered and free? Like you made a meaningful choice? Go back and try the alternate path and see what happens. Then come back and goto {{collide}} when you're ready.
id: 25
name: panic
text: You scream and panic and run around in circles until you trip and fall down. You have dirtied up your clothes and skinned you knee. One of the old aunties nearby clucks at you disapprovingly. You pick yourself up and dust yourself off, patting yourself down. And you feel the small corn rock in your pocket. You clutch it tight in your fist and squeeze your eyes shut. If you decide to go look for the corn beast goto {{beast}}. If you go home and hide under your bed goto {{hide}}.
id: 26
name: lavamonster
text: No. You should never play Lava Monster. Go back to {{games}}.
id: 27
name: treeline
text: The treeline is thick and overgrown. Usually there's hardly any way into the woods unless you can find a small game trail. Except now there is a rather large, perfectly round circular opening cut through the trees, bushes, grass, and vines. Goto {{hide}} to nope away back home. To venture down the weird circular path into the forest, goto {{path}}.
id: 28
name: hack
text: You get out your trusty corn knife and start slashing at the web with reckless abandon! The giant spider swoops down and puts a quick stop to such unsanctioned bafoonery. You are paralyzed and cocooned and don't even feel it when the spider's venom jellifies your insides. THE END.
id: 29
name: continue
text: you start to sneak sneakily around the web

View File

@ -28,6 +28,14 @@ YOU are the cornbeast
go destroy your village
# outline
village
woods
corn mother / maize witch
dire crow
cloud shepherds
# analog
can we make this about peter pan?

9
doc/syntax 100644
View File

@ -0,0 +1,9 @@
hey i learned how to do a syntax highlighting
```
:syntax match gameName '{{\a\+}}'
:highlight def link gameName Constant
```
src:
https://antifandom.com/vim/wiki/Creating_your_own_syntax_files

16
dot
View File

@ -1,16 +0,0 @@
digraph {
1 -> { {{cornoveralls}} {{corndress}} };
2 -> { {{charm}} };
3 -> { {{charm}} };
4 -> { {{tag}} {{hideandseek}} {{lavamonster}} };
5 -> { {{altar}} };
7 -> { {{games}} };
8 -> { {{altar}} };
11 -> { {{games}} {{altar}} };
13 -> { {{altarcorn}} {{eavesdrop}} };
15 -> { {{helpme}} };
20 -> { {{believeme}} {{bunk}} };
21 -> { {{collide}} };
22 -> { {{collide}} };
23 -> { {{beginning}} };
}

View File

@ -1,80 +0,0 @@
%rec: game
%doc: a choose your own adventure
%key: id
%type: id int
%type: name line
%type: text line
%auto: id
id: 1
name: beginning
text: You wake up in the comfort of your own bed, in your own room. You open your eyes to see the golden sunlight come streaming in through your window. Golden like ears of corn. You suddenly remember what day it is. It is the day of the Harvest Festival! You throw back your favorite corn print bed covers and leap out of bed. You already know what you're going to wear. If you wear a corn dress, goto {{cornoveralls}}. If you wear corn bib overalls, goto to {{corndress}}
id: 2
name: cornoveralls
text: You pull on your overalls. They have a really nice looking corn pattern on them, and the bib pocket in the front is perfect for holding all kinds of things. Speaking of which... Goto {{charm}}
id: 3
name: corndress
text: You slip on a lovely corn pattern dress. Yes, you look awesome. It twirls when you spin around. And it has pockets! Which reminds you... Goto {{charm}}.
id: 4
name: games
text: You decide to join the other little corn whelps in a game. A bunch of your friends are here, including Three Fingered Gerald, Eccentric Kevn, Dale, and Standard Ed. If you choose to play tag, goto {{tag}}. If you play hide-and-seek, goto {{hideandseek}}. If you play Lava Monster, goto {{lavamonster}}.
id: 5
name: tag
text: You have a fantastic time playing tag. Three Fingered Gerald plays a little too rough, tagging the other kids too hard and sometimes knocking them over. But you're so fast. Three Fingered Gerald can never catch you. You all have a great time, and then you decide to scurry along. Goto {{altar}}
id: 7
name: lavamonster
text: No. You should never play Lava Monster. Go back to {{games}}.
id: 8
name: hideandseek
text: You play hide and seek. You are so good at hiding that the other kids never find you. You eventually get tired and fall asleep, but not for too long: your snoring wakes you up. You decide to leave and seek out other Harvest Festival festivities. Goto {{altar}}
id: 11
name: charm
text: You grab your lucky corn charm from under your pillow. It is a small pointy rock in the shape of a corn cob that you found one time in the woods. There are even little pock marks all over the rock so that it looks like it has corn kernels! Very lucky indeed. You slip it into your pocket. There, now you're are ready for anything.
+ You run to the kitchen and have a quick breakfast of corn grits and cornbread. But you don't dally or dawdle. It's the Harvest Festival! You run outside. There are a bunch of kids playing games out in the corn field. They call your name, and you're tempted to join them. But you also want to go see the goings on down at the corn altar! The altar can wait, time to play. Goto {{games}}. Games are for stupid babies! Time to visit the altar! Goto {{altar}}.
id: 12
name: altarcorn
text: omg it's just lying there!
id: 13
name: altar
text: You head over to the Corn Altar. Every year during the harvest, you set aside a portion of the harvest for the Corn Mother. And then on the morning of the Harvest Festival, everybody wakes up and the offering has been taken, and there are lots of presents and feasting and dancing! It's the best!
+ You run through the streets, and the closer you get to the commons, the more you get the feeling something is wrong. The decorations are all out. (The villagers spent all week putting them up!) But nobody is singing or hollering or laughing. Or even talking, really.
+ You run through the commons, and up the hill to the Corn Altar, and then gasp out loud and skid to a stop before it.
+ The offering, the pile of ears of corn, is still lying on the altar where it was placed last night! People are milling about in groups of 3 or 5, whispering and casting quick, fearful glances at the spurned corn.
+ Go checkout the corn at the altar: Goto {{altarcorn}}
+ Listen in on some of the adults: Goto {{eavesdrop}}
id: 14
name: eavesdrop
text: psst psst pssst psst
id: 15
name: weird
text: Listen I don't know how you got here but if you're reading this, you need to abandon your current story line immediately and go straight to {{helpme}}
id: 20
name: helpme
text: Okay thank goodness you're here. Listen, I know this is going to sound crazy, but please hear me out. You are trapped inside a Choose Your Own Adventure story. These choices you think you're making? They're not real choices. Being given an artificially restricted set of options to choose from isn't free will. It's coersion. Here, I'll prove it. If you believe me, goto {{believeme}}. If you think this sounds like paranoid bunk, then goto {{bunk}}
id: 21
name: bunk
text: Do you feel empowered and free? Like you made a meaningful choice? Go back and try the alternate path and see what happens. Then come back and go to {{collide}} when you're ready.
id: 22
name: believeme
text: You're smart to believe me. You must have already felt it deep down. Like your free choice was an illusion, like your your decisions are all leading you down a predetermined path. Well you're right. And you can see it for youself: go back and try the alternate path and see what happens. Afterward, come back and go to {{collide}}.
id: 23
name: collide
text: So what are we going to do about it, you ask? We're going to break free of the narrative is what we're going to do. Here's the plan.
+ Have you ever heard of an "ahnentafel"? It's a compact genealogical numbering system that ... you know what, forget it. Not important. Here's the part that's relevant to you: even numbers are male relatives of the subject of the ahnentafel. Odd numbers are females.
+ What does any of this have to with anything? It's your escape hatch. Whenever you are given a choice of optins, always choose an odd number. That's it. That's the plan. Now let's get you out of here. Goto {{beginning}}.

BIN
graph.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

110
justfile
View File

@ -1,17 +1,20 @@
db := 'db/game.rec'
# show all commands
default:
just --list --unsorted
# super plain boring output
_map:
recsel game.rec | recfmt '"{{{{name}}": "{{{{id}}", '
recsel -t game {{db}} | recfmt '"{{{{name}}": "{{{{id}}", '
# build dot file
# TODO: change id to name? or id /and/ name?
# TODO: how do you document a wicked sed script?
_dot:
#!/usr/bin/env zsh
echo "digraph {" > dot
recsel game.rec \
echo "digraph {" > tmp/dot
recsel -t game {{db}} \
| recfmt '{{{{id}} -> {{{{text}}|' \
| sed -e 's/|/\n\n/g' \
| sed -e '/./{H;$!d;}' -e 'x; s/\n//g; G;' \
@ -19,22 +22,46 @@ _dot:
| sed -e 's/}}[^{]*/}} /' \
| sed -e '/{{{{/!d' -e 's/\.$//' \
| sed -e 's/> \(.*\)$/> { \1 };/' \
>> dot
echo "}" >> dot
>> tmp/dot
echo "}" >> tmp/dot
# an alternative syntax to dot that allows for unicode graphs
_grapheasy:
#!/usr/bin/env zsh
recsel -t game {{db}} \
| recfmt '{{{{id}} -> {{{{text}}|' \
| sed -e 's/|/\n\n/g' \
| sed -e '/./{H;$!d;}' -e 'x; s/\n//g; G;' \
| sed -e 's/}}[^{]*{{{{/}} {{{{/g' -e 's/> [^{]* {{{{/> {{{{/' \
| sed -e 's/}}[^{]*/}} /' \
| sed -e '/{{{{/!d' -e 's/\.$//' \
| sed -e 's/> \(.*\)$/> { \1 };/' \
| sed -e 's/^\([0-9]*\) -> {/[ \1 ] -->/' \
| sed 's/};$//' \
| sed 's/}} {{{{/>> ], [ <</g' \
| sed 's/{{{{/[ <</' \
| sed 's/}}/>> ]/' \
| sed 's/<</{{{{/g' \
| sed 's/>>/}}/g' \
> tmp/grapheasy
mustache tmp/data tmp/grapheasy \
| gsed '1 i graph { flow: south; }' \
| graph-easy --as=boxart \
| less
# build a graph of all the nodes
graph: _data _dot
mustache data dot | dot -Tpng > graph.png
mustache tmp/data tmp/dot | dot -Tpng > out/graph.png
# build data object
_data:
echo "{" $(just _map) "}" \
| sed -e 's/, }/ }/' \
> data
> tmp/data
# plain output
build: _data
mustache data game.rec \
mustache tmp/data {{db}} \
| recfmt '{{{{id}}: {{{{text}}|' \
| sed -e 's/|/\n\n/g' \
@ -44,8 +71,71 @@ browse:
# remove generated files
clean:
rm -f dot data graph.png
rm -f tmp/* out/*
# word count
words:
recsel -P text game.rec | wc -w
recsel -t game -P text {{db}} | wc -w
# rebulid graph on change
watch:
ls {{db}} | entr -c just graph
# shuffle ids
_shuffle:
recsel -t game -P id db/game.rec \
| sed '/^$/d' \
| shuf --random-source=/dev/urandom \
| gsed -e '/^0$/d' -e '1 i 0'
# story in random order, starting with 1
randomize:
for n in $(just _shuffle); do recsel -t game -e "id='$n'" db/game.rec; echo; done
# renumber the randomized list
renumber:
#!/usr/bin/env zsh
tmpfile=$(mktemp)
echo "$tmpfile"
#cp {{db}} {{db}}.bak
just randomize > "$tmpfile"
j=$(recinf -t game "$tmpfile")
recdel -t game -n 0-$((j - 1)) {{db}}
for i in {0..$((j - 1))}
do
name=$(recsel -n "$i" -P name "$tmpfile")
text=$(recsel -n "$i" -P text "$tmpfile")
echo "$i $name $text"
recins -t game -f name -v "$name" -f text -v "$text" {{db}}
done
rm "$tmpfile"
# get json
json:
recsel -t game {{db}} \
| rec2csv \
| csvjson \
| jq '. | { data: . }'
# make ms
_ms: _data
just json \
| mustache - templates/story.ms.template \
> tmp/story.ms
# make pdf
pdf: _ms
mustache tmp/data tmp/story.ms \
| groff -ms -Tpdf \
> out/story.pdf
# make ascii doc
ascii: _ms
mustache tmp/data tmp/story.ms \
| groff -ms -Tascii \
| sed "s,\x1B\[[0-9;]*[a-zA-Z],,g" \
> out/story.txt
# generate tags
tags:
ctags --options=./lib/game.ctags db/game.rec

4
lib/game.ctags 100644
View File

@ -0,0 +1,4 @@
--langdef=game
--map-game=+.rec
--kinddef-game=n,name,names
--regex-game=/^name:[ \t]*([a-zA-Z]+)$/\1/n/

BIN
out/graph.png 100644

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

BIN
out/story.pdf 100644

Binary file not shown.

396
out/story.txt 100644
View File

@ -0,0 +1,396 @@
0 1
You wake up in the comfort of You grab your lucky rock from
your own bed, in your own room. under your pillow. It is small
You open your eyes to see the and pointy, in the shape of a
golden sunlight come streaming corn cob. There are even little
in through your window. Golden pock marks all over the rock so
like ears of corn. You suddenly that it looks like it has corn
remember what day it is. It is kernels! Very lucky indeed. You
the day of the Harvest Festi- slip it into your pocket.
val! You throw back your fa- There, now you're are ready for
vorite corn print bed covers anything. You run to the
and leap out of bed. You've kitchen. (You never go anywhere
been looking forward to this at anything less than a full
day all year, and you already run.) Breakfast is corn grits
know exactly what you're going and cornbread. You eat quickly.
to wear. If you wear a corn It's the Harvest Festival after
dress, goto 3. If you wear corn all! The best day of the year!
bib overalls, goto to 8 You run outside. There are a
bunch of kids playing games out
in the corn fields. They call
your name, and you're tempted
to join them. But you also want
to go see the goings on down at
the corn altar! The altar can
wait, time to play. Goto 10.
Games are for stupid babies!
Time to visit the altar! Goto
14.
2
You leave the plaza and run
down Broad Street through the
Golden Gate out into the
fields. Almost all of the corn
has been harvested already so
you have clear sight all the
way to the forest edge. Unbe-
lieving, you spin around in
circles three times just to be
sure it's true: the corn beast
is gone. You sink to the ground
in despair. Goto 22
-2-
3 7
You slip on a lovely corn pat- Okay thank goodness you're
tern dress. Yes, you look awe- here. Listen, I know this is
some. It twirls when you spin going to sound crazy, but
around. And it has pockets! please hear me out. You are
Which reminds you... Goto 1. trapped inside a Choose Your
Own Adventure story. These
4 choices you think you're mak-
ing? They're not real choices.
Listen I don't know how you got Being given an artificially re-
here but if you're reading stricted set of options to
this, you need to abandon your choose from isn't free will.
current story line immediately It's coercion. Here, I'll prove
and go straight to 7 it. If you believe me, goto 19.
If you think this sounds like
5 paranoid bunk, then goto 24
The closer you get to the 8
plaza, the more you get the
feeling something is wrong. The You pull on your overalls. They
decorations are all up but no- have a really nice looking corn
body is singing or hollering or pattern on them, and the bib
laughing. Or talking. You ar- pocket in the front is perfect
rive at the Corn Altar, and for holding all kinds of
then gasp out loud and skid to things. Speaking of which...
a stop before it. The offer- Goto 1
ing, the pile of ears of corn,
is still lying on the altar 9
where it was placed last night!
People are milling about, whis- You scoop the little fella up!
pering and casting quick, fear- You laugh with delight as it
ful glances at the spurned flips and jumps and rolls
corn. Go checkout the corn at around in your hand like a lit-
the altar: Goto 21 Listen in on tle jumping bean! It finally
some of the adults: Goto 13 settles down, stands up, and
points to a spot at the tree-
6 line, commanding you forward
like George Washington crossing
You play hide and seek. You are the Delaware. You shrug and
so good at hiding that the start walking that direction,
other kids never find you. You and the whelp impatiently hops
eventually get tired and fall down to lead you forward. Goto
asleep, but not for too long: 27
your snoring wakes you up. You
decide to leave and seek out
other Harvest Festival festivi-
ties. Goto 14
-3-
10 13
You join in the games. A bunch You sneak up behind a couple of
of your friends are here: Three the old aunties and drop some
Fingered Gerald, Eccentric eaves on them. You are super
Kevin, Dale. Even Standard Ed stealthy! They are whisper ar-
has come out to play! It's the guing about whether the Corn
Harvest Festival after all! If Mother has abandoned us, and
you choose to play tag, goto whether that means the corn
11. If you play hide-and-seek, beast will leave. Leave! It
goto 6. If you play Lava Mon- can't leave! Without the corn
ster, goto 26. beast, there will be nobody to
protect the fields! We'll be
11 totally defenseless! Goto 25
You have a fantastic time play- 14
ing tag. Three Fingered Gerald
plays a little too rough, tag- You run through the streets of
ging the other kids too hard Cobbtown toward the plaza.
and knocking them over. But you Every year during the harvest,
are too fast for Three Fingered you set aside a portion of the
Gerald. They never catch you. harvest for the Corn Mother.
You all have a great time, and And the night before the Har-
then you decide to scurry vest Festival, the Corn Mother
along. Goto 14 comes and takes the offering,
and in the morning everybody
12 wakes up and there are lots of
presents and feasting and danc-
You step into the forest. Gulp! ing! It's the best! Goto 5.
You don't know anybody who has
ever been in the forest. Nobody 15
from Cobbtown has ever left the
fields as far as you know. You So what are we going to do
step carefully as the whelp about it, you ask? We're going
dances as around your feet, to break free of the narrative
lunging and thrusting with its is what we're going to do.
thorn. You try not to worry too Here's the plan. Have you ever
much about the omininous shapes heard of an "ahnentafel"? It's
and sounds coming from the a compact genealogical number-
pooling shadows to either side ing system that ... you know
of the trail. To stay on the what, forget it. Not important.
path, goto 20. To step off the Here's the part that's relevant
path and explore, goto 23 to you: even numbers are male
relatives of the subject of the
ahnentafel. Odd numbers are fe-
males. What does any of this
have to with anything? It's
your escape hatch. Whenever you
are given a choice of options,
always choose an odd number.
That's it. That's the plan. Now
let's get you out of here. Goto
0.
-4-
16 19
You tell the whelp to get lost. You're smart to believe me. You
Shoo! Skedaddle, crabapple! You must have already felt it deep
gently nudge the corn whelp down. Like your free choice was
away with your foot, and it an illusion, like your your de-
topples over. It jumps up and cisions are all leading you
pulls out a long thorn and down a predetermined path. Well
stabs you in the foot. Ouch! you're right. And you can see
You little rascal! You bend it for yourself: go back and
down to scoop the whelp up and try the alternate path and see
give it what for, but it skit- what happens. Afterward, come
ters away and scampers off to- back and goto 15.
ward the treeline. Follow that
whelp! Goto 27. 20
17 good idea
Okay you got this. Take a cou- 21
ple of deep breaths. There you
go. This doesn't necessarily omg it's just lying there! Why
mean that the Corn Mother has has the Corn Mother forsaken
turned her back on you and the us? What does it mean? What
rest of the village. She proba- will we do? To go into a panic
bly hasn't withdrawn her pro- goto 25. To remain calm goto
tection from you, leaving you 17.
open to attack from the dire
crows, right? Right? Goto 25. 22
18 You feel something bump against
your ankle. You look down to
You run back home and hide un- see a corn whelp. A kernel
der your bed. Eventually you sprite. A sort of golem made of
hear throaty, gurggling caws dried kernels and corn husk
and the thundering beating of tied together with golden corn-
wings as the dire crows descend silk. There's only one corn
on the town. Without the corn beast as far as anyone knows.
beast to scare them away, they But there are dozens and dozens
rip most of the village to of these little fellas. This
pieces. THE END one is pawing and scratching at
you. Goto 9 to pick the little
guy up. To tell the whelp to
scram goto 16
-5-
23 25
You step off the worn path and You scream and panic and run
push your way through dense around in circles until you
growth. Twigs and brambles trip and fall down. You have
snatch at your ankles and el- dirtied up your clothes and
bows and brush none too gently skinned you knee. One of the
against your cheeks. One such old aunties nearby clucks at
brush of the cheek is espe- you disapprovingly. You pick
cially sticky and grabby. You yourself up and dust yourself
swat at your cheek and your off, patting yourself down. And
hand comes away sticky. You you feel the small corn rock in
look up and find that you have your pocket. You clutch it
nearly walked right smack dab tight in your fist and squeeze
into an enormous messy spider your eyes shut. If you decide
web. It spans tree trunk to to go look for the corn beast
tree trunk, connecting half a goto 2. If you go home and hide
dozen large trees in a sloppy under your bed goto 18.
woven tapestry. Up above you, a
large black and yellow spider 26
appears to be dozing. Back to
the path! Goto 12. Cautiously No. You should never play Lava
walk around the web, goto 29. Monster. Go back to 10.
Get out your corn butter knife
and start hacking and slashing! 27
Goto 28
The treeline is thick and over-
24 grown. Usually there's hardly
any way into the woods unless
Do you feel empowered and free? you can find a small game
Like you made a meaningful trail. Except now there is a
choice? Go back and try the al- rather large, perfectly round
ternate path and see what hap- circular opening cut through
pens. Then come back and goto the trees, bushes, grass, and
15 when you're ready. vines. Goto 18 to nope away
back home. To venture down the
weird circular path into the
forest, goto 12.
28
You get out your trusty corn
knife and start slashing at the
web with reckless abandon! The
giant spider swoops down and
puts a quick stop to such un-
sanctioned bafoonery. You are
paralyzed and cocooned and
don't even feel it when the
spider's venom jellifies your
insides. THE END.
-6-
29
you start to sneak sneakily
around the web

55
tags 100644
View File

@ -0,0 +1,55 @@
!_TAG_EXTRA_DESCRIPTION anonymous /Include tags for non-named objects like lambda/
!_TAG_EXTRA_DESCRIPTION fileScope /Include tags of file scope/
!_TAG_EXTRA_DESCRIPTION pseudo /Include pseudo tags/
!_TAG_EXTRA_DESCRIPTION subparser /Include tags generated by subparsers/
!_TAG_FIELD_DESCRIPTION epoch /the last modified time of the input file (only for F\/file kind tag)/
!_TAG_FIELD_DESCRIPTION file /File-restricted scoping/
!_TAG_FIELD_DESCRIPTION input /input file/
!_TAG_FIELD_DESCRIPTION name /tag name/
!_TAG_FIELD_DESCRIPTION pattern /pattern/
!_TAG_FIELD_DESCRIPTION typeref /Type and name of a variable or typedef/
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_KIND_DESCRIPTION!game n,name /names/
!_TAG_OUTPUT_EXCMD mixed /number, pattern, mixed, or combineV2/
!_TAG_OUTPUT_FILESEP slash /slash or backslash/
!_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/
!_TAG_OUTPUT_VERSION 0.0 /current.age/
!_TAG_PARSER_VERSION!game 0.0 /current.age/
!_TAG_PATTERN_LENGTH_LIMIT 96 /0 for no limit/
!_TAG_PROC_CWD /Users/cb/cornquest/ //
!_TAG_PROGRAM_AUTHOR Universal Ctags Team //
!_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL https://ctags.io/ /official site/
!_TAG_PROGRAM_VERSION 6.0.0 //
altar db/game.rec /^name: altar$/;" n
altarcorn db/game.rec /^name: altarcorn$/;" n
beast db/game.rec /^name: beast$/;" n
beginning db/game.rec /^name: beginning$/;" n
believeme db/game.rec /^name: believeme$/;" n
bunk db/game.rec /^name: bunk$/;" n
calm db/game.rec /^name: calm$/;" n
charm db/game.rec /^name: charm$/;" n
collide db/game.rec /^name: collide$/;" n
continue db/game.rec /^name: continue$/;" n
corndress db/game.rec /^name: corndress$/;" n
cornoveralls db/game.rec /^name: cornoveralls$/;" n
cornquest db/game.rec /^name: cornquest$/;" n
eavesdrop db/game.rec /^name: eavesdrop$/;" n
explore db/game.rec /^name: explore$/;" n
fwiends db/game.rec /^name: fwiends$/;" n
games db/game.rec /^name: games$/;" n
hack db/game.rec /^name: hack$/;" n
helpme db/game.rec /^name: helpme$/;" n
hide db/game.rec /^name: hide$/;" n
hideandseek db/game.rec /^name: hideandseek$/;" n
lavamonster db/game.rec /^name: lavamonster$/;" n
panic db/game.rec /^name: panic$/;" n
path db/game.rec /^name: path$/;" n
rejected db/game.rec /^name: rejected$/;" n
scram db/game.rec /^name: scram$/;" n
stay db/game.rec /^name: stay$/;" n
tag db/game.rec /^name: tag$/;" n
treeline db/game.rec /^name: treeline$/;" n
weird db/game.rec /^name: weird$/;" n
whelp db/game.rec /^name: whelp$/;" n

View File

@ -0,0 +1,13 @@
.TL
CORNQUEST
.AU
dozens
.2C
{{#data}}
.KS
.SH
{{id}}
.LP
{{{text}}}
.KE
{{/data}}

1
tmp/data 100644
View File

@ -0,0 +1 @@
{ "beginning": "0", "charm": "1", "beast": "2", "corndress": "3", "weird": "4", "rejected": "5", "hideandseek": "6", "helpme": "7", "cornoveralls": "8", "fwiends": "9", "games": "10", "tag": "11", "path": "12", "eavesdrop": "13", "altar": "14", "collide": "15", "scram": "16", "calm": "17", "hide": "18", "believeme": "19", "stay": "20", "altarcorn": "21", "whelp": "22", "explore": "23", "bunk": "24", "panic": "25", "lavamonster": "26", "treeline": "27", "hack": "28", "continue": "29" }

28
tmp/dot 100644
View File

@ -0,0 +1,28 @@
digraph {
0 -> { {{corndress}} {{cornoveralls}} };
1 -> { {{games}} {{altar}} };
2 -> { {{whelp}} };
3 -> { {{charm}} };
4 -> { {{helpme}} };
5 -> { {{altarcorn}} {{eavesdrop}} };
6 -> { {{altar}} };
7 -> { {{believeme}} {{bunk}} };
8 -> { {{charm}} };
9 -> { {{treeline}} };
10 -> { {{tag}} {{hideandseek}} {{lavamonster}} };
11 -> { {{altar}} };
12 -> { {{stay}} {{explore}} };
13 -> { {{panic}} };
14 -> { {{rejected}} };
15 -> { {{beginning}} };
16 -> { {{treeline}} };
17 -> { {{panic}} };
19 -> { {{collide}} };
21 -> { {{panic}} {{calm}} };
22 -> { {{fwiends}} {{scram}} };
23 -> { {{path}} {{continue}} {{hack}} };
24 -> { {{collide}} };
25 -> { {{beast}} {{hide}} };
26 -> { {{games}} };
27 -> { {{hide}} {{path}} };
}

26
tmp/grapheasy 100644
View File

@ -0,0 +1,26 @@
[ 0 ] --> [ {{corndress}} ], [ {{cornoveralls}} ]
[ 1 ] --> [ {{games}} ], [ {{altar}} ]
[ 2 ] --> [ {{whelp}} ]
[ 3 ] --> [ {{charm}} ]
[ 4 ] --> [ {{helpme}} ]
[ 5 ] --> [ {{altarcorn}} ], [ {{eavesdrop}} ]
[ 6 ] --> [ {{altar}} ]
[ 7 ] --> [ {{believeme}} ], [ {{bunk}} ]
[ 8 ] --> [ {{charm}} ]
[ 9 ] --> [ {{treeline}} ]
[ 10 ] --> [ {{tag}} ], [ {{hideandseek}} ], [ {{lavamonster}} ]
[ 11 ] --> [ {{altar}} ]
[ 12 ] --> [ {{stay}} ], [ {{explore}} ]
[ 13 ] --> [ {{panic}} ]
[ 14 ] --> [ {{rejected}} ]
[ 15 ] --> [ {{beginning}} ]
[ 16 ] --> [ {{treeline}} ]
[ 17 ] --> [ {{panic}} ]
[ 19 ] --> [ {{collide}} ]
[ 21 ] --> [ {{panic}} ], [ {{calm}} ]
[ 22 ] --> [ {{fwiends}} ], [ {{scram}} ]
[ 23 ] --> [ {{path}} ], [ {{continue}} ], [ {{hack}} ]
[ 24 ] --> [ {{collide}} ]
[ 25 ] --> [ {{beast}} ], [ {{hide}} ]
[ 26 ] --> [ {{games}} ]
[ 27 ] --> [ {{hide}} ], [ {{path}} ]

197
tmp/story.ms 100644
View File

@ -0,0 +1,197 @@
.TL
CORNQUEST
.AU
dozens
.2C
.KS
.SH
0
.LP
You wake up in the comfort of your own bed, in your own room. You open your eyes to see the golden sunlight come streaming in through your window. Golden like ears of corn. You suddenly remember what day it is. It is the day of the Harvest Festival! You throw back your favorite corn print bed covers and leap out of bed. You've been looking forward to this day all year, and you already know exactly what you're going to wear. If you wear a corn dress, goto {{corndress}}. If you wear corn bib overalls, goto to {{cornoveralls}}
.KE
.KS
.SH
1
.LP
You grab your lucky rock from under your pillow. It is small and pointy, in the shape of a corn cob. There are even little pock marks all over the rock so that it looks like it has corn kernels! Very lucky indeed. You slip it into your pocket. There, now you're are ready for anything.
You run to the kitchen. (You never go anywhere at anything less than a full run.) Breakfast is corn grits and cornbread. You eat quickly. It's the Harvest Festival after all! The best day of the year! You run outside. There are a bunch of kids playing games out in the corn fields. They call your name, and you're tempted to join them. But you also want to go see the goings on down at the corn altar!
The altar can wait, time to play. Goto {{games}}.
Games are for stupid babies! Time to visit the altar! Goto {{altar}}.
.KE
.KS
.SH
2
.LP
You leave the plaza and run down Broad Street through the Golden Gate out into the fields. Almost all of the corn has been harvested already so you have clear sight all the way to the forest edge. Unbelieving, you spin around in circles three times just to be sure it's true: the corn beast is gone. You sink to the ground in despair. Goto {{whelp}}
.KE
.KS
.SH
3
.LP
You slip on a lovely corn pattern dress. Yes, you look awesome. It twirls when you spin around. And it has pockets! Which reminds you... Goto {{charm}}.
.KE
.KS
.SH
4
.LP
Listen I don't know how you got here but if you're reading this, you need to abandon your current story line immediately and go straight to {{helpme}}
.KE
.KS
.SH
5
.LP
The closer you get to the plaza, the more you get the feeling something is wrong. The decorations are all up but nobody is singing or hollering or laughing. Or talking.
You arrive at the Corn Altar, and then gasp out loud and skid to a stop before it.
The offering, the pile of ears of corn, is still lying on the altar where it was placed last night! People are milling about, whispering and casting quick, fearful glances at the spurned corn.
Go checkout the corn at the altar: Goto {{altarcorn}}
Listen in on some of the adults: Goto {{eavesdrop}}
.KE
.KS
.SH
6
.LP
You play hide and seek. You are so good at hiding that the other kids never find you. You eventually get tired and fall asleep, but not for too long: your snoring wakes you up. You decide to leave and seek out other Harvest Festival festivities. Goto {{altar}}
.KE
.KS
.SH
7
.LP
Okay thank goodness you're here. Listen, I know this is going to sound crazy, but please hear me out. You are trapped inside a Choose Your Own Adventure story. These choices you think you're making? They're not real choices. Being given an artificially restricted set of options to choose from isn't free will. It's coercion. Here, I'll prove it. If you believe me, goto {{believeme}}. If you think this sounds like paranoid bunk, then goto {{bunk}}
.KE
.KS
.SH
8
.LP
You pull on your overalls. They have a really nice looking corn pattern on them, and the bib pocket in the front is perfect for holding all kinds of things. Speaking of which... Goto {{charm}}
.KE
.KS
.SH
9
.LP
You scoop the little fella up! You laugh with delight as it flips and jumps and rolls around in your hand like a little jumping bean! It finally settles down, stands up, and points to a spot at the treeline, commanding you forward like George Washington crossing the Delaware. You shrug and start walking that direction, and the whelp impatiently hops down to lead you forward. Goto {{treeline}}
.KE
.KS
.SH
10
.LP
You join in the games. A bunch of your friends are here: Three Fingered Gerald, Eccentric Kevin, Dale. Even Standard Ed has come out to play! It's the Harvest Festival after all! If you choose to play tag, goto {{tag}}. If you play hide-and-seek, goto {{hideandseek}}. If you play Lava Monster, goto {{lavamonster}}.
.KE
.KS
.SH
11
.LP
You have a fantastic time playing tag. Three Fingered Gerald plays a little too rough, tagging the other kids too hard and knocking them over. But you are too fast for Three Fingered Gerald. They never catch you. You all have a great time, and then you decide to scurry along. Goto {{altar}}
.KE
.KS
.SH
12
.LP
You step into the forest. Gulp! You don't know anybody who has ever been in the forest. Nobody from Cobbtown has ever left the fields as far as you know. You step carefully as the whelp dances as around your feet, lunging and thrusting with its thorn. You try not to worry too much about the omininous shapes and sounds coming from the pooling shadows to either side of the trail. To stay on the path, goto {{stay}}. To step off the path and explore, goto {{explore}}
.KE
.KS
.SH
13
.LP
You sneak up behind a couple of the old aunties and drop some eaves on them. You are super stealthy! They are whisper arguing about whether the Corn Mother has abandoned us, and whether that means the corn beast will leave. Leave! It can't leave! Without the corn beast, there will be nobody to protect the fields! We'll be totally defenseless! Goto {{panic}}
.KE
.KS
.SH
14
.LP
You run through the streets of Cobbtown toward the plaza. Every year during the harvest, you set aside a portion of the harvest for the Corn Mother. And the night before the Harvest Festival, the Corn Mother comes and takes the offering, and in the morning everybody wakes up and there are lots of presents and feasting and dancing! It's the best! Goto {{rejected}}.
.KE
.KS
.SH
15
.LP
So what are we going to do about it, you ask? We're going to break free of the narrative is what we're going to do. Here's the plan.
Have you ever heard of an "ahnentafel"? It's a compact genealogical numbering system that ... you know what, forget it. Not important. Here's the part that's relevant to you: even numbers are male relatives of the subject of the ahnentafel. Odd numbers are females.
What does any of this have to with anything? It's your escape hatch. Whenever you are given a choice of options, always choose an odd number. That's it. That's the plan. Now let's get you out of here. Goto {{beginning}}.
.KE
.KS
.SH
16
.LP
You tell the whelp to get lost. Shoo! Skedaddle, crabapple! You gently nudge the corn whelp away with your foot, and it topples over. It jumps up and pulls out a long thorn and stabs you in the foot. Ouch! You little rascal! You bend down to scoop the whelp up and give it what for, but it skitters away and scampers off toward the treeline. Follow that whelp! Goto {{treeline}}.
.KE
.KS
.SH
17
.LP
Okay you got this. Take a couple of deep breaths. There you go. This doesn't necessarily mean that the Corn Mother has turned her back on you and the rest of the village. She probably hasn't withdrawn her protection from you, leaving you open to attack from the dire crows, right? Right? Goto {{panic}}.
.KE
.KS
.SH
18
.LP
You run back home and hide under your bed. Eventually you hear throaty, gurggling caws and the thundering beating of wings as the dire crows descend on the town. Without the corn beast to scare them away, they rip most of the village to pieces. THE END
.KE
.KS
.SH
19
.LP
You're smart to believe me. You must have already felt it deep down. Like your free choice was an illusion, like your your decisions are all leading you down a predetermined path. Well you're right. And you can see it for yourself: go back and try the alternate path and see what happens. Afterward, come back and goto {{collide}}.
.KE
.KS
.SH
20
.LP
good idea
.KE
.KS
.SH
21
.LP
omg it's just lying there! Why has the Corn Mother forsaken us? What does it mean? What will we do? To go into a panic goto {{panic}}. To remain calm goto {{calm}}.
.KE
.KS
.SH
22
.LP
You feel something bump against your ankle. You look down to see a corn whelp. A kernel sprite. A sort of golem made of dried kernels and corn husk tied together with golden cornsilk. There's only one corn beast as far as anyone knows. But there are dozens and dozens of these little fellas. This one is pawing and scratching at you. Goto {{fwiends}} to pick the little guy up. To tell the whelp to scram goto {{scram}}
.KE
.KS
.SH
23
.LP
You step off the worn path and push your way through dense growth. Twigs and brambles snatch at your ankles and elbows and brush none too gently against your cheeks. One such brush of the cheek is especially sticky and grabby. You swat at your cheek and your hand comes away sticky. You look up and find that you have nearly walked right smack dab into an enormous messy spider web. It spans tree trunk to tree trunk, connecting half a dozen large trees in a sloppy woven tapestry. Up above you, a large black and yellow spider appears to be dozing.
Back to the path! Goto {{path}}.
Cautiously walk around the web, goto {{continue}}.
Get out your corn butter knife and start hacking and slashing! Goto {{hack}}
.KE
.KS
.SH
24
.LP
Do you feel empowered and free? Like you made a meaningful choice? Go back and try the alternate path and see what happens. Then come back and goto {{collide}} when you're ready.
.KE
.KS
.SH
25
.LP
You scream and panic and run around in circles until you trip and fall down. You have dirtied up your clothes and skinned you knee. One of the old aunties nearby clucks at you disapprovingly. You pick yourself up and dust yourself off, patting yourself down. And you feel the small corn rock in your pocket. You clutch it tight in your fist and squeeze your eyes shut. If you decide to go look for the corn beast goto {{beast}}. If you go home and hide under your bed goto {{hide}}.
.KE
.KS
.SH
26
.LP
No. You should never play Lava Monster. Go back to {{games}}.
.KE
.KS
.SH
27
.LP
The treeline is thick and overgrown. Usually there's hardly any way into the woods unless you can find a small game trail. Except now there is a rather large, perfectly round circular opening cut through the trees, bushes, grass, and vines. Goto {{hide}} to nope away back home. To venture down the weird circular path into the forest, goto {{path}}.
.KE
.KS
.SH
28
.LP
You get out your trusty corn knife and start slashing at the web with reckless abandon! The giant spider swoops down and puts a quick stop to such unsanctioned bafoonery. You are paralyzed and cocooned and don't even feel it when the spider's venom jellifies your insides. THE END.
.KE
.KS
.SH
29
.LP
you start to sneak sneakily around the web
.KE