code:
/**
 * Created by aimozg on 03.01.14.
 */
package classes.Scenes.Areas.Swamp
{
	import classes.*;
	import classes.GlobalFlags.kFLAGS;
	import classes.GlobalFlags.kGAMECLASS;
	import classes.Items.Armors.LustyMaidensArmor;
	import classes.Scenes.Monsters.pregnancies.PlayerSpiderPregnancy;
	import classes.Scenes.PregnancyProgression;
	import classes.display.SpriteDb;
	import classes.internals.*;

	public class MaleSpiderMorphScene extends BaseContent
	{
		public function MaleSpiderMorphScene(pregnancyProgression:PregnancyProgression, output:GuiOutput)
		{
			new PlayerSpiderPregnancy(pregnancyProgression, output);
		}

		//Greeting
		public function greetMaleSpiderMorph():void
		{
			clearOutput();
			spriteSelect(SpriteDb.s_spiderguy);
			outputText("A spider-morph drops out of a tree in front of you, hanging by a single thread of sparkling webbing.  His purple eyes gaze deeply into your own while he looks you up and down.  ");
			//DANGER MODE:
			if (rand(2) == 0) {
				outputText("A moment later, he flips down onto his feet and advances, touching his half-hard, foreskin-shrouded cock.  Judging from the glint in his eyes, he plans to force himself upon you!");
				//- auto fight
				startCombat(new MaleSpiderMorph());
			}
			//NICE GUY MODE:
			else {
				outputText("He breaks into a smile and says, \"Hi there!  I haven't seen anyone else with a shred of sanity in FOREVER.  Would you mind just, talking with me?\"");
				//[Fight] [Talk] [Leave]
				menu();
				addButton(0, "Fight", fightSpiderBoy);
				addButton(1, "Talk", talkToSpiderBoy);
				addButton(14, "Leave", camp.returnToCampUseOneHour);
			}
			unlockCodexEntry(kFLAGS.CODEX_ENTRY_ARACHNES);
		}

		private function fightSpiderBoy():void {
			startCombatImmediate(new MaleSpiderMorph());
			spriteSelect(SpriteDb.s_spiderguy);
		}

//Talk
		private function talkToSpiderBoy():void
		{
			clearOutput();
			spriteSelect(SpriteDb.s_spiderguy);
			outputText("The male spider-morph grins even wider, displaying the partially retracted tips of his two fangs.  You smile back nervously while he rotates about and drops lightly onto his feet, gleefully approaching you in spite of his nudity.  Sensing your discomfort, he stops a few yards away and pulls some food from a pouch on his hip, offering you some dried meats and fruits.  You take one of the more harmless looking ones and sit down with him.  ");
			player.refillHunger(20, false);
			outputText("He starts talking first, telling of how his people were a young race of transformed off-worlders.  The demons put a quick end to that, and recruited a large amount of the more aggressive driders and arachnes from his tribe.  He quickly explains that arachne are like him, but with chitinous exoskeletons covering their whole body, except for the face.  Driders on the other hand, have the body of a human from the hips up but a giant spider body below.\n\n");
			outputText("You talk of your own people, and the good times you had in Ingnam growing up, but you keep coming back to the sadness of losing so many young adults to becoming champions.  Eventually you go over your own selection, training, and eventual journey.  The spider-morph listens with rapt attention the whole way through.\n\n");
			outputText("\"Wow,\" comments the arachnid male, \"that's quite the story.  Thank you so much for talking to me today.  Here, take this.  ");
			if (rand(6) != 0) {
				outputText("If you ever want to have your own venom or webbing, eat as much of it as you can.  Who knows, maybe it'll help you take down the demons somehow?\"\n\n");
				outputText("He stands and gives you a bundle of pink fibers with a nervous bow.  You look down at the gossamer strands in your hands, and when you glance back up, he's gone.  ");
				inventory.takeItem(consumables.S_GOSSR, camp.returnToCampUseOneHour);
			} else {
				outputText("Spider webs are tougher than steel.  A skilled artisan can make an excellent fabric using it.  Or you can just twist it into a rope.  Who knows, maybe it'll help you take down the demons somehow?\"\n\n");
				outputText("He stands and gives you a bundle of white fibers with a nervous bow.  You look down at the gossamer strands in your hands, and when you glance back up, he's gone.  ");
				inventory.takeItem(useables.T_SSILK, camp.returnToCampUseOneHour);
			}
		}

//*Victory Pretext:rr
		public function defeatSpiderBoy():void
		{
			clearOutput();
			spriteSelect(SpriteDb.s_spiderguy);

			if (flags[kFLAGS.SFW_MODE] > 0) {
				outputText("You smile in satisfaction as the " + monster.short + " collapses, unable to continue fighting.");
				combat.cleanupAfterCombat();
				return;
			}
			outputText("The male spider-morph collapses onto his hands and knees, ");
			if (monster.lust >= monster.maxLust()) outputText("masturbating with furious abandon, working his ebon dick with such vigor that the spider's pre-cum-slicked dick-skin noisily slides itself back and forth over his fattened glans; it becomes apparent just how much foreskin he truly has at this point, as even with his frenzied rubbing his glans remains shrouded in the thick excess skin while his fist slaps lewdly against his groin.  Dribbles of pre-cum leak from between his fingers to spill on the ground.");
			else outputText("wobbling back and forth as he tries to stay up and fight.  There's no way he can oppose you, as beaten as he is now.");

			menu();
			addDisabledButton(0, "Mount", "This scene requires you to have vagina and sufficient arousal.");
			addDisabledButton(1, "FuckHisButt", "This scene requires you to have fitting cock and sufficient arousal.");
			addDisabledButton(2, "Frot", "This scene requires you to have overly big cock and sufficient arousal.");
			// Button 3 is used for Lusty Maidens Armor special scene and is hidden without it

			if (!player.isGenderless() && player.lust >= 33) {
				outputText("\n\nWhat do you do?");
				if (player.hasVagina()) {
					addButton(0, "Mount", victoryCowgirlRidingOnSpiderBoi);
					if (player.biggestTitSize() >= 4 && player.armorName == "lusty maiden's armor") {
						addButton(3, "B.Titfuck", (player.armor as LustyMaidensArmor).lustyMaidenPaizuri, player, monster);
					}
				}
				if (player.hasCock()) {
					if (player.cockThatFits(monster.analCapacity()) != -1) {
						addButton(1, "FuckHisButt", victoryButtFuck);
					}
					if (player.biggestCockArea() > monster.analCapacity()) {
						addButton(2, "Frot", victoryFrotTheSpoidah);
					}
				}
			}

            setSexLeaveButton();
		}

//Loss selector
		public function loseToMaleSpiderMorph():void
		{
			clearOutput();
			if (doSFWloss()) return; //No rape in SFW mode.
			var choices:Array = [];
			if (player.hasCock()) choices[choices.length] = 0;
			if (player.hasVagina()) choices[choices.length] = 1;
			if (player.gender == 0) {
				spriteSelect(SpriteDb.s_spiderguy);
				outputText("The raven-haired spider-guy tears off your " + player.armorName + ", and disgusted by what he finds, he kicks you in the head, knocking you out.");
				player.HP = 1;
				combat.cleanupAfterCombat();
				return;
			}
			var select:Number = choices[rand(choices.length)];
			if (select == 0) spiderBoyLossMaleButtfuck();
			else loseToSpiderBoyVagFucked();
		}

//*Victory Buttfucko
		private function victoryButtFuck():void
		{
			var x:int = player.cockThatFits(monster.analCapacity());
			clearOutput();
			spriteSelect(SpriteDb.s_spiderguy);
			//*Summary:  Reaming some anus.
			outputText("You approach and turn the spider-boy around, pushing the spider's bulbous abdomen aside to give yourself a better view of the his tight, heart-shaped ass.  ");
			if (monster.lust >= monster.maxLust()) outputText("He's too distracted by his foreskin fondling to pay much attention to your anal-focused attentions.");
			else outputText("He's too busy trying to stay upright to fight off your anal-focused attentions.");
			outputText("  With a wide smile on your face, you grab a handful of his pale butt-cheek and squeeze your fingers into the soft flesh.  It spreads his dainty derriere just wide enough for you to see the puckered star of his rectum.  " + player.SMultiCockDesc() + " ");
			if (player.lust100 < 70) outputText("hardens to full size");
			else outputText("bobs happily");
			outputText(" against your " + player.armorName + ", eager to take the dark hole.\n\n");

			outputText("The arachnid finally realizes what you intend to do, and he whimpers plaintively, \"P-please... don't put it there.  ");
			if (rand(3) == 0) outputText("I-I've never had anything in there...");
			else outputText("I-I don't want anything in there...");
			outputText("\"\n\n");

			outputText("You grab his balls and caress them in one hand while you take off your equipment with the other.  The hapless victim starts to relax from the attentions, and pre-cum begins to leak from inside his foreskin ");
			if (monster.lust100 <= 99) outputText("after he starts touching himself.");
			else outputText("while he fondles and caresses the sensitive flesh.");
			outputText("  Meanwhile, you grab " + player.oMultiCockDesc() + " and line it up with the spider-boy's twitching rectum, rubbing the " + player.cockHead(x) + " over the tight little hole while you wait for it to slowly loosen.  A fresh dollop of pre-cream bubbles out of his cum-frothing foreskin in response, letting you know that in spite of his protests, your reluctant lover's body loves the anal stimulation.\n\n");

			outputText("After a little more gentle pressure and a few more gentle caresses of his testicles, the defeated male finally relaxes enough for you to put the first inch inside him.  His tunnel is so hot that it feels like your " + player.cockDescript(x) + " is going to melt inside his sweltering embrace, and much worse, his sphincter clamps down hard enough to trap your " + player.cockHead(x) + " inside his toasty tail-hole.  Holding tightly to his ass and balls, you yank your clenching, anal slut down hard, forcing him to stretch while the rest of your " + player.cockDescript(x) + " burrows deep inside him");
			if (player.cockTotal() > 1) {
				outputText(", your other penis");
				if (player.cockTotal() == 2) outputText(" resting atop the small of his back");
				else outputText("es splaying out over his butt");
			}
			outputText(".\n\n");

			outputText("The spider-morph cries out, \"Oww... it's stretching me so much!  B-b-but why does it feel good?\"\n\n");
			outputText("Chuckling at his admission of enjoyment, you let go of the spider's twitching ball-sack and take advantage of your free hand to slap his pale white ass.  It leaves a red, hand-shaped mark on his perfect little hiney, a temporary reminder of your authority.  His abdomen rubs against your belly as you start to fuck him, the heavy organ swaying with the gentle sawing motions of two bodies locked in anal coitus.  You gradually increase the tempo and quickly reach a point where your hips are slapping against his butt with loud, echoing smacks.\n\n");
			outputText("The arachnid male squirms under you, whimpering, \"W-Why is it feeling so good?  It's-ooohh-making my dick so hot.  It feels like it's gonna explode!\"\n\n");
			outputText("You whisper back that it feels good because he's a spider-slut, and you give him another hard slap to emphasize your point.  He whimpers and dribbles white cream into the dirt, his balls churning against you");
			if (player.balls > 0) outputText("r own");
			outputText(" during the brief instant you've got him hilted.  Inspired by his submissive, orgasm-induced dribbling, you reach down to catch some of his cream in your hand.  He isn't squirting enough to fully fill your hand, so you lean back and hilt him again, roughly milking his spooge into your palm.  You take the handful of cum and hold it to his mouth.  He licks up his wasted seed like a good little bitch, shuddering in between swallows while you continue to dominate his asshole.\n\n");
			outputText("Once he's had most of it, you wipe the rest off in his raven-black hair, marking him as your spooge-slurping semen-slut.  He looks back with tearful eyes, but his beet-red cheeks and pursed, white-glazed lips tell a different story.  The spider-boy keeps mewling and moaning, strangling off his own sounds of pleasure as if he could deny the steady flow of seed that drips from his droopy, foreskin-shrouded shaft.\n\n");

			outputText("You go wild on him, fucking his ass hard.  His limp dick swings back and forth, slapping down at his balls while it continues to spew white globs into the ground.  Watching the little slut cream out his load in response to your anal 'massage' sends a sexual thrill through your body, and when his tight little ass-ring clamps down on your " + player.cockDescript(x) + ", you're pushed to ejaculation as well.  Your spunk glazes his intestines with cum, coating them in the thick white goo of your liquid love.");
			if (player.cockTotal() == 2) outputText("  The leftover dick spurts out its half of your load over his ass, making it look more pearly-white than ever before.");
			else if (player.cockTotal() > 2) outputText("  The leftover dicks spurt out their portion of your load across his ass-cheeks, making them look more pearl-white than ever before.");
			if (player.cumQ() >= 500) {
				outputText("  His belly is ");
				if (player.cumQ() >= 1500)outputText("heavy and ");
				if (player.cumQ() < 1000) outputText("slightly ");
				outputText("distended by the time you finish.");
			}
			outputText("\n\n");

			outputText("Pushing the spider-boy off you, you smile and watch the slut's gaped asshole slowly close, ");
			if (player.cumQ() < 50) outputText("trickles");
			else if (player.cumQ() < 1000) outputText("streams");
			else outputText("rivers");
			outputText(" of semen sliding out of the abused opening.  He rolls onto his side and pants, still leaking his thick goo from the limp, weak little cock between his legs.  You bend down and wipe your dick off on his face, letting him lick at it like a trained puppy.  Once cleaned, you get dressed and wander back to camp, leaving the spider to recover from the ordeal.");
			player.orgasm('Dick');
			combat.cleanupAfterCombat();
		}

//*Victory Frotting? (too biggo)
		private function victoryFrotTheSpoidah():void
		{
			clearOutput();
			spriteSelect(SpriteDb.s_spiderguy);
			outputText("You push the ");
			if (monster.lust >= monster.maxLust()) outputText("masturbating");
			else outputText("injured");
			outputText(" spider-morph over onto his back and laugh at his relatively tiny dick.  It's no wonder he jumped you wanting sex - the girls probably took one look at the unimpressive member and took off running.  You take off your " + player.armorName + " and let " + player.sMultiCockDesc() + " flop free.  ");
			if (player.cockTotal() == 1) outputText("Dropping it squarely ");
			else outputText("Dropping the largest ");
			outputText("atop his miniature cock, you virtually bury it in a superior male's heavy penile flesh.  ");
			if (monster.lust >= monster.maxLust()) outputText("He pants in surprise and pleasure, clearly enjoying the weighty shaft rubbing against his drooping dick-skin");
			else outputText("He gasps in surprise and slowly growing pleasure, clearly enjoying the weighty shaft rubbing against his drooping dick-skin");
			outputText(".  You sway your " + player.hipDescript() + " to drag your " + player.cockDescript(0) + " all over his body, and the defeated boy's pale white skin slowly colors pink with a full-body blush.\n\n");

			outputText("Trapped below your sizable weight, the turgid spider-shaft slowly leaks pre-cum from its tiny cum-slit.  The added moisture proves to be just the lubrication you needed, and you begin to sway your body back and forth, letting your incredible endowment rub over the spider's balls, flat chest, and fat little pecker.  Each time you let it get a little closer to his face, but as his pre-cum lubricates more and more of your mighty member, you stop measuring your strokes so modestly.\n\n");

			outputText("You hump forward and smash your " + player.cockHead() + " against the spider-boy's face, popping a bubble of pre-cum on his lips before you pull back far enough to reveal the soaked foreskin that hides his cock-tip.  He's probably filled the entirety of that little flesh-balloon with his leavings, and as you slide back up you feel more of his pre-cum bursting out, confirming your suspicions.  A pair of hard, chitinous arms encircle your " + player.cockDescript(0) + " in a tight hug, squeezing into a slippery pleasure-vice for your penis.\n\n");

			outputText("The enthusiastic spider-bitch looks up at you with a twinkle in his purple eyes, and the next time you push forward, he bites your cock-tip.  You scream in surprise and pain, throwing your head back and howling from the abuse of your most tender part.  Before you can finish your scream, the pain vanishes, replaced by a heat and... need - a warm command that rolls through your body to your brain and balls, ordering them to cum over and over until every drop of spooge has been spilled.  With newfound desire coursing through you, you glare down at the bitch.  He rapidly retracts his fangs and gives you a long, apologetic lick that somehow feels almost as good as fucking a tight pussy.\n\n");

			outputText("Driven by the unquenchable desire coursing through your cock, you unleash a series of rapid-fire thrusts through the sneaky spider's arms, smashing his cock so hard into his belly that you wonder if he can even keep it up under all that pressure.  His whole body is little more than your personal onahole, and you fuck it like a disposable object, not caring in the slightest if you damage him.  Every time you smear another bubble of pre-cum on the spider's face he gives a gentle kiss, lick, or even a cruel, cum-slurping suckle.\n\n");

			outputText("Without the slightest shred of decency, you keep humping the spider-boy's body like an animal.  No matter how hard you grind your " + player.cockDescript(0) + " against him or how forcefully you slide your girthy penis through the ring he's made from his arms, it isn't enough for you.  You let go of him completely and wrap both your hands around your own swollen mass, completely giving in to the artificial desire.  Immediately, your hands start to pump up and down, providing a cacophony of pleasure that makes your eyes cross and your tongue hang out.\n\n");

			outputText("A spasm of pleasure sparks in your loins, slowly building into a knot of warm, liquid heat, and you know it's finally time to claim the release you so desperately crave.  You push as far forward as you can, grinding the slippery tip of your cock's cum-slit into the spider-boy's face while your urethra bulges wide at the base, distended by the building cum-bubble slowly pushing through your huge prick.  Climax arrives, and as your body expels the gush of creamy goo directly into the spider-boy's face, another two deliveries of spunk push their way up, squeezing the boy-slut's tiny dick even tighter between the two of you.  He loses it and squirts, adding his own lubricants to the mess while you paint his face a whorish, glistening white.  You shake from stem to stern, body clenching while you pump out the last of your spooge onto his well-bukkake'd face.");
			if (player.cumQ() >= 750) {
				outputText("  Only after you finish do you realize how much you came - there's a ");
				if (player.cumQ() >= 2000) outputText("huge ");
				outputText("puddle under his head!");
			}
			outputText("\n\n");

			outputText("You stretch and sigh with contentment, looking over your cum-covered conquest while he tries to clean himself off.  Absolutely perfect.");
			player.orgasm('Dick');
			combat.cleanupAfterCombat();
		}

//*Victory Cowgirl
		private function victoryCowgirlRidingOnSpiderBoi():void
		{
			//*Summary: Throw him on his back and mount up on that throbbing, ebon piece of uncut spidercock as he looks to you meekly, panting, needing something to tend to his foreskinned dick so badly...
			clearOutput();
			spriteSelect(SpriteDb.s_spiderguy);
			outputText("You hastily remove your " + player.armorName + " to bare yourself in preparation for the coming pleasure.  Throughout it all, the spider-boy doesn't react.  He's too busy ");
			if (monster.HP < 1) outputText("trying to stay upright");
			else outputText("trying to drown himself in pleasure");
			outputText(" to summon a response.  How irritating.  You push him over with your " + player.foot() + " to roll him onto his back, giving you the access you need to get at his ");
			if (monster.HP < 1) outputText("dripping dick");
			else outputText("gradually stiffening dick");
			outputText(".  Gently exploring his body, you run your hands over his chest, circle his tight, stiff nipples, and slide all ten fingers down his smooth skin toward his loins.  The effect of your touches soon becomes apparent, ");
			if (monster.HP < 1) outputText("resulting in a stiff, pre-cum-dripping spider-cock.");
			else outputText("resulting in the spider-cock's hood of excess, sensitive flesh overfilling with sticky, musky pre-cum.");
			outputText("\n\n");

			outputText("The arachnid male looks up at you with wide, open eyes and a lusty expression, begging with his eyes for you to take his slippery black cock inside you.  Lucky for him, that's exactly what you have planned.  You mount the male spider's lithe body with a smooth, sensuous motion, ");
			if (player.balls > 0) outputText("lifting your balls and ");
			outputText("placing your " + player.vaginaDescript() + " atop the floppy, folded skin that obscures his cockhead.  The drippy arachnid-cock easily slides inside you while your labia push the skin back, exposing his pre-cum-drooling cum-slit to your hot, inner walls.  You can feel him swelling further from the stimulation, his twitching cock trying to stuff you as effectively as possible.");
			//(virgin check)
			player.cuntChange(monster.cockArea(0), true, true, false);
			outputText("\n\n");

			outputText("You pinch the arachnid male's nipple as you begin to bounce up and down upon him.  Each lewd slap of your " + player.buttDescript() + " on his groin is accompanied by a rippling spasm of pleasure in your " + player.vaginaDescript() + ", inadvertently milking the thick-skinned member with the muscular spasms.  He moans and begins trying to lift his hips to meet you.  You deny him, slamming your body down harder with every downward motion to crush him back into the moist swamp-earth.\n\n");

			outputText("\"Ungh... uh... c-c-coming!\" whines the spider-morph, trembling underneath you.  His cock squirts and dumps its inhuman seed into your innermost depths.  Squishing wetly, you can feel pump after pump of the thick spooge being forced past your cervix to burrow in your womb.  The male finishes his climax and sags down into the loam, panting.  Reaching down, you give him an irritated slap.  Your victim's dick actually starts wilting inside you while you ride him, spooge slopping past your lips with each thrust.  The nerve of some men!\n\n");

			outputText("An idea comes to you while you try to get off on the limp-dicked man, and you decide to act on it immediately.  Grabbing his head in both hands, you push the spider-boy's head against his shoulder and command, \"Bite.\"  He fights against you, but he's too weak from the recent combat, not to mention orgasm, to put up much of a fight.  All too soon he's letting his fangs slip into his shoulder and wincing slightly from the pain.  His cock immediately stiffens inside your cum-packed cunt, fueled by the aphrodisiacs he's pouring into himself.  You firmly hold the pathetic male in place and rub his cheek while softly murmuring, \"Good boy,\" over and over again into his ear, all while milking his venom into his body.\n\n");

			outputText("Without even waiting for him to finish, you go back to your cock-riding, the sensation of his trembling, drug-fueled erection tickling at all the right places.  Inside your " + player.vaginaDescript(0) + ", that wonderful, foreskin-clad member bastes in its own spooge, soaking up the sloppy spunk while you use it as your personal, living dildo.  You ");
			if (!player.hasFuckableNipples()) outputText("pinch");
			else outputText("finger");
			outputText(" your " + player.nippleDescript(0) + "s, struggling to get off while the spider-boy cums again, this time without any warning at all.\n\n");

			outputText("You finally let him loose, and he immediately slumps back, totally unconscious while his rock-hard cock continues to unload into you.  Riding the wet, drugged up fuck-stick, you get closer and closer to your own climax, the spider's dick continuing to pump every ounce of his seed from his body in a toxin-fueled, continuous orgasm.  Even after his jism is pooling on his waist, his cock keeps spasming wildly in your " + player.vaginaDescript() + ".  The warm blooms of his seed fade away, but he keeps coming, rocking weakly underneath you.\n\n");

			outputText("At last, your orgasm arrives in a thunderous wave, crashing over you to make you shake and tremble, violently squeezing on his slippery foreskin and forcing out thick dollops of man-cream from between your lips.  Shuddering wildly, you bump and grind unthinkingly, until your strength completely vanishes and you slump down atop the unconscious spider.\n\n");

			outputText("It takes some time to regain your strength with all the orgasmic aftershocks rolling through your " + player.vaginaDescript() + ".  Once you've mastered yourself, you climb off your conquest and get dressed, ");
			if (player.cor < 33) outputText("taking the time to clean the dripping spunk from your body.");
			else if (player.cor < 66) outputText("casually wiping away the worst of the dripping spunk.");
			else outputText("paying no heed to the thick flows of spunk that drip down your " + player.legs() + ".");
			player.slimeFeed();
			//Pregnancy Goes Here
			player.knockUp(PregnancyStore.PREGNANCY_SPIDER, PregnancyStore.INCUBATION_SPIDER, 151);
			player.orgasm('Vaginal');
			combat.cleanupAfterCombat();
		}

//*Loss: Get butt-fucked
//*Summary: Male only scene for maximum prostate pounding - possible random choice between two positions, plain doggy style or the 'lucky' one, where he will curl you over yourself and fuck you so you can watch his foreskinned spiderboy cock slam your asshole -while- you drip all over your face.
		private function spiderBoyLossMaleButtfuck():void
		{
			clearOutput();
			spriteSelect(SpriteDb.s_spiderguy);
			outputText("You collapse");
			if (player.HP < 1) {
				outputText(" in a semi-conscious heap, unable to stand, barely able to flop onto your back and look up ");
				if (player.cor < 33) outputText("in fear");
				else if (player.cor < 66) outputText("with worry");
				else outputText("in anticipation");
				outputText(" at the male spider.");
			}
			else outputText(", utterly overwhelmed by your desire for sex until the only thing that matters is letting the sexy spider have his way with you.");
			outputText("  He looks down at you with a cocky grin plastered across his face and a twinkle of light in his violet eyes, almost like a kid at Christmas.  His hand wraps around his girthy shaft and starts to pump at the drooping foreskin, masturbating himself to a full, erect stiffness.  The floppy flesh is so copious that even at his full six inches, you can't see the glans peek out - just a tiny dribble of pre-cum.\n\n");

			outputText("Finished with his foreplay, the spider-boy grabs your " + player.hipDescript() + " and raises your ");
			if (player.isTaur()) outputText("hindquarters slightly");
			else outputText(player.legs() + " up and out of the way");
			outputText(", displaying surprising strength as he holds your " + player.assholeDescript() + " at waist height.  You look up at the gloating arachnid ");
			if (player.HP < 1) outputText("and silently mouth, \"Please, no.\"");
			else outputText("and give a little nod, too intoxicated by arousal to decline any form of sex.");
			outputText("  His only response is to squeeze tight on your " + player.buttDescript() + " and press forward until his pre-cum-soaked foreskin is glazing your rim in preparation for the coming penetration.  ");
			if (player.lust >= player.maxLust()) outputText(player.SMultiCockDesc() + " bounces atop your belly, reacting strongly to the tingling sensation radiating from your " + player.assholeDescript() + ".");
			else {
				outputText(player.SMultiCockDesc() + " ");
				if (player.lust100 < 50) outputText("slowly fills with blood");
				else outputText("fills completely with blood");
				outputText(", reacting strongly to the tingles radiating up from your " + player.assholeDescript() + ".");
			}
			outputText("\n\n");

			outputText("The penetration is ");
			if (player.analCapacity() < 40) outputText("mercifully easy due to the mess of pre-cum and the forgiving foreskin that clings to his shaft.  It rolls further and further back as he pushes in until his glans is exposed to your clenching guts.");
			else outputText("quite easy due to how well-stretched your " + player.assholeDescript() + " is.  Watching his fat little cock disappear into your roomy backside actually brings a smile to your lips.");
			player.buttChange(monster.cockArea(0), true, true, false);
			outputText("  A firm, unforgiving hand grabs hold of " + player.oMultiCockDesc() + " and starts pumping it with short, fast strokes.  The slippery carapace gliding along your length feels absolutely marvelous, and in no time you're utterly relaxed against his invading member, dripping rivulets of sticky pre-cream onto your belly.  A round, hard digits circles your frenulum with a soft, repetitive motion, and you nearly blow your load on the spot.\n\n");

			outputText("Cruelly, the purple-eyed man stops touching you and puts his hands back on your hips and " + player.buttDescript() + ".  He admires you, his conquest, for a few moments while you leak onto yourself.  Time seems to drag on for an age, until you look up at him, still impaled on his thick tool, and ply him with questioning eyes.  The spider-morph gives you a reassuring squeeze and pulls back, his foreskin stretching inside of you while the hard cylindrical shape of his member vanishes from your rectum.  Your " + player.assDescript() + " clenches repeatedly, feeling cold and empty after holding on to his hot, black-skinned cock for so long.\n\n");

			outputText("You aren't left empty for long.  The hard-shelled aggressor propels his heavy cock forward.  It disappears into your hungry anus with a 'schliiooorp' and returns the feeling of blessed fullness to you.  This time, you can feel his crown bumping against something inside you, and the reaction is intense and immediate.  Pleasure hits you upside the head with a hammer-blow of sexual gratification.  It's almost like there's a button inside you, right behind your cock and labelled 'push here for bliss', and the spider is poking it hard.  ");
			if (player.cockTotal() == 1) outputText("A ribbon ");
			else outputText("Ribbons ");
			outputText(" of thick cum drizzle");
			if (player.cockTotal() == 1) outputText("s");
			outputText(" out from " + player.sMultiCockDesc() + " over your belly, weakly leaking out in a slow, steady flow.\n\n");

			outputText("\"My my, what a little butt-slut you are,\" he comments.  \"Did you just get off from feeling my cock sliding into your hungry little asshole?\"\n\n");

			if (player.cor < 33) outputText("You blush shamefully and nod, utterly humiliated by the quick little orgasm.");
			else if (player.cor < 66) outputText("You blush shamefully and nod, humiliated and aroused by how quickly you just came.");
			else outputText("You blush with arousal and humiliation, shaking your head up and down and hoping he'll hit that spot again.");
			outputText("  Pumping his hips slowly, the spider-morph watches a few more weak trickles of seed squirt out.  He gives your ass a hearty smack and muses out loud, \"That's a good " + player.mf("boy", "girl") + ".  You make a");
			if (player.analCapacity() >= 40) outputText("n okay");
			else outputText(" great");
			outputText(" cock-sleeve.  ");
			if (player.analCapacity() >= 40) outputText("I just wish you were less loose, but I guess you must let anyone with a nice fat cock plug your ass every chance you get, huh?  ");
			outputText("Just lie there and take it bitch, I'm not going to cum until you've painted your belly white.\"\n\n");

			outputText("You sigh when he hits a particularly good spot and squirt a fresh strand of goop onto yourself.  There's nothing to do but lie there while your " + player.assholeDescript() + " is used and hope that he keeps hitting your prostate.  It feels sooo good when he does.  The hard butt-fucking hits it more and more as time passes, the spider slowly adjusting his strokes to make you leak as much as possible.  Eventually you stop spurting, " + player.sMultiCockDesc() + " continually spewing seed while you're raped by the arachnid boy's girthy penis.  Dollops of your submission roll off your belly to pool in the dirt.\n\n");

			outputText("Crossing your eyes, you grab the ground with both hands and struggle to hold on.  There's... too much... too much pleasure for you to think.  Muscles randomly seize and twitch throughout your body, and though the ");
			if (player.cumQ() >= 500) outputText("semen continues to leak out at the same pace");
			else outputText("semen trails off as you empty");
			outputText(", you're absolutely drowning in a sea of bliss.  The waves of sexual indulgence threaten to drag you under their frothing crests.  Slowly, your self-control washes away, eroded by the all-encompassing pleasure " + player.sMultiCockDesc() + " is experiencing.\n\n");

			outputText("You begin to mumble, \"fuckmefuckmefuckmefuckme,\" like some kind of religious mantra.\n\n");

			outputText("The spider smiles and groans, \"Oh fuck yeah, you little bitch, I'm gonna... gonna... hnnnggg.\"  Hot blooms of spunk splatter through your rectum, soaking your guts and washing over your prostate.  The explosion of perfect enjoyment locks every muscle in your body at once, forcing your sphincter to squeeze down on the still-pulsing penis.  ");
			if (player.cumQ() < 500) outputText(player.SMultiCockDesc() + " bounces on your belly, leaking one last drop from its tip, utterly draining every drop from your " + player.ballsDescriptLight() + ".");
			else outputText(player.SMultiCockDesc() + " explodes again, dumping every remaining drop from your " + player.ballsDescriptLight() + " directly onto your " + player.chestDesc() + " and belly.");
			outputText("  Your eyelids flutter and droop, your tongue lolls out of your mouth, and you start drooling all over yourself.  Zombie-like, your body keeps shaking, locked in orgasm, even after the spider dumps you in the dirt and walks away.");
			player.slimeFeed();
			player.orgasm('Anal');
			combat.cleanupAfterCombat();
		}

//*Loss: Impregnation?
//*Summary: Vagoozles only!
		private function loseToSpiderBoyVagFucked():void
		{
			clearOutput();
			spriteSelect(SpriteDb.s_spiderguy);
			outputText("As your ");
			if (player.HP < 1) outputText("wounds overwhelm");
			else outputText("lust overwhelms");
			outputText(" you, your " + player.legs() + " grow shaky, then give out entirely.  You flop down on your back");
			if (player.lust >= player.maxLust()) outputText(", caressing yourself with reckless abandon while praying the sexy spider-boy will come violate you with his thick-skinned prick.");
			else outputText(", clearly too injured and fatigued by the battle to make more than a few token movements.");
			outputText("  He pounces you, lightning fast, quick enough that you don't even react until he's on top of you.  Chitin-clad legs brush your " + player.hipDescript() + ", the hard knees sinking deep into the swampy loam.  Grinning happily, the spider-boy leans over you and sucks a " + player.nippleDescript(0) + " ");
			if (player.hasFuckableNipples()) outputText("into his mouth before plunging his tongue into the tit-pussy's passage");
			else outputText("into his mouth before circling his tongue around it");
			outputText(".\n\n");

			outputText("You arch your back from the sensation, lifting your " + player.chestDesc() + " to provide him better access.  ");
			if (player.HP < 1) outputText("Even though you're injured, his oral attentions make the nub get so hard and sensitive that you quickly forget your own pain.");
			else outputText("Even though you tried to fight him, his oral attentions make your nub so hard and your horny body so eager that you quickly forget.");
			outputText("  The monstrous man handles your body with ease, playing your " + player.nippleDescript(0) + " like a finely tuned instrument, and you pant out little");
			if (player.cor < 33) outputText(", half-stifled");
			outputText(" moans of pleasure to his ministrations.  Helpless to do anything but grow more and more aroused, you give up entirely on resisting and let yourself be putty in his hands.\n\n");

			outputText("The spider-morph's eyes seem to grow purple in the dim swamp light as he lifts himself away from your " + player.chestDesc() + ", looking you in the eye.  \"I knew you wanted this,\" he says, rubbing his floppy foreskin against your entrance hard enough for you to feel the stiffness of the member hidden within the loose sheath.  His solid-black shaft feels wonderful against your ");
			if (player.wetness() >= 4) outputText("soaked");
			else if (player.wetness() >= 2) outputText("wet");
			else outputText("moist");
			outputText(" mons, teasing against your vulva until your " + player.clitDescript() + " emerges from its hood, ");
			if (player.getClitLength() >= 3) outputText("frotting against him");
			else outputText("grinding along the underside of his dick");
			outputText(".  You start rocking your " + player.hipDescript() + " encouragingly, trying to snare his marvelous maleness, but every time you catch his tip within your lips, he changes the angle and swivels away, teasing you.\n\n");

			outputText("The arachnid man kisses at your neck, slobbering a messy, unpracticed kiss against your throat.  For one so talented with his hands, he sure is a mess when it comes to kissing - maybe spider-people don't kiss each other much?  The spider-morph pops off, leaving a small hickey behind before revealing his true intent.  Fangs slide into the tender, bruised spot above your collarbone with a small burst of pain, making you gasp.  You hold absolutely still, not wanting to make it any worse.  Numbing, boiling warmth explodes inside you, making you gasp out in shock. A split-second later, the pain vanishes under a growing tide of arousal.  Your " + player.vaginaDescript() + " ");
			if (player.wetness() >= 5) outputText("pours out a river of lube");
			else if (player.wetness() >= 3) outputText("drools out a steady stream of lube");
			else if (player.wetness() >= 2) outputText("dribbles lube");
			else outputText("gets soaked");
			outputText(", your " + player.nippleDescript(0) + "s ");
			if (player.hasFuckableNipples()) outputText("drip their own slippery juices");
			else if (player.biggestLactation() >= 1) outputText("bead drops of milk");
			else outputText("fully engorge");
			outputText(", ");
			if (player.hasCock()) outputText(player.sMultiCockDesc() + " becomes so full and hard it feels like it could burst, ");
			outputText("and your " + player.clitDescript() + " ");
			if (player.getClitLength() >= 4) outputText("bounces up and down on your belly with each beat of your heart");
			else outputText("seems to pulsate with every beat of your heart");
			outputText(".\n\n");

			outputText("You gurgle happily and wrap your arms around the man-spider's back, clutching your new mate tightly, lest he leave before he takes the time to fuck your sloppy, wanton little hole.  Meanwhile, his aphrodisiac toxins continue to slide unimpeded through his fangs into your body, taking your need higher and higher.  You claw at his back and hump against him, pressing your slobbering slit tightly against the underside of his manhood, rubbing back and forth over the slight bulge his urethra makes on the bottom of his shaft.  Tiny pulses ripple through the cock, letting you know just how much he's loving having your sloppy-wet lips rubbing on him.\n\n");

			outputText("The horny boy keeps his lips and fangs locked onto you, but he seems nearly as aroused as you at this point.  He raises his hips, removing the source of your pussy's pleasure and drawing a mewl of disappointment from your lips.  His cock doesn't disappoint you, and it returns a mere moment later, burying the entire shaft into your nethers with a smooth, confident stroke.  ");
			player.cuntChange(monster.cockArea(0), true, false, true);
			outputText("The rippling, fat cock rubs your " + player.vaginaDescript() + " perfectly, the foreskin dragging along your walls as soon as you start reciprocating and humping your wonderful mate's dripping dick.\n\n");

			outputText("You fuck him like an animal, a wanton beast lost in the throes of artificial heat.  The spider-boy hangs onto you for dear life, clutching tightly to your torso while your frenzied motions bounce him into the air on top of you, sliding his cock in and out of the quivering vice that is your " + player.vaginaDescript() + ".  Loud, wet slaps echo through the sex-musk-filled air while you put all of your body's strength and endurance into milking the spider-boy's cock.  Your thoughts vanished some time ago, replaced with hunger for orgasm and fantasies of getting an injection of hot spider-spunk.\n\n");

			outputText("At long last, the twin needles withdraw from your neck, dripping out the last of the spider's venom while he throws his head back, closes his eyes, and mewls quietly.  You throw your hips into him desperately, eager to catch every drop of his seed with your womb.  His cum squirts out, and blossoms of slippery warmth squirt through your cunt.  Your " + player.vaginaDescript() + " squeezes and begins to ripple, sending spasms of pleasure up your spine until you're screaming out loud, moaning and grunting in complete, utter bliss.  Absolute happiness washes through you, the pleasure that can only come from giving into your body's demands and letting this male fill you with his spunk.\n\n");

			outputText("You sigh and close your eyes, slowly slumping down while your hips keep twitching.  You've been sated, and though your body keeps hungering for more, you slip into unconsciousness.");
			player.slimeFeed();
			player.orgasm('Vaginal');
			player.knockUp(PregnancyStore.PREGNANCY_SPIDER, PregnancyStore.INCUBATION_SPIDER);
			combat.cleanupAfterCombat();
		}

		public function spiderPregVagBirth():void
		{
			outputText("\n");
			spriteSelect(SpriteDb.s_spiderguy);
			if (player.vaginas.length == 0) {
				outputText("You feel a terrible pressure in your groin... then an incredible pain accompanied by the rending of flesh.  You look down and behold a vagina.  ");
				player.createVagina();
			}
			outputText("You shudder violently, your stomach growling fiercely at you. It feels as if something is moving around in your womb, and you bend over on all fours, raising your ass into the air as if it is the most natural thing in the world. A slimy green fluid starts leaking out of your " + player.vaginaDescript(0) + ", making a small puddle on the ground. The sensation is extremely pleasurable as you feel it running down your thighs. Groaning, you start to push out a small, smooth green ball, and the action makes your " + player.vaginaDescript(0) + " so much wetter.  You push out another, and another, each ball rubbing against your inner walls before dropping into the slimy pool of goo. After the sixth, you orgasm, ");
			//[if male/herm]
			if (player.gender != 2) outputText("spraying your cum all over the ground underneath you, each egg squeezing out and prolonging the intense feeling.\n\n");
			//[if female/genderless]
			else outputText("spraying your juices all over the ground and mixing in with the green slime, soaking your legs, each egg you squeeze out only prolonging the intense feeling.\n\n");

			outputText("After what seems like hours, you have lost count of the eggs pushed out, and you collapse from sexual exhaustion.\n\n");
			game.timeQ += 2;
			outputText("You awaken later on, a sticky feeling between your legs to go with your wet pussy");
			if (player.hasCock()) outputText(" and raging hard on");
			outputText(". Looking around, you notice the slimy pool appears to have dried up, but the broken eggshells show that you weren't just dreaming. Tiny dots in the dirt form a trail leading to the swamp, and you can only guess where your offspring went.\n");
			player.orgasm('Vaginal');
		}
	}
}


