LOCUST TF GAME
xax
<div id="notes">[[CONTENT NOTES|notes]]</div>\\n<<display init>>{{{this is a code outline of a game, rather than a game proper -- nearly every scene is notes for how it should go, rather than actual prose - xax}}}\n\n[[character creation]]
<<if !tagsContains("meta")>>\\n<<if ["save", "load", "erase"].indexOf (passage()) === -1>><<set $_back = passage()>><<endif>>\\n<<if passage() eq "village int" || passage() eq "camp">>\\n[[save game|save]]<<endif>>\n\n<<if $__save neq 0>>[[load game|load]]\n\n\n\n[[erase save|erase]]<<endif>><<endif>>
!are you sure?\n(this will also erase your current progress)\n\n[[yes|erase confirm]]\n[[no|$_back]]
<<set {\n delete state.history[0].variables["__save"]\n }>>\\n!deleted.\n\n[[restart|Start]]
<<set {\n delete state.history[0].variables["__save"];\n state.history[0].variables["__save"] = JSON.stringify ({vars: state.history[0].variables, passage: state.history[0].passage.title});\n }>>\\n<<remember $__save>>\\n!saved.\n\n<<print "[[→|" + $_back + "]]">>
<<set {\n var save = $__save;\n var s = JSON.parse ($__save);\n state.history[0].variables = s.vars;\n state.history[0].variables.__save = save;\n }>>\\n!loaded.\n\n<<print "[[→|" + $_back + "]]">>
some basic content guidelines: this is a ''m/m'' game with a focus on sex with various big alien/monster types, + the pc over the course of the game transforming more fully into a big alien monster. you accumulate transformations through the game, generally in sex scenes.\n<span class="meta">\n(in the currently-implemented demo, a lot of the more endgame transformations aren't mentioned at all; the game structure thins out considerably after leaving for the city)</span>\nthe aliens in this are to various degrees hermaphroditic or intersex, and in-setting nobody finds that particularly unusual.\n\nthere's a lot of sex scenes\n* gay sex\n* gay sex with aliens and monsters\n* transformation into a monster\n* transformative sex\n* threesomes, gangbangs, etc\n* rough sex\n* oviposition / impregnation + birthing\n* transformation to grow breasts and a womb (but not in a way that's treated as particularly feminizing)\n* fisting + prolapse play\n* piercings/tattoos\n* chastity play\n\n[[←|Start]]
You're a human, living in the desolate desert outpost of Yapu. When the sands spread and the {locust} rose, your grandparents were among those left to fend for themselves outside the walls.\n\nYapu, like most desert outposts of its size, is mostly water-farming with some hardscrabble grains besides. It's out in the low desert, further than most human encampments -- easily within the domain of the great beasts, and only a few days travel from the acid flats. Groups of {locust} travel through, about twice a year, to restock on long desert travels, and they trade exotic materials for your water. Human travelers from the remaining cities are much rarer and less eagerly greeted.\n\nYou're a wanderer. You left your birth town early, and traveled with humans and {locust} alike -- merchants, traders, soldiers, whoever would have you -- to see the ruins of the old world. You're a scavenger. You go out into the wild lands to hunt for artifacts: machines, technology, materials.\n\n<<block pts>><<display "mutationbar">><<endblock>>\\n<span class="meta">choose your initial mutations\nyou have <<block pts>><<print $ccpts>><<endblock>> mutation point<<block pts>><<print $ccpts == 1 ? "" : "s">><<endblock>></span>\n\n* <<block pure>><<if $mutation == 0>>You're an unaltered human, comparatively-untouched by the lightrot in the water and dust<<endif>><<endblock>>\n* <<cycle buff>>\\n<<rmmutation "buff">><span class="meta">body \\n<<block outofpoints>><<if $ccpts == 0>>+<<else>><<revise buff "+">><<endif>><<endblock>></span>\\n<<becomes>>\\n<<addmutation "buff">>You're bigger and more muscular than most other humans, with blistered scales starting to show across your shoulders and back\\n<span class="meta"><<revert buff "-">></span>\\n<<endcycle>>\\n\n* <<cycle leaky>>\\n<<rmmutation "leaky">><span class="meta">nipples \\n<<block outofpoints>><<if $ccpts == 0>>+<<else>><<revise leaky "+">><<endif>><<endblock>></span>\\n<<becomes>>\\n<<addmutation "leaky">>You've helped {locust} incubate their eggs before, and your nipples are giant and fat, leaking milky ichor at the slightest touch\\n<span class="meta"><<revert leaky "-">></span>\\n<<endcycle>>\\n\n* <<cycle dick>>\\n<<rmmutation "dick">><span class="meta">dick \\n<<block outofpoints>><<if $ccpts == 0>>+<<else>><<revise dick "+">><<endif>><<endblock>></span>\\n<<becomes>>\\n<<rmmutation "knot">><<addmutation "dick">>You've got a {locust} dick, green-grey and covered in knobbled warts, eagerly oozing slimy yellowish pre\\n<span class="meta"><<revert dick "-">> knot <<block outofpoints>><<if $ccpts == 0>>+<<else>><<revise dick "+">><<endif>><<endblock>></span>\\n<<becomes>>\\n<<rmmutation "dick">><<addmutation "knot">>You're friends with a giant beast of the deep wasteland, and over time its seed has transformed your cock into a miniature of its own: raw purple-black flesh stored in a leathery sheath, coming to a sharp tip, with a tentacle-fringed knot at the base\\n<span class="meta"><<revert dick "-">></span>\\n<<endcycle>>\\n\n* <<cycle balls>>\\n<<rmmutation "balls">><span class="meta">balls \\n<<block outofpoints>><<if $ccpts == 0>>+<<else>><<revise balls "+">><<endif>><<endblock>></span>\\n<<becomes>>\\n<<addmutation "balls">>Your balls are enormous, lumpy and misshapen in an over-sized sac drawn up tight between your thighs. You cum {locust} cum, thick and grey-green, with gritty chunks\\n<span class="meta"><<revert balls "-">></span>\\n<<endcycle>>\\n\n* <<cycle asshole>>\\n<<rmmutation "asshole">><span class="meta">ass \\n<<block outofpoints>><<if $ccpts == 0>>+<<else>><<revise asshole "+">><<endif>><<endblock>></span>\\n<<becomes>>\\n<<addmutation "asshole">>You've got an altered asshole, constantly swollen and puffy, with the flesh of your hole and fat asscheeks dappling into supple, rubbery grey-black hide\\n<span class="meta"><<revert asshole "-">></span>\\n<<endcycle>>\n\n[[→|intro]]
You're <<if hasMutation("buff")>>a buff, burly-looking<<else>>an average-looking<<endif>> human. Brown skin tanned as dark as it can go from the desert sun; black hair kept shorn close to the skull. <<if hasMutation("buff")>>The skin across your shoulders has been flaking recently, like a city-born's sunburn, save that your skin beneath is leathery, warted like the {locust's}, in drab off-white and greenish patches spreading down your back and up your neck.<<endif>> Like all the humans, you wear drab clothes in desert tones, a combination of coarse homespun and the much better-made fabric traded from passing travelers.\n<<if hasMutation("pure")>>\n/% %/Unlike many humans in the settlement, the lightrot soaking the planet hasn't had any visible effect on you, whether from luck or low dosage. As of yet, you haven't had any signs of {locust} show.\\n<<endif>>\\n<<if hasMutation("pre-leaky")>>\n\n/% %/Your nipples have been swollen and aching recently, and there are stiff, hard disks growing just beneath them, felt through your skin.\\n<<endif>>\\n<<if hasMutation("leaky")>>\n\n/% %/<<display titshistory>>\\n/% %/ Since then, your nipples have been enormous: fat and wide across your <<if hasMutation("buff")>>muscled <<endif>>chest, and they stiffen from stimuli as faint as the desert wind, forming \\n/% %/<<if hasMutation("udders")>>\\n/% %/palm-sized peaks, topped w/ enormous fleshy udders thicker than your thumb and just about as long\\n/% %/<<else>>\\n/% %/thick triangular peaks topped with a fat, corklike nipple\\n/% %/<<endif>>\\n/% %/.\\n/% %/<<if hasMutation ("six nipples")>>\\n/% %/ <<display sixhistory>>\n/% %/<<endif>>\\n/% %/ When you get aroused, you start to leak milky yellow-white ichor in streams down your chest; more when you're being milked.\\n/% %/<<if hasMutation("pre-six")>>\\n/% %/ You have extra nipples forming down your chest: hard disks under your skin, reddened flesh spreading out in pads that have begin to prickle and stiffen when you get aroused.\n\n/% %/<<endif>>\\n/% %/<<if hasMutation("udders")>>\\n/% %/ If you haven't been milked in a while, your pecs start to swell up, overactive milk glands dumping fluid in a reservoir just under each nipple, giving you <<if hasMutation("six nipples")>>three sets of<<else>>a pair of<<endif>> fat, leaking tits.\\n/% %/<<endif>>\\n<<endif>>\\n\\n<<if hasMutation("knot")>>\nIn your travels across the metal wastes, you came across the den of a fearsome desert beast; one that calls itself Brulvundojn. After the initial encounter, you became friends of a sort, and you visit its den when you're in the region. Its seed is fuming, bubbling green goo threaded with squirming black lines, and it enjoys rutting against -- and into -- you, drenching you in its issue. Over time, a portion of its lusts transferred into you: your cock is a beast's cock, smooth black flesh with a burning, aching knot at the base, constantly massaged by fat, squirming tentacles beneath it. Brulvundojn's is much, much larger.<<endif>>\\n<<if hasMutation("balls") || hasMutation("dick")>>\n<<display dickballshistory>><<endif>>\\n<<if hasMutation("asshole")>>\n<<display assholehistory>> Your ass shows the marks of it: ass cheeks fat and muscular, skin dappling into supple locust-hide, asshole perpetually swollen, yawning open easy. \\n<<if hasMutation("prostate")>>Your prostate aches inside you, throbbing sometimes, and it's so huge it bloats out the wall of your ass, forming a fat mound that gets rammed each time you get fucked.<<endif>><<endif>>\\n<<if hasMutation("womb")>>\n\n/% %/Not that far up inside your ass, you have some kind of mutant womb, for incubating eggs. \\n/% %/<<if $pregnant eq "">>\\n/% %/Sometimes you can feel your cervix spasm, hungrily gulping in preparation for your next batch of eggs.\n/% %/<<else>>\\n/% %/Your cervix is plugged tight, bulging from the clutch of eggs inside you now.\n/% %/<<endif>>\n<<endif>>\\n<<if hasMutation("eggs")>>\n\n<<display eggs>>\n<<endif>>\n<<if hasMutation("dick") || hasMutation("ass")>>\n<<endif>><<if hasMutation("dick")>>Your cock leaks thick, slimy pre in streamers, a translucent yellow,\\n<<if !hasMutation("balls")>> and the same slime makes up most of your cum.\\n<<else>> and <<endif>><<endif>>\\n<<if hasMutation("balls")>>when you cum, it's chunky, grey-green slop, oozing from your \\n<<if hasMutation("dick")>>bloated <<endif>> cockhead in runny clots.<<endif>>\\n<<if hasMutation("prostate")>> Your overproductive prostate means that you leak pre constantly when aroused, so much that even a few moment's drool is enough to match your old orgasms.<<endif>>\n<<if hasMutation("knot")>>\nYour cum is still basically human; maybe a little thicker. If you get properly knotted, you do get full half-hour orgasms<<if hasMutation("prostate") || hasMutation ("balls")>>, and you cum enough to bloat people up<<endif>>. Your knot is too big for most humans to manage, though.<<endif>>\\n<<if !hasMutation("dick") && !hasMutation("ass") && !hasMutation("knot")>>\nYou guess you're pretty decently hung, for a human at least.<<endif>>\n\n<<display mutationbar>>\n\n<<if $back != "">>[[←|$back]]<<endif>>
<<if $from['balls'] eq $from['dick'] && $from['balls'] neq 0>>\n<<display "mergeddickballs">>\n<<else>>\\n/% %/<<if $from['dick'] neq 0>>\n/% %/<<dickballs "dick">>\n/% %/<<endif>>\\n/% %/<<if $from['balls'] neq 0>>\n/% %/<<dickballs "balls">>\n/% %/<<endif>>\\n<<endif>>
<<set $_show = parameter(0)>>\n<<print (function (f){\n switch (f) {\n case "cc":\n return "As you've grown,";\n case "jinn-pools":\n return "You fucked Jinn, the human breeder prince, in the lightrot pools beneath the desert, and from his sloppy, lightrot-squirting cunt"\n default:\n return ("!! unhandled from \"" + f + "\"");\n }\n })($from [$_show])>>
<<set $_show = parameter(0)>>\\n<<genhistory parameter(0)>> your <<if $_show eq "dick">>cock<<else>>balls<<endif>> grew fat and heavy, inhumanly huge on your frame. \\n<<if $_show eq "dick">>Your cock juts out from your body even soft, leathery skin stiff but rubbery, with warts piled on top of each other into a lumpy mass running from the tip of your foreskin all the way down to your crotch. <<endif>>\\n<<if $_show eq "balls">>Your balls hang <<if hasMutation("dick")>>below your altered cock, equally giant and grotesque. T<<else>>beneath your cock in a giant and grotesque sac: t<<endif>>hey're swollen, lumpy and misshapen, each one nearly fist-sized, and they constantly scrape between your thighs, chafing your skin. They're almost painfully sensitive, and even light tugging and squeezing on them is enough to make you blow your load.<<endif>>
<<genhistory "dick">> your \\n<<if hasMutation ("dick")>>\\ncock <<if hasMutation ("balls")>>and balls<<endif>>\\n<<else>>balls<<endif>> grew fat and heavy, inhumanly huge on your frame. <<endif>>\\n<<if hasMutation("dick")>>Your cock juts out from your body even soft, leathery skin stiff but rubbery, with warts piled on top of each other into a lumpy mass running from the tip of your foreskin all the way down to your crotch. <<endif>>\\n<<if hasMutation("balls")>>Your balls hang <<if hasMutation("dick")>>below your altered cock, equally giant and grotesque. T<<else>>beneath your cock in a giant and grotesque sac: t<<endif>>hey're swollen, lumpy and misshapen, each one nearly fist-sized, and they constantly scrape between your thighs, chafing your skin. They're almost painfully sensitive, and even light tugging and squeezing on them is enough to make you blow your load.<<endif>>
<<if $from['asshole'] eq "cc">>You've fucked around some w/ the passing {locust} troupes, and on one occasion they broke out their stash of lightrot and really worked you over, working it into your ass until they could fit two arms elbow deep.<<endif>>\\n/% $from['asshole'] eq "survey gangbang" %/
<<if $from['leaky'] eq "cc">>A few seasons back, some of the traveling {locust} were unexpectedly gravid -- one had received a larger clutch than he'd realized -- and you offered to incubate the eggs. They took fast within you, and for most of the next half-year you were swollen and enormous, before the next passing group helped you birth them.<<endif>>\\n<<if $from['leaky'] eq "astau" || $from['leaky'] eq "astau-fertilized">>You were bred by Astau of the wasteland, and pumped full of a clutch of his eggs. \\n<<endif>>\\n/% $from['leaky'] eq "jinn" %/
<<if $from['six'] eq "astau" || $from['six'] eq "astau-fertilized">>\\n<<if $from['leaky'] eq "astau" || $from['leaky'] eq "astau-fertilized">>\\nThen, Astau bred you again, and the second time your already-altered body responded to his beastly hormones, \\n<<else>>Then, the giant beast named Astau bred you deeply, pumping you full of his eggs, and as they settled within you, your body responded to his beastly hormones, \\n<<endif>><<endif>>\\ncausing you to grow a full set of six nipples, in rows down your chest and stomach.
You're currently heavy with eggs, <<print (function (p){\n switch (p) {\n case "astau":\n return "pumped into you from Astau, the acid-beast of the southeastern wastes. They're not fertilized, and you might need help working them out of your swollen body.";\n case "astau-fertilized":\n return "pumped into you from Astau, the acid-beast of the southeastern wastes. They rested inert within your body until Brulvundojn bred you, and now you can feel them squirm and grow within you. You're enormously pregnant with their young, and the skin across your swollen gut is vividly-striped with raw red stretch marks.";\n default:\n return ("unknown egg type\"" + p + "\"");\n }\n }) ($pregnant)>>
mutation level:\n<div id="mutation"><<print (function (muts, mutvals) {\n return muts.map (function (mut) {\n var w = mutvals[mut][0] * 10;\n var c = mutvals[mut][1] == "" ? "" : ' class="' + mutvals[mut][1] + '"';\n return '<span' + c + ' style="width:' + w + '%"></span>';\n }).reduce (function (a, b) {\n return a + b;\n }, '');\n})($mutations, $mutvals)>>\\n<<print (function (v) {\n return v.map(function (s) {\n return '<span class="mark" style="left: ' + (s*10) + '%"></span>'\n }).reduce (function (a, b) {\n return a + b;\n })\n})([1,2,3,4,5,6,7,8,9])>>\\n</div>
#sidebar {\n width: 25%;\n margin: 1em 0 0 0;\n padding: 0;\n}\n#sidebar li { padding-right: 1em; margin: 0; color: #312; }\n\n#storyTitle, #storyAuthor, #restart, #credits, #bookmark { display: none; }\n#sidebar #storyMenu { display: block; }\n#sidebar li a { color: #624; }
div#mutation { width: 50%; height: 1.6em; position: relative; margin-top: 0.6em;\n box-shadow: 0 0 6px 0px #880; }\ndiv#mutation span { display: block; float: left; height: 1.6em; background: #ff0; }\ndiv#mutation span.animal { background: #739; }\n\ndiv#mutation span.mark { position: absolute; bottom: -0.35em; width: 1px; height: 2.2em; background: #330; }
<<nobr>>\n<<if $mutations.length == 0>><<addmutation "pure">><<endif>>\n<<set $brulvundojnFriends to hasMutation("knot")>>\n<<set $knowAstau to false>>\n<<set $from to {}>>\n<<set $from['leaky'] to hasMutation("leaky") ? "cc" : null>>\n<<set $from['asshole'] to hasMutation("asshole") ? "cc" : null>>\n<<set $from['balls'] to hasMutation("balls") ? "cc" : null>>\n<<set $from['dick'] to hasMutation("dick") ? "cc" : null>>\n<<set $pregnancies to hasMutation ("leaky") ? 1 : 0>>\n<<set $wombCounter to 0>>\n<<endnobr>>\n<<display "you">>\n\n[[→|leavetownstart]]\n\n/% * [[jump directly to the city|hive tunnels]] %/
[you're leaving town to scavenge. it's the season when the {locust} are due to show up, tho that could be anywhere from like, a few days to another two or three months ('months').]\n\n<<set $plot to 1>><<resetmoves>>[[head out|worldmap]]
<<nobr>>\n<<set $_n to ($x + "," + ($y-1))>>\n<<set $_s to ($x + "," + ($y+1))>>\n<<set $_w to (($x-1) + "," + $y)>>\n<<set $_e to (($x+1) + "," + $y)>>\n<<set $_i to ($x + "," + $y)>>\n<<endnobr>>\\n<<set $timeOfDay to (6 - $moves) % 6>><<display "time">>\n\n<span class="meta">(treasure spots are <<print (function (ts) {\n return ts.reduce (function (a, b) {\n return a + " / " + b;\n });\n})($treasure)>>)\n(yr at <<print $_i>>)</span>\n\n\n<<display $map [$_i]>>\\n<<if $scavenge eq $_i>>* this is the [[scavenge]] spot<<else>>\\n<<if $treasure.indexOf ($_i) !== -1>>* there's a [[glimmer]] in the sand\\n<<else>><<if $moves gte 0>>* try [[digging]]<<endif>><<endif>><<endif>>\\n<<if $moves gt 0>>\\n<<nobr>>\n<ul id="nav"><li><<if $map [$_n]>>[[go north|worldmap][$y -= 1; $moves -= 1; $turns += 1;]]<<else>>==go north==<<endif>></li>\n<li><<if $map [$_w]>>[[go west|worldmap][$x -= 1; $moves -= 1; $turns += 1;]]<<else>>==go west==<<endif>></li>\n<li><<if $map [$_e]>>[[go east|worldmap][$x += 1; $moves -= 1; $turns += 1;]]<<else>>==go east==<<endif>></li>\n<li><<if $map [$_s]>>[[go south|worldmap][$y += 1; $moves -= 1; $turns += 1;]]<<else>>==go south==<<endif>></li></ul>\n<<endnobr>>\\n<<if $plot eq 6>>[this part is just uhh doing some final resolution junk. figuring out where the human squad ppl have been hiding, resolving any early-game subplot stuff that was left hanging to this point.]<<endif>>\\n<<else>>\\n* set up [[camp]]\n<<nobr>>\n<ul id="nav"><li>==go north==</li>\n<li>==go west==</li>\n<li>==go east==</li>\n<li>==go south==</li></ul>\n<<endnobr>>\n<<endif>>
<<set $moves to 3>><<display "scatter">>
<<nobr>>\n<<set $treasure to (function () {\n function randomInRange (lo, hi) {\n var diff = hi - lo;\n var v = Math.floor (Math.random() * diff);\n return lo + v;\n }\n var o = [];\n var invalid = ["0,0", "1,0", "-1,0", "0,1", "0,-1", "-3,-3", "-3,3", "3,3", "3,-3"];\n var n;\n var x;\n var y;\n while (o.length < 3) {\n x = randomInRange (-3, 3);\n y = randomInRange (-3, 3);\n n = x + ',' + y;\n if (invalid.indexOf (n) === -1 && o.indexOf (n) === -1) {\n o.push (n);\n }\n }\n return o;\n })()>>\n<<endnobr>>
<<print (function (t) {\n switch (t) {\n case 0:\n return "it's dawn, with the sun just cresting over the eastern mountains.";\n case 1:\n return "it's early, but the morning heat has already arrived. the sun beats down on you. the horizon ripples with heat.";\n case 2:\n return "it's afternoon, and the sun beats down on you. the horizon ripples with heat.";\n case 3:\n return "it's dusk. the sun has just sunk in the west, and the sand is still radiating heat, rippling at the horizon."\n case 4:\n return "it's night. stars glimmer in the sky above. {the moon} is full and heavy in the sky."\n case 5:\n return "it's night. all is still and quiet. the heat of the day is long gone, and the air is bitterly chill."\n default:\n return "!!error!!";\n }\n })($timeOfDay)>>
<<if $_i eq "-3,0" && !$brulvundojnFriends>><<display "brulvundojn camp confront">>\n<<else>>\\n<<if $droneActive eq "Djen">>\\n[[''you''|you][$back = "camp"]] and Djen set up camp and probably fuck around]<<endif>>\\n<<if $droneActive eq "Pthuul">>\\n[[''you''|you][$back = "camp"]] and Pthuul set up camp and probably fuck around]<<endif>>\\n<<if $droneActive eq "Khru">>\\n[[''you''|you][$back = "camp"]] and Khru set up camp and probably fuck around]<<endif>>\\n<<if $droneActive eq "Gawann">>\\n[[''you''|you][$back = "camp"]] and Gawann set up camp and probably fuck around]<<endif>>\\n<<if $droneActive eq "Yraal">><<display "yraal camp">><<endif>>\\n<<if $droneActive eq "Jinn">>\\n[[''you''|you][$back = "camp"]] and Jinn set up camp and probably fuck around]<<endif>>\\n<<if $droneActive eq "birthing squad">>\\n<<if $pregnant neq "">>\\nthe half of the locust squad with [[''you''|you][$back = "camp"]] sets up camp and then probably gently fucks you a little while rubbing yr pregnant gut\\n<<else>>\\n[[''you''|you][$back = "camp"]] and the locust with you set up camp and then they properly fuck yr still-stretched-from-birthing asshole a bunch\\n<<endif>><<endif>>\\n<<if $droneActive eq "squad">>\\n[[''you''|you][$back = "camp"]] and the survey team set up camp. probably there's a sequence of gangbang scenes here that progresses with each night<<endif>>\\n<<if $droneActive eq "" || !$droneActive>>\\n[[''you''|you][$back = "camp"]] set up camp for the day. the sky turns blue above you, and the final stars wink out.<<endif>>\n\n[[→|camprun]]<<endif>>
[ [[''you''|you][$back = "camp"]] and Yraal set up camp and probably fuck around]\n\n(also he's got some fat stubby dick w/ giant balls and cums w/ a cum-plug)
<<display "timed tfs">>\n\\nyou sleep fitfully through the day's heat, and <<resetmoves>>[[at dusk you pack up and set off|worldmap]]
<<if $pregnant neq "">>\\n<<if !hasMutation ("womb") && ($pregnancyStarted + 7) lte $turns>>\\n/% %/<<if $pregnancies gte 2 && $wombCounter gte 8>>\\n/% %/<<addmutation "womb">>\\n/% %/<<set $from['womb'] to $pregnant>>[the heat in yr guts flowers open, and you can feel new muscles moving inside you, slowly gulping eggs into some new chamber inside your body]\n\n/% %/<<else if ($wombCounter % 2) == 0>>\\n/% %/[yr guts throb around the eggs inside you, and a hot stinging sensation spills through yr flesh]\n\n/% %/<<endif>>\\n/% %/<<set $wombCounter += 1>>\\n<<endif>>\\n<<if $pregnancyTf eq "pre" && ($pregnancyStarted + 10) lte $turns>>\\n/% %/<<if hasMutation ("pre-leaky")>>\\n/% %/<<rmmutation "pre-leaky">>\\n/% %/<<rmmutation "pure">>\\n/% %/<<addmutation "leaky">>\\n/% %/<<set $from['leaky'] to $pregnant>>[you wake up in the night to find your nipples dripping, with a slick, ichorous milk oozing down your chest.]\n\n/% %/<<endif>><<if hasMutation ("pre-six")>>\n/% %/<<rmmutation "pre-six">>\\n/% %/<<addmutation "six nipples">>\\n/% %/<<set $from['six'] to $pregnant>>[you wake in the night to find the dense, fleshy nubs down your chest have started leaking too, having finished their growth into two new sets of nipples. they're all steadily dribbling milk over yr pregnant gut.]\n\n/% %/<<endif>>\\n/% %/<<set $pregnancyTf to "yes">>\\n<<endif>>\\n<<if $pregnancyTf eq "no" && ($pregnancyStarted + 5) lte $turns>>\\n/% %/<<if !hasMutation("leaky")>>\\n/% %/<<addmutation "pre-leaky">>[you wake up to find yr nipples aching and engorged, with hard disks forming beneath them]\n\n/% %/<<else>><<if $pregnant eq "astau">>\n/% %/<<addmutation "pre-six">>[you wake up to yr chest and abs aching, with dense breast flesh aching under your nipples, and four hard disks swelling under your skin, in lines down over your ribs and stomach]\n\n/% %/<<endif>><<endif>>\\n/% %/<<set $pregnancyTf to "pre">>\n<<endif>>\\n<<endif>>
there was something here once. old marble, with lots of stairs and tiles. maybe an outdoor garden, though there's no trace of vegetation or even dirt at this point. just the occasional expanse of flat, sandy marble, and the rocky spur of a broken, sandblasted pillar sticking up from the drifting dunes.\n\n* <<if $droneActive eq "Yraal" && $surveyComplete neq true && $gardenSurvey neq true>>[[wait while Yraal looks around the ruins|yraalsurvey][$gardenSurvey = true]]<<endif>>
a shallow canyon in the shadow of the eastern glass mountains. sheltered from the desert wind, there's traces of old water, and a few brown, dead-looking plants in the canyon's overhangs.
the glass mountains are further northeast, big and dully glittering. the sand here is rough, mixed in with shards of fused green-black glass, and it mounds up into higher and higher dunes.
yr in the foothills of the glass mountains, where the thick sand gives way to a dusty scattering over fused green-glass and old black stone. the mountain crags shimmer above, and the ways along the hills sometimes yawn open into cave entrances.\n\n* <<if $droneActive eq "Gawann" && $surveyComplete neq true && $glassCavesSurvey neq true>>[[wait around while Gawann goes into the caves or digs around or whatever|gawannsurvey][$glassCavesSurvey = true]]<<endif>>\n* <<if $droneActive eq "Pthuul" && $surveyComplete neq true>>[[wait around while Pthuul does whatever it is he wants to do with the glass mountain|surveycomplete]]<<endif>>\n* <<if (($ticStress eq 1 && $plot eq 4) || $plot gte 6) && $ticLocation eq "caves">>there's [[smoke|2ic caves]] coming from one cave opening<<endif>>
the tree. it's older than the town, and likely older than the ruins as well. it's stunted, gnarled from the endless wind and the coarse sand, but it still clings to life, with green-yellow leaves on its upper limbs. its roots form coils and humps in the sand around it, and in its shadow the sand is marginally heavier, less dusty.
the earth split open here, many years ago, and the yawning chasm it left is still here. the ground here is treacherous, with hardened sand hiding open pits to the depths below, and with vast sloping hills of sand that empty directly into the split mouth of the great pit.\n\n* <<if $droneActive eq "Gawann" && $surveyComplete neq true && $cleftSurvey neq true>>[[wait around while Gawann goes into the caves or digs around or whatever|gawannsurvey][$cleftSurvey = true]]<<endif>>
the area is ribboned with ridges, like the desert pulls at its seams to reveal slices of red-orange stone. the ridge edges are pockmarked with cave entrances going down deep.\n\n* <<if $droneActive eq "Jinn" && $surveyComplete neq true>>[[go w/ Jinn while he snoops around in the caves|jinnsurvey]]<<endif>>\n* <<if $droneActive eq "Gawann" && $surveyComplete neq true && $caveRidgeSurvey neq true>>[[wait around while Gawann goes into the caves or digs around or whatever|gawannsurvey][$caveRidgeSurvey = true]]<<endif>>\n* <<if $droneActive eq "birthing squad" && $pregnant neq "">>go [[down|lightrot caves]] into the lightrot caves<<endif>>\n* <<if $plot eq 6>>this is where the [[new locust hive|new hive]] is<<endif>>
it's the town of Yapu. a collection of ramshackle huts in clusters -- metal sheeting, concrete pillars, and plastic panels, fixed together with adobe and green glass.\n\n(<<if $plot eq 2>>\\n/% %/[[head back to the village|village int]]\\n<<else if $plot eq 4 && ($droneActive eq "" || $surveyComplete eq true)>>\\n/% %/[[head back to the village|village int]]\\n<<else>>\\n/% %/==go to the town==\\n<<endif>>)
you're amid the cacti fields east of town, used for water harvest. they're fat, bulbous things, covered in leathery patches where they grew so engorged on water their skin burst.
you're among rolling sand dunes, walking in the lull between them.
you're among rolling sand dunes, walking in the lull between them. you're just north of town.
you're in the flat, desolate desert. the sand beneath is hardened and cracked apart into tiles.
you're in the flat, desolate desert. the sand beneath is hardened and cracked apart into tiles. this is just south of town.
you're in the trackless desert, where wild cacti grow.
you're in the trackless desert, where wild cacti grow. this is just west of town.
the desert here is shaped by an ancient roadway, with crumbling concrete overpasses forming hills or hollows, and long sinuous curves of highway now cliffs and arches in their ruined state.\n\n* <<if $droneActive eq "Yraal" && $surveyComplete neq true && $concreteSurvey neq true>>[[wait while Yraal looks around the ruins|yraalsurvey][$concreteSurvey = true]]<<endif>>
the metal wastes. stretches of metal tower up into the sky, acid-etched and crumbling apart.\n\n* <<if $droneActive eq "Khru" && $surveyComplete neq true && $brulvundojnFriends>>[[introduce Khru to Brulvundojn|surveycomplete]]<<endif>>\n* this is where [[brulvundojn's den|brulvundojn's den]] is
the blasted lands. the air crackles and sparks. the sand is pockmarked with craters, burnt to black glass, and each has an ancient instrument at its center: a blackened thing reaching up into the sky, humming and buzzing. the less eroded the instrument, the worse the buzz in the air near the crater. nothing lives here.
edge of the acid flats; sand giving way to crunchy chemical exudate; acid flats themselves a shallow swamp of bubbling acid, which has formed these vivid strata of chalky white-rusty orange-bright green-pink-etc in repeating bands, like mesas.\n\n* <<if $droneActive eq "Djen" && $surveyComplete neq true>>[[wait around while Djen does whatever it is he wants to do with the acid flats|surveycomplete]]<<endif>>\n* <<if $plot gte 6>>[[late-game acid flats sex scenes]]<<endif>>
the acid flats sweep north, sand eroding down from its constant tide. the acid outlines a shallow bay, sand still visible beneath a shallow layer of bubbling acid. the air is sour and the fumes make your eyes water.
at the edge of the acid flats. stalks grow out in the acid, strange fluted plants with purple-black vegetation, in clusters and thickets. they bulge and boil in the heat, and occasionally one erupts, spraying spumes of acid high into the sky like a geyser.
the trackless wastes spill out in every direction, without change, from horizon to horizon. the sky feels very close.
the sand here is powdery and white and packs strangely under your feet. in places it's dissolved into some kind of bubbling liquid.
the ground here smokes in the heat. at erratic intervals, something beneath the surface ignites with a ground-shaking //foom// and the sand boils like water, pillars of flame erupting from the earth with rattling crashes as planes of sand slide and sink in on themselves
broken shards of the glass mountain's peaks have landed here: long, fine glass skewers, from the initial explosion, and the desert wind has sculpted them into humming sculptures. the wind rushes through hollows and makes them vibrate, and they give off an unearthly keening.
the ground has been eaten away in patches, leaving behind deep hollows that go down and down; there are trenches in the sand from some beast dragging its tail, burrowing down to a subterranean den.\n\n* <<if $droneActive eq "Khru" && $surveyComplete neq true && $knowAstau>>[[introduce Khru to Astau|surveycomplete]]<<endif>>\n* <<if $knowAstau>>[[astau's den]] is here\\n<<else>>explore in the [[deep hollows|astau's den]]<<endif>>
the wasteland stretches off to the east, wrapping around the mountains to the north: endless desert, in vast expanses that no eyes have ever seen. the ground here is sturdy, but not for long.
a few rocky mesas, surrounded by stratified rock pillars and a few natural arches. the wind whistles through the holes in the rock.
mesa country. the northern lowlands stretch out before you, lower and marginally greener. its reddish sands are punctuated by black mesas with ancient trees on their tops.
red-rock spikes erupt from the ground. lightrot crystals grow from shallow divots on their surface, making them look like rocky trees.
a deep canyon cuts across the land, nearly invisible until you're on top of it. there are old switchback trails doing down, to a dusty dry streambed at the bottom.\n\n* follow the trails down
the sand here trickles down into old caves, and at the crumbling edge you can see down into the spaces below, full of the marks of ancient encampments, fresh as if they were used yesterday: old petroglyphs on the rock, umber paintmarks on the walls, wood ash swept into the corners, sharp rocks with chipped edges.\n\n* <<if $droneActive eq "Gawann" && $surveyComplete neq true && $ravineSurvey neq true>>[[wait around while Gawann goes into the caves or digs around or whatever|gawannsurvey][$ravineSurvey = true]]<<endif>>
a span of red rock forms a horseshoe-shaped ridge. scraggling brush clings to the ridge walls, and detritus litters the base of the ridge.\n\n* <<if $droneActive eq "Gawann" && $surveyComplete neq true && $ridgeSurvey neq true>>[[wait around while Gawann goes into the caves or digs around or whatever|gawannsurvey][$ridgeSurvey = true]]<<endif>>\n* there's a crack in the ridge
an ancient, crumbling fortress, from long ago. all that's left is the vague shape of its walls, edges mounded up under sand, and a handful of interior crossbeams: wood, but so weathered away they're thin as sticks and hard as rock.\n\n* <<if $droneActive eq "Yraal" && $surveyComplete neq true && $fortressSurvey neq true>>[[wait while Yraal looks around the ruins|yraalsurvey][$fortressSurvey = true]]<<endif>>
the sand here is red with rust, and the dunes are shaped around the last vestiges of acid-pitted metal husks.
some strange vegetation from the acid flats has grown north over the sand: a twining, thorny vine, rust-red with chalky yellow stripes. it forms thickets in seemingly arbitrary spots, growing into stalks twice your height, with red-black vines spanning between each copse, linking them together as a single enormous lifeform.
the garden crossroads. there's a lull between dunes, and the land between is green. crunchy not-quite-dead grass grows underfoot, and sagebrush dots the land. a few gnarled acacia trees grow in a sparse copse at the center of the lull.
at the base of a giant black-rock mesa. there's a cavernous opening at the base.\n\n* [[go down into the caves|hive tunnels]]
<<if $_i eq "-3,0" && !$brulvundojnFriends>><<display "brulvundojn dig confront">>\n<<else>>\n<<set $moves -= 1>>\\n<<set $_res to (function (){\n var res = ["nothing", "nothing", "scrap", "glass"];\n return res[Math.floor (Math.random() * res.length)];\n })()>>\\n<<if $_res eq "nothing">>you dig around in the sand for a bit, but don't turn up anything<<endif>>\\n<<if $_res eq "scrap">>you dig up some acid-edged iron scrap. worth something, at least<<endif>>\\n<<if $_res eq "glass">>you dig up some old glass shards, pitted with holes, edges worn smooth<<endif>>\n\n[[→|worldmap]]<<endif>>
<<if $scavenge eq "">><<set $scavenge to $_i>><<display "scavenge">><<else>>\\n[ you find uhhhh some kind of valuable thing in the sand] \n\n[[→|worldmap]]<<endif>>
<<if $plot gte 3>>[ this is the dune you dragged that tanker out of, way back when.]\n\n[[←|worldmap]]\n<<endif>>\\n<<if !$brulvundojnChain && !$locustChain>>\n[ you hit the motherlode. it's an old like, a tank, or a cargo transport, or some other relatively modern and big thing that's too big to transport back on yr own. (i think what it is specifically depends on where you go, but doesn't meaningfully change the rest of it)\n]\n\n* <<if $brulvundojnFriends>>you could head out west to the metal wastes and ask brulvundojn for help dragging it somewhere<<endif>>\n* you could head back to the village to figure out what to do\n\n<<set $plot to 2>>[[worldmap]]\n<<endif>>\n<<if $plot eq 2 && $brulvundojnChain>>\n[ brulvundojn yokes himself up and pulls the thing back to town effortlessly\n]\n\n<<set $plot to 3>>[[→|village int]]<<endif>>\n<<if $plot eq 2 && $locustChain>>\n[it's like, you head back out into the wastes w/ a few locust and get to the thing at dusk, and then you get gangbanged more-or-less aggressively, before you get the wheels/treads/etc working well enough to roll\n]\n\n<<set $plot to 3>>[[→|drag back]]<<endif>><<set $humanSiegeArrive = $turns + 31>>
[ you all commit to bodily dragging the thing back, slowly and laboriously over the course of hours.]\n\n[[→|village int]]
[it's 2ic, but he's a little rougher after living out in the wilds for a bit. his hair has grown out, enough to curl, and it makes a big shaggy mop. he's jaw is covered in coarse stubble, a brighter red-blond compared to his rusty orange hair. he's stripped off his armored chestpiece, and only has an old white tank top on.]\n\n[[←|worldmap]]
[ you & the locust team follow the twisting tunnels down, on a path that becomes a paved road, lit by glowmoss and lightrot pods on the tunnel walls. it eventually opens out into a vast highroad, with the space beneath filled with opaque glowing fog. eventually you crest over a ridge and see [[the locust hive|city intro]] spread out beneath you]\\n\\n<<set $unlocked to []>>
[ you arrive at the locust hive. it's a sprawling underground city, in the middle of a giant cave, built around/through/over a lake of lightrot. the air is humid and reeks of locust.]\n\n[this is a big splash passage describing the city layout overall -- build on a big stalagmite, with glittering lights, etc]\n\n[[city]]
[you go down into the cave depths, escorted by half the survey team. you get to the lightrot level, and find a somewhat flat area dotted w/ steaming pools of raw lightrot.]\n\n<<if $pregnant eq "astau-fertilized">>[then the squad fucks/fists/prolapses you to get the eggs out, rubbing yr gut, fisting yr cervix if you got one, etc, as you push out giant egg after egg -- greenish and translucent, circular, w/ a curled-up fetal creature in most of them]<<endif>>\n\n<<set $pregnant to "">><<rmmutation "eggs">>[they let you rest up afterward, push yr guts back into yr body, that kind of thing, and then mostly-carry you back up to the surface, leaving the eggs stewing in the lightrot pools]\n\n<<set $surveyComplete to true>>[[→|worldmap]]
[ brulvundojn: giant six-legged wolf-alien, w/ glowing eyes and drool that tends to ignite when it hits the sand. got cloudy black pre & bubbling green cum w/ squirming black lines. ]\n\n<<if !$brulvundojnFriends>>\n[brulvundojn is here and he's like, excuse me why are you here]\n\n<<display "brulvundojn confront">>\n<<else>>\n<<if $pregnant eq "astau">>\n[ yr all bloated w/ astau's eggs, and brulvundojn mentions that and yr like "well they're not fertilized"\n\nand brulvundojn is like, "would you like them fertilized b/c i could do that"\n\nthen he fucks + knots you, and afterward you can feel the eggs squirming around.\n\n<<set $pregnant to "astau-fertilized">>]\n\n[[→|brulvundojn's den]]\n<<endif>>\n<<if $plot eq 2>>\n["hey i found some old oil tanker or tank or care or w/e, can you help drag this thing all the way back to the village"\n"sure but yr gonna need some chains or smth to use as a yoke" "also you found this on my territory im pretty sure i got first claim rights, you gotta trade for it"\n"listen if yr trying to barter for fucking me, you know you really don't gotta do that, right?" (and then you fuck)\n\n(head back to the village to get chain<<set $brulvundojnChain to 1>>)\n]<<endif>>\n\n* <<if $brulvundojnFriends>>[[fuck around w/ brulvundojn|brulvundojn fuck]]<<endif>>\n<<endif>>\n\n[[←|worldmap]]
[ brulvundojn fucks you. frot / fucking / knotting depending on yr tfs, i guess?\n\nif you have knot or asshole, fucking + knotting\notherwise frot w/ some talk about how his dick is too huge / your ass is too small to fit. for now. ]\n\n[[→|worldmap]]
[you start digging around in the sand, but then brulvundojn storms up and starts yelling at you]\n\n<<display "brulvundojn confront">>
[you start setting up yr tent, but then brulvundojn storms up and starts yelling at you]\n\n<<display "brulvundojn confront">>
[there's a scene that basically explains, obliquely, that narratively when you don't pick the knot option in character creation it's not that he doesn't exist or that you never met or whatever, it's that when brulvundojn was like 'do u wanna rut against my dick until i cum all over yr entire body and have you writhe around in my stringy monster load' you were like. 'no'. and not just 'no' but like, in a rude way too.]\n\n* [[apologize about that time you were kind of a dick|brulvundojn apology]]\n* [[just leave|brulvundojn leave]]
[ you apologize for kind of being a dick.\n\n(this would need extra branches/narration for if you do this after the beginning of the game, and you have some tf that's not buff/leaky/dick/balls/asshole)\n<<if hasMutation ("leaky") || hasMutation ("asshole")>>\\n[you go, yeah that was a while ago and thinking about fucking around w/ anybody that wasn't human was like, exhilarating but also scary? so when you were like 'wanna fuck' i kind of panicked. but then later some locust drones came through and i kinda realized i had been dumb about it, but idk i just never really came by because i figured i had ruined things b/t us. so. sorry about all of that.]\n<<else if hasMutation ("buff") || hasMutation ("dick") || hasMutation ("balls")>>\\n[you go, yeah that was when i was still 'fully human', or like, thinking of myself as 'fully human'? and i wasn't really super prepared to think about what it would be to be not-human. or, you know. a big fucktoy for a giant hot monster. most of the humans in Yapu are kind of terrified of you, but that's not really any excuse. and then i ended up\n growing a giant mutated locust dick/balls and i realized the whole thing was kind of dumb and i had really overreacted. so. sorry about that.\n growing giant muscles. and hey look my scaly hide is starting to come in. so i guess, idk. i'm still in the process of letting go of that self-image, i guess? and it was a self-image that made me act like kind of an asshole. so. sorry about that.\n]\n<<else if hasMutation ("pure")>>\\n[you go, yeah idk i guess i used to have a lot invested in being a ~pure, uncorrupted human~? that it made me special or whatever. and i kinda freaked out because i thought that us fucking would... take that away from me. idk i didn't have the best self-image back then so i was kind of grasping on whatever external traits i could. so as we got closer it got scary? because you're really hot and i thought a lot about us fucking, but when you actually asked i just freaked out and shut down. but uh that was a few years ago and i'm basically over it. so. sorry about that.]\n<<endif>>\n\n(and then depending on yr mutations this turns into a brief little sex scene where brulvundojn chews on yr tits or tongue-fucks yr giant locust ass or frots against yr entire body while you struggle to stroke him off)]\n\n<<set $brulvundojnFriends to true>>[[→|worldmap]]
[you pack up your things and head off]\n\n[[→|worldmap]]
<<if $knowAstau>>\\n[yr in astau's den. he's here]\n\n[astau is basically acrid from risk of rain, w/ a giant egg-laying prehensile dick. four-legged reptilian monster w/ reddish/ochre chitin panels, about the size of a very large dog or particularly small pony, six eyes, drooling acidic green slime from mouth and also dick.]\n\n* <<if $pregnant eq "">>[[fuck around|astau fuck]]<<else>>yr too bloated w/ eggs right now to have room for more<<endif>>\n<<else>>\\n[this is the den of some slavering reptilian beast. maybe it's not the safest to be here]\n\n[something something astau introduction. probably some dialog trees that introduce him by name, where yr just like "i was scavenging around and was curious". maybe an initial frot sex scene, depending on the dialog path/option selected]\n<<set $knowAstau to true>>\n<<endif>>\n* [[←|worldmap]]
[ astau fucks you and pumps you full of eggs ]\n<<addmutation "eggs">>\\n<<set $pregnant to "astau">>\\n<<set $pregnancyStarted to $turns>>\\n<<set $pregnancyTf to "no">>\\n<<set $pregnancies += 1>>\\n\n[[→|astau's den]]
[ you see some lambent w/ a weird fume hood over his face literally wading out there in the acid swamp. he's got a thing that looks like a flamethrower/weedsprayer, and he's sometimes spraying stuff into the acid.\n\nblah blah blah he's in the process of terraforming both the acid flats + the flooded cavern/aquifer below, in preparation for the hive nearby. his dialog vaguely mentions that he's working w/ other lambent, but probably you won't see any of them.\n\nyou get his attention and he wades out and is like "i'm literally covered in acid here" and sprays himself w/ the thing, which is like, big foggy clouds of cyan-blue chemical-smelling stuff, that neutralizes the acid. anyway he's got a giant earthworm dick & he sprays that down too & you suck him off even tho it's covered in pasty chemical gunk and still sour w/ leftover acid.\n]\n\n[ head back to the acid flats after prior sex scene & you run into one of the first drone's coworkers, who's a big lambent worm-naga w/ many-paned military goggles over most of his head. he's swimming around in the acid like, leaving markers for vents that need to be sealed up? at first you think his shadow under the acid is a giant snake, which is not too far off.\n\nanyway he wades/slithers out and blah blah blah he's like "i don't have acid neutralizer so i can't fuck you" except then he's like "well i guess that guy you fucked is only ~20m away so i could call him over", and then for the next 20m he shows off his giant prehensile worm cock (like four cockheads, echidna-like) & has you try to fist yr own ass, etc, etc. other guy gets there eventually and sprays you both down, & naga guy becomes like, completely encrusted w/ these cyan crystals that grow from leeching stored acid from his skin, & he fucks you w/ his giant dick even while they're still growing on it & ends up breaking off a bunch of crystals into your ass, etc, etc. other lambent guy fucks yr throat w/ his worm cock & they make out above you.\n]\n\n[[←|worldmap]]
[[''you're''|you][$back = "village int"]] in Yapu. maybe there's misc. stuff to do here?\n\n* there are presumably other humans you can talk to at least\n* something to do with your non-story-related scavenging finds\n* there are some hidden tunnels beneath the town, & also a deep deep well that's where the town gets all its water\n\n<<if $humanSiegeArrive lte $turns && $humansManaged neq true>><<display "village options humans">>\\n<<else>>\n<<if $plot eq 2>><<display "village options chain">><<endif>>\\n<<if $plot eq 3>><<display "village options chain return">><<endif>>\\n<<if $plot eq 4>><<display "village options survey">><<endif>>\n<<endif>>
[surprise, the {locust} have arrived while you were away.\n\nit's immediately clear that they're not just the usual band of three-or-four drones on patrol: one, they're lead by a {kantus}, and two, of the other six only three of them are drones.\n\n(this is probably where the narrative establishes what {locust} actually look like -- taller than humans by around a foot, hugely muscled, with human anatomy but with vaguely reptilian skin, generally hairless, skin blotchy combinations of grey-brown, grey-green, and sallow yellow-white, sometimes with rocky spurs of asymmetrical hornlike growths on various parts of their body, generally where you'd expect body hair on humans. deep-set glowing-yellow eyes and messy snaggletooth fangs. no 'ears' but they do have W-shaped grooves there that have a certain amount of frill around them.)\n\none of them looks human -- pale, blond hair, with a square jaw but kind of chubby, not the kind of human you'd expect to see hanging around with a locust squad; one of them is a {lambent}, which you've heard about but never seen before -- a drone but bigger, with black, flaking skin that peels away to reveal a body visibly glowing with lightrot; one is... you don't know what. roughly bipedal, and about the same height as the other drones, but with such weird proportions that it seems like he could move on all fours as easily as walking. leathery reptilian hide, dark blue-purple, with metallic chitin plates growing across his forearms, haunches, and covering most of his chest and head, and his head is animalistic, with a squat snout full of sharp fangs. both his skin and his chitin has a bit of an iridescent sheen to it, shimmering in the sunlight. he's got a tail like a scorpion. also, six eyes, in two lines between slats of chitin, all of them glowing lightrot yellow.\n\nthe locust hive is more than just locust, you know that much, but you've never heard any details about what the 'else' is; apparently part of it is that.\n\nthey ask to/tell you they're gonna stay for a few weeks, doing surveys of they-don't-tell-you-what, camping not too far out of town.\n]\n\n<<if $brulvundojnChain gt 0>>\n[ collect a whole bunch of heavy chain from the village store and head back out into the desert, w/ the locust noticing<<set $brulvundojnChain to 2>>\n] <<else>>\n[ you go up to the locust and be like "hey can i borrow a few of you for a few days to help drag this thing closer to the village"<<set $locustChain to 1>>\n]<<endif>>\n\n[okay head back out to the scavenge site] <<resetmoves>> [[head out|worldmap]]
<<if $brulvundojnChain eq 2>>[back in town brulvundojn gets you behind a building and knots you while the locust watch. maybe u knot one of the locust after that, while another one fists yr gaping, cum-filled ass and some others try to suck on brulvundojn's drooling cock\n]\n<<else>>\n[you and all the borrowed drones slog back into town. the locust party leader (a kantus maybe?) is like, hey u wanna say thanks for me letting you use my guys? how abt u get on yr knees and i'll show you what thanks looks like and then fucks yr face]\n<<endif>>\n\n<<set $droneActive to "">><<set $surveysDone to 0>>[[→|gameplan]]
<<if $humanIntro neq true>>\\n[ whoop you roll into town w/ yr latest survey partner to find a squad of geared-up humans in the middle of the town angrily waving guns around. you duck behind a house and make your way down into the hidden tunnels beneath the town, where the rest of the locust have holed up.\n\n[[they explain what's up|humans]]\n]\n\\n<<else>><<display "humans options">>\n\nthe human squad is still here so you can't do survey stuff, or leave the town\n<<endif>>
<<nobr>>\n<<if $surveyComplete eq true>>\n<<set $droneActive to "">>\n<<set $surveyComplete to false>>\n<<endif>>\n<<endnobr>>\\n* check in with the [[{locust} surveyors|survey index]]\n<<resetmoves>>\\n<<if $droneActive neq "">><<print "[[head out with " + $droneActive + "|worldmap][$x = 0; $y = 0;]]">>\n<<else>>[[head out alone, to scavenge|worldmap][$x = 0; $y = 0]]<<endif>>
[ anyway all that is basically 'the intro', and this is when the "actual plot" gets involved.]\n\n[ the locust tell you (+ the town generally) that they're thinking about expanding out and building a new hive in the region. the townspeople are generally positive, b/c like, that would mean the place being less of a desolate shithole in the middle of nowhere.\n]\n\n<<set $plot to 4>>[[village|village int]]
<<if $pregnant neq "" && $surveysDone gte 1 && (\n ($pregnant eq "astau-fertilized" && ($pregnancyStarted + 15) lte $turns) ||\n ($pregnant eq "astau" && ($pregnancyStarted + 10) lte $turns)\n )>>\\n[ the locust are like, hey you're looking particularly pregnant now. you need some help to get those out?\n\n* <<if $pregnant eq "astau">>[[yeah help me with the birthing|birth fist]]<<endif>>\n* <<if $pregnant eq "astau-fertilized">>[[yeah help me with the birthing|birth sidequest]]<<endif>>\n]\n<<else if $surveysDone lt 5>>\\nlocust survey team:\n* [[Kuhnata]] (leader, kantus, probably not somebody you can go out surveying w/)\n* <<if $droneActive eq "" && !$drone1>>[[Djen|drone1]]\\n<<else if $drone1>>==Djen==\\n<<else>>Djen<<endif>> \\n<<if $droneActive eq "Djen">>(active)<<endif>>\n* <<if $droneActive eq "" && !$drone2>>[[Pthuul|drone2]]\\n<<else if $drone2>>==Pthuul==\\n<<else>>Pthuul<<endif>> \\n<<if $droneActive eq "Pthuul">>(active)<<endif>>\n* <<if $droneActive eq "" && !$drone3>>[[Khru|drone3]]\\n<<else if $drone3>>==Khru==\\n<<else>>Khru<<endif>> \\n<<if $droneActive eq "Khru">>(active)<<endif>>\n* <<if $droneActive eq "" && !$drone4>>[[Gawann|drone4]]\\n<<else if $drone4>>==Gawann==\\n<<else>>Gawann<<endif>> \\n<<if $droneActive eq "Gawann">>(active)<<endif>>\n* <<if $droneActive eq "" && !$drone5>>[[Yraal|drone5]]\\n<<else if $drone5>>==Yraal==\\n<<else>>Yraal<<endif>> \\n<<if $droneActive eq "Yraal">>(active)<<endif>>\n* <<if $droneActive eq "" && !$drone6>>[[Jinn|drone6]]\\n<<else if $drone6>>==Jinn==\\n<<else>>Jinn<<endif>> \\n<<if $droneActive eq "Jinn">>(active)<<endif>>\n<<else>>\\nlocust survey team:\n* Kuhnata\n* ==Djen==\n* ==Pthuul==\n* ==Khru==\n* ==Gawann==\n* ==Yraal==\n* ==Jinn==\n<<endif>>\n\n<<if $surveysDone gte 5>>* okay survey done; [[the team packs up and heads off|tocity]]<<endif>>\n\n[[←|village int]]
[ the leader of the survey team. a big {kantus} monk -- like, easily eight feet tall, standing head-and-shoulders over the rest of the locust (who in turn are standing head-and-shoulders over you). unlike the rest of the locust, who don't have hair, kantus grow something like... thick, fleshy dreadlocks; soft tubes of velvet. they can be bruised and clamped to start bone growth within them, and he's styled some into a pair of branching, swept-back horns that just add to his height.\n\nhe's wearing traveling monk's garb: heavy robes of dyed-red cloth and tanned leather, with the robes opening at the waist. beneath that he's wearing spiked leather armor, on his legs and upper arms. like most of the dark-acclimated locust you've seen, he's got a mechanical helmet with a dozen yellowed lenses that completely covers his upper face, to move out in the sunlight.\n\n(kantus also have an internal dick w/ internal balls + big fat labia lips. the dicks themselves are like, green-yellow-white, smooth, somewhat bigger than drone dicks, & with a broader cockhead, closer to something flat-capped like a horse dick or sledgehammer head than a human dick)]\n\n[[←|survey index]]
[ Djen's a big lambent drone w/ flaking charcoal skin. just about eight feel tall and heavily muscled. all his internal flesh glows -- his lips and gums glow, and when yr not in direct sunlight, you can kinda see the shadows of his bones against his glowing internal flesh.\n\nhe'd want to see a southern point of interest like the acid flats or salt flats]\n\n* [[yeah go w/ this guy|survey index][$droneActive = "Djen"]]\n* [[look over yr options more|survey index]]
[ intro blurb (re-)introducing the character and confirming use\n\njust yr standard locust drone really. leathery grey skin that's speckled w/ lighter patches down his chest, and covered in darker horny scales across his shoulders and upper back, creeping up some across the back of his neck. a mess of snaggleteeth.\n\nhe's wearing just a pair of armored pants and some armguards. no sun-helmet.\n\n(he's probably got just yr standard locust dick. maybe w/ a pa piercing.)\n\n(something something gotta check that giant glass crater for radioactivity. that thing you call the glass mountain?)]\n\n[[yeah go w/ this guy|survey index][$droneActive = "Pthuul"]]\n[[look over yr options more|survey index]]
[ Khru's just yr standard locust drone: maybe six and a half feet tall, generally muscular, covered in leathery grey skin w/ lighter patches across his forearms and calves, and dark, fat horns coming up across his chest and shoulders. he's got a mess of snaggleteeth, & a bifurcated tongue.\n\nhe's wearing just a pair of armored pants and a sun-vision helmet that covers his eyes but not his jaw.\n\n(he's got yr standard locust dick, w/ a frenum ladder)\n\n(guy who's like, wanna check out the local fauna. and yr like "...do you wanna get knotted by the giant alien wolf-beast nearby b/c i can arrange that". basically a threesome sex scene w/ either brulvundojn or astau.)]\n\n[[yeah go w/ this guy|survey index][$droneActive = "Khru"]]\n[[look over yr options more|survey index]]
[ Gawann is a big weird monster that he tells you are called "{metal heads}". he's a "grunt", but you don't know if that's a caste-equivalent or a job occupation or a lineage or what.\n\nhe's got reptilian hide -- slightly-shiny scute, as opposed to the more leathery locust hide, dark blue-purple that smoothly fades darker and lighter in patches. he's covered both in natural chitin plates, smoothly growing from his skin, and in armor made from the same material -- shed plates, you guess. it's a shiny, metallic material. his head is nearly entirely covered in chitin plates, like a natural helmet, and his six eyes gleam out lightrot-yellow between slats. as opposed to the locust, who just have big fucked-up fangs, he's got actual animal teeth, in a squat reptilian-like muzzle.\n\nhe's also got a long, curving tail that arcs up at the tip, with a big stinger at the end. he seems to mostly use it for balance when standing upright.\n\nhe tends to go around on all fours like a pack animal when he's loaded up with gear.\n\n(he's got a sheathed dick w/ a big gnarled crest along the upper half of his cockhead. like half of a flared dick, or a triceratops head crest basically. also his pre is a cloudy black + his cum is shiny and metallic, like quicksilver)\n\nhe's just like, "take me to some rock. we'll probably need to check multiple places so this could take a while."]\n\n[[yeah go w/ this guy|survey index][$droneActive = "Gawann"]]\n[[look over yr options more|survey index]]
[ Yrall's a fat {boomer} drone. wearing armored pants and a big, heavy chestpiece that interlocks with a blocky sun-vision helmet. his armor covers his shoulders and ribs, but stops around his gut, showing off his bloated, stretched hide, w/ deep dark-colored stretch marks ribboned across his pallid gut. like most sun-vision helmets, it covers the upper face, and his expands down over his cheeks and jaw, with a rubberized bite-rod that fits into his mouth like a bit.\n\nhe's got a bunch of corset piercings running up his back, pierced w/ metal rings, and strung together with flat cord, making a complex pattern that pulls at his flabby skin and that interlocks with the struts of his armor\n\n(he's like "i gotta look at old holdings. cities or whatever." and yr like "i hope you don't plan to muscle in on my scavenging gig." and he's like "hah i'm more interested in cataloging things. once the hive is set up, i could buy scavenge off you if you want, so long as you can tell me where you got it.")]\n\n[[yeah go w/ this guy|survey index][$droneActive = "Yraal"]]\n[[look over yr options more|survey index]]
[ the human. he says he's not actually human. born from an egg and everything. his bearer was one of the first human-borne locust after the rise, and he got mostly human genes.\n\nhe's like, actually i'm the highest-ranking person here? technically? technically i'm a prince, just, a branch line off of a branch line, so i don't get a palace or anything like that.\n\nhe's basically human-looking -- blond, kinda muscular-chubby, very conventionally handsome. but also he's got an internal dick ("one of my sires was a kantus high priest", he says) which he only ever really uses to lay eggs w/ b/c he's a huge bottom who loves getting fucked in ass+cunt at the same time.]\n\n<<if $surveysDone lt 3>>]\n[he's like, i'm here to check out the proposed site for any flaws that might only be visible to a breeding prince, so i don't really got much to do until they get a little more data]\n\n* [[←|survey index]]<<else>>\\n[he's like, i guess they got a proposed site now. i mean they had a pretty good idea from the beginning since this isn't the first survey they've done, but it's certain enough now that it's worth my time to actually head out and look around. so you wanna take me down to the proposed site? uh you know which one that is, right? the southwestern caves.]\n\n* [[yeah go w/ this guy|survey index][$droneActive = "Jinn"]]\n* [[look over yr options more|survey index]]\n<<endif>>
[ when you go on the jinn survey, he goes into the lightrot caves and kinda has a dip in a pool while you look on agog. and he's like "oh yeah uh my body processes imulsion pretty differently than a drone would. or a human would. honestly if i sit in here for a few hours i'd probably go into a heat and that would be kind of a hassle for everybody, just, ugh the desert is so dry and hot & i just wanted a break. & yr like "lightrot literally burns humans down to the bone w/ chemical burns" and he kinda laughs, like, yeah i guess the stuff they used to mine out of the depths & industrially concentrate did that, but these days there's locust strains in most of it. this stuff is pretty mellow. i mean you look pretty fine and yr breathing in lightrot fumes right now.\n\nanyway then he groans and starts playing w/ his cunt and surfaces enough to show you his still-sheathed dick/clit while pumping a fist into his cunt & he's like yeahhhhh that's good, c'mon, fuck me\n\nand then you fuck him while he's squirting lightrot goo all over yr cock]\n\n<<if !hasMutation("knot") && !hasMutation("dick")>>\\n/% %/<<addmutation "dick">>\\n/% %/<<rmmutation "pure">>\\n/% %/<<set $from['dick'] to "jinn-pools">>\\n/% %/[yr dick burns from the imulsion soaking into it & gets all leathery and gigantic and grows big glossy warts.]\n<<endif>><<if !hasMutation("balls")>>\\n/% %/<<addmutation "balls">>\\n/% %/<<rmmutation "pure">>\\n/% %/<<set $from['balls'] to "jinn-pools">>\\n/% %/[the imulsion streaming down yr dick spills across yr balls and inner thighs, & they burn as it soaks into yr skin. yr balls churn and ache, flesh getting all leathery, balls throbbing hard, and they perceptibly swell while you fuck him; when you cum you cum this messy slurry of human and locust cum.]\n<<endif>>\n\n<<if $from['dick'] eq "jinn-pools">>[ even on the way up and back out you can still feel yr cock throbbing and swelling larger, w/ the rest of the changes soaking into yr flesh]<<endif>>\n<<if $from['balls'] eq "jinn-pools">>[ and even on the way up and out you can still feel yr balls growing, straining against yr sac and chafing yr thighs]<<endif>>\n\n<<set $drone6 to 3>>\\n<<set $surveysDone += 1>>\\n<<set $surveyComplete to true>>\\n[[head back to the surface|worldmap]]
<<if $yraalSurvey gte 1>>\\n/% %/[yraal looks around a bunch. eventually he's like, "yeah this is good enough, let's head back now"]\n/% %/<<set $drone5 to 3>>\\n/% %/<<set $surveysDone += 1>>\\n/% %/<<set $surveyComplete to true>>\\n<<else>>\\n/% %/[yraal looks around a bunch. he's like "okay this is good but there are other ruins around here, right? show me some of them too"]\n<<endif>>\\n<<set $yraalSurvey += 1>>\n<<set $moves -= 1>>\n\n[[→|worldmap]]
<<if $gawannSurvey gte 3>>\\n/% %/[gawann is like "okay that's enough digging, i think i got a good enough sense of the landscape. we can head back to town now."]\\n/% %/<<set $drone4 to 3>>\\n/% %/<<set $surveysDone += 1>>\\n/% %/<<set $surveyComplete to true>>\\n<<else>>\\n/% %/[gawann digs around in the sand for a while, or w/e]\n/% %/[eventually he's like "okay all done here, let's go somewhere else"]\n<<endif>>\\n<<set $gawannSurvey += 1>>\n<<set $moves -= 1>>\n\n[[→|worldmap]]
[ filler passage to set variables. this would be a specific little scene depending on the drone in question, that actually runs when you get to whatever specific target the drone has.\n]\n<<nobr>>\n<<if $droneActive eq "Djen">><<set $drone1 to 3>><<endif>>\n<<if $droneActive eq "Pthuul">><<set $drone2 to 3>><<endif>>\n<<if $droneActive eq "Khru">><<set $drone3 to 3>><<endif>>\n<<if $droneActive eq "Gawann">><<set $drone4 to 3>><<endif>>\n<<if $droneActive eq "Yraal">><<set $drone5 to 3>><<endif>>\n<<if $droneActive eq "Jinn">><<set $drone6 to 3>><<endif>>\n<<set $surveysDone += 1>>\n<<set $surveyComplete to true>>\n<<endnobr>>\n[[worldmap]] (then you head back to the village)
[ the locust fist the eggs out of yr ass in a big frenzy while jinn makes out w/ you & milks yr leaking tits]\n<<set $pregnant eq "">>\\n\n[[→|survey index]]
[ one of them feels yr belly and is like, yeah yr gonna need to birth these properly in an lightrot pool. we got enough information about the landscape to know where one is, thankfully. & they ask/tell the kantus guy they're taking a little break from the survey, since, you know aiding a birth is more important.]\n\n<<set $droneActive to "birthing squad">>[they say, head out to the southwestern caves]\n\n[[→|village int]]
( gangbanged-by-the-entire-survey-team would give you a new tf: ass if you don't already got it, and then upgrading 'leaky' if you have that, and then if you have ass but do not have leaky, uhhh prostate? which would basically just be upgrading ass V:\n\nnote that this is the first tf sex scene i've outlined, but it's probably not the first one that will occur in the game. at the very least you could visit astau and get egged up before this.\n\n<<set $pending to 1>>\n<<if !hasMutation("asshole")>>basically one of them fisting lightrot into yr ass so they can fit two dicks in there, and then two fists.\n<<set $pending to 0>><<addmutation "asshole">><<set $from['asshole'] to "survey gangbang">>\\n<<rmmutation "pure">>/% just in case, as this is the branch you get w/ no prior tfs%/\n<<else>>if you already have ass they just fist you to open you up for two dicks and then two fists.\n<<endif>>\n\n<<if hasMutation("leaky")>>they milk you\n<<if $pending != 0>>they smear lightrot all across yr nipples & chest and there's some narration about how you can feel yr milk glands swelling & engorging, and like feeling milk start to build up behind yr nipples, so that the next tug is this sloppy squirt of lightrot-tainted glowing milk. also yr nipples swell to be kinda thumb-sized udders.\n<<set $pending to 0>><<addmutation "udders">><<set $from['udders'] to "survey gangbang">>\n<<endif>>\n<<else>>if you don't got leaky they just chew on yr nipples and fuck yr chest a little (which also happens otherwise, just with more of a milking focus)\n<<endif>>\n\n<<if hasMutation("asshole") && $pending != 0>>and then finally if you have ass already & no leaky somebody fists you w/ lightrot at the end once yr all sloppy and loose and grinds it into yr guts and prostate and you start basically pissing out precome as some of yr internal organs (by which i mean spermatic ducts etc, just, not by name) swell and bloat and rearrange.\n<<set $pending to 0>><<addmutation "prostate">><<set $from['prostate'] to "survey gangbang">>\n<<endif>>\n)\n]\n\n[[→|village int]]
<<nobr>>\n<<set $humanIntro to true>>\n<<set $days to 0>>\n<<set $timeOfDay to 0>>\n\n<<set $munitionsTalk to 0>>\n<<set $munitionsStress to 0>>\n<<set $rookTalk to 0>>\n<<set $rookStress to 0>>\n<<set $rookTalks to ["rook talk4", "rook water sequence", "rook talk2", "rook talk1"]>>\n<<set $rookLocustDick to false>>\n<<set $ticTalk to 0>>\n<<set $ticStress to 0>>\n<<set $stressPoints to []>>\n<<endnobr>>
<<nobr>>\n<<set $timeOfDay += 1>>\n<<if $timeOfDay gte 6>>\n <<set $timeOfDay -= 6>>\n <<set $days += 1>>\n<<endif>>\n<<endnobr>>
[some humans from the city come by and are like, thats our tank. and it's like, look we found that fair and square. you gotta hide the locust when that happens b/c the city humans really don't like them, and the locust are like "...i mean you want us to kill them for you? itd be no trouble really." and it's like, look that's the backup plan.\n\nin the mean time, the locust hide out in the tunnels (and you get to see some of them with their sun-vision goggles off for the first time) while you & the rest of the town runs interference.\n\nthe locust are like: look, we can play things your way, for a while. but eventually we gotta report back on the hive survey, and we're not gonna sit around in your tunnels for months while you try to be diplomatic about it. you have a week, and then we'll drive them off, and if they get killed that way then that's just what happens.]\n<<display "human var init">>[[→|village int]]
<<display "time">>\n<span class="meta">you have <<print 7 - $days>> day<<print ((7 - $days) == 1 ? "" : "s")>> left before the locust take matters into their own hands</span>\n<<if $stressPoints.length gte 7 && $timeOfDay eq 0>>\n* there's an [[altercation|human altercation]] in the human squad's tent\n<<else>>\n<<display "humans rollcall">>\n<<endif>>
[there's some big shouting match / drama w/ the human squad.]\n\n[if you got the leader to 2pts, he's just like "...look let's just go.", otherwise one of the other three pipes up:\n\nrook apologetically is like, i never wanted to be a soldier :(, or 2ic goes on a neurotic rant, or munitions guy is just like "yeah i think i'm done guarding this place, you all can do w/e" while looking directly at the leader, and then there's this argument between all of them that ends with them storming off.]\n\n[(the details would depend on who has what stress points but the end result is the squad leaves, in pretty considerable disarray, and potentially rook and/or munitions guy throw away their {COG} gear and stay behind)]\n\n<<if $ticStress gte 1>>[2ic deserts and goes to live up in the glass mountain caves]\n<<set $ticLocation to "caves">>\n<<else>>[2ic leaves w/ the squad]\n<<endif>>\\n<<if $munitionsStress gte 2>>[munitions decides to stay behind]\n<<set $munitionsLocation to "village">>\\n<<else if $munitionsStress gte 1>>[munitions deserts and goes to live in the canyon]\n<<set $munitionsLocation to "canyon">>\\n<<else>>[munitions leaves w/ the squad]\n<<endif>>\\n<<if $rookStress gte 3>>[rook decides to stay behind]\n<<set $rookLocation to "village">>\\n<<else>>[rook leaves w/ the squad???]\n<<endif>>\\n\n<<set $humansManaged to true>>\\n[[→|village int]]
* <<print (function (t) {\n switch (t) {\n case 0:\n case 1:\n return "[[{leader} is in the town center|leader]]";\n case 2:\n return "{leader} is in his personal tent";\n case 3:\n case 4:\n return "{leader} is sleeping in his personal tent";\n case 5:\n default:\n return "{leader} is awake in his tent";\n }\n })($timeOfDay)>>\n* <<print (function (t) {\n switch (t) {\n case 2:\n case 5:\n return "[[{2ic} is on patrol around the town|2ic]]";\n case 3:\n case 4:\n return "{2ic} is sleeping in the tent";\n case 0:\n case 1:\n return "{2ic} is moving around in their tent";\n }\n })($timeOfDay)>>\n* <<print (function (t) {\n switch (t) {\n case 3:\n case 4:\n return "[[{munitions guy} is on guard, at the edge of town|munitions]]";\n default:\n return "{munitions guy} is asleep in their tent";\n }\n })($timeOfDay)>>\n* <<print (function (t) {\n switch (t) {\n case 0:\n case 1:\n return "[[{rook} is on patrol around the town|rook]]";\n case 2:\n case 4:\n return "{rook} is busy in their tent";\n default:\n return "{rook} is sleeping in their tent";\n }\n })($timeOfDay)>>\n* [[wait|time wait]]\n* talk to the locust underground?
you wait around for a while.<<display "human time advance">>\n\n[[→|village int]]
[a big black guy, head shaved bald, wearing pants with armored greaves+boots and an armored chestpiece that doesn't cover his arms. he's holding a gun.]\n\n* [[talk to him|munitions talk]]\n* <<if $munitionsTalk gte 3>>[[ask to fuck around|munitions fuck]]<<endif>>\n* <<if $rookMunitionsThreesomePlanned>>[[rook is loitering around|rook munitions 3some]]<<endif>>\n\n[[←|village int]]
[rook is loitering around, awkwardly close but not close enough to really make a deal about it. and blah blah blah something something he ends up blowing munitions guy while you watch / join in; sex scene here]\n<<if $stressPoints.indexOf ("rook munitions bj") === -1>>\n<<set $rookStress += 1>>\n<<set $munitionsStress += 1>>\n<<set $stressPoints.push ("rook munitions bj")>>\n<<endif>>\n<<display "human time advance">>[[→|village int]]
<<if $days lt 2>>[he's like 'hey fuck off i'm busy' and shoos you away]\n\n<<display "human time advance">>[[→|village int]]<<else>>\\n<<if $munitionsTalk gte 4>>[you talk for a bit]\n\n[not about much tho, yr basically out of conversation topics]\n\n<<display "human time advance">>[[→|village int]]<<endif>>\\n<<if $munitionsTalk eq 3>>[you talk for a bit]\n\n[he's like: honestly i don't know why we're even doing this. no offense but this little ramshackle town of yours isn't worth anything. pretty fucking arbitrary if you ask me.]\n\n<<set $stressPoints.push("munitions talk")>>\\n<<set $munitionsStress += 1>>\n<<set $munitionsTalk += 1>><<display "human time advance">>[[→|village int]]<<endif>>\\n<<if $munitionsTalk eq 2>>[you talk for a bit]\n\n[he's like: fucking boring out here. got so much time on watch i haven't even gotten to jerk off since we got here. so, y'know, if you wouldn't mind helping a guy out...]\n\n* [[yeah i'll blow you|munitions blow]]\n* [[nah sorry dude|munitions reject]]\n\n<<set $munitionsTalk += 1>><<endif>>\\n<<if $munitionsTalk eq 1>>[you talk for a bit]\n\n[he's like: you from around here? no? moved around a bunch? yeah i can get that, me too. i was from {July}; big collection of farms in the middle of the ruined city. i got out, but then the {COGs} got me and now i'm in the army. that's life i guess.]\n\n<<set $munitionsTalk += 1>><<display "human time advance">>[[→|village int]]<<endif>>\\n<<if $munitionsTalk eq 0>>[you talk for a bit]\n\n[he's like: hey it's actually real boring out here huh. sorry for being trouble but i don't feel like getting murdered by locust either, so yr just gonna have to put up with the hassle for a few days]\n\n<<set $munitionsTalk += 1>><<display "human time advance">>[[→|village int]]<<endif>><<endif>>
[he's like, hey no problem, kinda smirking. just wanted to give you the opportunity.]\n\n<<display "human time advance">>[[→|village int]]
[yr like, sure lemme blow you, and he's like -- oh. oh! and gets kinda shirty about it. like uhhhh i mean you don't gotta, and yr like, came on pretty strong but weren't really prepared for a yes, huh? dude lemme just suck on yr cock.\n (that's maybe slightly different depending on if you have visible mutations? i.e., buff)\n\nhe's like, well, don't freak out, and shows off his dick. it's a big gross locust dick all slimy and covered in warts.\n\nyou just get on yr knees and start blowing him.\n\nhe's like uhhh it gets a lot of attention in the {COG} showers, you know. but i guess out here yr all pretty used to lightrot mutations.\n\nanyway you blow him and he cums all over yr face and then licks it off]\n\n<<nobr>>\n<<if $stressPoints.indexOf ("munitions blow") === -1>>\n<<set $munitionsStress += 1>>\n<<set $stressPoints.push ("munitions blow")>>\n<<endif>>\n<<endnobr>><<display "human time advance">>[[→|village int]]
[if you haven't blown him, he's like uhh rethinking that j/o, huh? if you have blown him you can repeat that scene (which would have a different intro i guess) or alternately be like "hey how about fucking me"]\n\n* [[blow him|munitions blow]]\n* <<if $stressPoints.indexOf ("munitions blow") !== -1>>[[ask to ride his dick|munitions ride]]<<endif>>\n\n[[←|munitions]]
[ yr like, how about you put that dick to better use and fuck me properly.\n\nand he's like, wow, sure, okay.\n\n(maybe he's like, uhhh come back in the dead of night, if it's not currently the middle of the night.)\n\ncomments on yr own locust/knotted dick if you have it, & if yr knotted then he uses both hands to play w/ yr knot while you ride his dick, ending up w/ him getting completely drenched in yr load from stomach to face, etc etc]\n<<nobr>>\n<<if $stressPoints.indexOf ("munitions ride") === -1>>\n<<set $munitionsStress += 1>>\n<<set $stressPoints.push ("munitions ride")>>\n<<endif>>\n<<endnobr>>\n<<display "human time advance">>[[→|village int]]
[a white guy, wearing pants with armored greaves+boots, as well as an armored chestpiece that doesn't cover his arms. he's got a helmet that fully covers his face, but he's audibly panting through it. his arms are tanned, and sunburnt around the shoulders.]\n\n* [[talk to him|rook talk]]\n* <<if $rookTalk gte 3>>[[ask to fuck around|rook fuck]]<<endif>>\n\n[[←|village int]]
<<set $_ to $rookTalks.pop()>>\n<<if $_ === 0>>[you talk to him for a while]\n\n[not about much in particular tho]\n\n<<display "human time advance">>[[→|village int]]\n<<else>><<display $_>>\n<<endif>>
[you talk to him for a bit]\n\n[he's super jumpy and is like uhh hi. why are you talking to me.]\n\n<<set $rookTalk += 1>><<display "human time advance">>[[→|village int]]
[you talk to him for a bit]\n\n[he's less visibly tense but he's still like uh um i'm new you should talk to {leader} if you want anything]\n\n<<set $rookTalk += 1>><<display "human time advance">>[[→|village int]]
[something something he's sweltering in the sliver of shade against a building wall. he's taken off his helmet and chestplate, and the white undershirt he's wearing beneath it is soaked and translucent with sweat.]\n\n* [[get him some water|rook water]]\n<<set $rookTalk += 1>>
[he asks about yr locust dick/balls and gets pretty into you explaining how you got it (even if it's just 'i got it from eating lightrot-tainted food and water over two decades')]\n\n<<set $rookTalk += 1>><<display "human time advance">>[[→|village int]]
[you talk to him for a bit]\n\n[he talks about being conscripted (he's from one of the big human cities) and how it kind of sucks but also how {leader} is super cool and heroic and, idk, saved his life somehow?]\n<<set $rookStress += 1>>\\n<<set $stressPoints.push ("rook talk")>>\\n<<set $rookTalk += 1>><<display "human time advance">>[[→|village int]]
[you talk with him for a bit]\n\n[he's kind of unfocused and he rambles on about seeing locust fuck while out scouting once, or w/e, and he kind of rambles on in an incoherent way about giant locust dicks, while audibly swallowing a bunch]\n\n<<set $rookThreesomeUnlockable to true>><<set $rookTalk += 1>><<display "human time advance">>[[→|village int]]
[you take him inside and give him some water and he's like, thanks, and then realizes that he's sitting on a countertop wearing an undershirt that's soaked to his skin & yr standing right between his spread legs really close and he's like, oh, um,, flushed w. his nipples pebbling up]\n\n* [[make a move|rook show your dick]]\n* [[step back|rook tension]]
[and this leads to you groping his dick + him groping back while you make out, until he's like "uh you wanna--" while gesturing at his dick]\n\n<<if hasMutation("dick") || hasMutation("balls")>>[rook gets really enthralled w/ yr dick/balls and flushes more and more as he stares down at yr leaking dick until kind of abruptly he jerks forward and gets on his knees and starts sucking on yr dick while moaning and drooling\n\nhe totally cums untouched just from sucking on yr dick, all over the dusty tiled floor]\\n<<set $rookTalks.push ("rook talk locust dick")>>\n<<set $rookLocustDick to true>>\\n<<else>>\\n[you jerk each other off & rook cums while whining and humping into yr hip & then you cum all up his chest]\n<<endif>>\\n<<nobr>>\n<<set $rookStress += 1>>\n<<set $stressPoints.push ("rook hj/blow")>>\n<<set $rookTalks.unshift ("rook talk locust dick2")>>\n<<endnobr>>\n<<display "human time advance">>[[→|village int]]
[you step back and rook kinda leans in to stay close, w/ his eyes kinda unfocused and his lips parted, and then kinda comes to and jerks back and flushes and stammers a lot and he stumbles out of the room]\n\n<<display "human time advance">>[[→|village int]]
<<if $rookTalk gte 3 && $stressPoints.indexOf ("rook hj/blow") === -1>>\\n/% a way to get to the sex scene later if you don't make a move immediately %/\n* [[come on to him|rook show your dick]]\n<<endif>>\n<<if $rookLocustDick>>\\n* [[ask him if he wants to blow you again|rook blow]]\n<<endif>>\n<<if $rookThreesomeUnlockable>>\n<<if $stressPoints.indexOf ("munitions blow") !== -1>>\n* [[tell him about {munitions}'s big locust dick|rook munitions 3some setup]]\n<<endif>>\n* [[see if you can hook him up w/ an actual locust dick|rook locust blow]]\n<<endif>>\n\n[[←|rook]]
[you pull him behind some building and he eagerly blows you right out in the open & then humps against yr leg to cum in his pants]\n\n<<display "human time advance">>[[→|village int]]
[you tell rook that you know somebody {else} w/ a giant locust dick. if he wants two.\n\nhe doesn't believe you that it's munitions guy, or something, so yr like, how about you ask him when he's out on watch next night? and he's like, okay then i will]\n\n<<set $rookMunitionsThreesomePlanned to true>>\\n<<display "human time advance">>[[→|village int]]
[you're like, what if i told you there was another locust dick around you could get to suck on? and rook is like, flustered and flushed and doesn't really say anything. & yr like, c'mon follow me, and you take him back to some building where (AS PREVIOUSLY PLANNED) one of the locust drones is waiting.\n\nand rook gets real nervous and freaked out at first, but the drone is just sitting there w/ his legs spread, and he's like, hey i'm not hear to fight. i heard you had an interest in something i got. *GROPES HIS CROTCH* and then opens up his pants and shows off his half-hard cock.\n\nyou give rook an encouraging push forward, and he kinda stumble-falls down onto his knees and tentatively and then enthusiastically starts sucking on the drone's cock]\n\n[probably if you have a locust dick you both fuck his mouth / cum all over his face and hair, etc]\n\n<<nobr>>\n<<if $stressPoints.indexOf ("rook locust bj") === -1>>\n<<set $rookStress += 1>>\n<<set $stressPoints.push ("rook locust bj")>>\n<<endif>>\n<<endnobr>>\n<<display "human time advance">>[[→|village int]]
[a big burly guy, grizzled-looking. particularly huge for a human. light brown skin, with a few weeks stubble across his face, giving him a short unkempt beard, and a handkerchief pinning down his scruffy, short-cropped hair. wearing pants with armored boots+greaves, and an armored chestpiece.]\n\n[TODO: talk options here; would advance time]\n\n* 1pt from talking to him. about uhhhh something??\n* 1pt from fucking him. you fuck him and he's like 'more' so you fist him and he drools cum all over while he's getting punch-fucked up to the bicep.\n\n[[←|village int]]
talk is like... idk\ntalk 1: yeah i'm technically the commander of this squad. no we're not gonna leave. it's complicated.\ntalk 2: yr not happy with us being here? yeah well i'm not happy we're here either so let's call it even\ntalk 3: still on my case, huh.
[a pale white guy with red hair that's buzzed down to stubble. his face, shoulders, and arms are completely covered in freckles. he's wearing pants with armored boots+greaves, and an armored chestpiece. he's holding a gun.]\n\n* [[talk to him|2ic talk]]\n\n[[←|village int]]
<<if $ticTalk gte 4>>[you talk to him for a while]\n\n[not about much, tho]\n\n<<display "human time advance">>[[→|village int]]<<endif>>\\n<<if $ticTalk eq 3>>[you talk to him for a while]\n\n[he's like, we're not gonna win this war. we were never gonna win this war. i just wanted-- something. to live a normal life. to not have every moment of my life consumed w/ existential terror. and yr like... my grandparents lived long lives in the desert. my parents are still living in the desert. there are three other towns within three days walk from here. people have always lived in the desert. yeah, the great cities have fallen. but people are building something new, too.]\n\n<<set $ticStress += 1>>\\n<<set $stressPoints.push ("2ic talk")>>\\n<<set $ticTalk += 1>><<display "human time advance">>[[→|village int]]<<endif>>\\n<<if $ticTalk eq 2>>[you talk to him for a while]\n\n[he's freaking out more about decay. i guess.]\n\n<<set $ticTalk += 1>><<display "human time advance">>[[→|village int]]<<endif>>\\n<<if $ticTalk eq 1>>[you talk to him for a while]\n\n[he complains about sand everywhere. too much sand and heat. the inevitability of the wasteland encroaching on even the last cities of mankind and destroying all civilization. yr like "things are pretty decent for us out here" and he gets mad and is like, yeah you degenerate monster-fuckers would say that]\n\n<<set $ticTalk += 1>><<display "human time advance">>[[→|village int]]<<endif>>\\n<<if $ticTalk eq 0>>[you talk to him for a while]\n\n[ it's mostly him scowling at you stone-faced while you try to make smalltalk and he gives angry-sounding single-word answers ]\n\n<<set $ticTalk += 1>><<display "human time advance">>[[→|village int]]<<endif>>
[ eventually survey team leaves, you go with. there's a proper [[gangbanged-by-the-entire-survey-team sex scene|survey team gangbang]] scene, either here or during one of the camps on the way there]\n\n[ if yr full of eggs at this point the justification would be "hey you gotta actually birth those soon, & they're too big to just shove into somebody else"; otherwise it would be like, blah blah, diplomacy, if yr town is gonna officially be part of the locust empire you gotta actually see what the locust hives are like.\n]\n\n<<set $droneActive to "squad">>\\n<<set $map["0,-4"] = "nnnn">>\\n<<set $plot to 5>>\\n<<resetmoves>>[[worldmap][$x = 0; $y = 0]] (head north)
[[you're|you][$back = "city"]] in the locust hive of {hive}.\n\n[yr in yr lodgings, somewhere, etc etc]\n\n(this would play out mechanically the same way as the village siege part -- during the intro you get told like, yeah we'll probably hear back about the preliminary report in a week, and then you get a week's worth of moves. and then there's a scene like "okay we're gonna head back in another two weeks" and then you get another two week's worth of moves. and then you leave. something like that. and at first the only location you'd have on the go to: list would be yr lodgings, but you'd also have an 'explore' link, that would be like... step outside. and then a bunch of branching choices like 'do you want to go uphill or downhill' 'climb the stairs or go through the tunnel' etc and each of them would eventually dead-end at an actual location. (other locations might appear along the way). so like, actual exploring the city segment.)\n<span class="meta">you have x days before the locust survey gets back to you\n(but <<resetmoves>>[[head back whenever|return]])</span>\n\n* [[explore the city|explore]]\n<<print $unlocked.map (function (l){\n return "* [[" + l + "]]";\n }).join(String.fromCharCode(10))>>\n\n* some kinda commercial district place where yr sprawled out on a counter getting fucked while other locust are just like, eating or w/e\n* egglaying pools\n* other city neighborhoods, etc
[you step out of yr lodgings]\n\nyr in a moderately-sized apartment building, along a major road in the city. there's always traffic out your window: weird aliens of all varieties, carts, vendor stalls hawking goods. the road has a slight but definite slant, curving up and around the central stalagmite pillar, and then down and out to the island shore.\n\n[[go uphill]] or [[go downhill]]
you go uphill.\n\nthe road slowly winds around the central stalagmite of the island, and the ornamentation of the buildings you pass gets more and more lavish as you ascend, until the road is bordered with curving terraced gardens, with elaborate trees shedding spores on the ground around them, and the archways and balustrades are edged with gilt.\n\nthe lighting of the city is all weird -- this high up, the city itself blocks the bulk of the light from the glowing lake, and what illumination there is comes from below, casting upside-down shadows across everything.\n\nyou can [[keep ascending]] or turn off into [[an alleyway]].
you turn off the main path, onto a narrow alleyway.\n\nit's dark, with the only light coming from buzzing glowbug lanterns hung in zig-zagging lines between the narrow balconies on the second story. it's presumably ample illumination for {locust} eyes, but yours strain to discern the various shades of black.\n\nthe alleyway eventually opens up into a tight, deep courtyard abutting the wall of the stalagmite pillar. it's marginally better lit, and on the opposite side of the square there's a switchback set of stairs carved into the rock, going up. just below the stairs, there's an open archway with pale pink light spilling out.\n\nyou can [[go up the stairs]] or [[go into the archway|baths]].
you keep ascending.\n\neventually the road opens up into a broad, four-chambered plaza, just in front of what it presumably the locust palace: a huge complex of many buildings, made from shiny stone pillars, lacquered wood, and translucent quartz panes, so that the interior lights cast shadows through the walls. it's built up along and into the stalagmite pillar in a spiral, and you can see the undersides of various gardens and building wings spread out above you.\n\nthe palace gates are stationed by absolutely gigantic {locust} guards, in ornate armor, but they seem to be letting people pass in and out of the palace gardens freely.\n\nyou can head into the [[palace gardens]] or [[walk down the intersecting plaza road]].
you walk down the road intersecting with the plaza.\n\nthis is another wide thoroughfare that winds its way all through the city. it's lined with businesses, probably? buildings with open doors or wide archways, with signs above in what's probably locust, sometimes with lettering that might be other languages to the side.\n\n* this is where the [[piercing place|piercing studio]] is
you go downhill.\n\netc etc road broadening out, becoming a wide thoroughfare, eventually reaching the city gate you came in by\n\n[[go through the gate]] or [[walk along the edge of the city]]
you walk along a fancy tiled road, curving along the island's side.\n\nthis is a more residential neighborhood, you think. all the stone is shiny, and you don't know if that's an aesthetic choice or just a consequence of being built on the shores of the glowing lake.\n\nthe path you're following splits at a set of long, winding ramps: up and [[over a bridge to the mainland]], or [[down into what looks like a swampy forest|metal head sector]].
you walk up the ramp and out onto the bridge.\n\nit's a big ornate bridge, with gnarled (fungus?) trees along the way, in pairs along the edges of the path, in squares of ashy soil. it's not that far above the surface of the lake, and lightrot fumes sizzle up, hazing the air. there are weird lily-pad plants growing on the lake itself, in clusters.\n\nthe bridge heads to [[a big ziggurat-structure on the mainland|worm monastery]].
you go through the gate.\n\nthe road continues, curving gently through what vaguely looks like farmland, for a few medium-sized plots -- that is to say, about the size of your entire village -- and eventually reaches the long bridge across the glowing lake that you came into the city via\n\n[[cross the bridge|pitstop]] or [[head through the fields|lightrot crevasse]]
<<if !arrayContains ($unlocked, "metal head sector")>>\\n<<set $unlocked.push ("metal head sector")>>\\nyou head down the ramp, and while you do some of it resolves. this is, you realize, the {metal head} sector of town: <<else>>\\nyou return to the metal head sector. <<endif>> {metal heads} of various degrees inhumanness walk through the forest (which might be buildings?) or wade out through the shallows on stilt-legs.\n\nthe trees grow from pools of glowing water, and some are rooted out in the lake shallows. they're black, with fat, bulbous growths near their tips, all fused together into a single lumpy blob. some of them have glowing pods on their trunks or canopy: lightrot yellow, of course, and dimly glowing.\n\nthere are bridges made from the same black goo, or maybe the same... life-form, manicured into a different shape, and they span out to small clusters of islands on the shore, connecting them together in a kind of swampy archipelago.\n\n* get fucked by metal heads, etc\n* [[head back to your lodgings|city]]
<<if !arrayContains ($unlocked, "baths")>>\\n<<set $unlocked.push ("baths")>>\\nyou step through the archway, and walk down a short hallway, lit by pinkish lanterns.\n\nthe air is humid, and you can hear the low ripple of water ahead.\n<<else>>\\nyou head back to the baths.\n<<endif>>\n\nyou emerge into a wide, low-ceilinged chamber, with lines of pillars in a not-quite-square arrangement. the floor sinks down into a number of broad, shallow pools of water, and there's a collect of people -- locust and otherwise -- lounging about, in or out of the water, in various states of undress.\n\nyou're in one aisle of a larger baths, and there's a central nave with an elevated ceiling, flanked at various intervals with aisles.\n\n* look it's a bathhouse\n* you know what happens here\n* also what happens: giant fat aliens basking in glowing black slime like in that one destiny 2 raid\n\n* [[head back to your lodgings|city]]
<<if !arrayContains ($unlocked, "pitstop")>>\\n<<set $unlocked.push ("pitstop")>>you cross the bridge.\\n<<else>>\\nyou head back to the highroad pitstop.\\n<<endif>>\n\nthere's a whole second town here. more of a compound, really. a cluster of buildings nestled up against the side of the underground highroad, something more like a barracks and stable than a town proper.\n\nthere's always traffic along the highroad, and it's even more wild than the people you saw in town. you can't tell which ones are people and which ones are beasts of burden. lots of the usual, though -- locust squads, {metal head} convoys, and the occasional great beast.\n\n* this is where you could get gangbanged by various groups of people passing through\n* basically the equivalent of a truckstop glory hole\n* [[go back to your lodgings|city]]
<<if !arrayContains($unlocked, "worm monastery")>>\\n<<set $unlocked.push ("worm monastery")>>\\nyou walk across the bridge to the giant ziggurat.\\n<<else>>\\nyou walk over the big bridge to the worm monastery\\n<<endif>>\n\nthe center of the ziggurat is hollow, and it opens onto... a complex hanging garden, full of bridges and vines and broad platforms of shelf fungus. it's a kantus temple to one of their worm-gods, built around an ancient bore-hole it burrowed through the rock. the central garden goes down deep into the earth, following the circular path. you stay on the surface.\n\n* anyway there are a bunch of kantus monks here + some worm-naga hybrids & they all fuck you, maybe\n* [[head back to your lodgings|city]]
<<if !arrayContains ($unlocked, "palace gardens")>>\\n<<set $unlocked.push ("palace gardens")>>\\nyou walk through the palace gates.\n<<else>>\\nyou head back to the palace gardens.\n<<endif>>\\n\nthe gardens are more plant life than you've seen maybe in the entire rest of your life combined. the gardens are a series of terraced outcroppings, surrounding and surrounded by palace outbuildings. it's almost oppressively humid; you get sweaty just from walking around. very lush, almost jungle-like, w/ lots of water(lightrot) features and shallow pools and the like, crystal lotuses on black lilypads, fancy branching ornamental trees with pale blue leaves, etc.\n\n* [there are also huge theron guards who are like ten, eleven feet tall, w/ like five-foot dicks & they totally fuck you]\n* [[head back to your lodgings|city]]
<<if !arrayContains ($unlocked, "lightrot crevasse")>>\\n<<set $unlocked.push ("lightrot crevasse")>>\\nyou head through the fields. the plants grow tall, and among them they block sight and noise, restricting your universe down to a few aisles on each side, following the slightly-winding path of their planting.\n<<else>>\\nyou head back to the lightrot crevasse, through the fields outside town. probably you should figure out how to get there more directly, one day.\n<<endif>>\\n\nyou emerge at a more ramshackle collection of buildings, nestled up in haphazard growths to an exterior city wall segment. too many buildings for this to be a private farm, hopefully. going closer, the buildings are built along an inlet of the glowing lake, one that spears inward, becoming more of a rocky fjord further into the city.\n\nit's disorienting looking down into the water: it's like an inverse city street, going down and down, with the edges of what is apparently a deep crevasse lined with neat rectangular holes, openings into underwater structures. black spots squirm around in the depths: some locust-sized, but many more looking like immense... things. something like crab-spider-squid, with furry filaments (moss?) growing across their sides and back as they swim back and forth.\n\n* get fucked by a weird spider-crab monster\n* or a locust w/ gills\n* [[head back to your lodgings|city]]
<<if !arrayContains ($unlocked, "piercing studio")>>\\n<<set $unlocked.push ("piercing studio")>>\\n<<endif>>\\n(it's a studio kind of tucked away on an offshoot alley. run by a very heavily modded locust, & w/ a big burly assistant. tattoo examples on the walls, display cases of piercing studs and rings and chains, in different metals and with different finishes. a bunch of bone needles or spines on the back shelves, and bottles of ink and lightrot and stuff like that)\n\n* [[get a piercing|piercings]]\n\n[[←|walk down the intersecting plaza road]]
[ basically locust piercer guy gives you a menu of options and each one would have a little intro scene where he talks abt what it is and what it would be like, etc. maybe w/ like, foreplay / idly jerking you off or playing w/ yr nipples and ass while explaining. so like uhh\n\n* [[prince albert]]\n* [[frenum ladder]]\n* [[nipple piercing]]\n* septum ring\n\n[[←|piercing studio]]
[ it's not actually called a prince albert in the narration.\n\nanyway the guy is like, you want a loop or a padlock. or a transverse piercing or what. & shows off his dick w/ like a big cross-transverse piercing in the tip. you can jerk him off + press yr mouth against his dick for a while while he pets yr head, & then once yr all drenched in pre he's like, so, piercings, right.\n]\n\n[[←|piercings]]
[ and he's like, i could do just the ladder or go down over yr balls and then all the way to guiche piercings. w/ these spike barbels. and like that's basically gonna be a chastity piercings b/c when you've got a bunch of spiky metal things on yr dick not a lot of people are gonna want to try to fit that anywhere.\n\nand you have the option of going like. [[chastity piercings]], huh. what would that be like.\n]\n\n[[←|piercings]]
[ and locust piercer guy is like, oh you know, glans piercings to lock into a cock cage sounding rod, or frenum piercings that can be used to lock a cage up, or w/e. (idk if i'd want to write a variation of this for sheathed/internal dicks; that might be a bit much.)\n\n(i guess he shows off his assistant's chastity piercings + cock cage here too)\n\nand then he's like "hey yr gonna be in the hive for a while. i could lock you up now to see how much you like it." and that's an option.\n]\n\n[[←|piercings]]
[ he plays w/ yr nipples & if you got leaky/udders/6 nipples/etc this very quickly turns into him hooking you up w/ some nipple clamps, or outright getting like, milking machine suction things and then playing w/ yr pregnant gut etc while he milks you\n\nthen he's like "oh yeah also you could get these pierced if u want" while milking you and feeding you yr own milk, etc\n\nit's less extreme if you don't have that, but he still plays w/ yr nipples a lot while doing it\n]\n\n[[←|piercings]]
[eventually the plans for the return expedition finish up, and you return back to the town w/ a locust breeder prince? and his whole entourage. a giant berserker type. who's gonna be the queen of the new hive. there's a final look around the worldmap, basically resolving loose ends and seeing how things are changing\n]\n\n<<set $plot to 6>><<resetmoves>>[[worldmap]]
[ it's the new hive. just a few half-constructed buildings in an abstract pattern, in a smaller cavern w/ a smaller lightrot lake.\n\nyou can look around, and there's some final dialog like, hey you can move into here whenever you want.\n]\n\n* [[go back up to the surface|worldmap]]\n* [[end the game|endgame]]
[and then you settle in to the new hive, as somebody in the sprawling harem, the end. maybe other endings, idk.]
#passageworldmap ul { margin: 0 0; padding-top: 0; }\n#passageworldmap ul:first-of-type { padding-top: 1.3em; }\n\nul#nav { width: 50%; margin: 1.3em auto 0 auto; padding: 0.6em 0; list-style: none; text-align: center; overflow: auto; }\nul#nav li { margin: 0; padding: 0; }\nul#nav li, ul#nav li + li + li + li { width: 100%; }\nul#nav li + li, ul#nav li + li + li { width: 50%; float: left; }
@font-face {\n font-family: 'Quicksand Regular';\n font-style: normal;\n font-weight: 400;\n src: local('Quicksand Regular'), local('Quicksand-Regular'), url(http://tzaphiriron.sidemoon.net/static/misc/Quicksand_Regular.ttf) format('truetype');\n}\nhtml, body {\n font-family: 'Quicksand Regular', sans-serif;\n font-size: 13pt;\n min-height: 100%;\n height: 100%;\n overflow: auto;\n margin: 0;\n padding: 0;\n}\n#passages {\n margin: 0 0 0 auto; padding: 0; min-height: 100%;\n overflow: hidden;\n width: 75%; box-shadow: 0 0 6px 0px #f09;\n}\n\n.passage { padding: 1em 2em; margin: 0; }\n\n\n\n#passages { border-left: none; font-size: inherit; }\n.passage { font-size: inherit; }\n.passage li { margin-right: 45%; }\n\n#notes {\n display: block;\n position: fixed;\n bottom: 0;\n right: 3em;\n width: 15em;\n height: 3em;\n line-height: 3em;\n text-align: center;\n background: #f09;\n background: -webkit-linear-gradient(bottom, #f09, transparent);\n background: -moz-linear-gradient(bottom, #f09, transparent);\n background: linear-gradient(bottom, #f09, transparent);\n}\n#notes a { color: #000; }\n\nhtml, body { background: #180810; }\n#passages { background: #000; }\n\n.meta {\n display: block;\n float: right;\n width: 45%;\n color: #aaa;\n clear: right;\n}\nli .meta { margin-right: -45%; }\n\n.revision-span-in { opacity: 0; }\n.revision-span:not(.revision-span-out) { transition: 1s; -webkit-transition: 1s; }\n.revision-span-out { position:absolute; opacity: 0; }\n\n.blockSpan { -webkit-transition: 1s; transition: 1s; }\n.blockSpanIn { opacity: 0; -webkit-transition: 0; transition: 0; }\n\n#passages .passage a {\n transition: 0.25s;\n -webkit-transition: 0.25s;\n}\n.passage a:link, .passage a:visited, .passage a {\n color: #f09;\n text-decoration: none;\n}\n.passage a strong {\n text-shadow: 0 0 8px #f3a;\n}\n.passage a:hover, .passage a:active {\n color: #f9c;\n text-decoration: none;\n}
<<set reshow (parameter(0))>>
<<nobr>>\n<<set $mutations = []>>\n<<set $mutation = 0>>\n<<set $mutvals =\n { "buff": [1, "locust"]\n , "leaky": [1, "locust"]\n , "dick": [1, "locust"]\n , "knot": [2, "animal"]\n , "balls": [1, "locust"]\n , "asshole": [1, "locust"]\n , "pure": [0, ""]\n\n , "udders": [1, "locust"]\n , "prostate": [1, "locust"]\n\n , "eggs": [0, ""]\n , "pre-leaky": [1, "locust"]\n , "pre-six": [1, "animal"]\n , "six nipples": [1, "animal"]\n , "womb": [1, "locust"]\n }>>\n<<set $ccpts = 2>>\n<<set $back = "">>\n\n<<set $map =\n { "0,0": "village"\n\n , "-1,-1": "desert cacti"\n , "0,-1": "desert dunes north"\n , "1,-1": "desert dunes"\n , "-1,0": "desert cacti west"\n , "1,0": "cacti fields"\n , "-1,1": "desert cracked"\n , "0,1": "desert cracked south"\n , "1,1": "desert cracked"\n\n , "-2,-2": "desert dunes"\n , "-1,-2": "desert cacti"\n , "0,-2": "mesa arches"\n , "1,-2": "top of ravine cavern"\n , "2,-2": "glass mountains approach"\n , "2,-1": "blasted lands"\n , "2,0": "desert dunes"\n , "2,1": "old fortress"\n , "2,2": "whitesands expanse"\n , "1,2": "trackless"\n , "0,2": "trackless"\n , "-1,2": "trackless"\n , "-2,2": "cave ridges"\n , "-2,1": "cleft"\n , "-2,0": "concrete highway"\n , "-2,-1": "old ruins"\n\n , "-2,-3": "red-rock ridge"\n , "-1,-3": "rock spikes"\n , "0,-3": "mesa country"\n , "1,-3": "canyon"\n , "2,-3": "sandbrush canyon"\n\n , "3,-2": "glass mountains caves"\n , "3,-1": "glass mountains approach"\n , "3,0": "singing trees"\n , "3,1": "wasteland"\n , "3,2": "flame pits"\n\n , "2,3": "white hollows"\n , "1,3": "whitesands expanse"\n , "0,3": "acid flats"\n , "-1,3": "acid bay"\n , "-2,3": "acid stalks"\n\n , "-3,2": "rust-ribbon glade"\n , "-3,1": "rust desert"\n , "-3,0": "metal wastes"\n , "-3,-1": "rust desert"\n , "-3,-2": "tree"\n\n , "0,-4": "nnnn"\n , "0,-5": "nnnnn"\n , "0,-6": "crossroads"\n , "-1,-6": "nnnnnnw"\n , "-2,-6": "nnnnnnww"\n , "-3,-6": "nnnnnnwww"\n , "-3,-7": "blackrock mesa"\n }>>\n<<set delete $map["0,-4"]>>\n<<set $x = 0>>\n<<set $y = 0>>\n<<set $scavenge to "">>\n<<endnobr>>
<<nobr>>\n<<set $_l to parameter(0)>>\n<<if $mutations.indexOf($_l) != -1>>\n<<set $_ to $mutations.splice($mutations.indexOf($_l), 1)>>\n<<set $mutation -= $mutvals[$_l][0]>><<set $ccpts += $mutvals[$_l][0]>>\n<<reshow "pts">><<reshow "pure">>\n<<if $ccpts > 0>><<reshow "outofpoints">><<endif>>\n<<endif>>\n<<endnobr>>
<<nobr>>\n<<set $_l to parameter(0)>>\n<<if $mutations.indexOf($_l) == -1>>\n<<set $_ = $mutations.push ($_l)>>\n<<set $mutation += $mutvals[$_l][0]>><<set $ccpts -= $mutvals[$_l][0]>>\n<<reshow "pts">><<reshow "pure">>\n<<if $ccpts == 0>><<reshow "outofpoints">><<endif>>\n<<endif>>\n<<endnobr>>
window.passage = function () {\n return state.history[0].passage ? state.history[0].passage.title : "???";\n}\nwindow.tags = function () {\n return state.history[0].passage ? state.history[0].passage.tags : [];\n}\nwindow.tagsContains = function (v) {\n return tags().indexOf (v) !== -1;\n}\n\nwindow.arrayContains = function (arr, v) {\n return arr.indexOf (v) !== -1;\n}
window.hasMutation = function (s) {\n return state.history[0].variables["mutations"].indexOf(s) !== -1;\n}
function innercontent(tag, parser) {\n var\n i,\n textbegin = parser.source.indexOf(">>",parser.matchStart)+2,\n textend = -1,\n text = parser.source.slice(textbegin),\n depth = 0;\n for (i = 0; i < text.length; i++) {\n if (text.substr(i,tag.length + 5) === ("<<end" + tag)) {\n if(depth===0){\n textend=textbegin+i;\n break;\n }else{\n depth--;\n }\n } else if (text.substr(i,tag.length + 2) === ("<<" + tag)) {\n depth++;\n }\n }\n if (textend === -1) {\n throwError(place,"can't find matching end"+tag,parser.fullMatch())\n return;\n }\n return [textbegin, textend];\n}\n\nmacros.block = {\n handler: function (place, macroName, params, parser) {\n var class_ = params[0][0] == "$"\n ? eval(Wikifier.parse(params[0]))\n : params[0];\n var block = insertElement (null, "span", null, "blockSpan " + class_.replace(" ", "_"));\n var inner_index = innercontent ("block", parser);\n block.tweecode = parser.source.slice(inner_index[0], inner_index[1]);\n parser.nextMatch=inner_index[1];\n place.insertBefore(block,null);\n new Wikifier(block, block.tweecode);\n }\n};\nmacros.endblock = { handler: function () {}}\n\nwindow.reshow = function (name) {\n var\n rall=document.querySelectorAll(".passage .blockSpan." + name.replace(" ", "_")),\n ret=false;\n for(var i=0;i<rall.length;i++){\n ret=reshowOne(rall[i]);\n }\n return ret;\n}\n\nfunction reshowOne (target) {\n target.innerHTML="";\n new Wikifier(target,target.tweecode);\n target.classList.add("blockSpanIn");\n if(target.timeout){\n clearTimeout(target.timeout);\n }\n target.timeout=setTimeout(\n function(){\n target.classList.remove("blockSpanIn");\n },\n 1);\n}
(function(){version.extensions.replaceMacrosCombined={major:1,minor:1,revision:2};var nullobj={handler:function(){}};function showVer(n,notrans){if(!n){return\n}n.innerHTML="";new Wikifier(n,n.tweecode);n.setAttribute("data-enabled","true");n.style.display="inline";n.classList.remove("revision-span-out");\nif(!notrans){n.classList.add("revision-span-in");if(n.timeout){clearTimeout(n.timeout)}n.timeout=setTimeout(function(){n.classList.remove("revision-span-in");\nn=null},1)}}function hideVer(n,notrans){if(!n){return}n.setAttribute("data-enabled","false");n.classList.remove("revision-span-in");\nif(n.timeout){clearTimeout(n.timeout)}if(!notrans){n.classList.add("revision-span-out");n.timeout=setTimeout(function(){if(n.getAttribute("data-enabled")=="false"){n.classList.remove("revision-span-out");\nn.style.display="none";n.innerHTML=""}n=null},1000)}else{n.style.display="none";n.innerHTML="";n=null}}function tagcontents(b,starttags,desttags,endtags,k){var l=0,c="",tg,a,i;\nfunction tagfound(i,e){for(var j=0;j<e.length;j++){if(a.indexOf("<<"+e[j],i)==i){return e[j]}}}a=b.source.slice(k);for(i=0;\ni<a.length;i++){if(tg=tagfound(i,starttags)){l++}else{if((tg=tagfound(i,desttags))&&l==0){b.nextMatch=k+i+tg.length+4;return[c,tg]\n}else{if(tg=tagfound(i,endtags)){l--;if(l<0){return null}}}}c+=a.charAt(i)}return null}var begintags=[];var endtags=[];function revisionSpanHandler(g,e,f,b){var k=b.source.indexOf(">>",b.matchStart)+2,vsns=[],vtype=e,flen=f.length,becomes,c,cn,m,h,vsn;\nfunction mkspan(vtype){h=insertElement(m,"span",null,"revision-span "+vtype);h.setAttribute("data-enabled",false);h.style.display="none";\nh.tweecode="";return h}if(this.shorthand&&flen){while(f.length>0){vsns.push([f.shift(),(this.flavour=="insert"?"gains":"becomes")])\n}}else{if(this.flavour=="insert"||(this.flavour=="continue"&&this.trigger=="time")){vsns.push(["","becomes"])}}if(this.flavour=="continue"&&flen){b.nextMatch=k+b.source.slice(k).length;\nvsns.push([b.source.slice(k),vtype])}else{becomes=["becomes","gains"];c=tagcontents(b,begintags,becomes.concat(endtags),endtags,k);\nif(c&&endtags.indexOf(c[1])==-1){while(c){vsns.push(c);c=tagcontents(b,begintags,becomes,endtags,b.nextMatch)}c=tagcontents(b,begintags,["end"+e],endtags,b.nextMatch)\n}if(!c){throwError(g,"can't find matching end"+e);return}vsns.push(c);if(this.flavour=="continue"){k=b.nextMatch;b.nextMatch=k+b.source.slice(k).length;\nvsns.push([b.source.slice(k),""])}}if(this.flavour=="remove"){vsns.push(["","becomes"])}cn=0;m=insertElement(g,"span",null,e);\nm.setAttribute("data-flavour",this.flavour);h=mkspan("initial");vsn=vsns.shift();h.tweecode=vsn[0];showVer(h,true);while(vsns.length>0){if(vsn){vtype=vsn[1]\n}vsn=vsns.shift();h=mkspan(vtype);h.tweecode=vsn[0]}if(typeof this.setup=="function"){this.setup(m,g,f)}}function quantity(m){return(m.children.length-1)+(m.getAttribute("data-flavour")=="remove")\n}function revisionSetup(m,g,f){m.className+=" "+f[0].replace(" ","_")}function keySetup(m,g,f){var fl=this.flavour,key=f[0];\nm.setEventListener("keydown",function l(e){var done=!revise("revise",m);if(done){m.removeEventListener("keydown",l)}})}function timeSetup(m,g,f){function cssTimeUnit(s){if(typeof s=="string"){if(s.slice(-2).toLowerCase()=="ms"){return Number(s.slice(0,-2))||0\n}else{if(s.slice(-1).toLowerCase()=="s"){return Number(s.slice(0,-1))*1000||0}}}throwError(g,s+" isn't a CSS time unit");\nreturn 0}var fl=this.flavour;var tm=cssTimeUnit(f[0]);setTimeout(function timefn(){var done=!revise("revise",m);if(!done){setTimeout(timefn,tm)\n}},tm)}function hoverSetup(m){var fn,noMouseEnter=(document.head.onmouseenter!==null);m.onmouseenter=function(){revise("revise",this)\n};m.onmouseleave=function(){revise("revert",this)};if(noMouseEnter){fn=function(n){return function(e){if(!event.relatedTarget||(event.relatedTarget!=this&&!(this.compareDocumentPosition(event.relatedTarget)&Node.DOCUMENT_POSITION_CONTAINED_BY))){this[n]()\n}}};m.onmouseover=fn("onmouseenter");m.onmouseout=fn("onmouseleave")}m=null}function mouseSetup(m){var fl=this.flavour,evt=(document.head.onmouseenter===null?"onmouseenter":"onmouseover");\nm[evt]=function(){var done=!revise("revise",this);if(done){this[evt]=null}};m=null}function linkSetup(m,g,f){var fl=this.flavour,l=Wikifier.createInternalLink(),p=m.parentNode;\nl.className="internalLink replaceLink";p.insertBefore(l,m);l.insertBefore(m,null);l.onclick=function(){var p,done=false;if(m&&m.parentNode==this){done=!revise("revise",m);\nscrollWindowTo(m)}if(done){this.parentNode.insertBefore(m,this);this.parentNode.removeChild(this)}};l=null}function visitedSetup(m,g,f){var i,done,shv=state.history[0].variables,os="once seen",d=(m.firstChild&&(this.flavour=="insert"?m.firstChild.nextSibling:m.firstChild).tweecode);\nshv[os]=shv[os]||{};if(d&&!shv[os].hasOwnProperty(d)){shv[os][d]=1}else{for(i=shv[os][d];i>0&&!done;i--){done=!revise("revise",m,true)\n}if(shv[os].hasOwnProperty(d)){shv[os][d]+=1}}}[{name:"insert",flavour:"insert",trigger:"link",setup:linkSetup},{name:"timedinsert",flavour:"insert",trigger:"time",setup:timeSetup},{name:"insertion",flavour:"insert",trigger:"revisemacro",setup:revisionSetup},{name:"later",flavour:"insert",trigger:"visited",setup:visitedSetup},{name:"keyinsert",flavour:"insert",trigger:"key",setup:keySetup},{name:"replace",flavour:"replace",trigger:"link",setup:linkSetup},{name:"timedreplace",flavour:"replace",trigger:"time",setup:timeSetup},{name:"mousereplace",flavour:"replace",trigger:"mouse",setup:mouseSetup},{name:"hoverreplace",flavour:"replace",trigger:"hover",setup:hoverSetup},{name:"revision",flavour:"replace",trigger:"revisemacro",setup:revisionSetup},{name:"keyreplace",flavour:"replace",trigger:"key",setup:keySetup},{name:"timedremove",flavour:"remove",trigger:"time",setup:timeSetup},{name:"mouseremove",flavour:"remove",trigger:"mouse",setup:mouseSetup},{name:"hoverremove",flavour:"remove",trigger:"hover",setup:hoverSetup},{name:"removal",flavour:"remove",trigger:"revisemacro",setup:revisionSetup},{name:"once",flavour:"remove",trigger:"visited",setup:visitedSetup},{name:"keyremove",flavour:"remove",trigger:"key",setup:keySetup},{name:"continue",flavour:"continue",trigger:"link",setup:linkSetup},{name:"timedcontinue",flavour:"continue",trigger:"time",setup:timeSetup},{name:"mousecontinue",flavour:"continue",trigger:"mouse",setup:mouseSetup},{name:"keycontinue",flavour:"continue",trigger:"key",setup:keySetup},{name:"cycle",flavour:"cycle",trigger:"revisemacro",setup:revisionSetup},{name:"mousecycle",flavour:"cycle",trigger:"mouse",setup:mouseSetup},{name:"timedcycle",flavour:"cycle",trigger:"time",setup:timeSetup},{name:"keycycle",flavour:"replace",trigger:"key",setup:keySetup}].forEach(function(e){e.handler=revisionSpanHandler;\ne.shorthand=(["link","mouse","hover"].indexOf(e.trigger)>-1);macros[e.name]=e;macros["end"+e.name]=nullobj;begintags.push(e.name);\nendtags.push("end"+e.name)});function insideDepartingSpan(elem){var r=elem.parentNode;while(!r.classList.contains("passage")){if(r.classList.contains("revision-span-out")){return true\n}r=r.parentNode}}function reviseAll(rt,rname){var rall=document.querySelectorAll(".passage ."+rname),ret=false;for(var i=0;\ni<rall.length;i++){if(!insideDepartingSpan(rall[i])){ret=revise(rt,rall[i])||ret}}return ret}function revise(rt,r,notrans){var ind2,curr,next,ind=-1,rev=(rt=="revert"),rnd=(rt.indexOf("random")>-1),fl=r.getAttribute("data-flavour"),rc=r.childNodes,cyc=(fl=="cycle"),rcl=rc.length-1;\nfunction doToGainerSpans(n,fn){for(var k=n-1;k>=0;k--){if(rc[k+1].classList.contains("gains")){fn(rc[k],notrans)}else{break\n}}}for(var k=0;k<=rcl;k++){if(rc[k].getAttribute("data-enabled")=="true"){ind=k}}if(rev){ind-=1}curr=(ind>=0?rc[ind]:(cyc?rc[rcl]:null));\nind2=ind;if(rnd){ind2=(ind+(Math.floor(Math.random()*rcl)))%rcl}next=((ind2<rcl)?rc[ind2+1]:(cyc?rc[0]:null));var docurr=(rev?showVer:hideVer);\nvar donext=(rev?hideVer:showVer);var currfn=function(){if(!(next&&next.classList.contains("gains"))||rnd){docurr(curr,notrans);\ndoToGainerSpans(ind,docurr,notrans)}};var nextfn=function(){donext(next,notrans);if(rnd){doToGainerSpans(ind2+1,donext,notrans)\n}};if(!rev){currfn();nextfn()}else{nextfn();currfn()}return(cyc?true:(rev?(ind>0):(ind2<rcl-1)))}macros.revert=macros.revise=macros.randomise=macros.randomize={handler:function(a,b,c){var l,rev,rname;\nfunction disableLink(l){l.style.display="none"}function enableLink(l){l.style.display="inline"}function updateLink(l){if(l.className.indexOf("random")>-1){enableLink(l);\nreturn}var rall=document.querySelectorAll(".passage ."+rname),cannext,canprev,i,ind,r,fl;for(i=0;i<rall.length;i++){r=rall[i],fl=r.getAttribute("data-flavour");\nif(insideDepartingSpan(r)){continue}if(fl=="cycle"){cannext=canprev=true}else{if(r.firstChild.getAttribute("data-enabled")==!1+""){canprev=true\n}if(r.lastChild.getAttribute("data-enabled")==!1+""){cannext=true}}}var can=(l.classList.contains("revert")?canprev:cannext);\n(can?enableLink:disableLink)(l)}function toggleText(w){w.classList.toggle(rl+"Enabled");w.classList.toggle(rl+"Disabled");\nw.style.display=((w.style.display=="none")?"inline":"none")}var rl="reviseLink";if(c.length<2){throwError(a,b+" macro needs 2 parameters");\nreturn}rname=c.shift().replace(" ","_");l=Wikifier.createInternalLink(a,null);l.className="internalLink "+rl+" "+rl+"_"+rname+" "+b;\nvar v="";var end=false;var out=false;if(c.length>1&&c[0][0]=="$"){v=c[0].slice(1);c.shift()}switch(c[c.length-1]){case"end":end=true;\nc.pop();break;case"out":out=true;c.pop();break}var h=state.history[0].variables;for(var i=0;i<c.length;i++){var on=(i==Math.max(c.indexOf(h[v]),0));\nvar d=insertElement(null,"span",null,rl+((on)?"En":"Dis")+"abled");if(on){h[v]=c[i];l.setAttribute("data-cycle",i)}else{d.style.display="none"\n}insertText(d,c[i]);l.appendChild(d)}l.onclick=function(){reviseAll(b,rname);var t=this.childNodes,u=this.getAttribute("data-cycle")-0,m=t.length,n,lall,i;\nif((end||out)&&u==m-(end?2:1)){if(end){n=this.removeChild(t[u+1]);n.className=rl+"End";n.style.display="inline";this.parentNode.replaceChild(n,this)\n}else{this.parentNode.removeChild(this);return}}else{toggleText(t[u]);u=(u+1)%m;if(v){h[v]=c[u]}toggleText(t[u]);this.setAttribute("data-cycle",u)\n}lall=document.getElementsByClassName(rl+"_"+rname);for(i=0;i<lall.length;i++){updateLink(lall[i])}};l=null}};macros.mouserevise=macros.hoverrevise={handler:function(a,b,c,d){var endtags=["end"+b],evt=(window.onmouseenter===null?"onmouseenter":"onmouseover"),t=tagcontents(d,[b],endtags,endtags,d.source.indexOf(">>",d.matchStart)+2);\nif(t){var rname=c[0].replace(" ","_"),h=insertElement(a,"span",null,"hoverrevise hoverrevise_"+rname),f=function(){var done=!reviseAll("revise",rname);\nif(b!="hoverrevise"&&done){this[evt]=null}};new Wikifier(h,t[0]);if(b=="hoverrevise"){h.onmouseover=f;h.onmouseout=function(){reviseAll("revert",rname)\n}}else{h[evt]=f}h=null}}};macros.instantrevise={handler:function(a,b,c,d){reviseAll("revise",c[0].replace(" ","_"))}};macros.endmouserevise=nullobj;\nmacros.endhoverrevise=nullobj}());
window.reshowAll=function reshowAll(e){var t=document.querySelectorAll(".passage ."+e.replace(" ","_")),n=false;for(var r=0;r<t.length;r++){n=reshow(t[r])}return n};function reshow(e){e.innerHTML="";new Wikifier(e,e.tweecode);e.classList.remove("revision-span-out");e.classList.add("revision-span-in");if(e.timeout){clearTimeout(e.timeout)}e.timeout=setTimeout(function(){e.classList.remove("revision-span-in")},1)}macros.pane={handler:function(place,macroName,params,parser){var name=params[0][0]=="$"?eval(Wikifier.parse(params[0])):params[0];var passage=params[1][0]=="$"?eval(Wikifier.parse(params[1])):params[1];var pane=document.createElement("span");var contents=document.createElement("span");pane.id=name.replace(" ","_");contents.className=" "+name.replace(" ","_");contents.tweecode='<<set $_ to $_current.push ("'+name+'")>><<display $_'+name+">><<set $_ to $_current.pop()>>";var h=state.history[0].variables;h["_"+name]=passage;if(typeof h._current=="undefined"){h._current=[]}pane.insertBefore(contents,null);place.insertBefore(pane,null);new Wikifier(contents,contents.tweecode)}};macros.link=macros.linkTo={handler:function(place,macroName,params,parser){var to,text,target;var h=state.history[0].variables;if(typeof h._current=="undefined"){h._current=[]}if(macroName=="link"){if(params.length<2){throwError(place,macroName+" macro needs 2 parameters");return}to=params[0][0]=="$"?eval(Wikifier.parse(params[0])):params[0];text=params[1][0]=="$"?eval(Wikifier.parse(params[1])):params[1];target=h._current[h._current.length-1]}else{if(params.length<3){throwError(place,macroName+" macro needs 3 parameters");return}target=params[0][0]=="$"?eval(Wikifier.parse(params[0])):params[0];to=params[1][0]=="$"?eval(Wikifier.parse(params[1])):params[1];text=params[2][0]=="$"?eval(Wikifier.parse(params[2])):params[2]}var link=Wikifier.createInternalLink();link.className="internalLink paneLink";link.id=to;link.insertBefore(document.createTextNode(text),null);link.onclick=function(){h["_"+target]=to;reshowAll(target)};place.insertBefore(link,null)}};macros.linkMany={handler:function(place,macroName,params,parser){if(params.length<3||params.length%2!=1){throwError(place,macroName+": invalid args, needs [pane passage...] link text");return}var h=state.history[0].variables;if(typeof h._current=="undefined"){h._current=[]}var text=params[params.length-1][0]=="$"?eval(Wikifier.parse(params[params.length-1])):params[params.length-1];var to,target;var link=Wikifier.createInternalLink();link.className="internalLink paneLink";link.insertBefore(document.createTextNode(text),null);link.onclick=function(){while(params.length!=1){target=params.shift();target=text[0]=="$"?eval(Wikifier.parse(target)):target;to=params.shift();to=to[0]=="$"?eval(Wikifier.parse(to)):to;h["_"+target]=to;reshowAll(target)}};place.insertBefore(link,null)}}