diff --git a/README.md b/README.md index 2622947..5746b12 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ this is a choose your own adventure game fueled by recfiles and stuff - graphviz version 5.0.1: to make a graph +- GNU troff (groff) version 1.23.0: build pdf and ascii + ## getting started the whole game is in a recfile diff --git a/assets/cornbeast.png b/assets/cornbeast.png new file mode 100644 index 0000000..afa8eaa Binary files /dev/null and b/assets/cornbeast.png differ diff --git a/assets/cornbit.png b/assets/cornbit.png new file mode 100644 index 0000000..4ea1ecf Binary files /dev/null and b/assets/cornbit.png differ diff --git a/db/game.rec b/db/game.rec new file mode 100644 index 0000000..864882e --- /dev/null +++ b/db/game.rec @@ -0,0 +1,168 @@ +%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: You decide to not push your luck by going bushwacking in the undergrowth. Good thing, orienteering was never your strongest activity in Corn Scouts. Eventually you catch a whiff of fresh baked bread on the breeze. You follow the scent to a small clearing. The smell is coming from the chimney of a small hut stood up on stilts. Goto {{hut}}. + +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, and do so successfully, the spider none the wiser to your passage through its lair. You trek deeper and deeper into the forest, losing track of the path behind you. Eventually you come across a small clearing, in the middle of which is a small cottage on tall stilts. Goto {{hut}} + +id: 30 +name: hut +text: You approach the hut. It smells of fresh baked bread, and your stomach rumbles. You knock on the door. A weak, reedy voice inside beckons you in. You cross the threshold and see an old woman, as tall as three humans, and as thin as a blade of grass. Silken golden hair falls around her face and shoulders. Though you've never seen her before, you know this is her: the Corn Mother. She holds your gaze intently. Timidly you speak up. ++ "What the hell Corn Mother! Why did you abandon us!" Goto {{witchaggro}} ++ "Um, Corn Mother? Is that you?" Goto {{witchneutral}} ++ You drop to your knee and kneel in respect. "Corn Mother! How can I serve you?" Goto {{witchnice}} + +id: 31 +name: witchnice +text: The dire crows stole my doo-dad! A necklace of strung glass popcorn. Will you help me get it? ++ Agree to help the Corn Mother ++ Tough luck! Sucks to suck! + +id: 32 +name: witchaggro +text: The Corn Mother turns you into fertilizer. GAME OVER + +id: 33 +name: witchneutral +text: The Corn Mother sighs. "Of course it is I. And who are you? Why did you come here?" diff --git a/doc/notes b/doc/notes new file mode 100644 index 0000000..026389b --- /dev/null +++ b/doc/notes @@ -0,0 +1,136 @@ +# cornquest + +okay new plan bitches + +this is a meta narrative about patriarchy and phallic desire, symbolized by corn, and feminism (the earth) wherein the reader has to play the metagame in order to break out of the cycle of conquest and violence. + +you know what, if you represent each even number choice (male) as zero and each odd number choice (female) as one, then after your first six choices, you'll have a hexgram of the i-ching. It would perhaps be very satisfying to have the decision tree cap out at twelve. both for the obvious reason, and also so that at the end of the game, you have two hexgrams. the game can end with some kind reading based on that. + +# outline + +the rage of the cornbeast + +how is this going to work.. + +i want it to be some kind of a horror story + +about the fertile earth bucking off its masters + +something something the cornbeast approaches + +must go through the dark woods to the top of mount char to appease the earth + +end up in *inner space* + +you must rid the earth of her children + +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? + +peter pan is not a happy story + +pan captures souls of dead and forgotten children and takes them away to neverland + +if they grow up, he banishes them and they become pirates i guess? + +hook is kind of his enemy but not really + +time, growing up, the crocodile is his real enemy + +and we turn this all into a fairy tale childrens story + +and so + +man did not invent corn + +corn invented agriculture to capture and enslave man + +and if man over farms and creates barren fields and dust bowls, corn banishes man and they die i guess? + +the dire crow is your obvious enemy + +but it's not really your enemy + +agriculture, through mankind, is destroying the earth mother + +she sends the cornbeast to destroy agriculture.. + + +# characters + +- "you" -- farmer, scared of cornbeast +- cornbeast -- scarecrow, enemy +- dire crow -- eat the corn, scared of cornbeast +- earth mother -- maketh the corn + +# elements + +- dire crow, feathers, beaks +- corn husk dolls +- ears full of eyes +- maze + + +## 1. "You." - ESTABLISH A PROTAGONIST + +- you wake up the morning before the big harvest + +- comfort zone, arms of the mother + +## 2. "Need" - SOMETHING AIN'T QUITE RIGHT + +- uh oh, the earth mother has rejected your offering of corn! + +- pull of the father, desire + +## 3. "Go" - CROSSING THE THRESHOLD + +- threshold to the unknown + +- dire crow attack! + +- you must appease the corn mother and ask her blessing lest the Dire Crow descend and devour you! + +## 4. "Search" - THE ROAD OF TRIALS + +- get digested, transformed, training montage + +- crss the dark wood + +- climb mount ashpeak + +- descend into crater + +## 5. "Find" - MEETING WITH THE GODDESS + +- new mommy + +- discovery + +## 6. "Take" - MEET YOUR MAKER + +- a 2nd pull, parallel to 2, asskicking?, transcendence + +- become the hammer of mother earth, the cornbeast! + +## 7. "Return" - BRINGING IT HOME + +- trials + +## 8. "Change" - MASTER OF BOTH WORLDS + +- boom + diff --git a/doc/syntax b/doc/syntax new file mode 100644 index 0000000..0191315 --- /dev/null +++ b/doc/syntax @@ -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 diff --git a/game.rec b/game.rec deleted file mode 100644 index 81963c8..0000000 --- a/game.rec +++ /dev/null @@ -1,65 +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 {{corndress}}. If you wear corn bib overalls, goto to {{cornoveralls}} - -id: 2 -name: deathbycorn -text: You eat way too much corn. Goto {{death}}. - -id: 3 -name: death -text: You die a horrible death. THE END. - -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 5. 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: 9 -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: 10 -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: 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 diff --git a/justfile b/justfile index 083fa50..7726578 100644 --- a/justfile +++ b/justfile @@ -1,39 +1,67 @@ +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;' \ | sed -e 's/}}[^{]*{{{{/}} {{{{/g' -e 's/> [^{]* {{{{/> {{{{/' \ + | 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/}} {{{{/>> ], [ <> ]/' \ + | 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' \ @@ -43,4 +71,71 @@ browse: # remove generated files clean: - rm -f dot data graph.png + rm -f tmp/* out/* + +# word count +words: + 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 diff --git a/lib/game.ctags b/lib/game.ctags new file mode 100644 index 0000000..3314cdf --- /dev/null +++ b/lib/game.ctags @@ -0,0 +1,4 @@ +--langdef=game +--map-game=+.rec +--kinddef-game=n,name,names +--regex-game=/^name:[ \t]*([a-zA-Z]+)$/\1/n/ diff --git a/out/graph.png b/out/graph.png new file mode 100644 index 0000000..4f3abd0 Binary files /dev/null and b/out/graph.png differ diff --git a/out/story.pdf b/out/story.pdf new file mode 100644 index 0000000..d720c42 Binary files /dev/null and b/out/story.pdf differ diff --git a/out/story.txt b/out/story.txt new file mode 100644 index 0000000..c50bd43 --- /dev/null +++ b/out/story.txt @@ -0,0 +1,396 @@ + + + + + + + + + + CORNQUEST + + + dozens + + +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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags b/tags new file mode 100644 index 0000000..6a22e5e --- /dev/null +++ b/tags @@ -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 diff --git a/templates/story.ms.template b/templates/story.ms.template new file mode 100644 index 0000000..2655975 --- /dev/null +++ b/templates/story.ms.template @@ -0,0 +1,13 @@ +.TL +CORNQUEST +.AU +dozens +.2C +{{#data}} +.KS +.SH +{{id}} +.LP +{{{text}}} +.KE +{{/data}} diff --git a/tmp/data b/tmp/data new file mode 100644 index 0000000..f10c002 --- /dev/null +++ b/tmp/data @@ -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", "hut": "30", "witchnice": "31", "witchaggro": "32", "witchneutral": "33" } diff --git a/tmp/dot b/tmp/dot new file mode 100644 index 0000000..59b9376 --- /dev/null +++ b/tmp/dot @@ -0,0 +1,31 @@ +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}} }; +20 -> { {{hut}} }; +21 -> { {{panic}} {{calm}} }; +22 -> { {{fwiends}} {{scram}} }; +23 -> { {{path}} {{continue}} {{hack}} }; +24 -> { {{collide}} }; +25 -> { {{beast}} {{hide}} }; +26 -> { {{games}} }; +27 -> { {{hide}} {{path}} }; +29 -> { {{hut}} }; +30 -> { {{witchaggro}} {{witchneutral}} {{witchnice}} }; +} diff --git a/tmp/grapheasy b/tmp/grapheasy new file mode 100644 index 0000000..ffe0068 --- /dev/null +++ b/tmp/grapheasy @@ -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}} ] diff --git a/tmp/story.ms b/tmp/story.ms new file mode 100644 index 0000000..010ad11 --- /dev/null +++ b/tmp/story.ms @@ -0,0 +1,226 @@ +.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 +You decide to not push your luck by going bushwacking in the undergrowth. Good thing, orienteering was never your strongest activity in Corn Scouts. Eventually you catch a whiff of fresh baked bread on the breeze. You follow the scent to a small clearing. The smell is coming from the chimney of a small hut stood up on stilts. Goto {{hut}}. +.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, and do so successfully, the spider none the wiser to your passage through its lair. You trek deeper and deeper into the forest, losing track of the path behind you. Eventually you come across a small clearing, in the middle of which is a small cottage on tall stilts. Goto {{hut}} +.KE +.KS +.SH +30 +.LP +You approach the hut. It smells of fresh baked bread, and your stomach rumbles. You knock on the door. A weak, reedy voice inside beckons you in. You cross the threshold and see an old woman, as tall as three humans, and as thin as a blade of grass. Silken golden hair falls around her face and shoulders. Though you've never seen her before, you know this is her: the Corn Mother. She holds your gaze intently. Timidly you speak up. +"What the hell Corn Mother! Why did you abandon us!" Goto {{witchaggro}} +"Um, Corn Mother? Is that you?" Goto {{witchneutral}} +You drop to your knee and kneel in respect. "Corn Mother! How can I serve you?" Goto {{witchnice}} +.KE +.KS +.SH +31 +.LP +The dire crows stole my doo-dad! A necklace of strung glass popcorn. Will you help me get it? +Agree to help the Corn Mother +Tough luck! Sucks to suck! +.KE +.KS +.SH +32 +.LP +The Corn Mother turns you into fertilizer. GAME OVER +.KE +.KS +.SH +33 +.LP +The Corn Mother sighs. "Of course it is I. And who are you? Why did you come here?" +.KE