code:
package classes.Scenes.Areas.Swamp
{
	import classes.*;
	import classes.BodyParts.*;
	import classes.display.SpriteDb;
	import classes.internals.*;

	public class SpiderMorphMob extends Monster
	{
		//==============================
		// SPOIDAH HORDE COMBAT SHIZZLE HERE!
		//==============================
		private function spiderStandardAttack():void {
			//SPIDER HORDE ATTACK - Miss (guaranteed if turns 1-3 and PC lost to Kiha)
			if (hasStatusEffect(StatusEffects.MissFirstRound) || !combatAvoidDamage({doDodge:true,doParry:false,doBlock:false}).failed) {
				removeStatusEffect(StatusEffects.MissFirstRound);
				outputText("A number of spiders rush at you, trying to claw and bite you.  You manage to beat them all back, though, with some literal covering fire from Kiha.");
			}
			//SPIDER HORDE ATTACK - Hit
			else {
				outputText("A number of spiders rush at you, trying to claw and bite you.  You manage to knock most of them away, but a few nasty hits manage to punch through your [armorName].  ");
				//Determine damage - str modified by enemy toughness!
				var damage:int = player.reduceDamage(str + weaponAttack,this) + 20;
				if (damage > 0) damage = player.takeDamage(damage);
				if (damage <= 0) {
					damage = 0;
					if (rand(player.armorDef + player.tou) < player.armorDef) outputText("You absorb and deflect every " + weaponVerb + " with your " + player.armorName + ".");
					else outputText("You deflect and block every " + weaponVerb + " " + a + short + " throws at you.");
				}
				else if (damage < 6) outputText("You are struck a glancing blow by " + a + short + "! ");
				else if (damage < 11) outputText(capitalA + short + " wounds you! ");
				else if (damage < 21) outputText(capitalA + short + " staggers you with the force of " + pronoun3 + " " + weaponVerb + "! ");
				else if (damage > 20) {
					outputText(capitalA + short + " mutilate");
					outputText(" you with " + pronoun3 + " powerful " + weaponVerb + "! ");
				}
				if (damage > 0) outputText("(" + damage + ")")
				else outputText("(" + damage + ")")
				if (damage > 0) {
					if (lustVuln > 0 && player.armorName == "barely-decent bondage straps") {
						if (!plural) outputText("\n" + capitalA + short + " brushes against your exposed skin and jerks back in surprise, coloring slightly from seeing so much of you revealed.");
						else outputText("\n" + capitalA + short + " brush against your exposed skin and jerk back in surprise, coloring slightly from seeing so much of you revealed.");
						lust += 10 * lustVuln;
					}
				}
				statScreenRefresh();
			}
			kihaSPOIDAHAI();
		}

		override public function struggle():void{
			if (player.hasStatusEffect(StatusEffects.UBERWEB)) {
				clearOutput();
				outputText("You claw your way out of the webbing while Kiha does her best to handle the spiders single-handedly!\n\n");
				player.removeStatusEffect(StatusEffects.UBERWEB);
			}
		}
		//SPIDER HORDE WEB - Hit
		private function spoidahHordeWebLaunchahs():void {
			//SPIDER HORDE WEB - Miss (guaranteed if turns 1-3 and PC lost to Kiha)
			if (hasStatusEffect(StatusEffects.MissFirstRound) || !combatAvoidDamage({doDodge:true,doParry:false,doBlock:false}).failed) {
				outputText("One of the driders launches a huge glob of webbing right at you!  Luckily, Kiha manages to burn it out of the air with a well-timed gout of flame!");

			}
			else {
				outputText("Some of the spiders and driders launch huge globs of wet webbing right at you, hitting you in the torso!  You try to wiggle out, but it's no use; you're stuck like this for now.  Though comfortingly, the driders' open stance and self-satisfaction allow Kiha to blast them in the side with a huge conflagration!");
				//(PC cannot attack or use spells for one turn; can use Magical Special and Possess)
				player.createStatusEffect(StatusEffects.UBERWEB,0,0,0,0);
				HP -= 250;

			}
		}

		private function kihaSPOIDAHAI():void {
			outputText("[pg]");
			game.spriteSelect(SpriteDb.s_kiha);
			outputText("While they're tangled up with you, however, Kiha takes the opportunity to get in a few shallow swings with her axe, to the accompaniment of crunching chitin.");
			//horde loses HP
			HP -= 50;

		}

		override protected function performCombatAction():void
		{
			game.spriteSelect(SpriteDb.s_kiha);
			if (rand(2) == 0 || player.hasStatusEffect(StatusEffects.UBERWEB)) spiderStandardAttack();
			else spoidahHordeWebLaunchahs();
		}

		override public function defeated(hpVictory:Boolean):void
		{
			game.kihaFollower.beatSpiderMob();
		}

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean = false):void
		{
			if (pcCameWorms){
				outputText("\n\nThe spiders smile to one at another as they watch your display, then close in...");
				doNext(game.combat.endLustLoss);
			} else {
				game.kihaFollower.loseToSpiderMob();
			}
		}

		public function SpiderMorphMob()
		{
			this.a = "the ";
			this.short = "mob of spiders-morphs";
			this.imageName = "spidermorphmob";
			this.long = "You are fighting a horde of spider-morphs!  A group of some two-dozen spiders and driders approaches you, all baring their teeth.  A pair of large, powerful driders lead the group, their corrupt, lusty stares sending shivers up your spine.  While "+(player.level <= 13?"you'd never face such a large horde on your own":"you could probably handle them alone") +", you have a powerful ally in this fight - the dragoness Kiha!";
			this.race = "Spider-Morphs & Driders";
			this.plural = true;
			this.pronoun1 = "they";
			this.pronoun2 = "them";
			this.pronoun3 = "their";
			this.createCock(9,2,CockTypesEnum.HUMAN);
			this.balls = 2;
			this.ballSize = 1;
			this.cumMultiplier = 3;
			// this.hoursSinceCum = 0;
			this.createVagina(false, Vagina.WETNESS_SLICK, Vagina.LOOSENESS_LOOSE);
			createBreastRow(0);
			this.ass.analLooseness = Ass.LOOSENESS_STRETCHED;
			this.ass.analWetness = Ass.WETNESS_SLIME_DROOLING;
			this.tallness = rand(8) + 70;
			this.hips.rating = Hips.RATING_AMPLE+2;
			this.butt.rating = Butt.RATING_LARGE;
			this.skin.tone = "red";
			this.hair.color = "black";
			this.hair.length = 15;
			initStrTouSpeInte(60, 50, 99, 99);
			initLibSensCor(35, 35, 20);
			this.weaponName = "claws";
			this.weaponVerb="claws";
			this.armorName = "chitin";
			this.bonusHP = 1200;
			this.lustVuln = .2;
			this.temperment = TEMPERMENT_LOVE_GRAPPLES;
			this.level = 18;
			this.gems = rand(25) +40;
			this.special1 = game.combat.packAttack;
			this.special2 = game.combat.lustAttack;
			this.tail.type = Tail.SPIDER_ABDOMEN;
			this.drop = NO_DROP;
			checkMonster();
		}

	}

}

