488b437d-f844-4107-af78-cda7f54fe68c1.12018A vore-based Pokemon text adventuremZmmAdult0falsefalsefalsefalseDarkBluefalsePCom1.1.pngplayerlook at #object#; x #object#; examine #object#; exam #object#; ex #object#take #object#; get #object#; pick up #object#
takeList = NewObjectList()
foreach (obj, ListExclude(ScopeVisibleNotHeldNotScenery(), game.pov)) {
if (obj.parent = game.pov.parent) {
list add (takeList, obj)
}
}
return (takeList)
drop #object#
return (GetDirectChildren(game.pov))
use #object#^undo$^i$|^inv$|^inventory$^look$|^l$north|east|south|west|northeast|northwest|southeast|southwest|out|up|down|n|e|s|w|ne|nw|se|sw|o|u|d)$]]>^quit$.*)$|^go (?.*)$|^(?north|east|south|west|northeast|northwest|southeast|southwest|in|out|up|down|n|e|s|w|ne|nw|se|sw|o|u|d)$]]>You can't go there.open #object#close #object#.*) (on|in) (?.*)$]]>.*) from (?.*)$]]>give #object#.*) to (?.*)$]]>.*) (on|with) (?.*)$]]>.*) about (?.*)$]]>.*) about (?.*)$]]>.*)$]]>speak to #object#; speak #object#; talk to #object#; talk #object#speakDefaultSpeakTobuy #object#buyDefaultBuyclimb #object#climbDefaultClimbdrink #object#drinkDefaultDrinkeat #object#eatDefaultEathit #object#hitDefaultHitkill #object#killDefaultKillkiss #object#kissDefaultKissknock #object#knockDefaultKnocklick #object#lickDefaultLicklie on #object#; lie upon #object#; lie down on #object#; lie down upon #object#lieDefaultLielisten to #object#listenDefaultListenTolock #object#lockDefaultLockmove #object#moveDefaultMovepull #object#pullDefaultPullpush #object#pushDefaultPushread #object#readDefaultReadsearch #object#searchDefaultSearchshow #object#showDefaultShowsit on #object#; sit upon #object#; sit down on #object#; sit down upon #object#sitDefaultSitsmell #object#; sniff #object#smellDefaultSmelltaste #object#tasteDefaultTastethrow #object#throwDefaultThrowtie #object#tieDefaultTietouch #object#touchDefaultTouchturn on #object#; turn #object# on; switch on #object#; switch #object# onturnonDefaultTurnOnturn off #object#; turn #object# off; switch off #object#; switch #object# offturnoffDefaultTurnOffturn #object#turnDefaultTurnunlock #object#unlockDefaultUnlockuntie #object#untieDefaultUntiewear #object#wearDefaultWear^listen$^jump$^sit$|^sit down$^lie$|^lie down$^sleep$|^rest$^wait$|^z$^xyzzy$^help$|^\?$^save$falsetheA green expanse was ahead of you. The thatched huts you had been looking down upon where now suddenly right next to you, towering over you, almost...you didn't feel different, but your perspective was certainly shifted. “See, I told you it wouldn't be anything different!” you heard the voice say again. You looked around for a moment to see where the voice was coming from before it interrupted you again. “Oh, don't bother trying to look for me. I'm communicating telepathically...now, though. You can take some time to explore the village, but afterwards head north into the forest and you will be able to practice your first task…”")
}
]]>Look atA hastily-scribbled note.You pick up the note. It reads:")
msg (" Support the game here! https://patreon.com/mZmm
Top Patreon Supporters for this build: Noiratblack Zachariah ellis Marcus Hudgins Ryan Hudson Revo Dragon Daolord Justin G (Fang) Jacob Williams Rokanoss Judith Goathias Mewscaper
Patrons: Ashley James McLionmane Nightstrider haz A P Nomad Smith Dennis A Mitchell Pudgasaurus Saillen Silvertin Duewater Daniel Alexander II LostForte ZakuraTech Frenzied Dragon WaylaidVisitor TheSoulessGem SwissKiwi kotora richi90 Shaustin Ethan Brown Lun4tic Riemann Sum chris mccabe Andrew Tentative Malbona Kitsune David Adam Inferno Marble Kyler Misha Tharamas Dryke Set Draconi RedHorse Tybalt I prefer Chris Mark Sword Quaid Hintz Dakkadood Matthew Newby Soundbyte R0ffy Vel' Gahrus Awdrgy Micim987 float gen Saxdasm Markie Tanner Jeffrey Ruppel Crybabyboi SesshouFan22 Tyler Brown gongon94 Maxel Noone Winterbox Kilodyne bottler AnthonyTheTiger Raindemonic DarthArdios Kaos Savira Terrance the horrifying sky spider of legend, and his friend bean boy. findlebob James Syxe Phietto Brandon Campbell Sam recon1o6 Chase Nocturne Mattias Magnusson Tigereye Tali - Wrte KaizerRoll Donita TheFleta (Henrik) Jason Vank Charles george nesbaum Kaoru Tsukiamaterasu Tristan King Soul Intent Maid to Sass bob smith Spuzz Smokey Rodent Nighking1990 vantn Carissa Vixen Zeek winterpaw Brady Collins Irick Corwal Neo Moonlight Thunder simalst ")
msg (" You have no idea what it means.")
]]>ForestA wild Pokemon has appeared!")
if (RandomChance(5)) {
MoveObject (Scolipede, Forest1)
}
else if (RandomChance(35)) {
MoveObject (Wurmple, Forest1)
}
else if (RandomChance(30)) {
MoveObject (Deerling, Forest1)
}
else if (RandomChance(20)) {
MoveObject (Tropius, Forest1)
}
else if (RandomChance(10)) {
MoveObject (Gogoat, Forest1)
}
}
]]>
MoveObject (Scolipede, ForestPokemonRoom)
MoveObject (Wurmple, ForestPokemonRoom)
MoveObject (Tropius, ForestPokemonRoom)
MoveObject (Deerling, ForestPokemonRoom)
MoveObject (Gogoat, ForestPokemonRoom)
ForestA wild Pokemon has appeared!")
if (RandomChance(5)) {
MoveObject (Scolipede, Forest2)
}
else if (RandomChance(35)) {
MoveObject (Wurmple, Forest2)
}
else if (RandomChance(30)) {
MoveObject (Deerling, Forest2)
}
else if (RandomChance(20)) {
MoveObject (Tropius, Forest2)
}
else if (RandomChance(10)) {
MoveObject (Gogoat, Forest2)
}
}
]]>
MoveObject (Scolipede, ForestPokemonRoom)
MoveObject (Wurmple, ForestPokemonRoom)
MoveObject (Tropius, ForestPokemonRoom)
MoveObject (Deerling, ForestPokemonRoom)
MoveObject (Gogoat, ForestPokemonRoom)
ForestA wild Pokemon has appeared!")
if (RandomChance(5)) {
MoveObject (Scolipede, Forest3)
}
else if (RandomChance(35)) {
MoveObject (Wurmple, Forest3)
}
else if (RandomChance(30)) {
MoveObject (Deerling, Forest3)
}
else if (RandomChance(20)) {
MoveObject (Tropius, Forest3)
}
else if (RandomChance(10)) {
MoveObject (Gogoat, Forest3)
}
}
]]>
MoveObject (Scolipede, ForestPokemonRoom)
MoveObject (Wurmple, ForestPokemonRoom)
MoveObject (Tropius, ForestPokemonRoom)
MoveObject (Deerling, ForestPokemonRoom)
MoveObject (Gogoat, ForestPokemonRoom)
ForestA wild Pokemon has appeared!")
if (RandomChance(5)) {
MoveObject (Scolipede, Forest4)
}
else if (RandomChance(35)) {
MoveObject (Wurmple, Forest4)
}
else if (RandomChance(30)) {
MoveObject (Deerling, Forest4)
}
else if (RandomChance(20)) {
MoveObject (Tropius, Forest4)
}
else if (RandomChance(10)) {
MoveObject (Gogoat, Forest4)
}
}
]]>
MoveObject (Scolipede, ForestPokemonRoom)
MoveObject (Wurmple, ForestPokemonRoom)
MoveObject (Tropius, ForestPokemonRoom)
MoveObject (Deerling, ForestPokemonRoom)
MoveObject (Gogoat, ForestPokemonRoom)
Look atA small, bush-like tree. There are a few pink berries on it, although they're just out of your reach...You shook the tree and one of the pink berries fell off!")
CloneObjectAndMove (Pecha Berry, player)
}
else {
msg (" You shook the tree, but nothing happened.")
}
]]>A small, pink berry.Look atDropGive0Milo sniffed at the berry in your hand, before chirping and glomping his mouth around your whole head! You could feel him chewing on your hand a little bit, before pulling his mouth away and swallowing, trading the berry for quite a few strands of sticky Scolipede drool...")
Scolipede.pleasure = Scolipede.pleasure + 25
RemoveObject (this)
]]>Milo sniffed at the berry in your hand, before chirping and glomping his mouth around your whole head! You could feel him chewing on your hand a little bit, before pulling his mouth away and swallowing, trading the berry for quite a few strands of sticky Scolipede drool...")
Scolipede1.pleasure = Scolipede1.pleasure + 25
RemoveObject (this)
]]>")
Wurmple.pleasure = Wurmple.pleasure + 25
RemoveObject (this)
]]>")
Tropius.pleasure = Tropius.pleasure + 25
RemoveObject (this)
]]>")
Deerling.pleasure = Deerling.pleasure + 25
RemoveObject (this)
]]>")
Gogoat.pleasure = Gogoat.pleasure + 25
RemoveObject (this)
]]>ForestA wild Pokemon has appeared!")
if (RandomChance(5)) {
MoveObject (Scolipede, Forest5)
}
else if (RandomChance(35)) {
MoveObject (Wurmple, Forest5)
}
else if (RandomChance(30)) {
MoveObject (Deerling, Forest5)
}
else if (RandomChance(20)) {
MoveObject (Tropius, Forest5)
}
else if (RandomChance(10)) {
MoveObject (Gogoat, Forest5)
}
}
]]>
MoveObject (Scolipede, ForestPokemonRoom)
MoveObject (Wurmple, ForestPokemonRoom)
MoveObject (Tropius, ForestPokemonRoom)
MoveObject (Deerling, ForestPokemonRoom)
MoveObject (Gogoat, ForestPokemonRoom)
0000false You noticed the tiny bug Pokemon crawling on the ground in front of you. How cute! You made your way over to it, leaning down to get a closer look. The little caterpillar was adorable, but a question lingered in your mind: how are you going to feed this thing?
“Oh! Sorry, sorry.” you heard the elder’s voice again. “I forgot to mention that you're going to have to change your size for some of these creatures. Hold on, this will feel a bit weird…”
Almost instantly, a feeling of vertigo overwhelmed you. You had to shut your eyes for a moment just to take it all in, and by the time you opened them, the world around you was becoming a lot larger! You watched in real-time as the trees and the bushes surrounding you seemed to double, triple, quadruple in height. But what was the most jarring change was the Wurmple! The tiny bug Pokemon was now just about your height, and looking a lot more like a horse than a little caterpillar!
“That's better. Now you'll be a lot more filling!” the elder said casually before disappearing again. The now large bug Pokemon chirped eagerly at its now much more manageable meal, waiting for you to decide on what to do…
{if Wurmple.full=0:The bug Pokemon looked absolutely famished. You could almost hear his stomach rumbling...}{if Wurmple.full=1:The Wurmple's belly looks comfortably full.}{if Wurmple.full=2:The Wurmple is more than full now. Seems like he will need a bit of time to digest all the snacks he's received!}")
if (Wurmple.pleasure >= 500) {
firsttime {
msg ("Wurmple has now appeared in the Zoo!")
CloneObjectAndMove (Wurmple, Zoo)
}
}
WurmpleList = NewStringList()
list add (WurmpleList, "Oral")
if (Wurmple.full >= 1) {
list add (WurmpleList, "Belly rubs")
}
ShowMenu ("How will you pleasure him?", WurmpleList, false) {
if (result = "Oral") {
msg ("Squirming around in that fat lower belly wouldn't be so bad. The Wurmple chirped again before crawling closer, looming over you in a way that was honestly kind of intimidating! The bug Pokemon’s mouth slowly parted, The circular mounds slowly lifting up to reveal a wet, hungry maw, although a small one.The opening for the wurmple's mouth was most certainly designed to eat leaves instead of sacrifices! As you peered inside, you internally wondered if this Wurmple was even a Pokemon you were supposed to feed before that mouth suddenly rushed at you!
The hungry bug wasted no time in starting up the process, your whole head being enveloped in wet flesh quite quickly. You felt a bit of nibbling from the Pokemon’s teeth, but nothing too painful; in an odd way, it sort of felt like a massage! What wasn't as pleasant was the noticeable stench of compost coming from deeper within the Pokemon. You guessed that the Wurmple had been snacking on some leaves before it got a chance at a much more substantial meal! ")
wait {
msg ("You felt the Wurmple’s odd mouth start to creep over more of your form, your neck and shoulders easily slipping into the Pokemon’s lips. Already you were starting to bump up against the back of the caterpillar’s mouth, the red flesh of its mouth starting to be replaced by a dark green tint as it went deeper into the throat. It seemed like the bug’s belly was going to be a bit different than what you expected...!
Sticky, almost string-like drool was dripping down your chest as the Wurmple fed. The stuff got all over you, seemingly binding you in place! The Pokemon must have been inadvertently using some of its string while it devoured you; or perhaps it was on purpose, to keep you from struggling too much. Not like you would!
The first swallow caught you by surprise, a powerful clenching of the bug Pokemon’s throat muscles suddenly submerging you in tight, hot, wet flesh. If it wasn't so dark in here, you would have also been able to notice that everything around you was becoming the same deep shade of green; there were no hints of the red of the creature’s mouth left. The flesh still rippled and clenched around you all the same, though; the Wurmple rearing its head back to get a bit of assistance from gravity in swallowing you down. You felt those small lips nibbling and gnawing on your midsection as the Wurmple pulled more of you inside its maw, another swallow coming soon afterwards trapping your upper chest in the bug’s throat.
The stench of compost was becoming gradually stronger as your journey into the bug continued, the motions of peristalsis working consistently to bring you into the Wurmple’s warm, wet embrace. You wiggled and struggled a bit to get comfy in the throat, bulging out the worm’s gullet as you traveled deeper into it. The heat and constant motion of your predator was making you a bit nauseous, especially as you felt more of your body sinking into the wet heat of the Wurmple’s innards, but you knew you would be deposited in the (comparatively) comfortable belly of the Pokemon soon. Owing to its odd anatomy, the Wurmple’s throat was a lot longer than one would expect; so the time spent in the throat was a lot more than it usually would be. At least this Pokemon seemed rather hungry, so it was pushing the trip along quicker than usual! ")
Wurmple.pleasure = Wurmple.pleasure + 50
MoveObject (player, WurmpleStomach)
}
}
else if (result = "Belly rubs") {
msg (" You approached the Wurmple from the side; at first the bug wasn’t quite sure what you were getting at, but as you made your way to his underbelly, the Pokemon understood, rolling onto his side with a chirp and allowing your hands to get at that soft, chubby tummy the Wurmple was hiding! You pressed one hand into the softness, not furry, but feeling similar to a snake’s scales. Still quite soft and enjoyable, and with a bit of squish behind it as well...you swirled your hand in a circle as your other hand squished into the other wide of the Wurmple’s gut, and you felt the bug shiver a little bit as you started to rub with your other hand. The little bug was definitely enjoying this! You could hear his gut rumbling and churning a little bit under your touch, especially when you leaned in with your head to listen to it working away. Gosh, it was such a wonderful orchestra of wet, burbly noises! Almost made you wanna feed the bug again...")
Wurmple.pleasure = Wurmple.pleasure + 50
}
}
]]>the Wurmple's stomachOnly your legs stuck out of the Pokemon’s mouth at this point, the Wurmple’s mandibles eagerly clamping around them and starting to slowly draw them inside, the rhythmic motions feeling strangely like a massage as they worked over your shins, ankles, and eventually your feet. The hungry bug Pokemon reared its head back happily, your own head starting to be forced into a bend as the Wurmple took its last swallow, trapping your whole body in the bug Pokemon’s tight, slimy gullet. Thankfully, almost as soon as you took that bend, you felt something ahead of you dilate and open up, the peristalsis shoving you quite rudely forward into a stomach-like chamber. It honestly wasn’t much different than the throat (especially because it was almost pitch black inside the bug’s belly), just horizontal, slightly roomier, and smelling even stronger of compost, with a bit more of an acidic tinge this time. A few more sloppy gulps pushed you further into this strange, tight chamber, the bug Pokemon chirping happily as it felt its gut starting to be filled…false")
wait {
msg ("The Wurmple’s gut had started to clench tighter around you, the level of fluids in the chamber steadily rising as the space inside fell. Your skin was starting to tingle more, and the sensation was starting to spread over your whole body and work its way deep into your skin. You were covered in belly goop and fluids, from head to toe, unable to struggle or rub the gut around you for much longer. This Pokemon was definitely using Absorb or something on you; it felt like your energy was being sapped by the minute. Eventually, your eyelids became too heavy to hold up, and they slid down. The last thing you heard was a wet, burbling *glrrrsh* from the stomach around you… ")
Wurmple.pleasure = Wurmple.pleasure + 75
Wurmple.full = Wurmple.full + 1
MoveObject (player, ForestBattle)
}
}
}
]]>stomach wallsfalse
random = GetRandomInt(1,4)
if (random = 1) {
msg ("You could hear a faint chirp as you gave the gut around you a nice rub.")
Wurmple.pleasure = Wurmple.pleasure + 10
}
else if (random = 2) {
msg ("The flesh you pressed against had remarkable strength, but it eventually started to give way as you rubbed against it.")
Wurmple.pleasure = Wurmple.pleasure + 10
}
else if (random = 3) {
msg ("The tight gut started to relax a little bit as you rubbed around it, giving you some extra wiggle room deep inside the Wurmple.")
Wurmple.pleasure = Wurmple.pleasure + 10
}
else {
msg ("Your hand got covered in some weird, tingly slime as you felt around inside the bug’s belly!")
Wurmple.pleasure = Wurmple.pleasure + 10
}
random = GetRandomInt(1,4)
if (random = 1) {
msg ("A startled noise came from the Wurmple as it felt you suddenly kick deep inside of it. That didn’t feel good…")
Wurmple.pleasure = Wurmple.pleasure - 10
}
else if (random = 2) {
msg ("The Wurmple rubbed a feeler against its belly, hoping to calm you down a bit.")
Wurmple.pleasure = Wurmple.pleasure - 10
}
else if (random = 3) {
msg ("You managed to make an imprint on the outside of the bug’s underbelly - but the tight flesh quickly snapped back into place.")
Wurmple.pleasure = Wurmple.pleasure - 10
}
else {
msg ("The gut churned and tightened around you, unhappy with the squirming you were doing.")
Wurmple.pleasure = Wurmple.pleasure - 10
}
0000false {if Deerling.full=0:The Deerling looks to be starving. Shoots and leaves won't cut it!}{if Deerling.full=1:The Deerling's belly looks comfortably full.}{if Deerling.full=2:The Deerling is unable to move, completely stuffed with gurgling snacks...}")
if (Deerling.pleasure >= 500) {
firsttime {
msg ("Deerling has now appeared in the Zoo!")
CloneObjectAndMove (Deerling, Zoo)
}
}
DeerlingList = NewStringList()
list add (DeerlingList, "Oral")
if (Deerling.full >= 1) {
list add (DeerlingList, "Belly rubs")
}
ShowMenu ("How will you pleasure her?", DeerlingList, false) {
if (result = "Oral") {
msg ("You tentatively approach the smallish deer Pokemon, feeling your form starting to shrink just a bit with every step. Soon you were roughly the Deerling's size, reaching out to give the timid thing a soft, welcoming pet on the snout. It seemed to enjoy the interaction, so slowly you brought your fingers closer to the Pokemon's mouth, before, to your surprise, the Deerling opened wide and snapped your hand right up! You got yanked off your feet as the Deerling tugged you forward, feeling it licking and slurping along your fingers as it did so...seemed the Pokemon enjoyed your taste! You found yourself whisked off your feet to a point as the deerling continued to nibble on your hand, your wrist and arm gradually being pulled deeper into its mouth as it continued its, well, at this point it had to be feeding!
The eagerness of the small Pokemon had kind of caught you off-guard, so you were kind of just laying on the grass, your arm wrenched up inside of the deer’s snout. At some point, you managed to bring your other hand up and stick it inside as well to make everything easier for the eager little predator! You could feel the deer gently chewing over your forearms now, arms stuck in the Pokemon’s cheeks. It seemed to struggle a little bit in actually starting to swallow you down. After a few more attempts, though, the Pokemon seem to get the hang of it, and you felt yourself being pulled even further as the deer took a few gulps! It was at this point that your position became somewhat less awkward, the Deerling leaning down its front half to work the rest of you inside a little bit better. You watched as a passenger, feeling your arms starting to slide down the Pokemon’s hungry gullet as its snout work to closer and closer to your; you way sloppy closer, until you felt a flick of deer drool splatter down onto your face. Before you, you saw those jaws open wide in front of you, seeing just how much of you had already disappeared down the Deerling's throat and into that inky black void. You only got to look at it for a few seconds, though, because those jaws were steadily working their way over your face and head, another swallow pulling you right into that mouth and turning out the lights! ")
wait {
msg ("You felt the roof of her mouth clamp over the back of your neck, and suddenly, your whole face was smothered by the Deerling's tongue! It undulated and slurped and licked across every facet of your form, making sure to get as much of your taste as possible before you disappeared down her throat for good; which, judging from how eager the Deerling was to get you down, probably would not be too long! Heck, a few gulps later and it would feel like you were all packed away, at least…
Her cheeks full to the brim, the Deerling took a little bit more time to taste and lick all over you before you felt the Pokemon starting to push you towards the back of her throat. Said throat already had a grip on your arms, and had been constantly tugging and pulling you deeper with every little motion of peristalsis. The bulge in the Pokemon's throat gradually sank deeper and deeper as the Deerling swallowed you up, your head being plunged into tight, wet flesh by another deep gulp from the hungry deer. Drool dribbled down her chin as she fed, your waist sticking out from between the Pokemon's lips...seemed as though she was really enjoying this meal!
The Deerling's throat was tight and struggling to expand around your form every time the Pokemon took a swallow; clearly it was not ready for such large, wiggling prey! Still, against all odds, you found yourself being swallowed down, down further into the Pokemon, feeling that rough herbivore tongue sliding over your legs as your waist disappeared inside those jaws. The Deerling was still nibbling on you, making you squirm and wiggle even more inside of her throat from the sensation. It almost tickled in a way! And it also was a good indication of just how much of you was inside this Pokemon. Right now, you could only feel her teeth scraping your knees…
But, with another swallow, the environment around you changed. You had heard the grumbling and rumbling of the Pokemon’s stomach up ahead, but as the Deerling gulped one more time, you were suddenly plunged headfirst into that rumbling, impatient chamber! Thankfully roomier, though not by much, you were pushed inside with swallow after swallow, the stench of digesting grass filling your nostrils and leaving a little bit of a stinging sensation from the acids. You imagined that this was going to take a while - the deer’s digestive tract probably wasn't accompanied to breaking down meals as large as yourself! As you curled up in the Pokemon’s gut, you settled in for what would most likely be a very long, tight, and wet journey…")
Deerling.pleasure = Deerling.pleasure + 50
MoveObject (player, DeerlingStomach)
}
}
else if (result = "Belly rubs") {
msg (" Seeing that belly full of what used to be you...goodness, you just had to appreciate it! The Deerling had a healthy, jiggling paunch still, and she eagerly allowed you to come over and start rubbing and listening to it. The stomach sloshed and burbled and churned just beneath the Deerling's pelt, still working on breaking down and absorbing the last of the huge meal the Pokemon had! You started to give the noisy gut a hearty serving of belly rubs, pressing and kneading against the soft pudge and feeling how full the deer still was. Her gut grumbled and shrunk under your hands, the rubbing you were doing clearly helping the Deerling's belly do its job. You kept listening and rubbing for a good while, feeling the Pokemon's gut continue to slowly shrink and round out...")
Deerling.pleasure = Deerling.pleasure + 50
}
}
]]>the Deerling's stomachThere was still a little bit left of you, though, and the Deerling was intent on finishing her food. Tipping her head back, the Pokemon took one last swallow, your feet sliding down into her gullet and allowing your knees to pop out into her belly. Almost immediately, the Deerling flopped onto her side, letting her swollen gut bulge out and lay in the grass of the forest floor, noisily burbling and churning and occasionally kicking as you settled inside. The Pokemon’s tongue hung out of her mouth in bliss; she had managed to get such a large meal like you down, and the feeling of being so unquestionably full was fantastic!false")
wait {
msg ("Relaxed as she could be, the Deerling continued to listen to her stomach as it worked over you, the churning and groaning it was making becoming louder and louder as it turned you into a nice, nutritious belly soup. At some point, you felt your consciousness start to fade out, more food than a person at this point...the small deer's belly starting to round out and shrink somewhat as her guts noisily worked over and absorbed the rest of you. At some point, the deer Pokemon got up and started to walk around again, feeling what was left of her meal sloshing and swaying underneath her as she walked around. Oh, goodness, she still felt so full, and you weren't even recognizable at this point! Just a big, swollen belly full of future pudge and padding...it would still take a while to fully process you, though. ")
Deerling.pleasure = Deerling.pleasure + 75
Deerling.full = Deerling.full + 1
MoveObject (player, ForestBattle)
}
}
}
]]>stomach wallsfalse
random = GetRandomInt(1,4)
if (random = 1) {
msg ("The Deerling reached down to nuzzle at her belly in thanks for your rubs. ")
Deerling.pleasure = Deerling.pleasure + 10
}
else if (random = 2) {
msg ("The stomach walls relaxed a little bit from your stimulation, allowing you to get into a slightly more comfortable position.")
Deerling.pleasure = Deerling.pleasure + 10
}
else if (random = 3) {
msg ("Giving those walls a nice, hearty massage seemed to make the Deerling even more pleased with her meal!")
Deerling.pleasure = Deerling.pleasure + 10
}
else {
msg ("The stomach weakly rumbled as you rubbed away at it from the inside.")
Deerling.pleasure = Deerling.pleasure + 10
}
random = GetRandomInt(1,4)
if (random = 1) {
msg ("You kicked and squirmed inside the Deerling's stomach, causing the Pokemon to let a hearty belch rip and her stomach to constrict around you even more!")
Deerling.pleasure = Deerling.pleasure - 10
}
else if (random = 2) {
msg ("Even your most powerful kicks just seemed to make the Deerling appreciate her meal even more.")
Deerling.pleasure = Deerling.pleasure - 10
}
else if (random = 3) {
msg ("You thought you might have given the Pokemon a little bit of indigestion...but, after a thick belch, everything went back to normal. Except it was a lot tighter now.")
Deerling.pleasure = Deerling.pleasure - 10
}
else {
msg ("You had made a few attempts at crawling back up the throat that deposited you here, but the sphincter in the Deerling's stomach was surprisingly tight and difficult to pry open.")
Deerling.pleasure = Deerling.pleasure - 10
}
0000false {if Gogoat.full=0:The goat was more than hungry, and ready to shove you down his throat.}{if Gogoat.full=1:The Gogoat's belly looks comfortably full.}{if Gogoat.full=2:The Gogoat is more than full now. Seems like he will need a bit of time to digest all the snacks he's received!}")
if (Gogoat.pleasure >= 850) {
firsttime {
msg ("Gogoat has now appeared in the Zoo!")
CloneObjectAndMove (Gogoat, Zoo)
}
}
GogoatList = NewStringList()
list add (GogoatList, "Oral")
if (Gogoat.full >= 1) {
list add (GogoatList, "Belly rubs")
}
if (Gogoat.pleasure >= 300) {
list add (GogoatList, "Cock")
}
if (Gogoat.pleasure >= 750) {
list add (GogoatList, "Blowjob")
}
ShowMenu ("How will you pleasure him?", GogoatList, false) {
if (result = "Oral") {
msg ("You started approaching the Gogoat in order to begin the feeding process, but as soon as the Pokemon saw you getting closer, it let out an excited bleat and started running right towards you! You flinched instinctively as this big goat bowled right over you, knocking you to the floor and started to lick over your face, not unlike an excited dog! Unlike with a dog, though, you knew these licks were more of than a greeting, the goat eager to sample your taste...this was affirmed when, a few seconds later, you heard a low growl coming from the Pokemon’s underbelly. The leafy mane of the Pokemon was brushing and chafing against your chest as the Gogoat continued to lick and sniff at you, getting an idea of what exactly it was about to wolf down! It seemed pleased with your smell and taste, so a few seconds later, you watched as the Pokemon’s jaws opened wide just inches from your face, strands of drool snapping and those flat, herbivore teeth framing an entrance to a deep, dark red pulsating gullet of a throat. A grassy scent, somewhat stale but not overpowering or too unpleasant, came on the goat's breath, the Pokemon graciously giving you a few moments to stare into the mouth you were about to be shoved into before it, well, went about doing exactly that!
In just a few moments, the entirety of your head was suddenly surrounded and smothered by hot, wet mouth flesh, the Gogoat lunging forward and clamping his jaws over your whole face and beyond! The Pokemon took its time tasting you even more intimately, using its tongue to absolutely slather your face in thick, sticky goat spit and even suckling on you a little bit before you felt the world starting to shift around you just a little! The goat was starting to tug forward, using its tongue to guide you deeper into its throat while also starting to stand up a little bit, its head tipping up to get a little bit of help from gravity. Thankfully, the pressure of a big goat sitting on your chest was finally relieved...though, with a thick swallow and another yanking feeling, you were suddenly a lot closer to this Gogoat then even when he was laying on top of you! ")
wait {
msg ("That grassy stench was getting stronger the deeper you traveled into the Gogoat, starting to take on a more acidic tinge as the Pokemon continued swallowing. You could already feel your shoulders grazing past the goat’s teeth, the Pokemon now completely standing up with half of your body hanging out of his mouth, the goat throwing his head back every now and again to get another good swallow and force more of you down on his hungry gullet. The tight throat of the Pokemon clearly was not accompanied to such whole meals, squeezing and putting a lot of pressure on you as waves of peristalsis shoved you deeper into the Pokemon’s digestive tract. And all the while, the Pokemon just continued to get a good taste of you, licking and slurping over every inch of his meal before another swallow brought a whole new part of you to nibble and taste and suckle on...
You felt like a tube of toothpaste that was almost empty at this point with how hard and frequently the Gogoat’s throat was squeezing you. It seemed like the deeper you went into the Pokemon, the more its body was expecting food to not be so solid and squirmy...with just a few more swallows, though, you felt the pressure around you thankfully relieved somewhat as your head was pushed out into the Pokemon’s stomach. Roomier, though far more foul-smelling and active, you found yourself being smothered by stomach walls almost immediately, the fleshy surroundings wasting no time and starting to rub and slather you in all sorts of digestive enzymes and juices. You felt the solid ground beneath you, the Gogoat’s belly sagging and resting on the forest floor as the Pokemon tilted his head back to swallow down the last of you...the Pokemon seemed to savor its meal for just a few moments longer, slurping up your legs and feet and giving them a good licking over before, with a powerful swallow, the Gogoat sent them down to join you in its tight, fat belly. ")
Gogoat.pleasure = Gogoat.pleasure + 50
MoveObject (player, GogoatStomach)
}
}
else if (result = "Belly rubs") {
msg ("Goodness, for an herbivore, the Gogoat’s digestive system seemed to be very adept at turning sacrifices into fat! That gurgling, jiggling tummy was calling out to you, and so you wordlessly started to crawl underneath the Pokemon, the Gogoat a little confused ‘till it felt your hand rubbing at its belly! The Pokemon bleated with joy before starting to lay on its side, the goat finding a comfortable home in the grass while also allowing you much more intimate belly access! Watching the Pokemon move, it just made you appreciate every little movement that its full, gurgling belly made all the more…
You pressed your fingers into the Gogoat’s gut as soon as you were able, feeling a pleasant squish of fat, but with the pressure and tightness of a still full stomach behind said squish. The best kind of belly to rub, you thought! Your other hand sort of just gravitated towards the Gogoat’s stomach as time went on, both of them combining to roam over every inch of chubby, sloshy goat tummy that you could reach! There was so much already, and you got the feeling that the Gogoat wasn't even all that full yet...you couldn't imagine this Pokemons midsection becoming any larger and around her than it already was! But, somehow, you just knew that it was going to happen regardless... ")
Gogoat.pleasure = Gogoat.pleasure + 50
}
else if (result = "Cock") {
msg ("As you approached the Gogoat, it seemed to change its expression from one of confusion and curiosity to one of...well, almost lust! This big, beefy goat was easily larger than you, and as you got closer, the goat did as well - until, like a dog that was all too excited to see you, the Pokemon lunged right at you, sending you tumbling down to the forest floor and pinning you under the Pokemon’s exceptional bulk! Given how things had started off, you expected for the goat to start slurping all over your face to keep up the dog motif...but, instead, something very different started to happen. You heard the goat grunt above you, his body shifting and moving in ways that you weren't really sure of the reason for...all you could tell while the goat was on top of you is that there was something almost, almost poking and prodding at your feet! You tried to crane your neck around to see what was going on, but you could hardly move at all, let alone make any sort of meaningful adjustment to your position!
A few minutes later, though, you felt something very odd. A sudden squish around your toes, followed by them being bound together! Bound together somewhere tight, wet, and warm, no less. The only thing you could really do was look up to try and get a glimpse of the Gogoat’s expression, and even then you couldn't really see much...but you could certainly smell something. An earthy scent, wafting from underneath the goat, one with a healthy heaping of musk...oh, goodness, was he shoving you right into his shaft!? ")
wait {
msg ("Judging by the fact that the Gogoat had quite the smile on his face, his tongue hanging out and everything...well, shoving you into his shaft was probably the only explanation for an expression like that, at least in this situation! Once his shaft got a hold of you, the Pokemon was really not bothering to be decent in any other way; the goat was just humping you, basically, thrusting his hips forward and pushing a few more inches of your body right up into his cock every time he did it! At least there was plenty of, ahem, lubrication to make it so that you weren't grinding flesh into flesh as you sank into the Pokemon’s loins. Only a few humps and clenches of those powerful muscles, and the tip of the Gogoat’s cock was already swallowing up your knees...
With your legs completely bound and your waist starting to slide inside the goats’ cock, there wasn't too much you could do at this point besides wait. Wait, and take in that thick musk with every breath, whether you wanted to or not! It was a bit of a snowball effect, though; every time you got a little bit of that musk, it just made you want even more! So earthy, yet so strong...and as you were pulled deeper into the Pokemon, you just got more of it! Another clench and a grunt of pleasure from the goat smothering you marked a distinct change in scenery for your lower half; as the Gogoat’s shaft made its way up your tummy, you could feel your feet being released from the tight, fleshy vice grip of the goat’s loins and being placed into somewhere a bit stretchier, though still quite warm and wet...it could only be the goat’s balls! You had seen them earlier, they weren't that big...the concept of you, your whole body, fitting inside of them was...well, it was ridiculous! Regardless of what you thought, though, it was most certainly happening. Most of your body was being squeezed through that tight, fleshy canal now, the Gogoat humping forward every now and again to swallow a few more inches of you into his drooling shaft. All the secretions from inside of the goat’s loins were just dribbling down your body, making the musk that you were quickly becoming addicted to even stronger as time passed.
While all of this went down, the goat Pokemon’s body continued to smother you, your vision completely blocked by warm, soft goat fur and belly. The rough, leaf-like mane the Pokemon had felt a bit scratchy and weird, but on the whole? You could probably fall asleep right here...if it wasn't for the vigorous humping and groaning and bleating that was assailing your body every second. It seemed like the Pokemon was really getting into this, even more than his initial excitement would have applied...right now, you were kind of just hoping that you didn't pass out from all the warmth and movement! ")
wait {
msg ("Slowly but surely, hump after hump, you felt more of that slick, wet flesh work its way over your body, the goat having a little bit of trouble working his shaft around your shoulders; but, he had all the time in the world, and after enough thrusting and humping, those were swallowed up as well. All that was left now where your head and neck, trivial for the Gogoat to shove inside compared to what had come before it. That musk became overwhelming as you felt the tip of the Gogoat’s shaft squeeze tight around your neck, every breath making you shiver with the power of the pheromones lacing the goat’s scent...guh, your face was just beet red with arousal and embarrassment at this point! Another deep swallow yanked you backwards, your head forced to tuck down a little bit so that the cock could wrap its way around your head and start working on getting the last part of you inside that tight, musky tube. By now, you could feel yourself being forced to kneel inside the goat’s sac; you couldn't imagine how cramped it would become once all of you was crammed inside…
The Gogoat had relatively been taking his time to swallow up the last parts of your body, but one powerful thrust and a wet *shgLRP* marked a rapid shift in pace. In the blink of an eye, you were completely surrounded by darkness, the tip of the goat’s cock closing to its normal size over the top of your head as you continued to be pulled backwards by the muscular contractions all over your body. The sudden compression caused you to instinctively take a deep breath, which was quite suddenly interrupted with mouthful of goat cream, which you swallowed down before you head even realized it was in your mouth in the first place! And, goodness, if you thought that musk was strong before...now it was basically all you were breathing, a thick, heady odor so strong it felt like it permeated every cell in your body. Now that the Pokemon had all of you tucked away in his shaft, the process was a lot quicker; every contraction and clench of the muscles around you dragged a good few inches of you out into the goat’s sac, which had already swelled to such a size that you could feel your body resting on the forest floor beneath you, only separated by a thin layer of skin and flesh. Such a strong layer of flesh, though! ")
Gogoat.pleasure = Gogoat.pleasure + 100
MoveObject (player, GogoatSac)
}
}
}
else if (result = "Blowjob") {
msg ("After spending some time being shoved down that thick goat shaft, you were eager to see what else the Gogoat’s equipment could do. Without much fanfare, you reached down for the Pokemon’s cock, which was still quite visible, giving it a hearty stroke and almost immediately placating the goat into allowing you more intimate access to his private parts. The goat lay on his side, his cock twitching and throbbing in your hand as you leaned in and started to get to work, the thick, grassy musk filling your lungs with ease. {Out of the corner of your eye, you could see the goats balls, so swollen and full of lust...just the thought that all of that would soon be in your gut drove you mad!} There was no hope of you fitting all of the Pokemon’s cock in your mouth, so you just endeavored to take as much of it as you could, mouth opening wide as you lifted up the thick cock with your other hand and slowly started to move forward. A powerful, musky and earthy taste spread across your tongue as soon as you made contact, the goat almost immediately bleating before a drop or two of pre leaked out of the tip and added a much-needed salty taste to this whole affair!
Your throat opened up wide as you continued taking in more of the Gogoat’s shaft, feeling the thing start to twitch and throb inside your mouth as you got a decent portion of it in there now. Your hands made sure that the other parts of the goat were being serviced properly as well, though, stroking up and down the pink shaft and feeling just how much pent-up lust was waiting to be unleashed. Soon, you felt it the tip of the Pokemon’s cock probing against the back of your mouth, a sign that you had bottomed out unless you were willing to do some SERIOUS deep-throating...and, even though that did sound kind of nice, it was beyond your ability at this point! No, you had to make do with what you were given, and that meant starting to bob your head up and down on the Gogoat’s junk, slowly increasing your rhythm as time went on and you felt the Pokemon starting to get more and more into it. A huff or bleat here, a thrust of the hips there. The Pokemon definitely needed to release, but it seemed like you would have to coax out just a tiny bit... ")
wait {
msg ("And you were more than willing to do just that. Stroking up and down the Pokemon's shaft as you got it as deep in your mouth as you possibly could, feeling that precum funneling down your throat and making you want more. The Gogoat was starting to become a bit more forceful, thrusting against the back of your throat and trying to supress your gag reflex for a bit of deep-throating! You let him have his way with you, the goat bleating and making all sorts of lovely noises as he got closer to orgasm… ")
wait {
if (Gogoat.sacfull = 0) {
msg ("When the Pokemon’s orgasm came...well, you didn’t feel much, honestly. The goat bleated one last time before thrusting forward into your mouth, as far as he could go...but you felt only a few splashes of goat cream funnel down your throat. Tasty, to be sure, but not quite what you were expecting or hoping for. Perhaps feeding the Gogoat’s loins a bit more would make things more exciting... ")
Gogoat.pleasure = Gogoat.pleasure + 50
}
else if (Gogoat.sacfull = 1) {
msg ("You heard a moan from the Pokemon before a blast of hot goat cream shot right down your throat, forcing you to quickly gulp down the hot mess as you felt another shot coming already. The goat thrusted forward one last time to make sure you swallowed down all of his load, your stomach starting to swell as it got filled up with the goat's pent-up lust. You got the feeling this wasn't absolutely the most that the goat could give you, but you were more than satisfied with what you ended up with as you felt the Pokemon’s orgasm come to an end, the Gogoat to allowing you to dislodge yourself from his shaft, which was still twitching and drooling every now and again... ")
Gogoat.pleasure = Gogoat.pleasure + 100
Gogoat.sacfull = 0
}
else {
msg ("The Gogoat thrusted so far forward that you did end up deepthroating him a little bit as the Pokemons orgasm came, the goat absolutely flooding in your throat with his cum and forcing you to drink down every last drop. Your stomach swelled up almost immediately, and there was so much of the creamy stuff that it was impossible for you to swallow it all down at the rate that it was being produced! As a result, some of that warm concoction was leaking out the sides of your mouth, your tongue trying desperately to lick at least some of it up... but there was just too much.
A few seconds later, you felt the goat's orgasm start to taper off a little bit, the Pokemon huffing and panting in pleasure as the last of his orgasm trickled down your gullet. You were so full, that you could barely you move to dislodge yourself from his cock. You wiped your mouth once you managed to, though, stomach completely swollen with the Pokemon’s load...you would be here for a while, it seemed. ")
Gogoat.pleasure = Gogoat.pleasure + 200
Gogoat.sacfull = 0
}
}
}
}
}
]]>the Gogoat's stomachIt took a little bit more work to get your lower half curled up in the Pokemon’s stomach, but once the Gogoat swallowed for the last time, it was all automatic. Constant peristalsis, pushing you along at a carefully-designed pace, the stomach you were basting in becoming tighter and less roomy as more of your body was forced inside. Eventually, you felt that sphincter close around the tips of your toes, completely locking you inside the Gogoat’s belly. Absolutely delighted with its meal, the Pokemon flopped down on its swollen gut, pressing you even tighter against the ground then you already were...making space even more of a premium inside this herbivore gut! At least it seemed like the Gogoat was enjoying all of this, using its belly like an exercise ball…false")
wait {
msg ("Goodness, the Pokemon’s belly was starting to get REALLY soft and sloshy now. It was at the point where you couldn't really tell the difference between you and the soup of stomach contents that you were swimming in, but to the goat, it was all gravy. He had a full, sloshy belly, a pillow, and he could feel his gut churning away at what was left of you at quite an impressive rate for an herbivore. Your last few moments in the Pokemon’s stomach were accentuated by another hearty belch, all that digestion happening inside of the Gogoat churning up quite a bit of gas... ")
Gogoat.pleasure = Gogoat.pleasure + 75
Gogoat.full = Gogoat.full + 1
MoveObject (player, ForestBattle)
}
}
}
]]>stomach wallsfalse
random = GetRandomInt(1,2)
if (random = 1) {
msg ("You rubbed along the walls as best you could...with how tight it was inside, it was difficult to really move your arms in any sort of meaningful way, but it seemed like the Pokemon appreciated it nonetheless.")
Gogoat.pleasure = Gogoat.pleasure + 10
}
else {
msg ("The stomach rumbled and burbled in a seemingly pleased matter as you gave belly rubs from the inside.")
Gogoat.pleasure = Gogoat.pleasure + 10
}
random = GetRandomInt(1,2)
if (random = 1) {
msg ("The Gogoat let out a thick, grassy belch as you squirmed inside. Seemed that kicking around was only making it tighter in here…!")
Gogoat.pleasure = Gogoat.pleasure - 10
}
else {
msg ("You had second thoughts about making such a fuss when the Pokemon put even more of its weight down onto you. It felt like you were going to get squished before you got digested…")
Gogoat.pleasure = Gogoat.pleasure - 10
}
the Gogoat's sacfalse")
if (Gogoat.sacfull = 2) {
wait {
Gogoat.pleasure = Gogoat.pleasure + 100
MoveObject (player, ForestBattle)
}
}
]]>")
SetTimeout (30) {
wait {
msg ("Pretty much all of the feeling in your body was gone at this point, replaced by a vague sensation of warmth comfort as you sank further and further into the goopy bathThat was doing its best job of claiming you entirely. The Gogoat continued to hump the ground every now and again, the constant motion helping to mix and churn you up inside of the Pokemon’s balls; eventually there was no way to tell the difference between what was left of you and just the musky cream that the goat’s body produced normally. You had made some fine fuel forever the goats libido, that was for sure... ")
Gogoat.pleasure = Gogoat.pleasure + 100
Gogoat.sacfull = Gogoat.sacfull + 1
MoveObject (player, ForestBattle)
}
}
}
]]>sac wallsfalse
random = GetRandomInt(1,2)
if (random = 1) {
msg ("You tried massaging the walls around you, but they were so active that it felt like they were massaging your hands instead! ")
Gogoat.pleasure = Gogoat.pleasure + 10
}
else {
msg ("Warm, goopy cum coated your hands as you rubbed against the walls, only making you start to tingle even more... ")
Gogoat.pleasure = Gogoat.pleasure + 10
}
random = GetRandomInt(1,2)
if (random = 1) {
msg ("You tried to kick and squirm against the sac walls, but they stretched and absorbed your blows with complete ease.")
Gogoat.pleasure = Gogoat.pleasure - 10
}
else {
msg ("It was nearly impossible for you to make any sort of meaningful movement inside the tight, musky chamber you now called home.")
Gogoat.pleasure = Gogoat.pleasure - 10
}
0000false {if Scolipede.full=0:The Tropius looks to be absolutely starving!}{if Scolipede.full=1:The Tropius is comfortably full, though it looks like it could still have a few more snacks.}{if Scolipede.full=2:The Tropius is almost immobile, belching constantly as its meals broke down inside noisily.}")
if (Tropius.pleasure >= 750) {
firsttime {
msg ("Tropius has now appeared in the Zoo!")
CloneObjectAndMove (Tropius, Zoo)
}
}
TropiusList = NewStringList()
list add (TropiusList, "Oral")
if (Tropius.pleasure >= 100) {
list add (TropiusList, "Anal")
}
if (Tropius.pleasure >= 300) {
list add (TropiusList, "Footplay")
}
ShowMenu ("How will you pleasure him?", TropiusList, false) {
if (result = "Oral") {
msg ("This stocky, sauropod like Pokemon loomed over you as you approached it. Though it was only about a foot or so taller than you, it certainly used that extra foot for a whole lot of intimidation. It definitely would need that extra bit, considering that it had fruit dangling from its chin! As you offered yourself up to the Pokemon, its long neck leaned down to stare you right in the face; the Pokemon took a long sniff, before you saw a bit of drool dribble down its chin. Then, the Tropius opened its mouth wide in front of you, clearly agreeing with your smell, showing off its mouth: a long, flat tongue at the bottom, leading to a deep, dark gullet in the back that you could barely see from here. Thankfully, there were no teeth to speak of; that was the benefit of getting snacked on by herbivores!
You were only able to look into the mouth for a few seconds before the Tropius eagerly lunged forward, its jaws snapping shut around your waist and hoisting you back up into the air in moments. You felt the Pokemon’s tongue moving around underneath your chest, soaking you in Tropius drool and getting all the taste out of your delicious body that it possibly could. It was definitely tight inside, but not painful considering how much of the mouth was taken up by soft tongue. You felt the Tropius tip its head back after tasting you for a few more moments, more of your body sliding between its lips as it got ready to send you down that long throat. You teetered over the edge for a few moments, before you felt the flesh around you convulse and contract, the Pokemon taking a long, satisfying swallow and pulling you even further into its maw. You felt the long throat squeezing around your upper half as the Tropius worked on tasting your lower half; the big sauropod had only swallowed once, and yet your feet were the only things left sticking out of its mouth! The Pokemon played around with your feet for a little while, using its tongue to curl around and taste and tickle them before you felt them get slowly slurped inside.The Tropius worked over them for a few more moments, before you felt that clenching once more, and, with a loud *glllk* echoing around you, the Tropius sent the last of its little snack down its long throat. ")
wait {
msg ("You tried to wiggle and get comfortable inside of the Tropius’s throat, but it just wasn't having it. The tight gullet smothered you on all sides, squishing and squeezing all over your body as it continued working you deeper into the Pokemon. This went on for a good few minutes, barely any forward motion being accomplished as you felt the Tropius stomping around outside. But, soon, you felt your head get pushed out into a new chamber, one that was quite roomy, and tinged with the scent of grass and fruit, mixed in with what you would expect from the inside of the stomach: messy, acidic and sharp odors. With a little bit of you inside its stomach, the Tropius was eager to get the rest of you inside, so its body started pushing you out a lot faster, and in just a few moments you found yourself laying belly down inside of the Tropius’s stomach. It was long enough for most of you to lay down inside no problem, but you did have to curl your legs up a little bit towards the front of the Pokemon’s stomach. Overall, though? not the tightest place in the world!")
Tropius.pleasure = Tropius.pleasure + 50
MoveObject (player, TropiusStomach)
}
}
else if (result = "Anal") {
msg ("The Tropius was slightly confused as you started to walk around it. You made your way past the thick, broad leaves growing out of its sides and to the rear of the Pokemon. At first it looked brown and nondescript, almost like a smooth tree trunk, but as you got closer you noticed a small, pink pucker nestled away inside, flexing every now and then. Bingo. Opting for something a little bit different, you then proceeded to lay on the ground behind the Tropius, who was still slightly confused on till she felt at your feet brush by his asshole. Almost immediately, the Tropius clenched, a bit too early to pull your toes inside, but certainly enough to give the Pokemon an idea of what you were trying to accomplish. Gently, you pushed your toes deeper into that tight tunnel, the Pokemon's asshole clenching tightly around them as you gave the Tropius more to play with. Clearly receptive, the Pokemon's bowels started to tighten, the pucker yawning wide to accept both of your feet before clamping shut around them and pulling you forward with a bit of a yank. You could feel the flesh inside rippling around your body, trying to pull you deeper, and accomplishing it for sure. It helped that the tunnel was nice and slick, as well! ")
wait {
msg ("You still tried to probe deeper to help the Tropius out, but it was clear that his body was doing most of the work at this point. The Pokemon's greedy rump swallowed up your feet in just a few clenches, dragging you forward with every contraction and even lifting you up off the ground a little bit. The more of your body that was inside the Tropius, the more you wanted to go even deeper; feeling that hot, tight embrace around your trapped legs was an indescribable feeling. Judging by the branch of a length slowly growing between the Tropius's legs, the Pokemon was certainly enjoying it too! That was probably why his clenches started to get faster and faster, driven by his growing arousal. In just a few minutes, you felt and saw that your knees slip inside that rump, the pucker stretching wide and swallowing them up in one clench like nothing. Despite the Pokemon's initial confusion, it seemed pretty clear that he was not new to shoving things back there...
The Tropius's asshole was starting to pick you up off the ground now, your whole lower half now tucked inside and only going deeper by the second. At this point, the Tropius was quite obviously moaning and thrusting its hips with every clench...you kind of wished you could service him right now instead! Being a dildo was certainly helping in its own way, though. A musky, forest-like smell started to drift into your nostrils as you watched more of your vision be swallowed up by the Tropius's back side, more and more of your self becoming wrapped in slimy, warm anal flesh and slurped deeper inside. Everything around you was so alive…it felt like the world's weirdest massage. The flesh pushing against you, gently kneading over your form and coaxing you deeper into the Pokemon's bowels, the Pokemon's backside gradually taking over your vision until all you could see was its brown rear, and your body disappearing inside of it…it was all so enchanting, in the weirdest way possible! The tightness of the Pokemon's asshole started to creep over your chest, getting just a little bit uncomfortable as the Tropius clenched over your form a few more times. Geez, it was really getting tight in here…
You squirmed about to try and relax the flesh a little bit, to give you a little bit more room, as that rump continued swallowing you up. You were pretty much just a head sticking out of the Pokemon's ass at this point; the wet, lewd noises of shoving something up your rump starting to dominate your hearing. You could hear all the little intricacies, the changes between each noise, feel the wetness cocooning around your entire body... ")
wait {
MoveObject (player, TropiusBowels)
Tropius.pleasure = Tropius.pleasure + 100
}
}
}
else if (result = "Footplay") {
msg ("Those wide, flat feet that the Tropius had looked like they would feel perfect right on your face, if you could convince the Pokemon to not put all of its weight on them. You got down on your knees and crawled over to one of the Pokemon's paws, playing and rubbing on the sides until the Tropius figured out what you were getting at. Slowly, the Pokemon lifted one of his hefty tree trunks of legs as you lay down on your back, the shadow of that foot starting to loom over your body until it covered your whole head. Slowly, the Tropius started to lower its foot down on your face, making sure to not go too fast; after all, it didn't want to harm a willing foot slut! When it finally pressed against your nose, you were surprised at the softness of the soles holding this thick leg up...but, that would just make the experience better for you anyway.
Slowly, the Tropius transferred more and more of its weight to your face, making you squirm as you felt those feet squish as tightly as they could to your face without causing any sort of pain. The Pokemon held still for a moment, before you realized that it was ready for you to do whatever you were going to do.
You decided to give those soft soles a nice, deep rub. Your thumbs sank into the Tropius's foot with ease, and you started to massage around, hearing the Pokemon make some happy noises above you as you pressed deep into their foot. You could feel the tension of the underlying muscle, and it was honestly really nice to press against it and really try to rub it out. You weren't sure if you were actually getting much done, but it definitely felt like both of you and the Tropius were enjoying it…
After a few minutes of vigorous paw rubbing, the Tropius slowly lifted his foot from your face, Seemingly satisfied with the work you had done. Hopefully that would make him a little more content.
You decided to forego a traditional rub entirely, and instead, opened your mouth wide, making it the Tropius yelp in surprise as it felt your tongue slide across the bottom of its foot! Even you didn't think that you would be this willing, but after feeling that soft foot press right down on your face, you were more than willing to give it all you could. The gentle, foresty smell of the Tropius's foot musk was quite nice; not too overwhelming or pungent or anything like that. Just a nice, slightly arousing smell, that made you want to lick and massage even further into these feet. Although the Pokemon was definitely caught off guard by your eagerness, judging from what you could hear and feel from the Tropius, he was enjoying it quite a bit!
You kept this up for a while, running your tongue over every last bit of the Pokemon's foot, making sure all of it was treated exactly the way you wanted. The Tropius pressed down a little harder as it got more into this, making sure that all of your tongue and your hands were able to go as deep into his foot as possible. Eventually, you relented, a bit worn out from just how much you had loved on the Pokemon's foot. That foresty taste in your mouth was still lingering, and it honestly wasn't bad at all…
Sensing that you were finished, the Tropius lifted up his foot once more, allowing you to crawl out from underneath. You had your eyes on those three other feet, though... ")
}
}
]]>the Tropius's stomachfalse")
wait {
msg ("With the Tropius’s belly becoming tighter and tighter every few minutes, it could do more work digesting you with the same amount of fluids. Every crack between you and the walls was filled with bubbling enzymes, your skin starting to tingle quite a bit as they started to do their work. You couldn't see, considering how dark it was inside of the Pokemon’s stomach, but you were starting to melt into the soup you were bathing in, the tingling starting to fade from your extremities as they joined the soupy, bubbly stomach slop that would be absorbed and added to the Pokemon's body. You drifted off to sleep a few moments later, the chorus of gurgles and groans around you crowding out your hearing until all went silent… ")
wait {
Tropius.pleasure = Tropius.pleasure + 75
Tropius.full = Tropius.full + 1
MoveObject (player, ForestBattle)
}
}
}
}
]]>stomach wallsfalse
random = GetRandomInt(1,4)
if (random = 1) {
msg ("You rubbed into the belly walls, giving the Tropius a nice, long massage. ")
Tropius.pleasure = Tropius.pleasure + 10
}
else if (random = 2) {
msg ("You heard something between a chirp and a growl come from outside. You hoped that was good?")
Tropius.pleasure = Tropius.pleasure + 10
}
else if (random = 3) {
msg ("Rubbing in a specific spot, you caused the Tropius to shudder in pleasure.")
Tropius.pleasure = Tropius.pleasure + 10
}
else {
msg ("It almost felt like the stomach around you was encouraging you to rub even deeper!")
Tropius.pleasure = Tropius.pleasure + 10
}
random = GetRandomInt(1,4)
if (random = 1) {
msg ("The stomach walls took your blows in stride. Clearly this wasn't the Tropius’s first squirmy meal…")
Tropius.pleasure = Tropius.pleasure - 10
}
else if (random = 2) {
msg ("The Tropius thumped its belly on the ground to try and calm you down. It kind of worked.")
Tropius.pleasure = Tropius.pleasure - 10
}
else if (random = 3) {
msg ("Your struggles forced a belch out of the Tropius, and one that it didn't even seem like it enjoyed.")
Tropius.pleasure = Tropius.pleasure - 10
}
else {
msg ("The belly around you clenched tightly as you started to make a big fuss.")
Tropius.pleasure = Tropius.pleasure - 10
}
the Tropius's bowels]]>false")
SetTimeout (30) {
wait {
msg ("It could have been minutes, hours, or even days since you had fed yourself to the Tropius's fat rump. With the near impossibility of telling time so deep within the Pokemon, you had no way of knowing. All you could know is that you were getting closer and closer to the end of your voyage. The impatient burbling of the Pokemon's stomach could be heard echoing through the intestines in front of you, getting louder and louder as you approached your destination. Eventually, one of those rippling, muscular contractions pushed you right into a new, more spacious chamber, those rumbling and gurgling noises suddenly becoming much louder as there was no flesh between you and its source. Your head was dunked into a pool of thick, bubbly fluids, but thankfully as more of you was pushed out into the stomach, you were able to get yourself above water. A few more of those clenches, and your whole body had been pushed out into the Tropius's stomach, the sphincter behind you closing shut as the Pokemon's digestive tract decided you were right where you belong: curled up in a tight, uncompromising Tropius stomach… ")
Tropius.pleasure = Tropius.pleasure + 50
wait {
MoveObject (player, TropiusStomach)
}
}
}
}
]]>bowel wallsfalse
random = GetRandomInt(1,4)
if (random = 1) {
msg ("Your little bowel massage actually caused the walls around you to loosen their grip a little bit.")
Tropius.pleasure = Tropius.pleasure + 10
}
else if (random = 2) {
msg ("You tried to rub around inside the Tropius...but considering your position, it was pretty hard to get anything going.")
Tropius.pleasure = Tropius.pleasure + 10
}
else if (random = 3) {
msg ("You squirmed just enough to give the Tropius a little bit of a tingling feeling deep inside of them.")
Tropius.pleasure = Tropius.pleasure + 10
}
else {
msg ("The Pokemon shook its rump back and forth as you squirmed around inside, giving its belly a nice little jiggle.")
Tropius.pleasure = Tropius.pleasure + 10
}
random = GetRandomInt(1,4)
if (random = 1) {
msg ("Your struggles deep within the Tropius made it feel a tiny bit queasy, but not really anything else.")
Tropius.pleasure = Tropius.pleasure - 10
}
else if (random = 2) {
msg ("The gut walls around you clenched and tightened even harder as you kicked around inside of them. Seemed like they didn't like that…")
Tropius.pleasure = Tropius.pleasure - 10
}
else if (random = 3) {
msg ("Despite your best efforts, your squirms went mostly unnoticed by the big Tropius.")
Tropius.pleasure = Tropius.pleasure - 10
}
else {
msg ("Kicking and screaming like you were only seemed to increase the Pokemon's libido and accelerate your voyage deeper into it!")
Tropius.pleasure = Tropius.pleasure - 10
}
0000Milofalse
{if Scolipede.full=0:The horsebug Pokemon looks positively famished, practically drooling as he locks eyes with you. \"Huh? More sacrifices? Finally! I was getting a bit worried...\"}{if Scolipede.full=1:The bug's belly is comfortably full, occasional squirms and bulges still punching out from deep within it.}{if Scolipede.full=2:The bug looks quite full, his belly loudly groaning and gurgling as it tries to process the meals inside.}{if Scolipede.full=3:The bug's gut is positively stuffed, warbling loudly as the meals contained inside move about constantly. Milo's frequent belches echo throughout the forest as his gut tries to break down the massive meal the bug has given it.}{if Scolipede.sacfull=1:Milo's balls are swollen and squirming, practically begging for the sweet cream inside to be released!} {if Scolipede.sacfull=2:Milo's sac is positively packed. You can see a bit of cum leaking out of the tip of his fat, purple length!}")
if (Scolipede.pleasure >= 1000) {
firsttime {
msg ("Milo has now appeared in the Zoo!")
CloneObjectAndMove (Scolipede, Zoo)
}
}
ScolipedeList = NewStringList()
list add (ScolipedeList, "Oral")
if (Scolipede.full >= 1) {
list add (ScolipedeList, "Belly rubs")
}
if (Scolipede.pleasure >= 100) {
list add (ScolipedeList, "Anal")
}
if (Scolipede.pleasure >= 350) {
list add (ScolipedeList, "Cock")
}
if (Scolipede.pleasure >= 600) {
list add (ScolipedeList, "Sex")
}
ShowMenu ("How will you pleasure him?", ScolipedeList, false) {
if (result = "Oral") {
msg (" \"Oh, opting for the traditional route? Can't blame you.\" Milo teases, the bug pinning you under one of his feet. The approval of your sacrifice is signaled by one big glob of drool splattering down upon your head, the gloopy, warm substance absolutely covering your head and neck. It startles you a bit and giving you a little time to look up before the Scolipede comes down upon you, maw wide open, black lips quickly overtaking your field of view as you get a nice, deep look into the bug's purple mouth. You don't have much time to appreciate said view, though, before you feel your feet leave the ground, the moist, warm cavern of Milo's mouth becoming the only thing you could feel around you, besides the whisk of air rushing past your body as the bug brought his head back to normal level.
He tipped his head back a bit and loosened his lips, allowing more of your body to slide into his moist maw as the bug's tongue got to work on tasting you. The warm, gloopy drool that splattered on your head earlier is now coating your whole body, allowing the Scolipede's tongue to glide over you effortlessly. Milo slurps loudly, pulling more of your body into his mouth, leaving only your legs dangling outside, and your head quite close to the bug's throat. You had nowhere else to go but down, especially as the Scolipede tilted his head up further, your head sliding deeper into the bug's mouth, being nipped at by his hungry throat until-
*GLUP!*")
wait {
msg (" Your head and upper body are pulled into the bug's gullet with one powerful muscular contraction, the tight, fleshy throat making it difficult to squirm or wiggle about much. You feel the bug's lips close around your feet, Milo giving the newfound digits their own tongue bath. You're able to wiggle your feet around for a few moments before you feel Milo's powerful gullet tense around you one last time, the powerful fleshy tongue underneath you casually guiding the last of your body towards the hungry gullet, which greedily accepts this gift with one last, wet *GULP!*.
And with that final gulp, you can finally feel Milo's hot, wet throat pulsating and tightening around your whole body. The Scolipede would continue to make a series of minor swallows afterwards, aiding the natural peristalsis of his powerful throat walls. You feel the walls push deep into your body with every swallow, sluicing you deeper into the body of the bug. You can hear a tummy growl resonate from beneath you, long and ominous, before your head bumps up against a sphincter, much earlier than you expected it would...")
Scolipede.pleasure = Scolipede.pleasure + 50
MoveObject (player, ScolipedeStomach)
}
}
else if (result = "Belly rubs") {
msg (" \"That's not a bad idea. I could use some belly rubs right now, the snack I just had is still being a bit feisty in there...\" Milo said before adjusting himself, lying on his side, his black, slightly squirming gut now exposed to you. \"Go on, don't be shy...\" he teased. You slowly and hesitantly approached the churning, gurgling lower stomach, reaching out a hand to touch and squish the lovely softness in front of you. You were caught a bit off guard as it wiggled in response, but eventually you started getting a bit more into it, squishing both of your hands against the full belly and starting to rub in circles. You heard of the Scolipede chirp above you, a sign that you were doing a good job! “Ah...keep it up…” the Scolipede encouraged, his stomach rumbling underneath your grass before you heard a belch rumble out of his mouth. It seemed like you were doing a good job aiding his digestion…")
Scolipede.pleasure = Scolipede.pleasure + 50
Ask ("Keep rubbing?") {
if (result) {
msg (" And that's exactly what you did. You sank into this wonderful expanse of flesh beneath you, pressing in deeper, making those belly noises come as close to you as they possibly could. You thought you heard Milo chuckle as you did so, but all that you really cared about was this wonderful, plush tummy. You could feel your field of vision slowly become encompassed by it, the gut starting to surround you on all sides, or at least that's what you felt like it was doing...the embrace was warm, it was safe, it was absolutely wonderful. You couldn't pull away from it at this point, but it's not like you wanted to. He wanted you to be closer to this belly, to become part of it…
Milo lost track of how quickly he had been absorbing you at this point. He was more interested in the sensation of all of it, enjoying the feeling of his belly wrapping its form around you, slowly pulling you into the hungry, noisy stomach you had loved to so much. With how much of the stomach you had already experienced by being on the outside of it, you couldn't even tell when you were on the inside of it...the only thing that was different was that everything around you was a bit wetter. It didn't matter, though, you enjoyed it so much…
The only thing that snapped you out of your haze was the sound of another belch, but this time far deeper, surrounding you entirely. You started to move again, your movements being restricted by the stomach walls around you. Had you really been absorbed directly into this place that you loved and enjoyed so much...? Yes. And it was wonderful. The Scolipede chirped as he felt you wiggling inside, his stomach having claimed you entirely. “Welcome home…” he said as he rolled onto his side, watching his tummy jiggle around...")
wait {
MoveObject (player, ScolipedeLowerStomach)
Scolipede.pleasure = Scolipede.pleasure + 75
}
}
}
}
else if (result = "Anal") {
msg (" “Heh, I knew you wouldn't be able to resist these hips...many sacrifices have gone to making it even nicer and rounder than it used to be~” Milo said, turning around so that you could get a good view of his plush, pink cheeks, his dangling black sack, all of which outlined and brought attention to the center, in which your objective lay: the purple, hungry pucker of the Scolipede. He slowly backs his rear up towards you, you backing up yourself instinctively until you bump up against a tree. With nowhere to go, all you could do is watch as that round, pink Scolipede ass slowly descended on you, until...!
*Shlrp.*
Milo chirped as he felt his pucker grasp your nose. “Ooh, cold…” he said as he clenched around it, his ring quickly yawning open and expanding around your face. The road ahead was dark, wet, and had a bit of an earthy, musky scent able to be smelled from deeper within...it almost, almost made you want to dive deeper yourself, almost...but Milo was more than capable of sending you on your way himself. You could feel the bug press his haunches down onto you, his ass quickly expanding over your whole head and his pucker comfortably tightening around your neck with a wet shlorp! “Nngh…” you could hear Milo moan as he started to press deeper, his ample weight pushing you down onto your own rear, his pucker quickly expanding over the widest part of your body, your shoulders...from here on out, it would be a cakewalk to slurp up the rest of you into the bug’s tight guts.")
wait {
msg (" Speaking of those guts, even though you were a fair bit smaller than Milo, they still tightened and clamped around you all the same, each wet clench dragging you a few inches deeper into the beast. The power of this Scolipede was unmistakable in every clench - it felt like you were being dragged by a pickup truck through the mud...the wet squelching noises and the distant moans of the Scolipede certainly matched what you thought mud sounded like and what noises a truck made as it dragged something through that mess. Your arms were pinned tight to your sides as Milo continued pressing down, his pucker sliding easily over your chest and belly, leaving only your legs outside...although they were still being squished under the big bug. You were being held at quite the acute angle, and you were silently wishing Milo would just get on with it so you could at least be somewhat comfortable...!
You got your wish a few moments later, as Milo rose off his haunches, getting back on his four legs. He couldn't help but groan a little as he felt that unique sensation of someone wiggling so deep inside of him. “Hhhff.. that felt great…” the Scolipede said, an erection very visible underneath his squirming belly... In fact, every squirm you made was probably pressing up against it a little bit. “Time to lock you away though, my belly is grumbling~” he teased, your legs dangling out of his pucker awkwardly. But, with a few more tight clenches from the Scolipede too, they disappeared up his rump, beginning of the long and twisting journey to his stomach... ")
wait {
MoveObject (player, ScolipedeBowels)
Scolipede.pleasure = Scolipede.pleasure + 100
}
}
}
else if (result = "Cock") {
msg (" Milo didn't actually say anything this time. The Scolipede just smirked, before he started moving towards you, quickly barreling you over onto the ground, your feet resting on the forest floor just a few inches below his thick thighs. Just ahead of you, as you looked up, you saw something slowly start to slide out of a slit on Milo's underside and, just behind it, a dangling pair of dark, round balls. In no time at all, the Scolipede was fully erect, the purple shaft swelling before your very eyes, leaving the tip throbbing just a few feet from your face. “What are you waiting for?” the Scolipede questioned you from above, thrusting his thighs forward a bit to bring the tip closer to you. It was clear that he wanted you to initiate…the long, tentacle-like rod between his legs was almost as long as you were! And as you got closer, feeling its weight in your hands, you knew that the whole package was on display. You played around with it for a little bit, before Milo's annoyed voice came from above. “I'm telling you to get in it, not to play with it!” he said, before thrusting forward, somehow hitting home and sucking up your entire head into his length! You could feel his whole body shiver around your head as it was lodged inside those tight, wet walls, a potent scent coming from deeper within, sticking to the walls along with some wet lubrication. It smelled oddly sweet, almost like honey in a way...and you enjoyed it! ")
wait {
msg (" With your head already lodged inside first instead of your arms, there wasn't much else you could do but try your best to wiggle inside. Milo's insides did most of the work, the Scolipede clenching tightly around your body every minute or so, each contraction pulling a few more inches of you inside that hot, humid tunnel. You could tell that the Scolipede’s libido was picking up, the clenches slowly becoming quicker and tighter as time went on. Hus length had made its way around your shoulders with no problem, and was currently greedily gobbling up your waist! You could tell that you were getting deeper into his loins, the sounds and the smells of the outside world gradually being drowned out by Milo’s thumping heartbeat, the gurglings of his lower belly, and other deep, intimate sounds...and saying that his thick, sweet musk was anything but completely dominant would be an understatement at this point!
You could feel the tube around you starting to get more slick as you traveled in deeper, the Scolipede obviously starting to produce some lubricating pre from the feeling of you wiggling so deep inside his loins! All of that liquid around you only made the pungent, sweet odor filling your lungs even stronger, pulling you deeper into the Scolipede in its own unique way. You ultimately weren’t doing that much to feed yourself inside, but you sure were trying! And your wiggles probably contributed to Milo’s clenching as well, the Scolipede quickly only having your feet to deal with. And those were slurped up just as easily as the rest of your body was, leaving your form surrounded by those tight walls on every inch of your body…")
wait {
MoveObject (player, ScolipedeSac)
Scolipede.pleasure = Scolipede.pleasure + 100
}
}
}
else if (result = "Sex") {
ScolipedeSexList = NewStringList()
list add (ScolipedeSexList, "Blowjob")
list add (ScolipedeSexList, "Facesit")
ShowMenu ("", ScolipedeSexList, false) {
if (result = "Blowjob") {
msg (" “Ah, want a meal yourself, huh? Don't blame you~” Milo said as he quickly scuttled over, forcing you to kneel down as his underbelly quickly rushed over you. You saw his shaft starting to peek out from underneath him, already starting to become quite long as it hardened right in front of you. “Well, what are you waiting for?” you heard him say from up above as the tip of his cock hovered just a few inches from your face. You asked for this, after all. You slowly opened wide as you gripped his cock with both of your hands; there was simply no way you could get the entire thing in your mouth! You still wanted to please the big bug, though, so you took in as much as you could, your tongue rubbing across that tip in quite a wonderful way. The bit of pre you licked off tasted quite nice, sweet in a way, and it made you eager to get the rest of that cock in your mouth…")
wait {
msg (" You worked your lips down that shaft slowly, making sure to give it plenty of love with your tongue as it worked deeper into you. The chorus of wet slurping noises that came from below the bug only got him more aroused, and you could feel his length throbbing in your mouth before you even took all of it in! You stroked at the parts of the length that you had no hope of gobbling down, but the bug still appreciated it, starting to thrust into your mouth a little bit as his tip bumped up against the back of your craw. You had managed to get down about a fourth of this thick Scolipede cock; and that would have to do.
Milo certainly wasn't complaining. He was chirping guy and groaning away above you, gently thrusting his length into you. { you swore you could hear the sloshing of his sack as he thrust back and forth, starting to worry you a bit with how much was inside!} You started to move up and down the shaft yourself, still stroking at the parts you had no hope of reaching with your mouth; occasionally using your tongue to tease and taste at the tip again, getting that sweet pre flavor spreading across your tongue every now and then still. It was delectable, and you wanted more of it...!
Over time, that thrusting became a bit more forceful, the Scolipede clearly getting close to his orgasm. Eventually, you didn't really have to do anything with your mouth other than hold it open; Milo was doing all the work himself. It felt a bit uncomfortable to have his tip constantly jabbing you in the back of the throat, but you were still enjoying yourself. You could feel the pre practically leaking down your throat, and you knew the bug was close to blowing…")
wait {
if (Scolipede.sacfull = 0) {
msg (" The first spurt came out suddenly, although it wasn't nearly as strong as you pictured. You felt that warm cream trickling it down the back of your throat, tasting much like the pre, but much more intense and thick. Milo shuddered as he emptied himself out into you, the bug still enjoying his orgasm, although it was much less voluminous than both of you imagined. You took the few shots of jizz like a champ, feeling the trickle come to an end.Your belly was disappointingly empty, and you hungered for more. Maybe you should feed a bit more to the hungry cock…")
Scolipede.pleasure = Scolipede.pleasure + 50
}
else if (Scolipede.sacfull = 1) {
msg (" The first spurt thumped against the back of your mouth, and you felt it before you even tasted it! The honey sweetness was even more concentrated in the actual cum, and as the bug thrusted deeper to shoot more of his load down your throat, you eagerly accepted it. you gulped down everything Milo shot into you, the bug surprised at your capacity as he chirped and groaned in the process of emptying himself into you. Eventually, the wave of bug cream came to an end, a trickle of jizz running down your chin as you popped that spent dick out of your mouth. You felt satisfyingly full, a little paunch developing in your belly full of bug cum…")
Scolipede.pleasure = Scolipede.pleasure + 100
Scolipede.sacfull = 0
}
else {
msg (" Not even Milo was prepared for how much cream was about to come out of him. The first two shots funneled directly down your throat, with you unable to taste the cream as it just kept coming. Finally you were able to hold a shot in your mouth long enough to taste it, the undeniable sweetness making you wish you could have kept it there for longer...but as that cock continued to shoot out spurt after spurt of cream, you had no choice but to swallow it all down, already feeling in your gut starting to swell and bulge with the deluge of jizz. You cradled your growing belly as Milo continued to empty himself, the thick fluid becoming somewhat hard to swallow after you already took in so much!
It felt like you would be spending an eternity underneath this bug, taking every little drop of cream he had left inside of him, but eventually, you felt that surge in your mouth gently reduce to a trickle. You were absolutely full, more than full, even; your midsection resembled a balloon as you drooled cream out of your mouth, a sizable puddle of it still on the forest floor. The bug eventually pulled his dick out of you, and you heard him chirp from above. “Heh, even I didn't know I had that much in me…” he said as his shaft started to recede back into him.")
Scolipede.pleasure = Scolipede.pleasure + 200
Scolipede.sacfull = 0
}
}
}
}
else if (result = "Facesit") {
msg (" The bug looked bit confused at first. “You want me to...what? Sit on you?” You nodded to reaffirm yourself. The bug shook his head a little bit, before turning around. “Sacrifices are always so weird. I guess I'll enjoy it though…” he said as he aligned his ass with your face, giving you a nice view of the black pucker with just a hint of purple at the center, belying what lay beyond it. The bug slowly lowered his haunches, bringing the pucker closer and closer to you until, somewhat strongly, the bug sat back onto the ground, squishing you under his ass with a big *thump!* as thick bug glutes met the forest floor, and your face. The pressure and weight on top of you was massive and wonderful, Milo's soft ass enveloping your face,and Milo wasn't even pressing all of him on you yet! “Oh, maybe this will be more fun than I thought…” you heard Milo say as he started to grind his rump into you a little bit, that pucker poking right against your nose, giving you a good dose of the bug’s musk. It was oddly sweet, like honey, but laced with the familiar musky smell of a dominant male…
Gradually, Milo put more of his weight on you, letting you start to feel the pressure of his cheeks pressing down on you. In a good way, though: it brought that pucker close to you, let him grind that flesh right up against all your sensory organs, going across your nose all the way down to your neck and back up. It was clear that the Scolipede was enjoying himself, probably much more than he let on. He especially liked the feeling of you wiggling underneath him in such a sensitive spot! He couldn't help but feel that there was a bit missing, though… “Hey, while you're down there, mind eating me out?”")
Tropius.pleasure = Tropius.pleasure + 50
Ask ("") {
if (result) {
msg (" You had no way to affirm your consent from down here verbally, so you decided to just get on with it. Eating out the Scolipede sounded like a wonderful idea, and Milo agreed as he felt your tongue slide teasingly across his pucker, the bug immediately grinding down on that wet flesh as he felt it slide past him.”Ahh, that's more like it~” he groaned as he felt your tongue start to venture further, teasing and poking at the center of that pucker before sliding right in. The Scolipede’s taste was wonderful, and you simply had to get more of it! You quickly pressed your face as close to that soft pucker as you possibly could, reaching your arms around to get a grip on those thick, plush bug cheeks for leverage. This ass was simply amazing, and you were going to DEVOUR it!")
wait {
msg (" Your tongue burrowed as deep as it could go, lapping and tasting that amazing, plush butt. It had a distinctly earthy flavor, with a bit of musk and even sweetness to it...it was simply intoxicating. You had to get all of it. You pulled your tongue out to give a few more teasing the licks to that round, soft anus before plunging back inside, feeling Milo grind down on your tongue and face again in response to the sensation. “Damn, you're better at this than I thought…” he commented as he started to get more and more aroused himself, the sweetness of his musk only increasing as his arousal did. You just had to have more. You needed to go deeper.
You gave Milo no warning as you took your arms away from his cheeks, using them instead to stretch open his pucker as wide as it could go. For a moment, the Scolipede wondered what you were doing down there, but as he felt you press your face and head right against his picker, he knew exactly what was going on. He chuckled as he felt you starting to wiggle up inside of him entirely, clearly intoxicated by that wonderful flavor and scent coming from deep within his body. “Nngh, get all up in there, musk slut~” he taunted as your neck popped inside with a deep *shlrp!*, all of your sensory organs now able to hear the burbling around you, feel the tightness of Milo's ass as it clenched and pulled your head deeper. Now that the Scolipede was aroused, and now that a considerable part of your body that was lodged in his ass, getting the rest of you inside would be a lot easier.")
wait {
msg (" The toughest thing the bug Pokemon had to work around where your shoulders, and with his pucker already stretched out from you prying it open earlier, there wasn't much else he had to do. Really, with you wiggling deeper like you were, all he had to do was clench occasionally when you had trouble getting more of you inside that lovely rump;which, with how eager you were to bury yourself inside, was rarely an issue. You worked your shoulders inside with ease, and only a few minutes afterwards you had your whole chest comfortably inside those tight bowels. You were still licking those fleshy walls occasionally, noticing the subtle changes in the flavor and sweetness as you worked your way deeper and deeper into Milo, giving the bug a light tickling sensation to enjoy deep inside of him along with the overwhelming feeling of someone wiggling right up your rump!
It didn't take much longer for you to wiggle and clench your way all the way up to your legs. You felt your environment start to move around you as the Scolipede got up off his haunches, lifting his ass up in the air to get the last of you inside of him. “Just a bit more~” he teased as he continued to pull the last of you inside, your feet slipping past that plush, soft pucker with wonderful wet slurping sounds, marking the end of the beginning of your journey deep into the bug Pokemon... ")
Tropius.pleasure = Tropius.pleasure + 75
wait {
MoveObject (player, TropiusBowels)
}
}
}
}
}
}
}
}
}
]]>Milo's stomach “Mmm...just relax in there until I'm hungry, sacrifice~” you heard the Scolipede’s voice rumble, somewhat obstructed by layers of bug fat and the cacophony of gurgles and groans around you. Seemed like you would be in it for the long haul... ]]>falseYou had been wiggling around in the bug’s for stomach for a while. While the air was a bit heavy to breathe in, and you were coated in what looked and felt like sticky saliva, there wasn't really any digestive process going on yet. Eventually, though, you felt the tight chamber squeeze around you, trying to press you deeper into the bug...in the darkness, you couldn't see where you were going, but you felt your foot squish past another sphincter, Milo's guts quickly yanking at the foot, the tight embrace of his bowel walls snatching on to that appendage and dragging you in...the undulating movements felt a lot like swallows, but Milo wasn't controlling them; at this point, you were food, and his body could handle you appropriately. A few inches of you disappeared deeper into the bug with every pseudo swallow until you felt the sphincter close around the top of your head, your body snug in a tight tube, not unlike the bug’s throat…")
wait {
msg (" The tight, slick embrace of Milo’s guts quickly moved you along, your feet pressing up against another sphincter in no time. You were quickly dumped out into what felt like a fleshy hammock; the constant wobbling side to side of the stomach and the lack of any surface beneath you made it clear that you were now in the lower belly of the Scolipede. The stomach was quite a bit longer than it was tall, and you were basically forced to lay down inside of it, not unlike a snake’s stomach…")
wait {
MoveObject (player, ScolipedeLowerStomach)
}
}
}
}
]]>stomach wallsfalse
random = GetRandomInt(1,4)
if (random = 1) {
msg ("You heard Milo chitter outside. “Oh, keep going, that feels nice…”")
Scolipede.pleasure = Scolipede.pleasure + 10
}
else if (random = 2) {
msg ("The bug rubbed back at you with his feeler. “I'm glad you're enjoying this~\"")
Scolipede.pleasure = Scolipede.pleasure + 10
}
else if (random = 3) {
msg ("You gave the stomach walls a massage, hearing them rumble delightfully around you as you did.")
Scolipede.pleasure = Scolipede.pleasure + 10
}
else {
msg ("You swirled your hand in a circle on a certain spot in the stomach. “Oh, right there…” The bug confirmed, urging you to keep going.")
Scolipede.pleasure = Scolipede.pleasure + 10
}
random = GetRandomInt(1,4)
if (random = 1) {
msg ("“Hey, calm down in there! This is your destiny…” the bug chided you as you squirmed around in his belly.")
Scolipede.pleasure = Scolipede.pleasure - 10
}
else if (random = 2) {
msg ("You slammed a fist into the stomach walls. They rumbled and lurched around you, before Milo let out a long belch. “All you're doing is making it tighter in there…” the bug responded.")
Scolipede.pleasure = Scolipede.pleasure - 10
}
else if (random = 3) {
msg ("You thought you were getting a reaction out of Milo, but suddenly you felt the world lurch around you, and then a powerful weight on top of you! Milo squished his belly against the ground, hearing a deep gargle emit from his stomach as it crushed around you. “Knock it off in there…” he said. ")
Scolipede.pleasure = Scolipede.pleasure - 10
}
else {
msg ("“Ugh, sacrifices. Always so flaky…” Milo complained.")
Scolipede.pleasure = Scolipede.pleasure - 10
}
Milo's lower stomachDistantly, you heard a thunderous belch rumble out of Milo. Then, you felt your world shift, the bug suddenly flipping over onto his back, the entire front of your body slamming right into the top of his stomach! The impact left you a little dazed, but you could still feel some impressions being made on your back, Milo thoroughly enjoying his meal, rubbing at it with both of his feelers as he felt you wiggle around inside. The inside of the stomach certainly smelled more acidic, and the fluids inside were a lot stickier and thicker...this was most certainly a digestive chamber!falseYou could feel your body starting to tingle slightly the longer you stayed in this stomach. The tight walls were constantly pressing against your form, working their fluids deeper into you...you couldn't help but wonder how much longer it would be before you were part of this beast. ")
SetTimeout (30) {
wait {
msg (" The tight Scolipede belly had done a great job of wearing you down in preparation for being a meal. The hot, wet, caustic environment seem to sap up more of your strength every second, you finding it difficult to rub and struggle at this point...the gut walls tightened around you as Milo burped again, before you felt your consciousness start to fade...your whole body was tingling at this point, the sensation overwhelming your body, enveloping you as you faded away deep in the Scolipede stomach...
Milo pressed a feeler into his gut as he heard it rumble loudly as you started to melt up inside. He chirped as he felt the pleasant squish of a full stomach, the bulging struggles and rubs that you were making slowly starting to be replaced with a holistic roundness. Although you didn't make much of a bulge in his stomach in the first place, he could still feel it as you gradually melted away into soup inside, gradually working your way deeper into his guts, being absorbed and added to his hips and butt...you would make a nice soft layer on his rear, that's for sure~ ")
Scolipede.pleasure = Scolipede.pleasure + 75
Scolipede.full = Scolipede.full + 1
MoveObject (player, ForestBattle)
}
}
}
]]>stomach wallsfalse
random = GetRandomInt(1,4)
if (random = 1) {
msg ("Milo touched a feeler to the spot you were rubbing at. “Gosh, you're pretty good at this…” he said, letting out a breath. He wasn't used to the sensation…")
Scolipede.pleasure = Scolipede.pleasure + 10
}
else if (random = 2) {
msg ("You rubbed towards the back half of his stomach...the Scolipede blushed as he felt where you were trying to get at, his sack being jostled by your rubbing a bit... “Silly snack, could have just asked me to fill you up…” Milo teased in response.")
Scolipede.pleasure = Scolipede.pleasure + 10
}
else if (random = 3) {
msg ("You worked your fingers between the fleshy outcroppings on the stomach walls, rubbing parallel to them.")
Scolipede.pleasure = Scolipede.pleasure + 10
}
else {
msg ("Both of your hands pressed at the top of the belly, then started swirling around in circles. Milo let out a chirping noise in response.")
Scolipede.pleasure = Scolipede.pleasure + 10
}
random = GetRandomInt(1,4)
if (random = 1) {
msg ("The stomach grumbled around you before tightening in response to your struggles, working those fluids deeper into your skin.")
Scolipede.pleasure = Scolipede.pleasure - 10
}
else if (random = 2) {
msg ("Milo was a bit surprised to feel your struggles still. “How do you still have energy down there...?” he mumbled, before rolling over onto his stomach, crushing your struggles quickly beneath his weight…")
Scolipede.pleasure = Scolipede.pleasure - 10
}
else if (random = 3) {
msg ("The stomach tensed up before you hear another far-off belch from the Scolipede. “Wow, I can still taste you…” He remarked, smacking his lips a bit at your taste.")
Scolipede.pleasure = Scolipede.pleasure - 10
}
else {
msg ("The Scolipede poked at you with the feeler. “Just calm down in there and digest…” He said softly.")
Scolipede.pleasure = Scolipede.pleasure - 10
}
Milo's bowels]]>falseIt felt like you had been squishing and squelching your way through these bowels for hours at this point...keeping track of time was hard, especially because the limited air deep in the Scolipede’s guts was making it hard to think clearly. You just hoped you would get to somewhere roomier soon…")
SetTimeout (30) {
wait {
msg (" After what seemed like forever winding your way deeper and deeper into the bug’s belly, you finally felt something yawn open in front of your head. You knew what you had been getting closer to for a while, the gurgling and groans of the bug’s stomach getting louder and louder, but now it felt like you were standing right next to a soup kitchen...slowly, thats sphincter widened, your head slowly getting pushed out into Milo's hungry lower belly. The musky odor of the bug’s bowels had been replaced with an acidic tinge that made your nostrils tingle a little bit, but at least it was a roomier chamber...although, with how long it was, it more felt like an extension of Milo's bowels than anything. Slowly, Milo’s body pushed the rest out of you out into his stomach, the gut rumbling loudly in approval as it began to fill with your form. The bug chirped as he felt the familiar sloshing weight of a full belly of food beneath him. “Mmm, all mine now, lunch~” He said as he felt the last of you squeeze out into his stomach, the digestive process seemingly already starting…")
Scolipede.pleasure = Scolipede.pleasure + 50
wait {
MoveObject (player, ScolipedeLowerStomach)
}
}
}
}
]]>bowel wallsfalse
random = GetRandomInt(1,4)
if (random = 1) {
msg ("In lieu of the ability to rub at the bowel walls with your hands, you kneaded your shoulders into them a little bit. It was a bit sharp, but you figured the bug still appreciated it.")
Scolipede.pleasure = Scolipede.pleasure + 10
}
else if (random = 2) {
msg ("You tried to get comfortable inside the bowels, but tenderly - you didn't want the bug to think you were struggling…")
Scolipede.pleasure = Scolipede.pleasure + 10
}
else if (random = 3) {
msg ("You pressed the backs of your hands into the tight bowels and rubbed around in circles the best you could. Judging by a far-off chirp, you must have been doing a good enough job!")
Scolipede.pleasure = Scolipede.pleasure + 10
}
else {
msg ("Whatever little rubs you made seemed to relax the bowels a bit, them loosening up a bit around you. Good thing, it felt super tight…")
Scolipede.pleasure = Scolipede.pleasure + 10
}
random = GetRandomInt(1,4)
if (random = 1) {
msg ("The bowels tightened even harder around you as you struggled. Goodness, they were going to take the wind out of you soon…")
Scolipede.pleasure = Scolipede.pleasure - 10
}
else if (random = 2) {
msg ("You could hear Milo's voice, somehow, past all the bodily noises and sheer distance. “I'll be honest, those struggles feel pretty nice…”")
Scolipede.pleasure = Scolipede.pleasure - 10
}
else if (random = 3) {
msg ("You could feel yourself shoot ahead, the struggles triggering some sort of clenching reflex that squeezed you even deeper! Not what you wanted exactly.")
Scolipede.pleasure = Scolipede.pleasure - 10
}
else {
msg ("You tried to struggle deep inside of the bug, but your enclosure was so tight that you could barely make any sort of movement at all. ")
Scolipede.pleasure = Scolipede.pleasure - 10
}
Milo's sacfalseThe sensation of being completely wrapped in tight shaft walls was short-lived, though. A few clenches later and your head poked out into Milo's sack. Although it was quite dark inside, you could tell that the chamber was {if Scolipede.sacfull=0: actually quite empty; although the pungent sweet scent of Milo’s musk still dominated the air inside. Another series of clinches pushed your waist out into the sack, allowing you to touch the other side and start to align your body so that you would curl up as the Pokemon pushed the rest of you out into his sack. You were thankful that the chamber wasn't sloshing and full of cream, because it would be difficult to keep your head above it if it was! Soon, your feet squeezed out of the shaft, allowing you to curl up inside Milo's sac, the Pokemon's body already starting to sap a bit of your strength with the powerful heat and arousal inside. The chamber was already starting to fill with a bit of cream now that you were nice and snug inside, and soon you knew that you become part of it!} {if Scolipede.sacfull=1: comfortably full of Scolipede cream, the thick fluid making a pool at the bottom of the sack and sticking to you as you were squeezed out inside of the chamber. The cream was already starting to soak into your skin, leaving a pleasant tingling wherever you rubbed up against any of it inside of the Pokemon's balls. Soon, you were completely clenched out into the Pokemon’s sack, curled up nice and tight and encased by those taut, stretchy sac walls. The pool at the bottom of the sac was already starting to rise, bathing you in a boiling sauna of lust…} {if Scolipede.sacfull=2: already completely full of hot Scolipede cream! You were immersed into the pool as soon as possible, the tingling spreading throughout your body almost immediately. You couldn't find your way to the top of the chamber for the hope to get a breath or two of air, but it didn't matter; you melted as soon as the last of you was clenched out into the chamber, the cream quickly and developing your entire body and turning you into more of it. In a matter of minutes, you went from a solid, wiggling snack to more hot, fresh cum, but with the chamber already full of it, there was nowhere for it to go but out…
Milo looked down a few minutes later, feeling an unfamiliar sensation in his loins. The Pokemon was surprised to see his cock dribbling some fresh cream, a small pool of the fluid already forming on the ground beneath him! “Geez, I didn't know I needed to release that badly! Guess I should stick myself in one of those sacrifices next time instead of sticking them in me…” he commented; although he did like the idea of casually making a mess like that...}")
if (Scolipede.sacfull = 2) {
wait {
Scolipede.pleasure = Scolipede.pleasure + 100
MoveObject (player, ForestBattle)
}
}
]]>As the cream in the chamber continued to rise, you felt the tingling start to spread over your body as well, starting to override your sense of touch with an invasive, yet strangely enjoyable feeling. It felt like you were melting away into the bubbling cauldron you were immersed in, possibly because you actually were! It wouldn't be long now…")
SetTimeout (30) {
wait {
msg (" The chamber continued to fill with cream, and with it, you felt more and more of yourself start to slip away. Those sack walls pressed around you so tight, massaging the thick, sticky jizz into your entire form, steadily going through the process of turning you into more orgasm fuel for the Pokemon. You felt your consciousness start to fade away as more and more of you melted into the pool surrounding you, the stretchy, outlined bulges you made in Milo's sac starting to round out and become more vague as the contents inside became much more liquid. It wouldn't take long before you were nothing but Scolipede cum, the chamber filling up {if Scolipede.sacfull=0: a healthy amount} {if Scolipede.sacfull=1: all the way} with your contribution, Milo starting to feel the need to release... ")
Scolipede.pleasure = Scolipede.pleasure + 100
Scolipede.sacfull = Scolipede.sacfull + 1
MoveObject (player, ForestBattle)
}
}
}
]]>sac wallsfalse
random = GetRandomInt(1,4)
if (random = 1) {
msg ("You rubbed your hands in circles against the sack walls, hearing the Scolipede chirp lustfully in response. “Ooh, keep doing that…”")
Scolipede.pleasure = Scolipede.pleasure + 10
}
else if (random = 2) {
msg ("You pressed a foot into your taut surroundings, surprised at how stretchy the walls ended up being!")
Scolipede.pleasure = Scolipede.pleasure + 10
}
else if (random = 3) {
msg ("You wiggled around inside your tight enclosure, trying to get as comfortable as possible and please Milo in the process.")
Scolipede.pleasure = Scolipede.pleasure + 10
}
else {
msg ("You pressed against the sack walls, massaging them and feeling the heat in the chamber rise in accordance with the Scolipede’s lust.")
Scolipede.pleasure = Scolipede.pleasure + 10
}
random = GetRandomInt(1,4)
if (random = 1) {
msg ("You pressed out against the tight walls, making the bug Pokemon wince a bit.")
Scolipede.pleasure = Scolipede.pleasure - 10
}
else if (random = 2) {
msg ("You struggled around inside Milo, the Pokemon exclaiming “Stop being so rough in there!” in response.")
Scolipede.pleasure = Scolipede.pleasure - 10
}
else if (random = 3) {
msg ("The stomach tensed up before you hear another far-off belch from the Scolipede. “Wow, I can still taste you…” He remarked, smacking his lips a bit at your taste.")
Scolipede.pleasure = Scolipede.pleasure - 10
}
else {
msg ("Milo felt a heavy sloshing inside of him as you struggled around. All it did was drive his lust a little bit more... ")
Scolipede.pleasure = Scolipede.pleasure - 10
}
approachapproach"You can't approach " + object.article + "."rubrub"You can't rub " + object.article + "."strugglestruggle"You can't struggle " + object.article + "."ForestThe elder’s voice was ringing in your ear again. “This is your moment! You will have to offer yourself to the Pokemon, only then will it accept the sacrifice. I do have to warn you, you will feel every sensation as you travel through their body. I've had some say that they enjoy it, others...well, they didn't stay around for too long. Once the sacrifice has been complete, you will be transferred to another body to continue your duty, so do not fret...that also allows you to play around with these beasts, if you wish. I have heard stories of feeders being lodged in...unique places…”")
}
}
]]>\"This is the zoo,\" you heard the elder's voice speak once more. \"This is where we keep specimens of the various Pokemon in our area, for observation. If you please a Pokemon enough, they will end up here for...continued study.\"")
}
]]>1000000Milofalsefalse
{if Scolipede1.full=0:The horsebug Pokemon looks positively famished, practically drooling as he locks eyes with you. \"Huh? More sacrifices? Finally! I was getting a bit worried...\"}{if Scolipede1.full=1:The bug's belly is comfortably full, occasional squirms and bulges still punching out from deep within it.}{if Scolipede1.full=2:The bug looks quite full, his belly loudly groaning and gurgling as it tries to process the meals inside.}{if Scolipede1.full=3:The bug's gut is positively stuffed, warbling loudly as the meals contained inside move about constantly. Milo's frequent belches echo throughout the forest as his gut tries to break down the massive meal the bug has given it.}{if Scolipede1.sacfull=1:Milo's balls are swollen and squirming, practically begging for the sweet cream inside to be released!} {if Scolipede1.sacfull=2:Milo's sac is positively packed. You can see a bit of cum leaking out of the tip of his fat, purple length!}")
ScolipedeList = NewStringList()
list add (ScolipedeList, "Oral")
if (Scolipede1.full >= 1) {
list add (ScolipedeList, "Belly rubs")
}
if (Scolipede1.pleasure >= 100) {
list add (ScolipedeList, "Anal")
}
if (Scolipede1.pleasure >= 350) {
list add (ScolipedeList, "Cock")
}
if (Scolipede1.pleasure >= 600) {
list add (ScolipedeList, "Sex")
}
ShowMenu ("How will you pleasure him?", ScolipedeList, false) {
if (result = "Oral") {
msg (" \"Oh, opting for the traditional route? Can't blame you.\" Milo teases, the bug pinning you under one of his feet. The approval of your sacrifice is signaled by one big glob of drool splattering down upon your head, the gloopy, warm substance absolutely covering your head and neck. It startles you a bit and giving you a little time to look up before the Scolipede comes down upon you, maw wide open, black lips quickly overtaking your field of view as you get a nice, deep look into the bug's purple mouth. You don't have much time to appreciate said view, though, before you feel your feet leave the ground, the moist, warm cavern of Milo's mouth becoming the only thing you could feel around you, besides the whisk of air rushing past your body as the bug brought his head back to normal level.
He tipped his head back a bit and loosened his lips, allowing more of your body to slide into his moist maw as the bug's tongue got to work on tasting you. The warm, gloopy drool that splattered on your head earlier is now coating your whole body, allowing the Scolipede's tongue to glide over you effortlessly. Milo slurps loudly, pulling more of your body into his mouth, leaving only your legs dangling outside, and your head quite close to the bug's throat. You had nowhere else to go but down, especially as the Scolipede tilted his head up further, your head sliding deeper into the bug's mouth, being nipped at by his hungry throat until-
*GLUP!*")
wait {
msg (" Your head and upper body are pulled into the bug's gullet with one powerful muscular contraction, the tight, fleshy throat making it difficult to squirm or wiggle about much. You feel the bug's lips close around your feet, Milo giving the newfound digits their own tongue bath. You're able to wiggle your feet around for a few moments before you feel Milo's powerful gullet tense around you one last time, the powerful fleshy tongue underneath you casually guiding the last of your body towards the hungry gullet, which greedily accepts this gift with one last, wet *GULP!*.
And with that final gulp, you can finally feel Milo's hot, wet throat pulsating and tightening around your whole body. The Scolipede would continue to make a series of minor swallows afterwards, aiding the natural peristalsis of his powerful throat walls. You feel the walls push deep into your body with every swallow, sluicing you deeper into the body of the bug. You can hear a tummy growl resonate from beneath you, long and ominous, before your head bumps up against a sphincter, much earlier than you expected it would...")
MoveObject (player, ScolipedeStomach1)
}
}
else if (result = "Belly rubs") {
msg (" \"That's not a bad idea. I could use some belly rubs right now, the snack I just had is still being a bit feisty in there...\" Milo said before adjusting himself, lying on his side, his black, slightly squirming gut now exposed to you. \"Go on, don't be shy...\" he teased. You slowly and hesitantly approached the churning, gurgling lower stomach, reaching out a hand to touch and squish the lovely softness in front of you. You were caught a bit off guard as it wiggled in response, but eventually you started getting a bit more into it, squishing both of your hands against the full belly and starting to rub in circles. You heard of the Scolipede chirp above you, a sign that you were doing a good job! “Ah...keep it up…” the Scolipede encouraged, his stomach rumbling underneath your grass before you heard a belch rumble out of his mouth. It seemed like you were doing a good job aiding his digestion…")
Scolipede1.pleasure = Scolipede1.pleasure + 50
Ask ("Keep rubbing?") {
if (result) {
msg (" And that's exactly what you did. You sank into this wonderful expanse of flesh beneath you, pressing in deeper, making those belly noises come as close to you as they possibly could. You thought you heard Milo chuckle as you did so, but all that you really cared about was this wonderful, plush tummy. You could feel your field of vision slowly become encompassed by it, the gut starting to surround you on all sides, or at least that's what you felt like it was doing...the embrace was warm, it was safe, it was absolutely wonderful. You couldn't pull away from it at this point, but it's not like you wanted to. He wanted you to be closer to this belly, to become part of it…
Milo lost track of how quickly he had been absorbing you at this point. He was more interested in the sensation of all of it, enjoying the feeling of his belly wrapping its form around you, slowly pulling you into the hungry, noisy stomach you had loved to so much. With how much of the stomach you had already experienced by being on the outside of it, you couldn't even tell when you were on the inside of it...the only thing that was different was that everything around you was a bit wetter. It didn't matter, though, you enjoyed it so much…
The only thing that snapped you out of your haze was the sound of another belch, but this time far deeper, surrounding you entirely. You started to move again, your movements being restricted by the stomach walls around you. Had you really been absorbed directly into this place that you loved and enjoyed so much...? Yes. And it was wonderful. The Scolipede chirped as he felt you wiggling inside, his stomach having claimed you entirely. “Welcome home…” he said as he rolled onto his side, watching his tummy jiggle around...")
wait {
MoveObject (player, ScolipedeLowerStomach1)
}
}
}
}
else if (result = "Anal") {
msg (" “Heh, I knew you wouldn't be able to resist these hips...many sacrifices have gone to making it even nicer and rounder than it used to be~” Milo said, turning around so that you could get a good view of his plush, pink cheeks, his dangling black sack, all of which outlined and brought attention to the center, in which your objective lay: the purple, hungry pucker of the Scolipede1. He slowly backs his rear up towards you, you backing up yourself instinctively until you bump up against a tree. With nowhere to go, all you could do is watch as that round, pink Scolipede ass slowly descended on you, until...!
*Shlrp.*
Milo chirped as he felt his pucker grasp your nose. “Ooh, cold…” he said as he clenched around it, his ring quickly yawning open and expanding around your face. The road ahead was dark, wet, and had a bit of an earthy, musky scent able to be smelled from deeper within...it almost, almost made you want to dive deeper yourself, almost...but Milo was more than capable of sending you on your way himself. You could feel the bug press his haunches down onto you, his ass quickly expanding over your whole head and his pucker comfortably tightening around your neck with a wet shlorp! “Nngh…” you could hear Milo moan as he started to press deeper, his ample weight pushing you down onto your own rear, his pucker quickly expanding over the widest part of your body, your shoulders...from here on out, it would be a cakewalk to slurp up the rest of you into the bug’s tight guts.")
wait {
msg (" Speaking of those guts, even though you were a fair bit smaller than Milo, they still tightened and clamped around you all the same, each wet clench dragging you a few inches deeper into the beast. The power of this Scolipede was unmistakable in every clench - it felt like you were being dragged by a pickup truck through the mud...the wet squelching noises and the distant moans of the Scolipede certainly matched what you thought mud sounded like and what noises a truck made as it dragged something through that mess. Your arms were pinned tight to your sides as Milo continued pressing down, his pucker sliding easily over your chest and belly, leaving only your legs outside...although they were still being squished under the big bug. You were being held at quite the acute angle, and you were silently wishing Milo would just get on with it so you could at least be somewhat comfortable...!
You got your wish a few moments later, as Milo rose off his haunches, getting back on his four legs. He couldn't help but groan a little as he felt that unique sensation of someone wiggling so deep inside of him. “Hhhff.. that felt great…” the Scolipede said, an erection very visible underneath his squirming belly... In fact, every squirm you made was probably pressing up against it a little bit. “Time to lock you away though, my belly is grumbling~” he teased, your legs dangling out of his pucker awkwardly. But, with a few more tight clenches from the Scolipede too, they disappeared up his rump, beginning of the long and twisting journey to his stomach... ")
wait {
MoveObject (player, ScolipedeBowels1)
}
}
}
else if (result = "Cock") {
msg (" Milo didn't actually say anything this time. The Scolipede just smirked, before he started moving towards you, quickly barreling you over onto the ground, your feet resting on the forest floor just a few inches below his thick thighs. Just ahead of you, as you looked up, you saw something slowly start to slide out of a slit on Milo's underside and, just behind it, a dangling pair of dark, round balls. In no time at all, the Scolipede was fully erect, the purple shaft swelling before your very eyes, leaving the tip throbbing just a few feet from your face. “What are you waiting for?” the Scolipede questioned you from above, thrusting his thighs forward a bit to bring the tip closer to you. It was clear that he wanted you to initiate…the long, tentacle-like rod between his legs was almost as long as you were! And as you got closer, feeling its weight in your hands, you knew that the whole package was on display. You played around with it for a little bit, before Milo's annoyed voice came from above. “I'm telling you to get in it, not to play with it!” he said, before thrusting forward, somehow hitting home and sucking up your entire head into his length! You could feel his whole body shiver around your head as it was lodged inside those tight, wet walls, a potent scent coming from deeper within, sticking to the walls along with some wet lubrication. It smelled oddly sweet, almost like honey in a way...and you enjoyed it! ")
wait {
msg (" With your head already lodged inside first instead of your arms, there wasn't much else you could do but try your best to wiggle inside. Milo's insides did most of the work, the Scolipede clenching tightly around your body every minute or so, each contraction pulling a few more inches of you inside that hot, humid tunnel. You could tell that the Scolipede’s libido was picking up, the clenches slowly becoming quicker and tighter as time went on. Hus length had made its way around your shoulders with no problem, and was currently greedily gobbling up your waist! You could tell that you were getting deeper into his loins, the sounds and the smells of the outside world gradually being drowned out by Milo’s thumping heartbeat, the gurglings of his lower belly, and other deep, intimate sounds...and saying that his thick, sweet musk was anything but completely dominant would be an understatement at this point!
You could feel the tube around you starting to get more slick as you traveled in deeper, the Scolipede obviously starting to produce some lubricating pre from the feeling of you wiggling so deep inside his loins! All of that liquid around you only made the pungent, sweet odor filling your lungs even stronger, pulling you deeper into the Scolipede in its own unique way. You ultimately weren’t doing that much to feed yourself inside, but you sure were trying! And your wiggles probably contributed to Milo’s clenching as well, the Scolipede quickly only having your feet to deal with. And those were slurped up just as easily as the rest of your body was, leaving your form surrounded by those tight walls on every inch of your body…")
wait {
MoveObject (player, ScolipedeSac1)
}
}
}
else if (result = "Sex") {
ScolipedeSexList = NewStringList()
list add (ScolipedeSexList, "Blowjob")
list add (ScolipedeSexList, "Facesit")
ShowMenu ("", ScolipedeSexList, false) {
if (result = "Blowjob") {
msg (" “Ah, want a meal yourself, huh? Don't blame you~” Milo said as he quickly scuttled over, forcing you to kneel down as his underbelly quickly rushed over you. You saw his shaft starting to peek out from underneath him, already starting to become quite long as it hardened right in front of you. “Well, what are you waiting for?” you heard him say from up above as the tip of his cock hovered just a few inches from your face. You asked for this, after all. You slowly opened wide as you gripped his cock with both of your hands; there was simply no way you could get the entire thing in your mouth! You still wanted to please the big bug, though, so you took in as much as you could, your tongue rubbing across that tip in quite a wonderful way. The bit of pre you licked off tasted quite nice, sweet in a way, and it made you eager to get the rest of that cock in your mouth…")
wait {
msg (" You worked your lips down that shaft slowly, making sure to give it plenty of love with your tongue as it worked deeper into you. The chorus of wet slurping noises that came from below the bug only got him more aroused, and you could feel his length throbbing in your mouth before you even took all of it in! You stroked at the parts of the length that you had no hope of gobbling down, but the bug still appreciated it, starting to thrust into your mouth a little bit as his tip bumped up against the back of your craw. You had managed to get down about a fourth of this thick Scolipede cock; and that would have to do.
Milo certainly wasn't complaining. He was chirping guy and groaning away above you, gently thrusting his length into you. { you swore you could hear the sloshing of his sack as he thrust back and forth, starting to worry you a bit with how much was inside!} You started to move up and down the shaft yourself, still stroking at the parts you had no hope of reaching with your mouth; occasionally using your tongue to tease and taste at the tip again, getting that sweet pre flavor spreading across your tongue every now and then still. It was delectable, and you wanted more of it...!
Over time, that thrusting became a bit more forceful, the Scolipede clearly getting close to his orgasm. Eventually, you didn't really have to do anything with your mouth other than hold it open; Milo was doing all the work himself. It felt a bit uncomfortable to have his tip constantly jabbing you in the back of the throat, but you were still enjoying yourself. You could feel the pre practically leaking down your throat, and you knew the bug was close to blowing…")
wait {
if (Scolipede1.sacfull = 0) {
msg (" The first spurt came out suddenly, although it wasn't nearly as strong as you pictured. You felt that warm cream trickling it down the back of your throat, tasting much like the pre, but much more intense and thick. Milo shuddered as he emptied himself out into you, the bug still enjoying his orgasm, although it was much less voluminous than both of you imagined. You took the few shots of jizz like a champ, feeling the trickle come to an end.Your belly was disappointingly empty, and you hungered for more. Maybe you should feed a bit more to the hungry cock…")
Scolipede1.pleasure = Scolipede1.pleasure + 50
}
else if (Scolipede1.sacfull = 1) {
msg (" The first spurt thumped against the back of your mouth, and you felt it before you even tasted it! The honey sweetness was even more concentrated in the actual cum, and as the bug thrusted deeper to shoot more of his load down your throat, you eagerly accepted it. you gulped down everything Milo shot into you, the bug surprised at your capacity as he chirped and groaned in the process of emptying himself into you. Eventually, the wave of bug cream came to an end, a trickle of jizz running down your chin as you popped that spent dick out of your mouth. You felt satisfyingly full, a little paunch developing in your belly full of bug cum…")
Scolipede1.pleasure = Scolipede1.pleasure + 100
Scolipede1.sacfull = 0
}
else {
msg (" Not even Milo was prepared for how much cream was about to come out of him. The first two shots funneled directly down your throat, with you unable to taste the cream as it just kept coming. Finally you were able to hold a shot in your mouth long enough to taste it, the undeniable sweetness making you wish you could have kept it there for longer...but as that cock continued to shoot out spurt after spurt of cream, you had no choice but to swallow it all down, already feeling in your gut starting to swell and bulge with the deluge of jizz. You cradled your growing belly as Milo continued to empty himself, the thick fluid becoming somewhat hard to swallow after you already took in so much!
It felt like you would be spending an eternity underneath this bug, taking every little drop of cream he had left inside of him, but eventually, you felt that surge in your mouth gently reduce to a trickle. You were absolutely full, more than full, even; your midsection resembled a balloon as you drooled cream out of your mouth, a sizable puddle of it still on the forest floor. The bug eventually pulled his dick out of you, and you heard him chirp from above. “Heh, even I didn't know I had that much in me…” he said as his shaft started to recede back into him.")
Scolipede1.pleasure = Scolipede1.pleasure + 200
Scolipede1.sacfull = 0
}
}
}
}
else if (result = "Facesit") {
msg (" The bug looked bit confused at first. “You want me to...what? Sit on you?” You nodded to reaffirm yourself. The bug shook his head a little bit, before turning around. “Sacrifices are always so weird. I guess I'll enjoy it though…” he said as he aligned his ass with your face, giving you a nice view of the black pucker with just a hint of purple at the center, belying what lay beyond it. The bug slowly lowered his haunches, bringing the pucker closer and closer to you until, somewhat strongly, the bug sat back onto the ground, squishing you under his ass with a big *thump!* as thick bug glutes met the forest floor, and your face. The pressure and weight on top of you was massive and wonderful, Milo's soft ass enveloping your face,and Milo wasn't even pressing all of him on you yet! “Oh, maybe this will be more fun than I thought…” you heard Milo say as he started to grind his rump into you a little bit, that pucker poking right against your nose, giving you a good dose of the bug’s musk. It was oddly sweet, like honey, but laced with the familiar musky smell of a dominant male…
Gradually, Milo put more of his weight on you, letting you start to feel the pressure of his cheeks pressing down on you. In a good way, though: it brought that pucker close to you, let him grind that flesh right up against all your sensory organs, going across your nose all the way down to your neck and back up. It was clear that the Scolipede was enjoying himself, probably much more than he let on. He especially liked the feeling of you wiggling underneath him in such a sensitive spot! He couldn't help but feel that there was a bit missing, though… “Hey, while you're down there, mind eating me out?”")
Scolipede1.pleasure = Scolipede1.pleasure + 50
Ask ("") {
if (result) {
msg (" You had no way to affirm your consent from down here verbally, so you decided to just get on with it. Eating out the Scolipede sounded like a wonderful idea, and Milo agreed as he felt your tongue slide teasingly across his pucker, the bug immediately grinding down on that wet flesh as he felt it slide past him.”Ahh, that's more like it~” he groaned as he felt your tongue start to venture further, teasing and poking at the center of that pucker before sliding right in. The Scolipede’s taste was wonderful, and you simply had to get more of it! You quickly pressed your face as close to that soft pucker as you possibly could, reaching your arms around to get a grip on those thick, plush bug cheeks for leverage. This ass was simply amazing, and you were going to DEVOUR it!")
wait {
msg (" Your tongue burrowed as deep as it could go, lapping and tasting that amazing, plush butt. It had a distinctly earthy flavor, with a bit of musk and even sweetness to it...it was simply intoxicating. You had to get all of it. You pulled your tongue out to give a few more teasing the licks to that round, soft anus before plunging back inside, feeling Milo grind down on your tongue and face again in response to the sensation. “Damn, you're better at this than I thought…” he commented as he started to get more and more aroused himself, the sweetness of his musk only increasing as his arousal did. You just had to have more. You needed to go deeper.
You gave Milo no warning as you took your arms away from his cheeks, using them instead to stretch open his pucker as wide as it could go. For a moment, the Scolipede wondered what you were doing down there, but as he felt you press your face and head right against his picker, he knew exactly what was going on. He chuckled as he felt you starting to wiggle up inside of him entirely, clearly intoxicated by that wonderful flavor and scent coming from deep within his body. “Nngh, get all up in there, musk slut~” he taunted as your neck popped inside with a deep *shlrp!*, all of your sensory organs now able to hear the burbling around you, feel the tightness of Milo's ass as it clenched and pulled your head deeper. Now that the Scolipede was aroused, and now that a considerable part of your body that was lodged in his ass, getting the rest of you inside would be a lot easier.")
wait {
msg (" The toughest thing the bug Pokemon had to work around where your shoulders, and with his pucker already stretched out from you prying it open earlier, there wasn't much else he had to do. Really, with you wiggling deeper like you were, all he had to do was clench occasionally when you had trouble getting more of you inside that lovely rump;which, with how eager you were to bury yourself inside, was rarely an issue. You worked your shoulders inside with ease, and only a few minutes afterwards you had your whole chest comfortably inside those tight bowels. You were still licking those fleshy walls occasionally, noticing the subtle changes in the flavor and sweetness as you worked your way deeper and deeper into Milo, giving the bug a light tickling sensation to enjoy deep inside of him along with the overwhelming feeling of someone wiggling right up your rump!
It didn't take much longer for you to wiggle and clench your way all the way up to your legs. You felt your environment start to move around you as the Scolipede got up off his haunches, lifting his ass up in the air to get the last of you inside of him. “Just a bit more~” he teased as he continued to pull the last of you inside, your feet slipping past that plush, soft pucker with wonderful wet slurping sounds, marking the end of the beginning of your journey deep into the bug Pokemon... ")
Scolipede1.pleasure = Scolipede1.pleasure + 75
wait {
MoveObject (player, ScolipedeBowels1)
}
}
}
}
}
}
}
}
}
]]>Milo's stomach “Mmm...just relax in there until I'm hungry, sacrifice~” you heard the Scolipede’s voice rumble, somewhat obstructed by layers of bug fat and the cacophony of gurgles and groans around you. Seemed like you would be in it for the long haul... ]]>falseYou had been wiggling around in the bug’s for stomach for a while. While the air was a bit heavy to breathe in, and you were coated in what looked and felt like sticky saliva, there wasn't really any digestive process going on yet. Eventually, though, you felt the tight chamber squeeze around you, trying to press you deeper into the bug...in the darkness, you couldn't see where you were going, but you felt your foot squish past another sphincter, Milo's guts quickly yanking at the foot, the tight embrace of his bowel walls snatching on to that appendage and dragging you in...the undulating movements felt a lot like swallows, but Milo wasn't controlling them; at this point, you were food, and his body could handle you appropriately. A few inches of you disappeared deeper into the bug with every pseudo swallow until you felt the sphincter close around the top of your head, your body snug in a tight tube, not unlike the bug’s throat…")
wait {
msg (" The tight, slick embrace of Milo’s guts quickly moved you along, your feet pressing up against another sphincter in no time. You were quickly dumped out into what felt like a fleshy hammock; the constant wobbling side to side of the stomach and the lack of any surface beneath you made it clear that you were now in the lower belly of the Scolipede1. The stomach was quite a bit longer than it was tall, and you were basically forced to lay down inside of it, not unlike a snake’s stomach…")
wait {
MoveObject (player, ScolipedeLowerStomach1)
}
}
}
}
]]>stomach wallsfalse
random = GetRandomInt(1,4)
if (random = 1) {
msg ("You heard Milo chitter outside. “Oh, keep going, that feels nice…”")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
else if (random = 2) {
msg ("The bug rubbed back at you with his feeler. “I'm glad you're enjoying this~\"")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
else if (random = 3) {
msg ("You gave the stomach walls a massage, hearing them rumble delightfully around you as you did.")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
else {
msg ("You swirled your hand in a circle on a certain spot in the stomach. “Oh, right there…” The bug confirmed, urging you to keep going.")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
random = GetRandomInt(1,4)
if (random = 1) {
msg ("“Hey, calm down in there! This is your destiny…” the bug chided you as you squirmed around in his belly.")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
else if (random = 2) {
msg ("You slammed a fist into the stomach walls. They rumbled and lurched around you, before Milo let out a long belch. “All you're doing is making it tighter in there…” the bug responded.")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
else if (random = 3) {
msg ("You thought you were getting a reaction out of Milo, but suddenly you felt the world lurch around you, and then a powerful weight on top of you! Milo squished his belly against the ground, hearing a deep gargle emit from his stomach as it crushed around you. “Knock it off in there…” he said. ")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
else {
msg ("“Ugh, sacrifices. Always so flaky…” Milo complained.")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
Milo's lower stomachDistantly, you heard a thunderous belch rumble out of Milo. Then, you felt your world shift, the bug suddenly flipping over onto his back, the entire front of your body slamming right into the top of his stomach! The impact left you a little dazed, but you could still feel some impressions being made on your back, Milo thoroughly enjoying his meal, rubbing at it with both of his feelers as he felt you wiggle around inside. The inside of the stomach certainly smelled more acidic, and the fluids inside were a lot stickier and thicker...this was most certainly a digestive chamber!falseYou could feel your body starting to tingle slightly the longer you stayed in this stomach. The tight walls were constantly pressing against your form, working their fluids deeper into you...you couldn't help but wonder how much longer it would be before you were part of this beast. ")
SetTimeout (30) {
wait {
msg (" The tight Scolipede belly had done a great job of wearing you down in preparation for being a meal. The hot, wet, caustic environment seem to sap up more of your strength every second, you finding it difficult to rub and struggle at this point...the gut walls tightened around you as Milo burped again, before you felt your consciousness start to fade...your whole body was tingling at this point, the sensation overwhelming your body, enveloping you as you faded away deep in the Scolipede stomach...
Milo pressed a feeler into his gut as he heard it rumble loudly as you started to melt up inside. He chirped as he felt the pleasant squish of a full stomach, the bulging struggles and rubs that you were making slowly starting to be replaced with a holistic roundness. Although you didn't make much of a bulge in his stomach in the first place, he could still feel it as you gradually melted away into soup inside, gradually working your way deeper into his guts, being absorbed and added to his hips and butt...you would make a nice soft layer on his rear, that's for sure~ ")
Scolipede1.pleasure = Scolipede1.pleasure + 50
Scolipede1.full = Scolipede1.full + 1
MoveObject (player, Zoo)
}
}
}
]]>stomach wallsfalse
random = GetRandomInt(1,4)
if (random = 1) {
msg ("Milo touched a feeler to the spot you were rubbing at. “Gosh, you're pretty good at this…” he said, letting out a breath. He wasn't used to the sensation…")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
else if (random = 2) {
msg ("You rubbed towards the back half of his stomach...the Scolipede blushed as he felt where you were trying to get at, his sack being jostled by your rubbing a bit... “Silly snack, could have just asked me to fill you up…” Milo teased in response.")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
else if (random = 3) {
msg ("You worked your fingers between the fleshy outcroppings on the stomach walls, rubbing parallel to them.")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
else {
msg ("Both of your hands pressed at the top of the belly, then started swirling around in circles. Milo let out a chirping noise in response.")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
random = GetRandomInt(1,4)
if (random = 1) {
msg ("The stomach grumbled around you before tightening in response to your struggles, working those fluids deeper into your skin.")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
else if (random = 2) {
msg ("Milo was a bit surprised to feel your struggles still. “How do you still have energy down there...?” he mumbled, before rolling over onto his stomach, crushing your struggles quickly beneath his weight…")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
else if (random = 3) {
msg ("The stomach tensed up before you hear another far-off belch from the Scolipede1. “Wow, I can still taste you…” He remarked, smacking his lips a bit at your taste.")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
else {
msg ("The Scolipede poked at you with the feeler. “Just calm down in there and digest…” He said softly.")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
Milo's bowels]]>falseIt felt like you had been squishing and squelching your way through these bowels for hours at this point...keeping track of time was hard, especially because the limited air deep in the Scolipede’s guts was making it hard to think clearly. You just hoped you would get to somewhere roomier soon…")
SetTimeout (30) {
wait {
msg (" After what seemed like forever winding your way deeper and deeper into the bug’s belly, you finally felt something yawn open in front of your head. You knew what you had been getting closer to for a while, the gurgling and groans of the bug’s stomach getting louder and louder, but now it felt like you were standing right next to a soup kitchen...slowly, thats sphincter widened, your head slowly getting pushed out into Milo's hungry lower belly. The musky odor of the bug’s bowels had been replaced with an acidic tinge that made your nostrils tingle a little bit, but at least it was a roomier chamber...although, with how long it was, it more felt like an extension of Milo's bowels than anything. Slowly, Milo’s body pushed the rest out of you out into his stomach, the gut rumbling loudly in approval as it began to fill with your form. The bug chirped as he felt the familiar sloshing weight of a full belly of food beneath him. “Mmm, all mine now, lunch~” He said as he felt the last of you squeeze out into his stomach, the digestive process seemingly already starting…")
Scolipede1.pleasure = Scolipede1.pleasure + 50
wait {
MoveObject (player, ScolipedeLowerStomach1)
}
}
}
}
]]>bowel wallsfalse
random = GetRandomInt(1,4)
if (random = 1) {
msg ("In lieu of the ability to rub at the bowel walls with your hands, you kneaded your shoulders into them a little bit. It was a bit sharp, but you figured the bug still appreciated it.")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
else if (random = 2) {
msg ("You tried to get comfortable inside the bowels, but tenderly - you didn't want the bug to think you were struggling…")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
else if (random = 3) {
msg ("You pressed the backs of your hands into the tight bowels and rubbed around in circles the best you could. Judging by a far-off chirp, you must have been doing a good enough job!")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
else {
msg ("Whatever little rubs you made seemed to relax the bowels a bit, them loosening up a bit around you. Good thing, it felt super tight…")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
random = GetRandomInt(1,4)
if (random = 1) {
msg ("The bowels tightened even harder around you as you struggled. Goodness, they were going to take the wind out of you soon…")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
else if (random = 2) {
msg ("You could hear Milo's voice, somehow, past all the bodily noises and sheer distance. “I'll be honest, those struggles feel pretty nice…”")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
else if (random = 3) {
msg ("You could feel yourself shoot ahead, the struggles triggering some sort of clenching reflex that squeezed you even deeper! Not what you wanted exactly.")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
else {
msg ("You tried to struggle deep inside of the bug, but your enclosure was so tight that you could barely make any sort of movement at all. ")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
Milo's sacfalseThe sensation of being completely wrapped in tight shaft walls was short-lived, though. A few clenches later and your head poked out into Milo's sack. Although it was quite dark inside, you could tell that the chamber was {if Scolipede1.sacfull=0: actually quite empty; although the pungent sweet scent of Milo’s musk still dominated the air inside. Another series of clinches pushed your waist out into the sack, allowing you to touch the other side and start to align your body so that you would curl up as the Pokemon pushed the rest of you out into his sack. You were thankful that the chamber wasn't sloshing and full of cream, because it would be difficult to keep your head above it if it was! Soon, your feet squeezed out of the shaft, allowing you to curl up inside Milo's sac, the Pokemon's body already starting to sap a bit of your strength with the powerful heat and arousal inside. The chamber was already starting to fill with a bit of cream now that you were nice and snug inside, and soon you knew that you become part of it!} {if Scolipede1.sacfull=1: comfortably full of Scolipede cream, the thick fluid making a pool at the bottom of the sack and sticking to you as you were squeezed out inside of the chamber. The cream was already starting to soak into your skin, leaving a pleasant tingling wherever you rubbed up against any of it inside of the Pokemon's balls. Soon, you were completely clenched out into the Pokemon’s sack, curled up nice and tight and encased by those taut, stretchy sac walls. The pool at the bottom of the sac was already starting to rise, bathing you in a boiling sauna of lust…} {if Scolipede1.sacfull=2: already completely full of hot Scolipede cream! You were immersed into the pool as soon as possible, the tingling spreading throughout your body almost immediately. You couldn't find your way to the top of the chamber for the hope to get a breath or two of air, but it didn't matter; you melted as soon as the last of you was clenched out into the chamber, the cream quickly and developing your entire body and turning you into more of it. In a matter of minutes, you went from a solid, wiggling snack to more hot, fresh cum, but with the chamber already full of it, there was nowhere for it to go but out…
Milo looked down a few minutes later, feeling an unfamiliar sensation in his loins. The Pokemon was surprised to see his cock dribbling some fresh cream, a small pool of the fluid already forming on the ground beneath him! “Geez, I didn't know I needed to release that badly! Guess I should stick myself in one of those sacrifices next time instead of sticking them in me…” he commented; although he did like the idea of casually making a mess like that...}")
if (Scolipede1.sacfull = 2) {
wait {
Scolipede1.pleasure = Scolipede1.pleasure + 100
MoveObject (player, Zoo)
}
}
]]>As the cream in the chamber continued to rise, you felt the tingling start to spread over your body as well, starting to override your sense of touch with an invasive, yet strangely enjoyable feeling. It felt like you were melting away into the bubbling cauldron you were immersed in, possibly because you actually were! It wouldn't be long now…")
SetTimeout (30) {
wait {
msg (" The chamber continued to fill with cream, and with it, you felt more and more of yourself start to slip away. Those sack walls pressed around you so tight, massaging the thick, sticky jizz into your entire form, steadily going through the process of turning you into more orgasm fuel for the Pokemon. You felt your consciousness start to fade away as more and more of you melted into the pool surrounding you, the stretchy, outlined bulges you made in Milo's sac starting to round out and become more vague as the contents inside became much more liquid. It wouldn't take long before you were nothing but Scolipede cum, the chamber filling up {if Scolipede1.sacfull=0: a healthy amount} {if Scolipede1.sacfull=1: all the way} with your contribution, Milo starting to feel the need to release... ")
Scolipede1.pleasure = Scolipede1.pleasure + 50
Scolipede1.sacfull = Scolipede1.sacfull + 1
MoveObject (player, Zoo)
}
}
}
]]>sac wallsfalse
random = GetRandomInt(1,4)
if (random = 1) {
msg ("You rubbed your hands in circles against the sack walls, hearing the Scolipede chirp lustfully in response. “Ooh, keep doing that…”")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
else if (random = 2) {
msg ("You pressed a foot into your taut surroundings, surprised at how stretchy the walls ended up being!")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
else if (random = 3) {
msg ("You wiggled around inside your tight enclosure, trying to get as comfortable as possible and please Milo in the process.")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
else {
msg ("You pressed against the sack walls, massaging them and feeling the heat in the chamber rise in accordance with the Scolipede’s lust.")
Scolipede1.pleasure = Scolipede1.pleasure + 10
}
random = GetRandomInt(1,4)
if (random = 1) {
msg ("You pressed out against the tight walls, making the bug Pokemon wince a bit.")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
else if (random = 2) {
msg ("You struggled around inside Milo, the Pokemon exclaiming “Stop being so rough in there!” in response.")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
else if (random = 3) {
msg ("The stomach tensed up before you hear another far-off belch from the Scolipede1. “Wow, I can still taste you…” He remarked, smacking his lips a bit at your taste.")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
else {
msg ("Milo felt a heavy sloshing inside of him as you struggled around. All it did was drive his lust a little bit more... ")
Scolipede1.pleasure = Scolipede1.pleasure - 10
}
shakeshake"You can't shake " + object.article + "."falseYou take it.
if (this.alias = null) {
this.alias = this.name
}
container = this.stackparent
this.parent = container
SetStack (container)
if (this.takemsg = null) {
msg (DynamicTemplate("TakeSuccessful", object))
}
else {
msg (this.takemsg)
}
false1You take it.
this.parent = null
game.pov.money = game.pov.money + this.money
if (this.takemsg = null) {
msg (DynamicTemplate("TakeSuccessful", object))
}
else {
msg (this.takemsg)
}
with; usingWith which object?That doesn't work.There are no objects available to do that with.Georgia, serif12WhiteBlackBluefalse0.5Arial9WhiteBlackLightGreyBlacknorthwestnorthnortheastwesteastsouthwestsouthsoutheastupdowninout0falsealleverythingtheaanfalse950false3002020falsefalse1234falsefalsefalsefalsefalseenfalse30300falsefalsefalsefalsefalsefalse*.jpg;*.jpeg;*.png;*.gif;*.js;*.wav;*.mp3;*.htm;*.html;*.svg
InitPOV (oldvalue, game.pov)
falsefalsefalse65060BlackWhiteWhite'Lucida Console', Monaco, monospacePress Start 2P14'Lucida Console', Monaco, monospaceBlackWhiteGreenYellowfalsefalsefalse65060'Courier New', Courier, monospaceSpecial EliteRedYellowYellow'Comic Sans MS', cursive, sans-serif14Impact, Charcoal, sans-serifRedYellowBlackYellowLook atTakeLook atUseDropfalsefalseititfalsefalsefalsefalseYou are inYou can seeYou can gocontainingfalsefalsefalse0falsefalse11WhiteBlack115false00memyselfselfLooking good.youyourselffalsefalsefalsefalsefalsefalse
if (game.pov = this) {
if (IsDefined("oldvalue")) {
OnEnterRoom (oldvalue)
}
else {
OnEnterRoom (null)
}
if (game.gridmap) {
MergePOVCoordinates
}
}
if (this.isopen and HasScript(this, "onopen")) {
do (this, "onopen")
}
if (not this.isopen and HasScript(this, "onclose")) {
do (this, "onclose")
}
if (this.locked and HasScript(this, "onlock")) {
do (this, "onlock")
}
if (not this.locked and HasScript(this, "onunlock")) {
do (this, "onunlock")
}
if (this.switchedon and HasScript(this, "onswitchon")) {
do (this, "onswitchon")
}
if (not this.switchedon and HasScript(this, "onswitchoff")) {
do (this, "onswitchoff")
}
Go tofalsefalseThat way is locked.falsefalse1false00GonorthwestnwnorthnnortheastnewestweastesouthwestswsouthssoutheastseupudowndinoutoLook atSpeak tohehimfalseLook atSpeak tosheherfalsetheythemLook atSpeak totheythemLook atSpeak totheythemOpenCloseOpenCloseOpenCloseon which there isOpenClose1100 activecontainer.maxvolume) {
correct = false
if (HasString(this, "containerfullmessage")) {
message = this.containerfullmessage
}
else {
message = DynamicTemplate("ContainerFull", this)
}
}
}
activecontainer = activecontainer.parent
}
children = GetDirectChildren(this)
if (listcount(children) >= this.maxobjects) {
correct = false
if (HasString(this, "containerfullmessage")) {
message = this.containerfullmessage
}
else {
message = DynamicTemplate("MaxObjectsInContainer", this)
}
}
if (correct = false) {
msg (message)
}
else {
object.parent = this
msg (Template("Done"))
}
]]>OpenCloseYou do not have the key.Unlocked.Locked.false
if (this.locked) {
if (this.autounlock and AllKeysAvailable(this)) {
do (this, "unlock")
if (not this.isopen) {
OpenObject (this)
}
}
else {
msg (DynamicTemplate("LockedObject", this))
}
}
else {
OpenObject (this)
}
if (this.locked) {
msg (DynamicTemplate("LockedObject", this))
}
else {
CloseObject (this)
}
if (this.locked) {
msg (DynamicTemplate("AlreadyLocked", this))
}
else if (this.isopen and not this.canlockopen) {
msg (DynamicTemplate("CannotLockOpen", this))
}
else {
if (AllKeysAvailable(this)) {
msg (this.lockmessage)
this.locked = true
}
else {
msg (this.nokeymessage)
}
}
if (not this.locked) {
msg (DynamicTemplate("AlreadyUnlocked", this))
}
else {
if (AllKeysAvailable(this)) {
msg (this.unlockmessage)
this.locked = false
if (this.autoopen and not this.isopen) {
TryOpenClose (true, this)
}
}
else {
msg (this.nokeymessage)
}
}
falseSwitch onSwitch off
if (ListContains(ScopeReachable(), this)) {
if (this.switchedon) {
msg (DynamicTemplate("AlreadySwitchedOn", this))
}
else {
if (HasString(this, "switchonmsg")) {
msg (this.switchonmsg)
}
else {
msg (DynamicTemplate("SwitchedOn", this))
}
this.switchedon = true
}
}
else {
msg (DynamicTemplate("DefaultTurnOn", this))
}
if (ListContains(ScopeReachable(), this)) {
if (not this.switchedon) {
msg (DynamicTemplate("AlreadySwitchedOff", this))
}
else {
if (HasString(this, "switchoffmsg")) {
msg (this.switchoffmsg)
}
else {
msg (DynamicTemplate("SwitchedOff", this))
}
this.switchedon = false
}
}
else {
msg (DynamicTemplate("DefaultTurnOff", this))
}
0Eat
if (HasString(this, "eatmsg")) {
msg (this.eatmsg)
}
else {
msg (DynamicTemplate("Eaten", this))
}
if (HasInt(game.pov, "health")) {
game.pov.health = game.pov.health + this.eathealth
}
destroy (this.name)
1011145713
if (DoesInherit(container, "childstack_object")) {
container = container.stackparent
}
if (not HasString(container, "originalalias")) {
if (HasString(container, "listalias")) {
container.originalalias = container.listalias
}
else {
container.originalalias = container.alias
}
}
stacked_count = ListCount(GetDirectChildren(container))
if (stacked_count = 0) {
container.parent = Stack Containers
}
else if (stacked_count = 1) {
container.gender = "it"
container.article = "it"
if (container.parent = Stack Containers) {
container.parent = game.pov
}
}
else {
container.gender = "they"
container.article = "them"
}
container.listalias = container.originalalias + ": " + ToString(stacked_count)
DoStackStuff (container, "_Unstack", null, "Drop which one?")
DoStackStuff (container, "_UseInStack", null, "Use which one?")
DoStackStuff (container, null, "look", "Look at which one?")
DoStackStuff (container, null, "consume", "Consume which one?")
DoStackStuff (container, null, verb, CapFirst(verb) + " which one?")
// msg("container="+container)
// msg("functionname="+functionname)
// msg("scriptname="+scriptname)
// msg("s="+s)
if (container.homogeneous or ListCount(GetDirectChildren(container)) = 1) {
game.functionname_tmp = functionname
game.scriptname_tmp = scriptname
DoingStackStuff (ObjectListItem(GetDirectChildren(container), 0))
}
else {
dic = NewStringDictionary()
foreach (o, GetDirectChildren(container)) {
dictionary add (dic, o.name, o.alias)
}
game.functionname_tmp = functionname
game.scriptname_tmp = scriptname
ShowMenu (s, dic, true) {
if (not result = null) {
DoingStackStuff (GetObject(result))
}
}
}
stack = obj.parent
if (not game.scriptname_tmp = null) {
PrintOrRun (obj, game.scriptname_tmp)
}
else {
game.tempobj = obj
f = Eval (game.functionname_tmp + "(game.tempobj)")
}
SetStack (stack)
container = object.stackparent
object.parent = game.pov.parent
SetStack (container)
msg ("You drop " + GetDisplayName(object) + ".")
if (HasScript(object, "ondrop")) {
do (object, "ondrop")
}
return (true)
dic = NewDictionary()
dictionary add (dic, "object", object)
do (use, "script", dic)
SetStack (object)
return (true)
if (HasScript(obj, att)) {
do (obj, att)
}
if (HasString(obj, att)) {
msg (GetString(obj, att))
}
0) {
return ("an")
}
else {
return ("a")
}
]]>
return (CapFirst(obj.gender) + " " + Conjugate(obj, verb))
gender = obj.gender
if (gender = "he" or gender = "she") {
gender = "it"
}
switch (verb) {
case ("be") {
switch (gender) {
case ("i") {
return ("am")
}
case ("you") {
return ("are")
}
case ("it") {
return ("is")
}
case ("we") {
return ("are")
}
case ("they") {
return ("are")
}
default {
return ("is")
}
}
}
case ("do") {
switch (gender) {
case ("i") {
return ("do")
}
case ("you") {
return ("do")
}
case ("it") {
return ("does")
}
case ("we") {
return ("do")
}
case ("they") {
return ("do")
}
default {
return ("do")
}
}
}
default {
if (gender = "it") {
return (verb + "s")
}
else {
return (verb)
}
}
}
"") {
msg (list)
}
}
]]> game.pov.maxvolume) {
continue = false
if (HasString(game.pov, "containerfullmessage")) {
message = prefix + game.pov.containerfullmessage
}
else {
message = prefix + DynamicTemplate("FullInventory", object)
}
}
}
children = GetDirectChildren(game.pov)
if (HasInt(game.pov, "maxobjects")) {
if (game.pov.maxobjects > 0) {
if (ListCount(children) >= game.pov.maxobjects) {
continue = false
if (HasString(game.pov, "containermaxobjects")) {
message = prefix + game.pov.containermaxobjects
}
else {
message = prefix + DynamicTemplate("MaxObjectsInInventory", object)
}
}
}
}
if (continue = false) {
msg (message)
}
else {
found = true
takemsg = object.takemsg
switch (TypeOf(object, "take")) {
case ("script") {
if (ismultiple) {
OutputTextNoBr (prefix)
}
do (object, "take")
takemsg = ""
}
case ("boolean") {
if (object.take = true) {
object.parent = game.pov
if (takemsg = null) {
takemsg = DynamicTemplate("TakeSuccessful", object)
}
}
else {
found = false
}
}
case ("string") {
object.parent = game.pov
takemsg = object.take
}
default {
found = false
}
}
if (not found and takemsg = null) {
takemsg = DynamicTemplate("TakeUnsuccessful", object)
}
if (LengthOf(takemsg) > 0) {
msg (prefix + takemsg)
}
if (HasScript(object, "ontake")) {
do (object, "ontake")
}
if (found and GetBoolean (object, "scenery") and object.parent = game.pov) {
object.scenery = false
}
}
}
]]> 0) {
msg (prefix + dropmsg)
}
if (HasScript(object, "ondrop")) {
do (object, "ondrop")
}
}
]]>
objectlist = NewObjectList()
objectlist = ScopeReachableInventory()
objectlist = ListCombine (objectlist, ScopeReachableNotHeld())
excludelist = NewObjectList()
list add (excludelist, game.pov)
list add (excludelist, object)
candidates = NewObjectList()
candidates = ListExclude(RemoveSceneryObjects(objectlist), excludelist)
return (candidates)
if (doopen) {
action = "open"
scriptaction = "openscript"
}
else {
action = "close"
scriptaction = "closescript"
}
if (not ListContains(ScopeReachable(), object)) {
msg (DynamicTemplate("ObjectNotOpen", GetBlockingObject(object)))
}
else {
found = false
if (GetBoolean(object, action)) {
if (doopen) {
if (object.isopen) {
msg (DynamicTemplate("AlreadyOpen", object))
}
else {
if (HasScript(object, scriptaction)) {
do (object, scriptaction)
}
else {
OpenObject (object)
}
}
}
else {
if (not object.isopen) {
msg (DynamicTemplate("AlreadyClosed", object))
}
else {
if (HasScript(object, scriptaction)) {
do (object, scriptaction)
}
else {
CloseObject (object)
}
}
}
}
else {
if (doopen) {
msg (DynamicTemplate("CantOpen", object))
}
else {
msg (DynamicTemplate("CantClose", object))
}
}
}
if (HasString(object, "openmsg")) {
msg (object.openmsg)
}
else {
msg (DynamicTemplate("OpenSuccessful", object))
}
object.isopen = true
ListObjectContents (object)
if (HasString(object, "closemsg")) {
msg (object.closemsg)
}
else {
msg (DynamicTemplate("CloseSuccessful", object))
}
object.isopen = false
objectlist = NewObjectList()
objectlist = ScopeReachableInventory()
objectlist = ListCombine (objectlist, ScopeReachableNotHeld())
excludelist = NewObjectList()
list add (excludelist, game.pov)
list add (excludelist, object)
candidates = NewObjectList()
candidates = ListExclude(RemoveSceneryObjects(objectlist), excludelist)
return (candidates)
handled = false
if (HasString(object2, "give")) {
msg (object2.give)
handled = true
}
else if (TypeOf(object2, "give") = "scriptdictionary") {
if (DictionaryContains(object2.give, object1.name)) {
parameters = NewObjectDictionary()
dictionary add (parameters, "this", object2)
dictionary add (parameters, "object", object1)
invoke (ScriptDictionaryItem(object2.give, object1.name), parameters)
handled = true
}
if (not handled) {
if (HasScript(object2, "giveanything")) {
// TO DO: Would be better to use a delegate for giveanything, but need to implement Editor support first
parameters = NewObjectDictionary()
dictionary add (parameters, "object", object1)
do (object2, "giveanything", parameters)
handled = true
}
}
}
if (not handled) {
if (HasString(object1, "giveto")) {
msg (object1.giveto)
handled = true
}
else if (TypeOf(object1, "giveto") = "scriptdictionary") {
if (DictionaryContains(object1.giveto, object2.name)) {
parameters = NewObjectDictionary()
dictionary add (parameters, "this", object1)
dictionary add (parameters, "object", object2)
invoke (ScriptDictionaryItem(object1.giveto, object2.name), parameters)
handled = true
}
else {
if (HasScript(object1, "givetoanything")) {
// TO DO: Would be better to use a delegate for givetoanything, but need to implement Editor support first
parameters = NewObjectDictionary()
dictionary add (parameters, "object", object2)
do (object1, "givetoanything", parameters)
handled = true
}
}
}
}
if (not handled) {
msg (DynamicTemplate("DefaultGive", object2, object1))
}
handled = false
if (HasString(object2, "useon")) {
msg (object2.useon)
handled = true
}
else if (TypeOf(object2, "useon") = "scriptdictionary") {
if (DictionaryContains(object2.useon, object1.name)) {
parameters = NewObjectDictionary()
dictionary add (parameters, "this", object2)
dictionary add (parameters, "object", object1)
invoke (ScriptDictionaryItem(object2.useon, object1.name), parameters)
handled = true
}
else {
if (HasScript(object2, "useanything")) {
// TO DO: Would be better to use a delegate for useanything, but need to implement Editor support first
parameters = NewObjectDictionary()
dictionary add (parameters, "object", object1)
do (object2, "useanything", parameters)
handled = true
}
}
}
if (not handled) {
if (HasString(object1, "selfuseon")) {
msg (object1.selfuseon)
handled = true
}
else if (TypeOf(object1, "selfuseon") = "scriptdictionary") {
if (DictionaryContains(object1.selfuseon, object2.name)) {
parameters = NewObjectDictionary()
dictionary add (parameters, "this", object1)
dictionary add (parameters, "object", object2)
invoke (ScriptDictionaryItem(object1.selfuseon, object2.name), parameters)
handled = true
}
else {
if (HasScript(object1, "selfuseanything")) {
// TO DO: Would be better to use a delegate for selfuseanything, but need to implement Editor support first
parameters = NewObjectDictionary()
dictionary add (parameters, "object", object2)
do (object1, "selfuseanything", parameters)
handled = true
}
}
}
}
if (not handled) {
msg (DynamicTemplate("DefaultUseOn", object2, object1))
}
= maxstrength and strength>0) {
match = ScriptDictionaryItem(dictionary, keywords)
maxstrength = strength
}
}
if (match <> null) {
parameters = NewObjectDictionary()
dictionary add (parameters, "this", object)
invoke (match, parameters)
handled = true
}
}
if (not handled) {
if (HasScript(object, defaultscript)) {
do (object, defaultscript)
}
else {
msg (DynamicTemplate(defaulttemplate, object))
}
}
]]>
// Keywords is the subject. We split it into individual words, and then see how well
// the words in the input match the keywords.
keywordlist = Split(keywords, " ")
inputlist = Split(input, " ")
strength = 0
foreach (word, inputlist) {
foreach (keyword, keywordlist) {
if (StartsWith(word, keyword)) {
strength = strength + LengthOf(keyword)
}
}
}
return (strength)
0) {
if (not ListContains(partialmatches, obj)) {
list add (partialmatches, obj)
}
}
}
}
]]>
foreach (obj, objects) {
if (not DictionaryContains(dictionary, obj.name)) {
dictionary add (dictionary, obj.name, GetDisplayAlias(obj))
}
}
null) {
if (DictionaryContains(game.pov.commandmetadata, value)) {
result = GetObject(StringDictionaryItem(game.pov.commandmetadata, value))
if (result <> null) {
if (ListContains(ScopeVisible(), result)) {
found = true
return (result)
}
}
}
}
if (not found) {
value = LCase(value)
result = ResolveNameInternal(variable, value, objtype)
if (result <> null) {
return (result)
}
else {
// TO DO: Check this behaviour. We only want to try ignoring prefixes if we have definitely got an unresolved name.
foreach (prefix, game.parserignoreprefixes) {
if (StartsWith(value, prefix + " ")) {
result = ResolveNameInternal(variable, Mid(value, LengthOf(prefix) + 1), objtype)
}
}
if (result = null and LengthOf(variable) = 0 and not GetBoolean(game.pov, "currentcommandmultiobjectpending")) {
UnresolvedCommand (value, game.pov.currentcommandpendingvariable)
}
return (result)
}
}
]]> null) {
foreach (altname, obj.alt) {
CompareNames (LCase(altname), value, obj, fullmatches, partialmatches)
}
}
}
// allow referring to objects from the previous command by gender or article
if (objtype = "object" and game.lastobjects <> null) {
foreach (obj, game.lastobjects) {
CompareNames (LCase(obj.article), value, obj, fullmatches, partialmatches)
CompareNames (LCase(obj.gender), value, obj, fullmatches, partialmatches)
}
}
if (ListCount(fullmatches) = 1) {
return (ListItem(fullmatches, 0))
}
else if (ListCount(fullmatches) = 0 and ListCount(partialmatches) = 1) {
return (ListItem(partialmatches, 0))
}
else if (ListCount(fullmatches) + ListCount(partialmatches) = 0) {
return (null)
}
else {
menu = NewStringDictionary()
GenerateMenuChoices (menu, fullmatches)
GenerateMenuChoices (menu, partialmatches)
if (LengthOf(variable) > 0) {
// single object command, so after showing the menu, add the object to game.pov.currentcommandresolvedelements
game.pov.currentcommandpendingvariable = variable
ShowMenu (DynamicTemplate("DisambiguateMenu", value), menu, true) {
varname = game.pov.currentcommandpendingvariable
game.pov.currentcommandpendingvariable = null
if (result <> null) {
AddToResolvedNames (varname, GetObject(result))
}
}
}
else {
// multi-object command, so after showing the menu, add the object to the list
game.pov.currentcommandmultiobjectpending = true
ShowMenu (DynamicTemplate("DisambiguateMenu", value), menu, true) {
if (result <> null) {
list add (game.pov.currentcommandpendingobjectlist, GetObject(result))
ResolveNextNameListItem
}
}
}
return (null)
}
]]>
game.pov.currentcommandpendingobjectlist = NewObjectList()
game.pov.currentcommandpendingobjectlistunresolved = NewStringList()
game.pov.currentcommandpendingobjectscope = scope
game.pov.currentcommandpendingobjecttype = objtype
inputlist = Split(value, ",")
foreach (inputbase, inputlist) {
inputlist2 = Split(inputbase, " " + Template("And") + " ")
foreach (input, inputlist2) {
list add (game.pov.currentcommandpendingobjectlistunresolved, input)
}
}
ResolveNextNameListItem
0) {
thisitem = Trim(StringListItem(game.pov.currentcommandpendingobjectlistunresolved, 0))
if (queuelength = 1) {
game.pov.currentcommandpendingobjectlistunresolved = null
}
else {
newqueue = NewStringList()
for (i, 1, queuelength - 1) {
list add (newqueue, StringListItem(game.pov.currentcommandpendingobjectlistunresolved, i))
}
game.pov.currentcommandpendingobjectlistunresolved = newqueue
}
ResolveNameListItem (Trim(thisitem))
}
else {
resolvedall = true
}
}
else {
resolvedall = true
}
if (resolvedall) {
ResolveNameListItemFinished (game.pov.currentcommandpendingobjectlist)
}
]]> null) {
if (not ListContains(game.pov.currentcommandpendingobjectlist, object)) {
list add (game.pov.currentcommandpendingobjectlist, object)
}
ResolveNextNameListItem
}
}
]]> 1) {
if (not DictionaryContains(game.pov.currentcommandresolvedelements, "multiple")) {
dictionary add (game.pov.currentcommandresolvedelements, "multiple", true)
}
}
AddToResolvedNames (game.pov.currentcommandpendingvariable, result)
]]> null) {
if (HandleMenuTextResponse(command)) {
handled = true
}
else {
if (game.menuallowcancel) {
ClearMenu
}
else {
handled = true
}
}
}
if (not handled) {
StartTurnOutputSection
if (StartsWith (command, "*")) {
msg ("")
msg (SafeXML (command))
}
else {
shownlink = false
if (game.echocommand) {
if (metadata <> null and game.enablehyperlinks and game.echohyperlinks) {
foreach (key, metadata) {
if (EndsWith(command, key)) {
objectname = StringDictionaryItem(metadata, key)
object = GetObject(objectname)
if (object <> null) {
msg ("")
msg ("> " + Left(command, LengthOf(command) - LengthOf(key)) + "{object:" + object.name + "}")
shownlink = true
}
}
}
}
if (not shownlink) {
msg ("")
OutputTextRaw ("> " + SafeXML(command))
}
}
if (game.command_newline) {
msg ("")
}
game.pov.commandmetadata = metadata
if (game.multiplecommands) {
commands = Split(command, ".")
if (ListCount(commands) = 1) {
game.pov.commandqueue = null
HandleSingleCommand (Trim(command))
}
else {
game.pov.commandqueue = commands
HandleNextCommandQueueItem
}
}
else {
game.pov.commandqueue = null
HandleSingleCommand (Trim(command))
}
}
}
]]> 0) {
thiscommand = Trim(StringListItem(game.pov.commandqueue, 0))
if (queuelength = 1) {
game.pov.commandqueue = null
}
else {
newqueue = NewStringList()
for (i, 1, queuelength - 1) {
list add (newqueue, StringListItem(game.pov.commandqueue, i))
}
game.pov.commandqueue = newqueue
}
if (LengthOf(thiscommand) > 0) {
HandleSingleCommand (thiscommand)
}
else {
HandleNextCommandQueueItem
}
}
}
]]>= maxstrength) {
// ... except if the command defined later (candidate) has no parent, and the current best
// match (thiscommand) does have a parent. We want to favour any commands defined in rooms
// over global candidates.
skip = false
if (thiscommand <> null) {
if (thiscommand.parent <> null and candidate.parent = null) {
skip = true
}
}
if (not skip) {
thiscommand = candidate
maxstrength = strength
}
}
}
if (thiscommand = null) {
if (HasScript(game, "unresolvedcommandhandler")) {
params = NewDictionary()
dictionary add (params, "command", command)
do (game, "unresolvedcommandhandler", params)
}
else {
msg (Template("UnrecognisedCommand"))
}
HandleNextCommandQueueItem
}
else {
varlist = Populate(thiscommand.pattern, command, thiscommand.name)
HandleSingleCommandPattern (command, thiscommand, varlist)
}
]]>
RunTurnScripts
UpdateStatusAttributes
CheckDarkness
UpdateObjectLinks
// current command string
game.pov.currentcommand = command
// current command object
game.pov.currentcommandpattern = thiscommand
// string dictionary of variables, e.g. object1="book"; object2="table"
game.pov.currentcommandvarlist = varlist
// string list of variables left to resolve
game.pov.currentcommandvarlistqueue = NewStringList()
foreach (key, varlist) {
list add (game.pov.currentcommandvarlistqueue, key)
}
// dictionary of resolved elements, e.g. object1=book_object; object2=table_object
game.pov.currentcommandresolvedelements = NewDictionary()
// list of resolved elements, e.g. book_object; table_object
game.pov.currentcommandresolvedobjects = NewObjectList()
game.pov.currentcommandunresolvedobject = null
game.pov.currentcommandpendingvariable = null
ResolveNextName
0) {
// Pop next variable off the queue
var = StringListItem(game.pov.currentcommandvarlistqueue, 0)
if (queuelength = 1) {
game.pov.currentcommandvarlistqueue = null
}
else {
newqueue = NewStringList()
for (i, 1, queuelength - 1) {
list add (newqueue, StringListItem(game.pov.currentcommandvarlistqueue, i))
}
game.pov.currentcommandvarlistqueue = newqueue
}
// Resolve variable
value = StringDictionaryItem(game.pov.currentcommandvarlist, var)
if (value <> "") {
result = null
resolvinglist = false
if (StartsWith(var, "object")) {
if (HasDelegateImplementation(game.pov.currentcommandpattern, "multiple")) {
game.pov.currentcommandpendingobjectlist = NewObjectList()
game.pov.currentcommandpendingvariable = var
ResolveNameList (value, RunDelegateFunction(game.pov.currentcommandpattern, "multiple"), "object")
resolvinglist = true
}
else {
result = ResolveName(var, value, "object")
}
}
else if (StartsWith(var, "exit")) {
result = ResolveName(var, value, "exit")
}
else if (StartsWith(var, "text")) {
result = StringDictionaryItem(game.pov.currentcommandvarlist, var)
}
else {
error ("Unhandled command variable '" + var + "' - command variable names must begin with 'object', 'exit' or 'text'")
}
// at this point, ResolveName has returned - either an object name, unresolved, or pending
if (result = null) {
if ((not resolvinglist) and LengthOf(GetString(game.pov, "currentcommandpendingvariable")) = 0) {
UnresolvedCommand (value, var)
}
}
else {
AddToResolvedNames (var, result)
}
}
else {
ResolveNextName
}
}
else {
resolvedall = true
}
}
else if (queuetype = "null") {
resolvedall = true
}
else {
error ("Invalid queue type")
}
if (resolvedall) {
// TO DO: game.lastobjects should be game.pov.lastobjects
game.lastobjects = game.pov.currentcommandresolvedobjects
if (not DictionaryContains(game.pov.currentcommandresolvedelements, "multiple")) {
dictionary add (game.pov.currentcommandresolvedelements, "multiple", false)
}
if (not GetBoolean(game.pov.currentcommandpattern, "isundo")) {
if (LengthOf(game.pov.currentcommand) > 0) {
start transaction (game.pov.currentcommand)
}
}
if (not GetBoolean(game.pov.currentcommandpattern, "isoops")) {
// TO DO: game.unresolved* should be game.pov.unresolved*
game.unresolvedcommand = null
game.unresolvedcommandvarlist = null
game.unresolvedcommandkey = null
}
if (HasScript(game.pov.currentcommandpattern, "script")) {
do (game.pov.currentcommandpattern, "script", game.pov.currentcommandresolvedelements)
}
HandleNextCommandQueueItem
}
]]>
if (TypeOf(result) = "object") {
if (result.type = "object") {
list add (game.pov.currentcommandresolvedobjects, result)
}
}
else if (TypeOf(result) = "objectlist") {
foreach (obj, result) {
if (obj.type = "object") {
list add (game.pov.currentcommandresolvedobjects, obj)
}
}
}
dictionary add (game.pov.currentcommandresolvedelements, var, result)
ResolveNextName
1) {
msg (game.pov.currentcommandpattern.unresolved + " (" + unresolvedobject + ")")
}
else {
msg (game.pov.currentcommandpattern.unresolved)
}
}
else {
if (ListCount(game.pov.currentcommandvarlist) > 1) {
msg (Template("UnresolvedObject") + " (" + unresolvedobject + ")")
}
else {
msg (Template("UnresolvedObject"))
}
}
game.unresolvedcommand = game.pov.currentcommandpattern
game.unresolvedcommandvarlist = game.pov.currentcommandvarlist
game.unresolvedcommandkey = unresolvedkey
]]>
dictionary = GetAttribute(object, property)
if (DictionaryContains(dictionary, object2.name)) {
parameters = NewDictionary()
dictionary add (parameters, "this", object)
dictionary add (parameters, "object", object2)
invoke (ScriptDictionaryItem(dictionary, object2.name), parameters)
}
else {
parameters = NewDictionary()
dictionary add (parameters, "this", object)
dictionary add (parameters, "object", object2)
if (DictionaryContains(dictionary, "default")) {
invoke (ScriptDictionaryItem(dictionary, "default"), parameters)
}
else {
msg (default)
}
}
return (ListExclude(ScopeVisibleNotHeldNotScenery(), game.pov))
return (RemoveLookOnlyExits(RemoveSceneryObjects(ScopeExits())))
result = NewObjectList()
foreach (obj, GetAllChildObjects(game.pov)) {
if (ContainsVisible(game.pov, obj)) {
list add (result, obj)
}
}
return (result)
result = NewObjectList()
foreach (obj, GetAllChildObjects(game.pov)) {
if (ContainsReachable(game.pov, obj)) {
list add (result, obj)
}
}
return (result)
return (ScopeVisibleNotHeldForRoom(game.pov.parent))
if (room = game.pov.parent) {
result = ListCombine(ScopeReachableNotHeldForRoom(room), ScopeVisibleNotReachableForRoom(room))
list add (result, game.pov)
return (result)
}
else {
return (ListCombine(ScopeReachableNotHeldForRoom(room), ScopeVisibleNotReachableForRoom(room)))
}
return (ScopeVisibleNotHeldNotSceneryForRoom(game.pov.parent))
return (RemoveSceneryObjects(ScopeVisibleNotHeldForRoom(room)))
return (ScopeReachableForRoom(game.pov.parent))
if (room = game.pov.parent) {
result = ListCombine(ScopeReachableNotHeldForRoom(room), ScopeReachableInventory())
list add (result, game.pov)
}
else {
result = ScopeReachableNotHeldForRoom(room)
}
return (result)
return (ScopeVisibleNotReachableForRoom(game.pov.parent))
result = NewObjectList()
exclude = ScopeReachableForRoom(room)
list add (exclude, game.pov)
newParent = GetNonTransparentParent(room)
foreach (obj, GetAllChildObjects(newParent)) {
if (ContainsVisible(newParent, obj) and not ListContains(exclude, obj)) {
list add (result, obj)
}
}
return (result)
if (GetBoolean(room, "transparent")) {
if (room.parent = null) {
return (room)
}
else {
return (GetNonTransparentParent(room.parent))
}
}
else {
return (room)
}
return (ScopeReachableNotHeldForRoom(game.pov.parent))
result = ScopeVisible()
lightobjects = NewObjectList()
foreach (obj, result) {
if (GetBoolean(obj, "lightsource") and GetString(obj, "lightstrength") = lightstrength) {
list add (lightobjects, obj)
}
}
exits = ScopeExits()
foreach (obj, exits) {
if (GetBoolean(obj, "lightsource") and GetString(obj, "lightstrength") = lightstrength) {
list add (lightobjects, obj)
}
}
return (lightobjects)
game.pov and not Contains(game.pov, obj)) {
list add (result, obj)
}
}
return (result)
]]>
return (ScopeVisibleForRoom(game.pov.parent))
if (room = game.pov.parent) {
return (ListCombine(ScopeVisibleNotHeldForRoom(room), ScopeInventory()))
}
else {
return (ScopeVisibleNotHeldForRoom(room))
}
return (ScopeExitsForRoom(game.pov.parent))
result = NewObjectList()
foreach (exit, AllExits()) {
if (exit.parent = room) {
if (exit.visible) {
if (GetBoolean(room, "darklevel")) {
if (GetBoolean(exit, "lightsource")) {
list add (result, exit)
}
}
else {
list add (result, exit)
}
}
}
}
return (result)
result = NewObjectList()
foreach (command, AllCommands()) {
if (command.parent = null or command.parent = game.pov.parent) {
list add (result, command)
}
}
return (result)
result = null
foreach (obj, ListParents(obj)) {
if (result = null and not CanReachThrough(obj)) {
result = obj
}
}
return (result)
null) {
parent_as_list = NewObjectList()
list add (parent_as_list, obj.parent)
result = ListCombine(parent_as_list, ListParents(obj.parent))
}
return (result)
]]>
return (ContainsAccessible(parentObj, searchObj, false))
return (ContainsAccessible(parentObj, searchObj, true))
if (not HasObject(searchObj, "parent")) {
return (false)
}
else if (not searchObj.visible) {
return (false)
}
else if (GetBoolean(parentObj, "darklevel") and not GetBoolean(searchObj, "lightsource")) {
return (false)
}
else {
if (searchObj.parent = null) {
return (false)
}
else if (searchObj.parent = parentObj) {
return (true)
}
else {
if (onlyReachable) {
canAdd = CanReachThrough(searchObj.parent)
}
else {
canAdd = CanSeeThrough(searchObj.parent)
}
if (canAdd) {
return (ContainsAccessible(parentObj, searchObj.parent, onlyReachable))
}
else {
return (false)
}
}
}
result = 0
foreach (object, GetAllChildObjects ( obj )) {
if (HasInt(object, "volume")) {
result = result + object.volume
}
}
if (allinclusive and HasInt(obj, "volume")) {
result = result + obj.volume
}
return (result)
return ((GetBoolean(obj, "transparent") or CanReachThrough(obj)) and not GetBoolean(obj, "hidechildren"))
return (GetBoolean(obj, "isopen") and not GetBoolean(obj, "hidechildren"))
return (ListContains(ScopeInventory(), obj))
if (game.enablehyperlinks) {
data = NewStringDictionary()
foreach (object, ScopeVisible()) {
dictionary add (data, object.name, Join(GetDisplayVerbs(object), "/"))
}
JS.updateObjectLinks (data)
exits = NewStringList()
foreach (exit, ScopeExits()) {
list add (exits, exit.name)
}
JS.updateExitLinks (exits)
commands = NewStringList()
foreach (cmd, ScopeCommands()) {
list add (commands, cmd.name)
}
JS.updateCommandLinks (commands)
}
" + CapFirst(GetDisplayName(game.pov.parent)) + "")
}
if (game.autodescription_youarein_newline) {
msg (desc + " ")
desc = ""
}
}
if (i = game.autodescription_youcansee) {
objects = FormatObjectList(game.pov.parent.objectslistprefix, GetNonTransparentParent(game.pov.parent), Template("And"), ".")
desc = AddDescriptionLine(desc, objects)
if (game.autodescription_youcansee_newline) {
msg (desc + " ")
desc = ""
}
}
if (i = game.autodescription_youcango) {
exits = FormatExitList(game.pov.parent.exitslistprefix, GetExitsList(), Template("Or"), ".")
desc = AddDescriptionLine(desc, exits)
if (game.autodescription_youcango_newline) {
msg (desc + " ")
desc = ""
}
}
if (i = game.autodescription_description) {
if (HasScript(game.pov.parent, descriptionfield)) {
if (LengthOf(desc) > 0) {
msg (desc)
desc = ""
}
do (game.pov.parent, descriptionfield)
if (game.autodescription_description_newline) {
msg ("")
}
}
else {
desc = AddDescriptionLine(desc, GetRoomDescription())
if (game.autodescription_description_newline) {
msg (desc + " ")
desc = ""
}
}
}
}
if (LengthOf(desc) > 0) {
msg (desc)
}
}
else {
if (HasScript(game.pov.parent, descriptionfield)) {
do (game.pov.parent, descriptionfield)
}
else {
fulldesc = GetRoomDescription()
if (LengthOf(fulldesc) > 0) {
msg (fulldesc)
}
}
}
]]> 0) {
if (LengthOf(desc) > 0) {
msg (desc)
desc = ""
}
desc = desc + line
}
return (desc)
]]> 0) {
fulldesc = game.pov.parent.darkroomdescription
}
}
}
else {
if (HasString(game.pov.parent, "description")) {
if (LengthOf(game.pov.parent.description) > 0) {
fulldesc = game.pov.parent.description
}
}
}
if (game.appendobjectdescription) {
foreach (val, ScopeVisibleNotHeld()) {
if (HasString(val, "inroomdescription")) {
if (LengthOf(val.inroomdescription) > 0 and val <> game.pov) {
fulldesc = fulldesc + " " + val.inroomdescription
}
}
}
}
return (Trim(fulldesc))
]]> null) {
if (HasScript(oldRoom, "onexit")) {
do (oldRoom, "onexit")
}
}
}
on ready {
if ((not GetBoolean(game.pov.parent, "visited")) and HasScript(game.pov.parent, "beforefirstenter")) {
do (game.pov.parent, "beforefirstenter")
}
on ready {
if (HasScript(game.pov.parent, "beforeenter")) {
do (game.pov.parent, "beforeenter")
}
on ready {
if (game.gridmap) {
Grid_CalculateMapCoordinates (game.pov.parent, game.pov)
Grid_DrawPlayerInRoom (game.pov.parent)
}
if (IsDefined("oldRoom")) {
if (oldRoom <> null and game.changeroom_newline and not game.command_newline) {
msg ("")
}
}
request (UpdateLocation, CapFirst(GetDisplayName(game.pov.parent)))
roomFrameExists = false
if (HasString(game.pov.parent, "picture")) {
if (LengthOf(game.pov.parent.picture) > 0) {
roomFrameExists = true
SetFramePicture (game.pov.parent.picture)
}
}
if (game.clearframe and not roomFrameExists) {
ClearFramePicture
}
if (game.showdescriptiononenter) {
ShowRoomDescription
}
if (HasScript( game, "roomenter")) {
do (game, "roomenter")
}
on ready {
if ((not GetBoolean(game.pov.parent, "visited")) and HasScript(game.pov.parent, "firstenter")) {
do (game.pov.parent, "firstenter")
}
on ready {
if (HasScript(game.pov.parent, "enter")) {
do (game.pov.parent, "enter")
}
}
set (game.pov.parent, "visited", true)
}
}
}
}
]]> game.pov and obj.visible) {
list add (result, obj)
}
}
return (result)
]]>
result = NewObjectList()
foreach (obj, list) {
if (not obj.lookonly) {
list add (result, obj)
}
}
return (result)
result = NewObjectList()
foreach (obj, list) {
if (GetBoolean(obj, "lightsource") or obj.parent = game.pov) {
list add (result, obj)
}
}
return (result)
0) {
count = 0
result = preList + " "
foreach (item, list) {
result = result + GetDisplayNameLink(item, "exit")
count = count + 1
if (count = listLength - 1) {
result = result + " " + preFinal + " "
}
else if (count < listLength) {
result = result + ", "
}
}
result = result + postList
}
return (result)
]]>
if (HasString(obj, "alias")) {
result = obj.alias
}
else {
result = obj.name
}
return (result)
return (GetDisplayNameLink(obj, ""))
null) {
verbCount = ListCount(verbs)
}
else {
verbCount = 0
}
if (type = "exit" and verbCount = 1) {
if (not game.enablehyperlinks) {
result = GetDisplayAlias(obj)
}
else {
result = "{exit:" + obj.name + "}"
}
}
else if (type = "") {
result = GetDisplayAlias(obj)
}
else {
result = "{object:" + obj.name + "}"
}
if (not GetBoolean(obj, "usedefaultprefix")) {
if (obj.prefix = null) {
prefix = ""
}
else {
prefix = obj.prefix
}
}
else if (type = "exit") {
prefix = ""
}
else {
prefix = GetDefaultPrefix(obj)
}
if (LengthOf(prefix) > 0) {
prefix = prefix + " "
}
result = prefix + result
if (not GetBoolean(obj, "usedefaultprefix") and HasString(obj, "suffix")) {
if (LengthOf(obj.suffix) > 0) {
result = result + " " + obj.suffix
}
}
return (result)
]]>
return ("{object:" + obj.name + "}")
if (HasString(obj, "listalias")) {
result = obj.listalias
}
else {
result = GetDisplayAlias(obj)
}
return (result)
0) {
roomCheckDarkness = false
}
}
else {
roomCheckDarkness = false
}
game.pov.parent.darklevel = roomCheckDarkness
return (roomCheckDarkness)
]]>
timer.enabled = true
timer.trigger = game.timeelapsed + timer.interval
timer.enabled = false
timer.interval = interval
timer.script = script
SetTimeoutID (interval, "", script)
timername = ""
if (name = "") {
timername = GetUniqueElementName("timeout")
}
else {
if (GetTimer(name) = null and GetObject(name) = null) {
timername = name
}
else {
error ("Error creating timer: There is already an existing object named " + name)
}
}
if (not timername = "") {
create timer (timername)
timer = GetTimer(timername)
SetTimerInterval (timer, interval)
timer.timeoutscript = script
SetTimerScript (timer) {
this.enabled = false
invoke (this.timeoutscript)
destroy (this.name)
}
EnableTimer (timer)
}
request (Pause, ToString(interval * 1000))
if (IsGameRunning()) {
if (game.menucallback = null) {
foreach (turnscript, AllTurnScripts()) {
if (GetBoolean(turnscript, "enabled")) {
inscope = false
if (turnscript.parent = game or turnscript.parent = null) {
inscope = true
}
else {
if (Contains(turnscript.parent, game.pov)) {
inscope = true
}
}
if (inscope) {
do (turnscript, "script")
}
}
}
}
}
turnscript.enabled = true
turnscript.enabled = false
turnscript.script = script
SetTurnTimeoutID (turncount, "", script)
= this.triggerturncount) {
this.enabled = false
invoke (this.timeoutscript)
destroy (this.name)
}
}
EnableTurnScript (turnscript)
}
]]>
status = AddStatusAttributesForElement("", game, game.statusattributes)
status = AddStatusAttributesForElement(status, game.pov, game.povstatusattributes)
status = AddStatusAttributesForElement(status, game.pov, game.pov.statusattributes)
request (SetStatus, status)
null) {
foreach (attr, statusAttributes) {
if (LengthOf(status) > 0) {
status = status + "\n"
}
status = status + FormatStatusAttribute(attr, GetAttribute(element, attr), StringDictionaryItem(statusAttributes, attr))
}
}
return (status)
]]>
if (LengthOf(format) = 0) {
return (CapFirst(attr) + ": " + value)
}
else {
if (TypeOf(value) = "int" or TypeOf(value) = "double") {
value = ToString(value)
}
if (TypeOf(value) = "null") {
value = ""
}
return (Replace(format, "!", value))
}
if (game.showscore) {
game.score = 0
if (game.statusattributes = null) {
game.statusattributes = NewStringDictionary()
}
dictionary add (game.statusattributes, "score", "Score: !")
}
if (game.showhealth) {
if (game.povstatusattributes = null) {
game.povstatusattributes = NewStringDictionary()
}
dictionary add (game.povstatusattributes, "health", "Health: !%")
}
if (not HasInt(game, "score")) {
error ("Score is not configured. To enable score, go to 'game' and tick 'Show score' on the Player tab.")
}
game.score = game.score + amount
if (not HasInt(game, "score")) {
error ("Score is not configured. To enable score, go to 'game' and tick 'Show score' on the Player tab.")
}
game.score = game.score - amount
if (not HasInt(game.pov, "health")) {
error ("Health is not configured. To enable health, go to 'game' and tick 'Show health' on the Player tab.")
}
game.pov.health = game.pov.health + amount
if (not HasInt(game.pov, "health")) {
error ("Health is not configured. To enable health, go to 'game' and tick 'Show health' on the Player tab.")
}
game.pov.health = game.pov.health - amount
data = NewDictionary()
dictionary add (data, "fulltext", text)
text = ProcessTextSection(text, data)
OutputTextRaw (text)
" + text + " ")
if (GetString(game, "commandbarformat") <> format) {
format = format + ";background:" + game.defaultbackground
game.commandbarformat = format
JS.setCommandBarStyle (format)
}
request (Speak, text)
]]>
data = NewDictionary()
dictionary add (data, "fulltext", text)
text = ProcessTextSection(text, data)
OutputTextRawNoBr (text)
" + text + "")
request (Speak, text)
]]> 0) {
style = style + "font-family:" + font + ";"
}
if (LengthOf(colour) = 0) {
if (UIOptionUseGameColours()) {
colour = game.defaultforeground
}
else {
colour = GetUIOption("OverrideForeground")
}
}
if (LengthOf(colour) > 0) {
style = style + "color:" + colour + ";"
}
if (UIOptionUseGameFont()) {
size = game.defaultfontsize
}
else {
size = ToDouble(GetUIOption("OverrideFontSize"))
}
if (size > 0) {
style = style + "font-size:" + ToString(size) + "pt;"
}
return (style)
]]>
return (GetCurrentTextFormat(GetLinkTextColour()))
value = GetUIOption("UseGameFont")
if (value = null or value = "true") {
return (true)
}
else {
return (false)
}
value = GetUIOption("UseGameColours")
if (value = null or value = "true") {
return (true)
}
else {
return (false)
}
if (UIOptionUseGameColours()) {
return (game.defaultlinkforeground)
}
else {
return (GetUIOption("OverrideLinkForeground"))
}
0) {
nestCount = 1
searchStart = open + 1
finished = false
while (not finished) {
nextOpen = Instr(searchStart, text, "{")
nextClose = Instr(searchStart, text, "}")
if (nextClose > 0) {
if (nextOpen > 0 and nextOpen < nextClose) {
nestCount = nestCount + 1
searchStart = nextOpen + 1
}
else {
nestCount = nestCount - 1
searchStart = nextClose + 1
if (nestCount = 0) {
close = nextClose
containsUnprocessedSection = true
finished = true
}
}
}
else {
finished = true
}
}
}
if (containsUnprocessedSection) {
section = Mid(text, open + 1, close - open - 1)
value = ProcessTextCommand(section, data)
text = Left(text, open - 1) + value + ProcessTextSection(Mid(text, close + 1), data)
}
return (text)
]]>
if (StartsWith(section, "if ")) {
return (ProcessTextCommand_If(section, data))
}
else if (StartsWith(section, "object:")) {
return (ProcessTextCommand_Object(section, data))
}
else if (StartsWith(section, "command:")) {
return (ProcessTextCommand_Command(Mid(section, 9), data))
}
else if (StartsWith(section, "page:")) {
return (ProcessTextCommand_Command(Mid(section, 6), data))
}
else if (StartsWith(section, "exit:")) {
return (ProcessTextCommand_Exit(section, data))
}
else if (StartsWith(section, "once:")) {
return (ProcessTextCommand_Once(section, data))
}
else if (StartsWith(section, "random:")) {
return (ProcessTextCommand_Random(section, data))
}
else if (StartsWith(section, "rndalt:")) {
return (ProcessTextCommand_RandomAlias(section, data))
}
else if (StartsWith(section, "img:")) {
return (ProcessTextCommand_Img(section, data))
}
else if (StartsWith(section, "counter:")) {
return (ProcessTextCommand_Counter(Mid(section, 9), data))
}
else if (StartsWith(section, "select:")) {
return (ProcessTextCommand_Select(section, data))
}
else {
dot = Instr(section, ".")
if (dot = 0) {
return ("{" + ProcessTextSection(section, data) + "}")
}
else {
objectname = Left(section, dot - 1)
attributename = Mid(section, dot + 1)
object = GetObject(objectname)
if (object = null) {
return ("{" + ProcessTextSection(section, data) + "}")
}
else {
if (HasAttribute(object, attributename)) {
type = TypeOf(object, attributename)
switch (type) {
case ("string", "int", "double") {
return (ToString(GetAttribute(object, attributename)))
}
case ("boolean") {
result = GetAttribute(object, attributename)
if (result) {
return ("true")
}
else {
return ("false")
}
}
default {
return ("(" + type + ")")
}
}
}
else {
return ("")
}
}
}
}
0) {
text = Mid(objectname, colon + 1)
objectname = Left(objectname, colon - 1)
}
object = GetObject(objectname)
if (object = null) {
return ("{" + ProcessTextSection(section, data) + "}")
}
else {
if (LengthOf(text) = 0) {
text = SafeXML(GetDisplayAlias(object))
}
if (game.enablehyperlinks) {
linkid = ProcessTextCommand_GetNextLinkId()
colour = ""
if (HasString(object, "linkcolour") and GetUIOption("UseGameColours") = "true") {
colour = object.linkcolour
}
else {
colour = GetLinkTextColour()
}
style = GetCurrentTextFormat(colour)
return ("" + text + "")
}
else {
return (text)
}
}
]]>
if (not HasInt(game, "lastlinkid")) {
game.lastlinkid = 0
}
game.lastlinkid = game.lastlinkid + 1
return ("verblink" + game.lastlinkid)
0) {
text = Mid(command, colon + 1)
command = Left(command, colon - 1)
}
style = GetCurrentLinkTextFormat()
candidates = NewObjectList()
foreach (cmd, ScopeCommands()) {
if (IsRegexMatch(cmd.pattern, command, cmd.name)) {
list add (candidates, cmd)
}
}
elementid = ""
if (ListCount(candidates) = 1) {
cmd = ObjectListItem(candidates, 0)
elementid = cmd.name
}
linkid = ProcessTextCommand_GetNextLinkId()
dataattrs = ""
if (game.deactivatecommandlinks) {
dataattrs = dataattrs + "data-deactivateonclick=\"true\" "
}
dataattrs = dataattrs + "data-command=\"" + command + "\""
return ("" + ProcessTextSection(text, data) + "")
]]>" + alias + "")
}
]]>
if (not HasAttribute(game, "textprocessor_seen")) {
game.textprocessor_seen = NewDictionary()
}
fulltext = StringDictionaryItem(data, "fulltext")
if (not DictionaryContains(game.textprocessor_seen, fulltext)) {
onceSectionsInThisText = NewList()
dictionary add (game.textprocessor_seen, fulltext, onceSectionsInThisText)
}
else {
onceSectionsInThisText = DictionaryItem(game.textprocessor_seen, fulltext)
}
if (not ListContains(onceSectionsInThisText, section)) {
list add (onceSectionsInThisText, section)
return (ProcessTextSection(Mid(section, 6), data))
}
else {
return ("")
}
elements = Mid(section, 8)
elementslist = Tsplit(elements)
index = GetRandomInt(0, ListCount(elementslist) - 1)
return (ProcessTextSection(ListItem(elementslist, index), data))
= sections) {
item = Mid(splittext, startpos, i - startpos)
list add (itemlist, item)
startpos = i + 1
}
}
item = Mid(splittext, startpos)
list add (itemlist, item)
return (itemlist)
]]> 0) {
return (ListItem(object.alt, GetRandomInt(0, count - 1)))
}
else {
return ("")
}
}
]]> 0) {
operatorlength = 2
}
if (operator = 0) {
operator = Instr(condition, ">=")
if (operator <> 0) {
operatorlength = 2
}
}
if (operator = 0) {
operator = Instr(condition, "<>")
if (operator <> 0) {
operatorlength = 2
}
}
if (operator = 0) {
operator = Instr(condition, "<")
if (operator <> 0) {
operatorlength = 1
}
}
if (operator = 0) {
operator = Instr(condition, ">")
if (operator <> 0) {
operatorlength = 1
}
}
if (operator = 0) {
operator = Instr(condition, "=")
if (operator <> 0) {
operatorlength = 1
}
}
if (operator = 0) {
checkfor = true
if (StartsWith(condition, "not ")) {
checkfor = false
condition = Mid(condition, 5)
}
dot = Instr(condition, ".")
if (dot = 0) {
result = GetBoolean(game, condition)
}
else {
objectname = Left(condition, dot - 1)
attributename = Mid(condition, dot + 1)
object = GetObject(objectname)
if (object = null) {
result = false
}
else {
result = GetBoolean(object, attributename)
}
}
if (result = checkfor) {
return (ProcessTextSection(text, data))
}
else {
return ("")
}
}
else {
lhs = Left(condition, operator - 1)
rhs = Mid(condition, operator + operatorlength)
op = Mid(condition, operator, operatorlength)
dot = Instr(lhs, ".")
if (dot = 0) {
objectname = ""
attributename = ""
if (HasInt(game, lhs)) {
objectname = "game"
attributename = lhs
}
else {
return ("{if " + command + "}")
}
}
else {
objectname = Left(lhs, dot - 1)
attributename = Mid(lhs, dot + 1)
}
object = GetObject(objectname)
if (object = null) {
return ("{if " + command + "}")
}
else {
value = GetAttribute(object, attributename)
// The next three lines added by The Pixie
if (TypeOf(value) = "object") {
value = value.name
}
if (op = "=") {
if (ToString(value) = rhs) {
return (ProcessTextSection(text, data))
}
else {
return ("")
}
}
else if (op = "<>") {
if (not ToString(value) = rhs) {
return (ProcessTextSection(text, data))
}
else {
return ("")
}
}
else if (op = ">") {
if (ToDouble(ToString(value)) > ToDouble(rhs)) {
return (ProcessTextSection(text, data))
}
else {
return ("")
}
}
else if (op = "<") {
if (ToDouble(ToString(value)) < ToDouble(rhs)) {
return (ProcessTextSection(text, data))
}
else {
return ("")
}
}
else if (op = ">=") {
if (ToDouble(ToString(value)) >= ToDouble(rhs)) {
return (ProcessTextSection(text, data))
}
else {
return ("")
}
}
else if (op = "<=") {
if (ToDouble(ToString(value)) <= ToDouble(rhs)) {
return (ProcessTextSection(text, data))
}
else {
return ("")
}
}
}
}
}
]]>")
]]>
if (HasAttribute(game, section)) {
return (ToString(GetAttribute(game, section)))
}
else {
return ("0")
}
index) or (index >= Listcount(elementslist))) {
return ("{" + ProcessTextSection(section, data) + "}")
}
else {
return (ProcessTextSection(ListItem(elementslist, index), data))
}
}
}
]]>")
game.panelcontents = filename
]]>
request (SetPanelContents, "")
game.panelcontents = null
request (ClearScreen, "")
request (Foreground, colour)
game.defaultforeground = colour
request (Background, colour)
game.defaultbackground = colour
game.defaultfont = font
game.defaultwebfont = ""
AddExternalStylesheet ("https://fonts.googleapis.com/css?family=" + Replace(font, " ", "+"))
game.defaultwebfont = font
if (game.externalstylesheets = null) {
game.externalstylesheets = NewStringList()
}
if (not ListContains(game.externalstylesheets, stylesheet)) {
list add (game.externalstylesheets, stylesheet)
JS.addExternalStylesheet (stylesheet)
}
game.defaultfontsize = size
SetAlignment ("center")
msg (text)
SetAlignment ("left")
JS.AddYouTube (id)
JS.AddVimeo (id)
request (Wait, "")
0) {
url = Mid(url, pos + 3)
}
if (https) {
url = "https://" + url
}
else {
url = "http://" + url
}
msg ("" + text + "")
]]>" + text + "")
]]>
return ("{command:" + cmd + ":" + text + "}")
request (Log, text)
JS.SetBackgroundImage (GetFileURL(filename))
game.backgroundimage = filename
JS.SetBackgroundOpacity (opacity)
game.backgroundopacity = opacity
game.setbackgroundopacity = true
"
}
else {
result = "
"
}
foreach (item, list) {
result = result + "
" + item + "
"
}
if (numbers) {
result = result + ""
}
else {
result = result + "