license: unknown


code:
/**
 * Created by Kitteh6660. Volcanic Crag is a new endgame area with level 25 encounters.
 * Currently a Work in Progress.
 *
 * This zone was mentioned in Glacial Rift doc.
 */

package classes.Scenes.Areas {
import classes.*;
import classes.GlobalFlags.kFLAGS;
import classes.GlobalFlags.kFLAGS;
import classes.GlobalFlags.kGAMECLASS;
import classes.Scenes.API.Encounter;
import classes.Scenes.API.Encounters;
import classes.Scenes.API.FnHelpers;
import classes.Scenes.API.IExplorable;
import classes.Scenes.Areas.VolcanicCrag.*;
import classes.Scenes.Places.CorruptedCoven;
import classes.Scenes.Places.CorruptedCoven;
import classes.Scenes.PregnancyProgression;
	import classes.internals.GuiOutput;

use namespace kGAMECLASS;

	public class VolcanicCrag extends BaseContent implements IExplorable{
		public var corruptedSandWitchScene:CorruptedSandWitchScene;
		public var volcanicGolemScene:VolcanicGolemScene = new VolcanicGolemScene();
		public var hellmouthScene:HellmouthScene = new HellmouthScene();
		public function VolcanicCrag(pregnancyProgression:PregnancyProgression, output:GuiOutput) {
			this.corruptedSandWitchScene = new CorruptedSandWitchScene(pregnancyProgression, output);
		}

	public function isDiscovered():Boolean {
		return flags[kFLAGS.DISCOVERED_VOLCANO_CRAG] > 0;
	}

	public function discover():void {
		flags[kFLAGS.DISCOVERED_VOLCANO_CRAG] = 1;
			outputText(images.showImage("area-volcaniccrag"));
		outputText("You walk for some time, roaming the hard-packed and pink-tinged earth of the demon-realm of Mareth. As you progress, you can feel the air getting warm. It gets hotter as you progress until you finally stumble across a blackened landscape. You reward yourself with a sight of the endless series of a volcanic landscape. Crags dot the landscape.\n\n");
		outputText("<b>You've discovered the Volcanic Crag!</b>");
		doNext(camp.returnToCampUseTwoHours);
	}

	private var _explorationEncounter:Encounter = null;
	public function get explorationEncounter():Encounter {
		return _explorationEncounter ||= Encounters.group(game.commonEncounters, {
			name  : "aprilfools",
			when  : function ():Boolean {
				return isAprilFools() && flags[kFLAGS.DLC_APRIL_FOOLS] == 0;
			},
			chance: Encounters.ALWAYS,
			call  : cragAprilFools
		}, {
			name: "drakesheart",
			call: lootDrakHrt
		}, {
			name: "golem",
			when: function ():Boolean {
				return flags[kFLAGS.DESTROYEDVOLCANICGOLEM] != 1;
			},
			call: volcanicGolemScene.volcanicGolemIntro
		}, {
			name: "witch",
			call: corruptedSandWitchScene.corrWitchIntro
		},/* {
			name: "obsidianshard",
			chance: 0.2,
			call: lootObsidianShard
		}, */{
			name: "walk",
			call: walk
		},{
			name: "encounterTower",
			call: game.dungeons.wizardTower.enterDungeon,
			when: function ():Boolean{
				return flags[kFLAGS.FOUND_WIZARD_TOWER] != 1;
			},
			chance: function ():Number{
				return player.hasKeyItem("Poorly done map to Volcanic Crag") ? 2 : .2;
			}
		},{
            name: "circe",
            call: game.coven.encounterCirceCave,
            when: function ():Boolean{
                 return !(flags[kFLAGS.CORR_WITCH_COVEN] & CorruptedCoven.MET_CIRCE) && player.level > 12 && !(player.hasPerk(PerkLib.BimboBrains) || player.hasPerk(PerkLib.BroBrains) || player.hasPerk(PerkLib.FutaFaculties));
            },
           chance: 1
		},{
            name: "circeRepeat",
            call: game.coven.reencounterCirce,
            when: function ():Boolean{
                 return (flags[kFLAGS.CORR_WITCH_COVEN] & CorruptedCoven.MET_CIRCE) && !(player.hasPerk(PerkLib.BimboBrains) || player.hasPerk(PerkLib.BroBrains) || player.hasPerk(PerkLib.FutaFaculties));
                },
			chance: 1
		}, {
                    name  : "hellmouth",
                    chance: 1,
                    call  : hellmouthScene.encounterHellmouth
         }
		);
	}

	public function explore():void {
		clearOutput();
		player.location = "crag";
		flags[kFLAGS.DISCOVERED_VOLCANO_CRAG]++;
		doNext(playerMenu);
		explorationEncounter.execEncounter();
	}

	private function lootDrakHrt():void {
			clearOutput();
			outputText(images.showImage("item-dHeart"));
			outputText("While you're minding your own business, you spot a flower. You walk over to it, pick it up and smell it. By Marae, it smells amazing! It looks like Drake's Heart as the legends foretold. ");
		inventory.takeItem(consumables.DRAKHRT, camp.returnToCampUseOneHour);
	}

		private function lootObsidianShard():void {
			clearOutput();
			outputText(images.showImage("item-dHeart"));
			outputText("While you're minding your own business, something shiny dazes you momentarily and you turn your head to spot the shining object. You walk over to it, pick it up and look it over. It's dark purple and smooth-feeling, moving your fingers confirm that. ");
			if (player.inte <= rand(80)) {
				outputText("Unfortunately, you cut your fingers over the sharp edge and you quickly jerk your fingers back painfully, looking at the minor bleeding cut that formed on your finger. Ouch! ");
				player.takeDamage(Math.max(5, player.maxHP() / 50), false);
			}
			outputText("You do know that the obsidian shard is very sharp, maybe someone can use it to create deadly weapons?");
			inventory.takeItem(useables.OBSHARD, camp.returnToCampUseOneHour);
		}

	private function walk():void {
			clearOutput();
			outputText(images.showImage("area-volcaniccrag"));
			outputText("You spend one hour exploring the infernal landscape but you don't manage to find anything interesting.");
		doNext(camp.returnToCampUseOneHour);
	}

	private function cragAprilFools():void {
			outputText(images.showImage("event-dlc"));
		game.aprilFools.DLCPrompt("Extreme Zones DLC", "Get the Extreme Zones DLC to be able to visit Glacial Rift and Volcanic Crag and discover the realms within!", "$4.99");
	}

}

}


code:
package classes.Scenes.Areas.VolcanicCrag
{
	import classes.*;
	import classes.BodyParts.*;
	import classes.BodyParts.Butt;
	import classes.BodyParts.Hips;
import classes.Scenes.Monsters.ImpWarlord;
import classes.internals.*;
	import classes.GlobalFlags.kFLAGS;

	public class Hellmouth extends Monster
	{
		public function hellmouthBite():void {
			outputText("The demoness leaps forward, opening her mouth for a bite! ");
			if (!combatAvoidDamage({doDodge:true,doParry:false,doBlock:true,doFatigue:true}).failed) {
				outputText("You anticipate her attack and prepare to strike at the side of her head. The Hellmouth clenches her jaw shut and stumbles off to the side before you strike.");
				return;
			}
			else {
				outputText("Her fangs sink into your shoulder, easily piercing your body. You groan in pain and push her away, rending your flesh and causing a grievous wound!");
				if(player.bleed(this,2,2)){
					outputText(" She managed to tear into an artery in your body! <b>You are bleeding!</b>")
				}
				var damage:int = str/1.25 + level;
				damage = player.reduceDamage(damage,this);
				player.takeDamage(damage, true);
			}

		}

		public function fireBreath():void {
			outputText("Flames whip around between her teeth, giving you your only warning before her jaw unlocks and opens in a hideous maw. A vast ball of fire ");
            if (combatAvoidDamage({doDodge:true,doParry:false,doBlock:false}).failed) {
				outputText(" careens into you with a jostling amount of force and flesh-charring heat! You're hit in full and are thrown back into the ground, burning and smoking!");
                game.combat.monsterDamageType = game.combat.DAMAGE_FIRE;
				var damage:int = inte*1.30 + level;
                damage = player.reduceDamage(damage,this,40);
                player.takeDamage(damage, true);
			}else{
				outputText(" narrowly misses you as you dash around frantically! The fireball crashes into the ground next to you, the resulting explosion making you relieved that you managed to" +
						" dodge it.");
			}
        }

		public function hellmouthSummon():void{
			outputText("The demon stops pursuing you, opting instead to expand her maw. Crimson flames line her throat moments before recognizable claws begin to grasp at whatever they can find." +
					" To your surprise, an imp crawls out of Hellmouth's maw, answering her call from whatever depths she's capable of summoning from.");
			var newMonster:Monster = new ImpWarlord();
			newMonster.temporary = true;
			game.combat.description = this.long;
			game.monsterArray.push(newMonster);

		}

		public function hellmaw():void{
			outputText("The demon opens her hideous maw and growls, wisps of fire surrounding her sharp teeth. She suddenly lunges at you, ready to bite!");
            var customOutput:Array = [
                "[BLIND]" + capitalA + short + " misses completely due to her blindness.",
                "[SPEED]You manage to dash to the side, avoiding her fiery lunge.",
                "[EVADE]You manage to dash to the side, avoiding her fiery lunge.",
                "[MISDIRECTION]Your misleading movements lead the creature to jump in the wrong direction, biting only scorched earth. You smirk, mocking your opponent.",
                "[FLEXIBILITY]You twist your body at the very last second, and the creature's teeth merely scratch you before she flies over you, crashing onto the ground.",
                "[BLOCK]You manage to raise your shield in the nick of time! Her teeth pierce through the shield, without harming you. You swing your shield-bearing arm outwards, throwing her away" +
				" from you.",
                "[UNHANDLED]You manage to dash to the side, avoiding her fiery lunge."];
            if (!playerAvoidDamage({doDodge:true,doParry:false,doBlock:true,doFatigue:true,toHitChance:player.standardDodgeFunc(this,-15)},customOutput)) {
                outputText(" You fail to dodge or block in time, and she manages to sink her red-hot fangs into your flesh! Her teeth easily pierce your defenses, and you can do nothing but flail" +
                        " and throw her away, tensing your muscles over the absurd pain.");
                var damage:int = player.reduceDamage(str * 1.2 + level, this, 85, false, true);
                player.takeDamage(damage, true);
            }
		}

		override public function defeated(hpVictory:Boolean):void {
			game.volcanicCrag.hellmouthScene.beatHellmouth();
		}

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean = false):void {
			if (pcCameWorms){
				outputText("\n\nYour opponent doesn't seem to care.");
				doNext(game.volcanicCrag.hellmouthScene.losetoHellmouth);
			} else {
				game.volcanicCrag.hellmouthScene.losetoHellmouth();
			}
		}

		override protected function performCombatAction():void
		{
			var actionChoices:MonsterAI = new MonsterAI();
			actionChoices.add(hellmouthBite, 1, true,10,FATIGUE_PHYSICAL,RANGE_MELEE);
			actionChoices.add(fireBreath,1,true,10,FATIGUE_PHYSICAL,RANGE_RANGED);
			actionChoices.add(hellmouthSummon,1,game.monsterArray.length == 1,0,FATIGUE_NONE,RANGE_MELEE);
            actionChoices.add(hellmaw,1,player.armorDef >= 40,15,FATIGUE_PHYSICAL,RANGE_MELEE);
			actionChoices.exec();

		}

		public function Hellmouth()
		{
			this.a = "the ";
			this.short = "Hellmouth";
			this.imageName = "hellmouth";
			this.long = "This demon stands at about the height of a goblin, however instead of a gaping pussy, it's her mouth that seems capable of widening to" +
					" accommodate anything and everything. Her teeth are generally sharp and imposing, with two pairs of longer canines standing out. Her skin is pale gray with visible and thin" +
					" veins showing through. Her chest is quite modest, opposite to her wide hips. Her eyes are large, glowing crimson around her pitch-black pupils. If she has irises, they are equally as pitch as the pupils themselves. Her elfin ears are at least a foot long each, drooping toward the sides as they poke out from her long flowing locks of black hair. She'd be cute, perhaps, if not for the impending death you sense from that hellish maw.";
			this.race = "Hellmouth";
            this.createVagina(false, Vagina.WETNESS_NORMAL, Vagina.LOOSENESS_NORMAL);
            createBreastRow(Appearance.breastCupInverse("C"));
            this.tallness = 35 + rand(4);
            this.hips.rating = Hips.RATING_AMPLE+2;
            this.butt.rating = Butt.RATING_LARGE;
            this.skin.tone = "pale gray";
            this.hair.color = "black";
            this.hair.length = 10;
            initStrTouSpeInte(60, 60, 70, 50);
            initLibSensCor(25, 25, 60);
            this.weaponName = "teeth";
            this.weaponVerb = "bite";
			this.weaponAttack = 30;
			this.bonusHP = 200;
			this.createPerk(PerkLib.Evade);
            this.armorName = "nothing";
            this.lust = 15;
            this.temperment = TEMPERMENT_RANDOM_GRAPPLES;
            this.level = 22;
            this.drop = NO_DROP;
            this.gems = rand(50) + 50;
            checkMonster();
		}

	}

}


code:
package classes.Scenes.Areas.VolcanicCrag
{
	import classes.*;
import classes.BodyParts.Tongue;
import classes.GlobalFlags.kFLAGS;
	import classes.GlobalFlags.kGAMECLASS;
	import classes.GlobalFlags.kACHIEVEMENTS;
import classes.Items.WeaponLib;
import classes.Scenes.NPCs.pregnancies.PlayerBehemothPregnancy;
	import classes.Scenes.PregnancyProgression;
	import classes.internals.GuiOutput;
import classes.Player;
import classes.lists.Gender;
import classes.display.SpriteDb;

	public class HellmouthScene extends BaseContent
	{

		public function HellmouthScene()
		{
		}

		public function encounterHellmouth():void{
			spriteSelect(SpriteDb.s_hellmouth);
			if(flags[kFLAGS.MET_HELLMOUTH] == 0){
                flags[kFLAGS.MET_HELLMOUTH] = 1;
                clearOutput();
                outputText("Journeying in the unforgiving terrain of the crag is as daunting as ever, it's no surprise there's little life to be found in such a place. You lean against a boulder as you wipe the sweat from your brow, pondering the nature of this volcanic wasteland. Lost in thought though you may be, your wits are still sharp, and you take quick notice to the movement atop the rocks you stopped at. \n" +
                        "\n" +
                        "Glancing up, you bare witness to a gaping maw of some demented creature. The tongue is lengthy and thick, sliding between various sharp and intimidating teeth. Prominent among its teeth are two pairs of long canines - one pair above, the other below. Fearing the worst fate, you dash away immediately, turning toward the assailant as you do. \n" +
                        "\n" +
                        "You face the demon properly now, quickly taking in the visage of her large glowing red eyes. She shuts her expansive jaw, seemingly shrinking her head itself in the process. Though it doesn't seem near as large now, her mouth is still quite noticeably wide. This is all the more apparent as she gives you a most-wicked grin. She isn't lunging for an attack as of yet, so you take the momentary calmness to run your eyes across her in more detail. \n" +
                        "\n" +
                        "Her skin is pale-gray with various veins or capillaries showing-through in some spots. Her body is short and wide, particularly in her hips. Her chest seems rather modest for a demon, and her stomach has a slight pudge. Upon her head, extremely long flowing locks of black hair extend out. For the most part, her hair is tossed back behind herself entirely, bangs included, leaving her forehead bare. Her elfin ears are just as remarkable in length, being perhaps as wide as her head individually, bending in a downward slope as they reach the tip.\n" +
                        "\n" +
                        "The haunting short-stack clears her throat, seeming to be done waiting for you to get your eyeful.\n" +
                        "\n" +
                        "You lift your [weapon] defensively. The demon's onyx pupils widen in anticipation. " +
                        "\n\nYou are fighting a Hellmouth!");
            }else{
				outputText("Your trek through the crag comes to a halt as you hear heavy breathing. Creeping out from behind a rock is another Hellmouth, wide-eyed with flames whipping about" +
						" between her teeth. You dash out of the way, narrowly avoiding her firebreath. It's a fight!");
			}
            unlockCodexEntry(kFLAGS.CODEX_ENTRY_HELLMOUTH);
            startCombat(new Hellmouth);
			}

		public function beatHellmouth():void{
			clearOutput();
			spriteSelect(SpriteDb.s_hellmouth);
			if(monster.lust >= monster.maxLust()){
				outputText("Shaking and twitching from primal desire, the hellmouth falls to the ground as she grinds her thighs together.");
			}else{
				outputText("Battered and broken, the hellmouth falls. Her heaving indicates she still lives, however.");
			}
			menu();
			addButton(0,"Kill",killHellmouth).hint("Finish the demon off.");
			addButton(1,"Lick",getLickedByHellmouth).hint("That's quite the tongue she has.").disableIf(player.gender == Gender.NONE, "This scene requires you to have genitalia.");
            addButton(2,"Hairjob",hellmouthHairjob).hint("Let's not test fate with those teeth.").disableIf(!player.hasCock() && player.getClitLength() < 4,"This scene requires you to have a cock or a large enough clit.");
			addNextButton("Cuddle", hellmouthCuddling).hint("Hold her for a while");
			if (flags[kFLAGS.WATERSPORTS_ENABLED] >= 1) addNextButton("Watersports", hellmouthPiss).sexButton(FEMALE);
			setSexLeaveButton(combat.cleanupAfterCombat);
		}

        private function hellmouthHairjob():void {
			clearOutput();
			spriteSelect(SpriteDb.s_hellmouth);
			if (player.hasCock()) {
				player.orgasm('Dick');
				//I'm actually puking right now
				outputText("There's no trusting the maw of the damned. That said, you still intend to get off, and you have an idea on how. \n" +
						"\n" +
						"The hellmouth looks on in a daze as you reveal your [cock]. Assuming your intentions, she obediently opens her mouth, displaying her throat as well as her disturbing array of teeth. You clamp her jaw shut, insisting you are not going to be putting your dick in that. Hair, you tell her. She'll satisfy you with her hair. \n" +
						"\n" +
						"[say: ...What?] she says, thrown off by the command. You insist she should pleasure you this way. Nervously, the hellmouth complies, pulling up her long tresses of black hair" +
						" over your tool. The silky-smooth strands are a soft and pleasant sensation. The demoness looks up at you, as if to ask if she's doing it right. You assure her that she should" +
						" continue. With a resolved huff, she sets forth wrapping your [cock] until it's tightly bound. You give her an expectant nod, gesturing that she isn't done yet.\n" +
						"\n" +
						"The hellmouth grabs your cock and starts to stroke. She is sloppy at best to begin with, but gains more confidence as she continues, allowing you to enjoy the feeling of her velvety locks sliding across your shaft. How any creature can have such wonderfully well-kept hair is a mystery. The hellmouth jerks harder, becoming more eager to see you get off in this novel manner. She opens her maw to accept the oncoming ejaculate, but you stop her. She does not get fed this time. You hold her head in place and grip your dick with her, jerking firmly and quickly to reach climax. You grunt and splatter semen into her hair and onto her cheek. \n" +
						"\n" +
						"You sigh in contented satisfaction, covering yourself back up and heading home. The hellmouth sits dazed again, mulling over what she just experienced. ");
			} else {
				player.orgasm('Vaginal');
				outputText("There's no trusting the maw of the damned. That said, you still intend to get off, and you have an idea on how.");
				outputText("\n\nThe hellmouth looks on in a daze as you reveal your dramatically oversized [clit]. Assuming your intentions, she obediently opens her mouth, displaying her throat as well as her disturbing array of teeth. You clamp her jaw shut, insisting you are not going to be putting any part of yourself in that. Hair, you tell her. She'll satisfy you with her hair.");
				outputText("\n\n[say: ...What?] she says, thrown off by the command. You insist she should pleasure you this way. Nervously, the hellmouth complies, pulling up her long tresses of black hair over your fully female tool. The silky-smooth strands are a soft and pleasant sensation. The demoness looks up at you, as if to ask if she's doing it right. You assure her that she should continue. With a resolved huff, she sets forth wrapping your [clit] until it's loosely enveloped. You give her an expectant nod, gesturing that she isn't done yet.");
				outputText("\n\nThe hellmouth grabs your pseudo-cock and starts to stroke. She is sloppy at best to begin with, but gains more confidence as she continues, allowing you to enjoy the feeling of her velvety locks sliding across your throbbing clitoris. How any creature can have such wonderfully well-kept hair is a mystery. The hellmouth jerks you delicately yet intensely, becoming more eager to see you get off in this novel manner. She opens her maw and tries to move her face to your [vagina] to devour any gushes of girlcum, but you stop her. She does not get fed this time. You hold her head in place beneath your crotch and grip your clit with her, jerking firmly and quickly to reach climax. You moan and splatter female ejaculate into her hair and onto her cheek.");
				outputText("\n\nYou sigh in contented satisfaction, covering yourself back up and heading home. The hellmouth sits dazed again, mulling over what she just experienced.");
			}
			doNext(combat.cleanupAfterCombat);
        }

        public function getLickedByHellmouth():void {
            clearOutput();
			spriteSelect(SpriteDb.s_hellmouth);
            outputText("Hellish though her maw may be, her tongue looks awfully intriguing. This seems like the perfect opportunity to please yourself. \n\n"
						+ "You [walk] up to the demoness and grab her face, grinning softly as you squish her cheeks. She lost this battle, it's her job to reward the victor. You tell her to put that tongue to good use. All she does is groan in response, still dazed from combat. You squish her face harder, further asserting that she's to please you with her tongue.\n\n"
						+ "Through puckered lips and scrunched face, she sticks her tongue out limply. Amusing it may be, but hopefully she'll be more energetic about it after you " + (!player.isNakedLower() ? "relieve yourself of your garments" : "get started") + ". Releasing the hellmouth, you uncover your [genitals][if (silly) and take in the nice, fresh, ungodly hot winds of this volcanic hellscape.|, presenting yourself to the demon.] The hellmouth seems to be regaining her composure and crawls over, tongue still dangling out.");
			if (player.hasCock()) {
				outputText("\n\nThe thick, lengthy, demonic tongue begins to curl itself around the base of your [cock][if (player.has), lubricating your knot]. Your cock twitches in response to the slimy tendril sliding along its length. The hellmouth may look a tad intimidating, but she's rather good at servicing. Instinctively, you begin to lean forward, rocking your hips slightly. You place your hands on the demon's head for support, caressing her silky black hair. Though not entirely deliberate, your petting elicits a happy purr from her. She likes it.");
				outputText("\n\nThe hellmouth's tongue wraps around your glans, squeezing as it turns. She extends her tongue to cover as much of your [cock] at once as she is able, forming a hot and well-lubricated organic cocksleeve. Looking down, you see her smoldering red sclera framing her black pupils staring back up at you. She smiles at your gaze, bearing her monstrous, sharp teeth. She seems to want to show her willingness to please you, but you can't help but feel slightly concerned.");
				outputText("\n\nAiming to distract yourself from the hellish image, you grab the sides of her head and pump your hips along the spiral folds of her tongue. While exploring for a better grip, your hands meet her long and soft elfin ears. Taking hold to use them as handlebars, you're surprised to hear her moaning. You slide your thumbs along her lobes and the effect is pronounced enough to feel her shaking. The added stimulation is quite helpful, bringing a sigh of pleasure from you as she jostles her tongue over your [cock].");
				outputText("\n\nFinally reaching your limit, you groan and ejaculate over the demon's face and hair. You wipe the remnants clean with her tongue before suiting back up in your [armor].");
				player.orgasm('Dick');
			} else {
				player.orgasm('Vaginal');
				outputText("\n\n" + (player.isNaga() ? "You lower your snake coils to put your pussy as close to her face as you're comfortably able." : "You splay your legs out, lowering your hips to put your pussy in better reach of the crawling demoness." ) + " The hellmouth's long and hot tongue sends a pleasant shiver through you as she presses her face against you. Her small gray hands grab your hips for leverage while she pulls her tongue up for a slurp. She seems to be very into this, much more enthusiastic than she was a moment before. She laps up every little bead of moisture you let out, coating your labia in her hellish saliva. You heave a pleased sigh.");
				outputText("\n\nThe corrupted short-stack has only just begun, however, and you feel a jolt as her meaty appendage starts to slip inside your [vagina], diving deep");
				if(player.vaginas[0].vaginalLooseness < Vagina.LOOSENESS_LOOSE){
					outputText("with the gentlest of stretching");
					if(player.hasVirginVagina()){
						outputText(". It stings as the thickest portion of her tongue pushes the limits of your pure little hymen, tearing it slowly. The warmth and softness does well to soothe what little pain it causes. It's more stretching that you expected, but not all too unpleasant a way to lose your 'virginity'.\n\n");
                           player.cuntChange(5,true);
					}else{
						outputText(" into places you'd have thought only cocks could reach.");
					}
				}else{
					outputText(" into places you'd have thought only cocks could reach.");
				}
				outputText("Your insides shudder in a mix of discomfort and perverse excitement when the fleshy tip flicks against your cervix. A demon's tongue is truly a gift " + (player.tongue.type == Tongue.DEMONIC ? ", you would know" : ", you think to yourself.") + "." +
							"\n\nA moan slips from you as she recedes from your depths, every inch a thrilling stimulation. Her tongue twists and turns while moving back and forth, far more intelligently-controlled than any dick could be. On reflex, your pelvis tenses up, forbidding movement as much as possible. The pressure seems to excite your lewd quarry, her whimpering moans making all too clear how much she loves every minute of this." +
							"\n\nYour hips jostle while you edge closer to your limit, your body unable to remain still as the waves of pleasure make you lose control of your senses. The hellmouth" +
							" makes longer, slower thrusts, nearly backing out entirely before plunging her tongue inside again, with deliberate languidness. Whether your body language or perhaps" +
							" even taste, she can sense how close you are and rubs your [clit] to push you further. She is not rough; she is gentle and deliberate." +
							"\n\nYour orgasm comes in waves," +
							" washing over your [skin] and sending you through a world of bliss, on and on until you're squirting a torrent out into her greedy maw. The hellmouth finally pulls her" +
							" tongue free entirely. She wipes her mouth, pleased with the whole ordeal, and lays back contented. \n\n" +
							"You stretch, unwinding, and cover yourself back up before heading home.");
			}
			doNext(combat.cleanupAfterCombat);
        }

        private function killHellmouth():void {
			clearOutput();
			spriteSelect(SpriteDb.s_hellmouth);
			if(player.weapon.isHolySword()){
				outputText("You wrench the hellmouth by the ear, causing her to yelp in pain. Her maw hangs open, the target of choice for you. You thrust your [weapon] down her throat," +
						" incinerating the lining of her esophagus with holy energy. She struggles and screams only briefly before the purity of your blade purges her from this world.");
			}else if(player.weapon.isScythe()){
				outputText("Even the maw of hell itself cannot escape death incarnate. You raise your scythe in dramatic fashion, swinging through the demon's neck like a hot knife through" +
						" butter, slicing it open and killing the demon in a grim and efficient fashion.");
			}else if(player.weapon.isStaff() && player.weapon.isMagicStaff()){
				outputText("Your [weapon] shimmers with ethereal light, ready to lay down the killing blow. You swing the staff like a club into the forehead of the hellmouth, bursting it in an" +
						" eruption of light and giblets.");
			}else if(player.weapon.isBlunt()){
				outputText("You stretch your limbs as you unwind, preparing yourself. Lifting your [weapon] high, you bring it down brutally onto the hellmouth's skull, smashing it beyond" +
						" recognition.");
			}else if(player.weapon.isKnife()){
				outputText("You make short work of demonic runt with an equally short tool, bending down and embedding the [weapon] into the back of her neck. She yelps for a second before you" +
						" twist the blade, instantly snuffing the life out of her.");
			}else if(player.weapon.isLarge() && player.weapon.isBladed()){
				outputText("You heave your [weapon] down into the back of the hellmouth, chopping through her spine and eviscerating her organs. She won't be living through that.");
			}else if(player.weapon.isOneHandedMelee() && player.weapon.isBladed()){
				outputText("You move forward, twisting your sword downward to plunge it through the demon's heart. The hellmouth yelps and contorts, but her life soon fades away as your blade" +
						" destroys her vital organs.");
			}else if(player.weapon.isSpear()){
				outputText("You yank the demon by her ear, forcing her to stand up. Though weary, she manages to stand. With [weapon] firmly in hand, you lunge forward, impaling the hellmouth" +
						" gruesomely.");
			}else{
				outputText("You focus carefully as you line up the edge of your hand with the back of her neck. In a swift, sharp motion, you strike just hard enough to damage the spinal cord." +
						" Paralyzed and no longer breathing, the life of the hellmouth comes to an end.");
			}
			flags[kFLAGS.HELLMOUTHS_KILLED]++;
            player.upgradeDeusVult();
			doNext(combat.cleanupAfterCombat);
        }

		public function losetoHellmouth():void{
			clearOutput();
			spriteSelect(SpriteDb.s_hellmouth);
			outputText("Between the sharp teeth and infernal breath, this monster was too much for you in your current state. You fall limply to the ground as the hellmouth opens her maw one last" +
					" time." +
					"\n\nYour vision darkens and you feel your head be surrounded by humid heat as her mouth envelops your head. Your heart sinks as you realize what she's about to do, but in" +
					" your current state, there's little you can do to avoid it." +
					"\n\nShe shuts her maw in the blink of an eye. You barely feel a thing, her razor-sharp teeth and powerful muscles finishing you off instantly.");
			game.gameOver();
		}

		public function hellmouthCuddling():void {
			clearOutput();
			outputText("Despite this girl's obvious demonic features--and you've certainly no desire to put any part of you near that razor-lined, all-consuming mouth of hers--it is with shameful reluctance that you move beside her, letting your desire for companionship win out against [if (cor < 30) everything you stand for|common sense]. Panic flits across those unnatural red eyes as you [if (singleleg) tower|stand] over her, though she seems to calm down slightly when you [if (hasweapon) put away your [weapon]|lower your fists] and whisper reassurances to the fallen girl. You've no desire to hurt her--if she behaves, at least--and you make it perfectly clear that she will.");
			outputText("\n\nShe nods nervously, brushing strands of abyssal-black hair off her face, and come to think of it, that's the only thing healthy-looking about her. The way her silky--or so you can only assume--cascading locks contrast against her sickly-gray skin, so thin that you can map out every drop of her tainted blood, is positively bizarre, yet strangely intriguing. Her eyes seem to flare with interest as you [if (isnaked) stretch and|remove your [armor] and] reveal yourself, [if (hascock) immediately drawn to your hardening [cock]|roaming over the entirety of your " + (player.race != "human" && !player.demonScore() < 4 && player.goblinScore() < 4 ? "un" : "") + "familiar form[if (isgenderless)  and pausing curiously as they reach your featureless groin]].");
			outputText("\n\nBut that isn't why you're here. You need to hold someone, feel the unnatural, fiery heat of her skin against " + (player.skin.desc == "skin" ? "your own" : "your [skindesc]") + " as you seek out what little solace you can find in this inhospitable land. The freeing hope that even two lost souls might find something in each other's arms, even for a fleeting moment.");
			outputText("\n\nThe demoness trembles as your fingers run along her soft flesh, tracing out the path of her veins. Perhaps she hasn't seen mercy for so long that even this act is too much for her, because those piercing red eyes follow your every move as you lie down beside her, gently taking her in your arms and holding her close. It's even hard to remember she's not human as her heart beats against your chest, steadily slowing down as she relaxes in your grip. And her hair, in fact, is as soft as you imagined, wondrously silky-smooth under your fingers as they tease through it and massage her scalp.");
			outputText("\n\nShe must like it, whimpering into your chest as you pull her tighter, reveling in the heat and softness of her body. If you closed your eyes, forgot about her taint, all about that ravenous maw, you could almost imagine her as your lover, warm and sweat-slick against you as you stroke her hair.");
			outputText("\n\nYou shake your head, trying to clear your thoughts. No, [if (cor < 50) that's too far|you want something different today].");
			outputText("\n\nYet when her ashen skin " + ((player.isFluffy() && player.skin.furColor == "gray") || !player.isFluffy() && (player.skin.tone == "ashen" || player.skin.tone == "gray" || player.skin.tone == "rough gray") ? "blends seamlessly into" : "contrasts sharply with") + " your own [if (isfluffy) fur ]as you watch her gentle breathing, enjoying how she seems to relax further each time your fingers dance across her back, it's hard not to get a glimpse of the person she once was, desperate to feel like someone's there for her.");
			outputText("\n\nAnd you are right now. Sure, you'll have to go soon, and the next time the two of you meet it'll be under less peaceful circumstances, but that feels like an eternity away as she lies next to you, plush and comfortably warm in your embrace. Maybe she'll remember everything she could have had and toss aside all the violence--the gnashing teeth and those inner flames--and make a new life for herself in the crag.");
			outputText("\n\nShe burbles in disappointment when you release her, her fiery eyes pleading for you not to go as she tries her hardest to snuggle closer, but you can't stay here all day. You have your own " + (player.hasChildren() ? "family" : (camp.followersCount() + camp.loversCount() > 0 ? "friends" : "home")) + " to care for, and with a whispered good-bye, you [if (hasarmor) dress yourself and] head back to camp.");
			doNext(combat.cleanupAfterCombat);
		}

		public function hellmouthPiss():void {
			clearOutput();
			outputText("What a hellish maw this abominable little demon has. With the diminutive demoness in a state of defenselessness, it seems like it's the perfect time to add a little insult to her injury. And maybe have a bit of fun while you're at it.");
			outputText("\n\nYou stroll over to the pudgy little bitch and yank her head up by the hair. Giving her cheek a light caress, you grin at her and tell her that you're going to show her just what you think about that unnatural maw of hers. She merely groans in confusion, still not recovered from the battle. In one swift motion, you roughly push her to the ground and onto her back.");
			outputText("\n\nStaring up at you with a bit of confusion as you look down at her" + (!player.isNaked() ? " while removing your [armor]" : "") + ", she sticks out her tongue as though she's expecting you to make her use it on you. It's close to what you have in mind, but not quite. You merely stand above her for a moment, taking in the feeling of the hot winds brushing over you before you squat down over her head and quickly grab the large tongue from her gaping mouth. Pussy hovering right above her face, you use the tip of her tongue to teasingly tickle at your [clit] and tell her to just lay still and it'll be over before she knows it. She nods slightly, and you go ahead and proceed.");
			outputText("\n\nYou move the tip of her tongue away from your clitoris and instead slip it just inside the entrance to your increasingly moist [vagina]. Without any warning, you aim as carefully as you can manage and open the floodgates for that demonic mouth of hers. Immediately, you realize your aim is a bit off as your urine splashes onto her, right between the eyes. She shakes her head from side to side in disgust, unable to escape with you tightly grasping her tongue. Quickly correcting your aim, you spray your urine down her face and into your destination. You make sure to relieve yourself as slowly as you can to extend her humiliation, her continued struggling does nothing but cause her cheeks and chin become soaked as well.");
			outputText("\n\nFun as humiliation is, getting a little something for yourself sure wouldn't be bad. Yanking her tongue violently, you press it deeply into you while manipulating the long organ to ensure part of it is pressed against your urethra to stream your piss down her tongue. Gagging at the taste as it directly flows down her monstrous appendage, she struggles harder and whips it around in resistence while it's still in your [vagina], wildly and unintentionally adding to your pleasure. With you thrusting her slick organ as deeply inside of you as you wish and her whipping it around violently inside of you, it takes very little time before you feel the heat of climax building [if (haslegs) between your legs|in your crotch].");
			outputText("\n\nYour body trembles as a powerful orgasm slams into you, waves of pleasure rocking your whole body and causing you to very intentionally push the last of the liquid from your bladder out. You deliberately squirt a massive gush of fluid right onto her face as she writhes in disgust on the ground with you still riding out the orgasm on her tongue. After a few moments of cooling off, you let go of her appendage, and she very quickly pulls it back into her abominable maw. As you move to " + (!player.isNaked() ? "re-dress" : "gather your things") + ", she tries to wipe your urine from her face before scrambling away from you. This may just have taught her a lesson.");
			outputText("\n\n" + (player.isNaked() ? "You take a moment to catch your breath" : "You finish re-dressing, take a moment to catch your breath,") + " and head back with satisfaction.");
			player.orgasm('Vaginal');
			doNext(combat.cleanupAfterCombat);
		}
	}
}