code:
/**
 * Created by aimozg on 06.01.14.
 */
package classes.Scenes.Areas
{
	import classes.*;
	import classes.GlobalFlags.kFLAGS;
	import classes.GlobalFlags.kGAMECLASS;
	import classes.Scenes.Areas.Desert.*;

	use namespace kGAMECLASS;

	public class Desert extends BaseContent
	{
		public var antsScene:AntsScene = new AntsScene();
		public var nagaScene:NagaScene = new NagaScene();
		public var oasis:Oasis = new Oasis();
		public var sandTrapScene:SandTrapScene = new SandTrapScene();
		public var sandWitchScene:SandWitchScene = new SandWitchScene();
		public var wanderer:Wanderer = new Wanderer();
		public function Desert()
		{
		}
		//Explore desert
		public function exploreDesert():void
		{
			flags[kFLAGS.TIMES_EXPLORED_DESERT]++;
			if ((player.level >= 4 || flags[kFLAGS.TIMES_EXPLORED_DESERT] > 45) && flags[kFLAGS.TIMES_EXPLORED_DESERT] % 15 == 0 && flags[kFLAGS.DISCOVERED_WITCH_DUNGEON] == 0) {
				kGAMECLASS.dungeons.desertcave.enterDungeon();
//				kGAMECLASS.inDungeon = true;
//				kGAMECLASS.dungeonLoc = 23;
//				playerMenu();
				return;
			}
			if (rand(40) == 0) {
				kGAMECLASS.exgartuan.fountainEncounter();
				return;
			}
			//Helia monogamy fucks
			if (flags[kFLAGS.PC_PROMISED_HEL_MONOGAMY_FUCKS] == 1 && flags[kFLAGS.HEL_RAPED_TODAY] == 0 && rand(10) == 0 && player.gender > 0 && !kGAMECLASS.helScene.followerHel()) {
				kGAMECLASS.helScene.helSexualAmbush();
				return;
			}
			if ((flags[kFLAGS.TIMES_EXPLORED_DESERT] == 20 && player.findStatusEffect(StatusEffects.TelAdre) < 0) || (rand(20) == 0 && player.statusEffectv1(StatusEffects.TelAdre) == 0)) {
				kGAMECLASS.telAdre.discoverTelAdre();
				return;
			}
			if (sandWitchScene.pregnancy.event == 2 && rand(4) == 0) {
				if (flags[kFLAGS.EGG_WITCH_TYPE] == PregnancyStore.PREGNANCY_DRIDER_EGGS) sandWitchScene.sammitchBirthsDriders();
				else sandWitchScene.witchBirfsSomeBees();
				return;
			}
			//Ant colony debug chances
			if (player.level >= 5 && flags[kFLAGS.ANT_WAIFU] == 0 && (flags[kFLAGS.TIMES_EXPLORED_DESERT] % 8 == 0) && flags[kFLAGS.ANTS_PC_FAILED_PHYLLA] == 0 && flags[kFLAGS.ANT_COLONY_KEPT_HIDDEN] == 0) {
				antsScene.antColonyEncounter();
				return;
			}
			//int over 50?  Chance of alice encounter!
			if (rand(4) == 0 && player.inte > 50) {
				if (flags[kFLAGS.FOUND_WIZARD_STAFF] == 0) {
					clearOutput();
					outputText("While exploring the desert, you see a plume of smoke rising in the distance.  You change direction and approach the soot-cloud carefully.  It takes a few moments, but after cresting your fourth dune, you locate the source.  You lie low, so as not to be seen, and crawl closer for a better look.\n\n", false);
					outputText("A library is burning up, sending flames dozens of feet into the air.  It doesn't look like any of the books will survive, and most of the structure has already been consumed by the hungry flames.  The source of the inferno is curled up next to it.  It's a naga!  She's tall for a naga, at least seven feet if she stands at her full height.  Her purplish-blue skin looks quite exotic, and she wears a flower in her hair.  The naga is holding a stick with a potato on the end, trying to roast the spud on the library-fire.  It doesn't seem to be going well, and the potato quickly lights up from the intense heat.\n\n", false);
					outputText("The snake-woman tosses the burnt potato away and cries, \"Hora hora.\"  She suddenly turns and looks directly at you.  Her gaze is piercing and intent, but she vanishes before you can react.  The only reminder she was ever there is a burning potato in the sand.   Your curiosity overcomes your caution, and you approach the fiery inferno.  There isn't even a trail in the sand, and the library is going to be an unsalvageable wreck in short order.   Perhaps the only item worth considering is the stick with the burning potato.  It's quite oddly shaped, and when you reach down to touch it you can feel a resonant tingle.  Perhaps it was some kind of wizard's staff?\n\n", false);
					flags[kFLAGS.FOUND_WIZARD_STAFF]++;
					inventory.takeItem(weapons.W_STAFF, camp.returnToCampUseOneHour);
					return;
				}
				else if (player.hasKeyItem("Carpenter's Toolbox") >= 0 && player.keyItemv1("Carpenter's Toolbox") < camp.cabinProgress.maxNailSupply() && rand(2) == 0) {
					clearOutput();
					outputText("While exploring the desert, you find the wreckage of a building. Judging from the debris, it's the remains of the library that was destroyed by the fire.\n\n", false);
					outputText("You circle the wreckage for a good while and you can't seem to find anything to salvage.  Until something shiny catches your eye.  There are exposed nails that look like they can be scavenged.\n\n", false)
					outputText("You take your hammer out of your toolbox and you spend time extracting straight nails.  Some of the nails you've pulled out are bent but some are incredibly in good condition.  You could use these nails for construction.\n\n");
					var extractedNail:int = 5 + rand(player.inte / 5) + rand(player.str / 10) + rand(player.tou / 10) + rand(player.spe / 20) + 5;
					flags[kFLAGS.ACHIEVEMENT_PROGRESS_SCAVENGER] += extractedNail;
					player.addKeyValue("Carpenter's Toolbox", 1, extractedNail);
					outputText("After spending nearly an hour scavenging, you've managed to extract " + extractedNail + " nails.\n\n");
					if (player.keyItemv1("Carpenter's Toolbox") > camp.cabinProgress.maxNailSupply()) player.addKeyValue("Carpenter's Toolbox", 1, -(player.keyItemv1("Carpenter's Toolbox") - camp.cabinProgress.maxNailSupply()));
					outputText("Nails: " + player.keyItemv1("Carpenter's Toolbox") + "/" + camp.cabinProgress.maxNailSupply());
					doNext(camp.returnToCampUseOneHour);
					return;
				}
			}
			//Possible chance of boosting camp space!
			if (player.hasKeyItem("Camp - Chest") < 0 && (rand(100) < 10)) {
				outputText("While wandering the trackless sands of the desert, you break the silent monotony with a loud 'thunk'.  You look down and realize you're standing on the lid of an old chest, somehow intact and buried in the sand.  Overcome with curiosity, you dig it out, only to discover that it's empty.  It would make a nice addition to your campsite.\n\nYou decide to bring it back to your campsite.  ", true);
				for (var i:int = 0; i < 6; i++) {
					inventory.createStorage();
				}
				player.createKeyItem("Camp - Chest", 0, 0, 0, 0);
				outputText("You now have " + num2Text(inventory.itemStorageDirectGet().length) + " storage item slots at camp.");
				doNext(camp.returnToCampUseOneHour);
				return;
			}
			//Chance of dick-dragging! 10% + 10% per two foot up to 30%
			temp = 10 + (player.longestCockLength() - player.tallness) / 24 * 10;
			if (temp > 30) temp = 30;
			if (temp > rand(100) && player.longestCockLength() >= player.tallness && player.totalCockThickness() >= 12) {
				kGAMECLASS.exploration.bigJunkDesertScene();
				return;
			}
			var choices:Array = [];
			//-8008 is cheating for "no arg"
			var args:Array = [];

			//Encounter Sandwitch
			if (flags[kFLAGS.SAND_WITCH_LEAVE_ME_ALONE] == 0) {
				choices[choices.length] = sandWitchScene.encounter;
				args[args.length] = -8008;
			}
			if (flags[kFLAGS.CUM_WITCHES_FIGHTABLE] > 0) {
				choices[choices.length] = kGAMECLASS.dungeons.desertcave.fightCumWitch;
				args[args.length] = -8008;
			}
			//Encounter Mimic
			if (player.level >= 3 || model.time.days >= 20) {
				choices[choices.length] = getGame().mimicScene.mimicTentacleStart;
				args[args.length] = 1;
			}
			//Encounter Marcus
			choices[choices.length] = wanderer.wandererRouter;
			args[args.length] = -8008;
			choices[choices.length] = walkingDesertStatBoost;
			args[args.length] = -8008;
			if (rand(2) == 0 && player.level >= 2) {
				if (rand(2) == 0) {
					choices[choices.length] = mirageDesert;
					args[args.length] = -8008;
				}
				else {
					choices[choices.length] = oasis.oasisEncounter;
					args[args.length] = -8008;
				}
			}
			choices[choices.length] = nagaScene.nagaEncounter;
			args[args.length] = -8008;
			if (rand(2) == 0) {
				choices[choices.length] = sandTrapScene.encounterASandTarp;
				args[args.length] = -8008;
			}
			var select:int = rand(choices.length);
			if (args[select] == -8008) {
				choices[select]();
			}
			else choices[select](args[select]);
		}

		private function mirageDesert():void
		{
			clearOutput();
			outputText("While exploring the desert, you see a shimmering tower in the distance.  As you rush towards it, it vanishes completely.  It was a mirage!   You sigh, depressed at wasting your time.", true);
			dynStats("lus", -15);
			doNext(camp.returnToCampUseOneHour);
		}

		private function walkingDesertStatBoost():void
		{
			clearOutput();
			outputText("You walk through the shifting sands for an hour, finding nothing.\n\n", true);
			//Chance of boost == 50%
			if (rand(2) == 0) {
				//50/50 strength/toughness
				if (rand(2) == 0 && player.str < 50) {
					outputText("The effort of struggling with the uncertain footing has made you stronger.", false);
					dynStats("str", .5);
				}
				//Toughness
				else if (player.tou < 50) {
					outputText("The effort of struggling with the uncertain footing has made you tougher.", false);
					dynStats("tou", .5);
				}
			}
			doNext(camp.returnToCampUseOneHour);
		}
	}
}


code:
package classes.Scenes.Areas.Desert
{
	import classes.*;
	import classes.internals.WeightedDrop;

	public class CumWitch extends Monster
	{
		public function cumWitchAI():void {
			//Hurt!
			if (HPRatio() < .6 && fatigue <= 90) {
				sandWitchCuntHeals();
				return;
			}

			var choices:Array = [];

			//Dicks only
			if (player.hasCock()) choices[choices.length] = cumMagicAttack;
			choices[choices.length] = bukkakeAttack;
			choices[choices.length] = cocknosisAttack;
			if (findStatusEffect(StatusEffects.Shell) < 0) {
				choices[choices.length] = shellDefense;
				choices[choices.length] = shellDefense;
				choices[choices.length] = shellDefense;
			}
			//HERMS
			if (player.gender == 3) choices[choices.length] = genderConfusionAttack;
			//VAGOOZLES
			if (player.hasVagina()) choices[choices.length] = cumHungerAttack;
			choices[rand(choices.length)]();
		}

		//*Attack: Bukkake
		public function bukkakeAttack():void {
			//*Cum Witch hikes up her dress and bukkake's at PC.  Large # of chance for 'hits' for low individual damage.  Small reduction to sand witch lust.  Used more at high lust.
			outputText("The Cum Witch moans and daintily peels her robes away from her swollen cock-flesh.  A bubble of precum pops wetly from her urethra to splatter on the floor as her balls suddenly swell.  You look back up in time to see the telltale glow of magic surrounding her staff, but then she's thrusting her hips at you, lewdly humping the air as she unleashes rope after thick rope of potent jism in your direction!\n");
			var hits:int = 5 + rand(8);
			var bonus:int = 0;
			var damage:int = 0;
			while (hits > 0) {
				var evade:String = player.getEvasionReason();
				//Evade
				if (evade == EVASION_EVADE) outputText("\nYou roll away from some of the hermaphrodite spunk, easily evading it.");
				//Misdirect
				else if (evade == EVASION_MISDIRECTION) outputText("\nYou feint one direction and then move another, misdirecting like a pro and avoiding some of the sexual artillery.");
				//Flexibility
				else if (evade == EVASION_FLEXIBILITY) outputText("\nYou twist aside, making the most of your cat-like reflexes to avoid some of the stuff.");
				else if (evade == EVASION_SPEED || evade != null) { // failsafe
					//Miss1
					if (rand(3) == 0) outputText("\nA glob of her goo goes wide, over your shoulder!");
					else if (rand(2) == 0) outputText("\nOne wave of alabaster falls short, to splatter at your [feet].");
					else outputText("\nSome of the Cum Witch's cum nearly hits you, but you manage to step aside.");
				}
				//Dragon-shell shield
				else if (player.shield == game.shields.DRGNSHL && rand(2) == 0) outputText("\nYou ready your dragon-shell shield, letting the futa-cum hit your shield. Within a short span of time, the cum is absorbed into your shield.");
				else {
					var temp:Number = rand(5);
					//Hit1
					if (temp == 0) outputText("\nA mass of jizz splatters into your [hair], soaking it with thick, salty goo.");
					else if (temp == 1) outputText("\nOne jet of thick witch-cum hits you in the [chest] before you can react.  You can feel it getting inside your [armor], squishing and sliding over your [nipples] as you try to fight.");
					else if (temp == 2) outputText("\nSome of the stuff spatters off your arm and soaks your hand, making it a slimy mess.");
					else if (temp == 3) outputText("\nA creamy deluge hits your [legs], though rather than running down, it seems to come up, flowing into your [armor] to squish wetly across your sensitive groin.");
					else {
						outputText("\nSpunk nearly blinds you as the Cum Witch's virile fluids take you in the face.  You spit some of it out, the smell of the stuff making your head swim.");
						//bonus damage!
						bonus = 3;
					}
					damage+= 2;
				}
				hits--;
			}
			game.dynStats("lus", damage+bonus);
			combatRoundOver();
		}

		//*Attack: Cum Magic
		public function cumMagicAttack():void {
			//*Used on males only, casts spell that causes balls to temporarily swell and increase lust by a moderate amount.  Unavoidable.
			outputText("Gesticulating with her free hand, the Cum Witch utters impossible to pronounce words before closing her fingers tightly into a fist.  That same instant, you feel an onset of warmth in your [balls], a spreading heat that makes you tremble with growing lust.  A second later, [eachCock] is throbbing, and a runner of cum trickles from the [cockHead], a hint of your temporarily-enhanced virility.");
			//(15-30 lust, based on libido)
			game.dynStats("lus", 5+player.lib/12);
			player.hoursSinceCum += 100;
			combatRoundOver();
		}
		//*Attack: Cum Hunger
		//*Used on vagoozles, spell that causes womb to literally thirst for sperm.  Unavoidable moderate lust gain.  Pregnant character's are immune.
		public function cumHungerAttack():void {
			outputText("Moaning luridly, the Cum Witch swivels her staff and opens her hand to spread her fingers wide.  At the same time, you feel her magic slam into your midsection, burrowing into your womb.  ");
			if (player.pregnancyIncubation > 0) {
				outputText("Yet, whatever she tries to do fails, as her otherworldly conjuration falls apart as soon as soon as it reaches you.");
				combatRoundOver();
				return;
			}
			outputText("It worms around your uterus, tickling it faintly before gently kneading your ovaries.  Your [legs] go weak as your womb throbs, hungering for something to fill it.  A trickle of wetness squirts from your [vagina] as the magic fades, and you squirm as your lust rises. If only something would make you pregnant!  Your eyes dart unbidden to the Witch's groin before you yank them away.");
			game.dynStats("lus", 5+player.lib/12);
			combatRoundOver();
		}

		//*Attack: Gender Confusion
		public function genderConfusionAttack():void {
			//*Used on genderless and hermaphrodite characters.  Mental attack that draws on disharmony with standard gender types to stun for one round.  3 turn cooldown
			outputText("Touching her alabaster staff to her brow, just under the brim of her hat, the Cum Witch makes a brief incantation and fixes you with her gaze.  Her eyes flash blindingly white, and then you feel her inside you, rifling through your memories, digging up memories of your childhood, your past, and throwing them against you.  ");
			if (player.inte/5 + rand(20) + player.level/2 < 18) {
				outputText("She batters your consciousness with conflicting memories of your gender, utterly dazing you.  How can you fight when you can barely tell who you are anymore?");
				player.createStatusEffect(StatusEffects.Confusion,0,0,0,0);
			}
			else {
				outputText("You parse the flood of information with mental focus and expel the intruder from your mind with a clenching of your sizable intellect.");
			}
			combatRoundOver();
		}
		//*Attack: Shell
		public function shellDefense():void {
			//*Grants immunity to all magic-based attacks for the next two turns.
			outputText("The Cum Witch holds her staff in both hands and rotates it in a circle, chanting all the while.  Her voice rises in pitch and intensity until she's screaming out unwords of power.  With one final cry, she slams her staff down into the ground hard enough to kick up a puff of sandy dust.  It quickly settles, but the Cum Witch has some kind of glittering, reflective shield around herself now!");
			createStatusEffect(StatusEffects.Shell,3,0,0,0);
			combatRoundOver();
		}

		//*Attack: Cocknosis
		//*Intelligence dependant attack with possibility of very high lust gain.
		public function cocknosisAttack():void {
			outputText("Lifting her robes enticingly, the Cum Witch reveals her ");
			if (lust < 50) outputText("half-hard");
			else if (lust < 70) outputText("hard");
			else if (lust < 85) outputText("throbbing");
			else outputText("hard, dripping");
			outputText(" cock.  She gently begins to sway her hips, bouncing back and forth with near-mechanical precision, her softly bobbing cock catching your eyes with its metronome-like precision.  She softly begins to speak, enunciating each word to the time and tune of her movements.");

			outputText("\n\n\"See my cock?  See the glistening thickness of it?  Watch how it sways and bobs for you, moving with such smooth and easy grace.  Can you feel your eyes following it, locking onto it and never letting go?\"\n\n");

			if (player.inte/20 + rand(20) >= 13) {
				outputText("You chuckle at her crude attempt to hypnotize you with her member.  She stomps her foot in irritation and drops her robes back into place.");
			}
			else {
				outputText("The Witch smirks, though you're too focused on her cock to see, and she continues, \"Good " + player.mf("boy","girl") + ".  Watch it sway.  You're so focused on my cock now that the world is just falling away around it, sinking into nothingness, leaving only that wonderful cock behind for you to watch.  And since it's filling your view, you can feel it filling your mind as well, can't you?\"");
				outputText("\n\nYou nod, your view rigidly attached to her equally rigid tool as you utterly and completely fixate on her penis, admiring its curves, its thickness, and the way it seems to pulsate happily for you whenever you look at it just right.  The Witch keeps talking, but it's her dick that's important.  You start to drool as your " + player.skin() + " flushes and your body heats.  Gods, her cock is gorgeous.  Reaching down, you begin to masturbate without thinking.  You don't know why, but it just feels like the right thing to do.");
				game.dynStats("lus", 20);
				if (player.lust <= 99) outputText("\n\nYou bump against something, startling yourself out of the cocknosis before you can completely fall for it.  Still, you keep seeing her dick every time you close your eyes, and your body is very turned on from how you were touching yourself.");
				else outputText("\n\nYou play with yourself until you're on the very edge of orgasm.  At that moment, a loud *SNAP* startles you back to wakefulness, and as you look down at the cock bobbing just a few inches away, you realize it's hopeless.  You can't fight this.");
				outputText("\n\nThe witch smiles knowingly.");
			}
			combatRoundOver();
		}

		//*Attack: Heal
		//*Restores one third of her HP.
		public function sandWitchCuntHeals():void {
			outputText("The Witch smirks at you and holds her free hand under her robes.  When she pulls it out, you realize she's gathered a handful of her cum.  She holds it up and exhales over it, the air making a slight whistle as it blows through her parted lips.  The ebony sorceress then smears the goop over her wounds, which seem to drink in the cum and vanish before your eyes.  She scolds, \"Physical damage?  How artless.\"");
			addHP(eMaxHP()*0.33);
			fatigue += 10;
			combatRoundOver();
		}

		override protected function performCombatAction():void
		{
			cumWitchAI();
		}

		override public function defeated(hpVictory:Boolean):void
		{
			game.dungeons.desertcave.cumWitchDefeated();
		}

		override public function won(hpVictory:Boolean,pcCameWorms:Boolean):void
		{
			game.dungeons.desertcave.defeatedByCumWitch();
		}

		public function CumWitch()
		{
			this.a = "the ";
			this.short = "Cum Witch";
			this.imageName = "cumwitch";
			this.long = "The Cum Witch is a moderately tall woman, almost six feet in height.  Her dark ebony skin is nearly as black as pitch, though it glitters with sweat from her recent sexual activities and the fight.  She has plump lips and long, smooth blonde hair, though much of it is hidden behind a pointed, wide-brimmed hat.  Her robes are even blacker than she is, but she wields an alabaster staff that fairly sizzles with magical might.  Of course, her garments don't do much to conceal her gigantic breasts.  Though there are only two, they're large enough to dwarf the four tits most sand witches are packing.";
			// this.plural = false;
			this.createCock(12,2,CockTypesEnum.HUMAN);
			this.balls = 0;
			this.ballSize = 0;
			this.cumMultiplier = 3;
			this.hoursSinceCum = 20;
			this.createVagina(false, VAGINA_WETNESS_WET, VAGINA_LOOSENESS_LOOSE);
			this.createStatusEffect(StatusEffects.BonusVCapacity, 20, 0, 0, 0);
			createBreastRow(Appearance.breastCupInverse("E"));
			this.ass.analLooseness = ANAL_LOOSENESS_TIGHT;
			this.ass.analWetness = ANAL_WETNESS_NORMAL;
			this.tallness = rand(12) + 55;
			this.hipRating = HIP_RATING_CURVY;
			this.buttRating = BUTT_RATING_LARGE;
			this.skinTone = "black";
			this.hairColor = "sandy-blonde";
			this.hairLength = 15;
			initStrTouSpeInte(35, 35, 35, 85);
			initLibSensCor(55, 40, 30);
			this.weaponName = "fists";
			this.weaponVerb="punches";
			this.armorName = "robes";
			this.bonusHP = 100;
			this.lust = 30;
			this.lustVuln = .8;
			this.temperment = TEMPERMENT_RANDOM_GRAPPLES;
			this.level = 6;
			this.gems = rand(15) + 5;
			this.drop = new WeightedDrop().addMany(1,
					consumables.TSCROLL,
					consumables.OVIELIX,
					consumables.LACTAID,
					consumables.LABOVA_,
					consumables.W__BOOK,
					consumables.B__BOOK,
					null);
			checkMonster();
		}

	}

}

license: unknown


code:
package classes.Scenes.Areas.Desert
{
	import classes.*;
	import classes.internals.WeightedDrop;
	import classes.GlobalFlags.kFLAGS;

	public class DemonPack extends Monster
	{

		override protected function performCombatAction():void
		{
			//Demon pack has different AI
			if (rand(2) == 0)
				special1();
			else special2();
		}

		override public function defeated(hpVictory:Boolean):void
		{
			if (hpVictory) {
				outputText("You strike out and the last of the demons tumbles to the ground with a thud. You stand there for a second surrounded by dead or unconscious demons feeling like a god of battle. Then you realize that if a god of battle does exist he lives on a demonic plane like this, so to avoid insulting him you take your hands off your hips and your " + player.legs() + " off the head of the demon leader before you start to search the bodies.", true);
				game.dynStats("lus", 1);
			} else {
				outputText("The demons stop attacking, and reach out to touch your body. Some are already masturbating like it's the only thing in the world and you know that right now, if you wanted to, you could make each and every one of them fuck you.");
			}
			if (findStatusEffect(StatusEffects.phyllafight) >= 0) {
				doNext(game.desert.antsScene.consolePhylla);
			} else if (hpVictory || flags[kFLAGS.SFW_MODE] > 0){
				game.combat.cleanupAfterCombat();
			} else {
				outputText("  Do you rape them?", true);
				game.doYesNo(rapeDemons, game.combat.cleanupAfterCombat);
			}
		}

		private function rapeDemons():void{
			outputText("You open your arms and step into the throng of eager demons. They jump eagerly to touch you, becoming more and more lust-frenzied every second. You take the nearest demon and throw it to the ground and without a moment's thought the rest of the group leap to join you in a thoughtless madness of lust...", true);
			doNext(game.desert.oasis.oasisSexing);
		}

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean):void
		{
			if (player.gender == 0){
				if (hpVictory) {
					outputText("You collapse before the demons, who laugh at your utter lack of male or female endowments, beating you until you pass out.", true);
				} else {
					outputText("You offer yourself to the demons, who promptly begin laughing at your lack of endowments.  They fall on you as one, beating you into unconsciousness.", true);
				}
				game.combat.cleanupAfterCombat();
			} else if (flags[kFLAGS.SFW_MODE] > 0) {
				outputText("Because SFW mode is enabled, this scene is disabled.");
				game.combat.cleanupAfterCombat();
			} else if (hpVictory){
				outputText("The demons finally beat you down and you collapse onto the sand of the oasis. Almost immediately you feel demonic hands pressing and probing your prone form. You hear the leader of the group say something in a strange tongue but you have a feeling you know what it means. The demons dive onto your inert body with intent and begin to press themselves against you...", true);
				doNext(game.desert.oasis.oasisSexing);
			} else {
				outputText("You struggle to keep your mind on the fight and fail to do so. ", true);
				if (pcCameWorms){
					outputText("\n\nThe demons joke and smile, obviously unconcerned with your state.\n\n", false);
				}
				if (player.cocks.length > 0) {
					if (player.cockTotal() > 1) outputText("Each of y", false);
					else outputText("Y", false);
					outputText("our " + player.multiCockDescriptLight() + " throbs ", false);
					if (player.hasVagina()) outputText(" and your ", false);
				}
				if (player.vaginas.length > 0) {
					if (!player.hasCock()) outputText("Your ", false);
					outputText(player.vaginaDescript(0) + " burns ", false);
				}
				outputText("with arousal.  You make a grab for the nearest demon and catch a handful of jiggly breast. You try desperately to use your other arm to pull her closer to slake your thirst but you both go tumbling to the ground. The demonic leader laughs out loud and the rest of the tribe falls on you, grabbing for anything it can find.", false);
				doNext(game.desert.oasis.oasisSexing);
			}
		}

		override public function teased(lustDelta:Number):void
		{
			outputText("\n", false);
			if (lustDelta == 0) outputText("\n" + capitalA + short + " seems unimpressed.");
			else if (lustDelta > 0 && lustDelta < 5) outputText("The demons lessen somewhat in the intensity of their attack, and some even eye up your assets as they strike at you.", false);
			else if (lustDelta >= 5 && lustDelta < 10) outputText("The demons are obviously steering clear from damaging anything you might use to fuck and they're starting to leave their hands on you just a little longer after each blow. Some are starting to cop quick feels with their other hands and you can smell the demonic lust of a dozen bodies on the air.", false);
			else if (lustDelta >= 10) outputText("The demons are less and less willing to hit you and more and more willing to just stroke their hands sensuously over you. The smell of demonic lust is thick on the air and part of the group just stands there stroking themselves openly.", false);
			applyTease(lustDelta);
		}

		public function DemonPack()
		{
			trace("DemonPack Constructor!");
			this.a = "the ";
			this.short = "demons";
			this.imageName = "demonmob";
			this.long= "The group is composed of roughly twenty tan-skinned demons, mostly humanoid in shape with many and varied corruptions across the mob. You see demonic high heels, twisting horns and swinging cocks of all shapes and sizes. There even seems to be a bull head in there somewhere. You also make out plenty of breasts ranging from tiny ones to a pair that requires a second person to carry them, and with those breasts a wide range of pussies, dripping and dry, sometimes nestled below some form of demonic dick.  The small tribe carries no weapons and what little clothing they wear is well-shredded, except for one hefty male wearing a cloak of what appears to be snakeskin across his broad shoulders." + (game.silly() ? "  You spot an odd patch that reads, \"<i>41st Engineer Company: Vaginal Clearance</i>\" on his shoulder." : "");
			this.plural = true;
			this.pronoun1 = "they";
			this.pronoun2 = "them";
			this.pronoun3 = "their";
			this.createCock(18,2);
			this.createCock(18,2,CockTypesEnum.DEMON);
			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 = ANAL_LOOSENESS_STRETCHED;
			this.ass.analWetness = ANAL_WETNESS_SLIME_DROOLING;
			this.tallness = rand(8) + 70;
			this.hipRating = HIP_RATING_AMPLE+2;
			this.buttRating = BUTT_RATING_LARGE;
			this.skinTone = "red";
			this.hairColor = "black";
			this.hairLength = 15;
			initStrTouSpeInte(80, 10, 10, 5);
			initLibSensCor(50, 60, 80);
			this.weaponName = "claws";
			this.weaponVerb="claw";
			this.armorName = "demonic skin";
			this.bonusHP = 200;
			this.lust = 30;
			this.temperment = TEMPERMENT_LOVE_GRAPPLES;
			this.level = 6;
			this.gems = rand(25) +10;
			this.drop = new WeightedDrop().addMany(1,
							consumables.SUCMILK,
							consumables.INCUBID,
							consumables.OVIELIX,
							consumables.B__BOOK);
			this.special1 = game.combat.packAttack;
			this.special2 = game.combat.lustAttack;
			this.tailType = TAIL_TYPE_DEMONIC;
			this.hornType = HORNS_DEMON;
			this.horns = 2;
			checkMonster();
		}

	}

}


code:
package classes.Scenes.Areas.Desert
{
	import classes.*;
	import classes.internals.*;

	public class Naga extends Monster
	{

		//2a)  Ability -  Poison Bite - poisons player
		protected function nagaPoisonBiteAttack():void {
			//(Deals damage over 4-5 turns, invariably reducing
			//your speed. It wears off once combat is over.)
			outputText("The naga strikes with the speed of a cobra, sinking her fangs into your flesh!  ", false);
			if (player.findStatusEffect(StatusEffects.NagaVenom) < 0) {
				outputText("The venom's effects are almost instantaneous; your vision begins to blur and it becomes increasingly harder to stand.", false);
				if (player.spe > 4) {
					//stats(0,0,-3,0,0,0,0,0);
					player.spe -= 3;
					showStatDown( 'spe' );
					// speUp.visible = false;
					// speDown.visible = true;
					player.createStatusEffect(StatusEffects.NagaVenom,3,0,0,0);
				}
				else {
					player.createStatusEffect(StatusEffects.NagaVenom,0,0,0,0);
					player.takeDamage(5+rand(5));
				}
				player.takeDamage(5+rand(5));
			}
			else {
				outputText("The venom's effects intensify as your vision begins to blur and it becomes increasingly harder to stand.", false);
				if (player.spe > 3) {
					//stats(0,0,-2,0,0,0,0,0);
					player.spe -= 2;
					showStatDown( 'spe' );
					// speUp.visible = false;
					// speDown.visible = true;
					player.addStatusValue(StatusEffects.NagaVenom,1,2);
				}
				else player.takeDamage(5+rand(5));
				player.takeDamage(5+rand(5));
			}
			combatRoundOver();
		}

		//2b)  Ability - Constrict - entangles player, raises lust
		//every turn until you break free
		protected function nagaConstrict():void {
			outputText("The naga draws close and suddenly wraps herself around you, binding you in place! You can't help but feel strangely aroused by the sensation of her scales rubbing against your body. All you can do is struggle as she begins to squeeze tighter!", false);
			player.createStatusEffect(StatusEffects.NagaBind,0,0,0,0);
			if (player.findPerk(PerkLib.Juggernaut) < 0 && armorPerk != "Heavy") {player.takeDamage(2+rand(4));
			}
			combatRoundOver();
		}

		//2c) Abiliy - Tail Whip - minus ??? HP
		//(base it on toughness?)
		protected function nagaTailWhip():void {
			outputText("The naga tenses and twists herself forcefully.  ", false);
			//[if evaded]
			if ((player.findPerk(PerkLib.Evade) && rand(6) == 0)) {
				outputText("You see her tail whipping toward you and evade it at the last second. You quickly roll back onto your feet.", false);
			}
			else if (player.findPerk(PerkLib.Misdirection) >= 0 && rand(100) < 10 && player.armorName == "red, high-society bodysuit") {
				outputText("Using Raphael's teachings and the movement afforded by your bodysuit, you anticipate and sidestep " + a + short + "'s tail-whip.", false);
			}
			else if (player.spe > rand(300)) {
				outputText("You see her tail whipping toward you and jump out of the way at the last second. You quickly roll back onto your feet.", false);
			}
			else {
				outputText("Before you can even think, you feel a sharp pain at your side as the naga's tail slams into you and shoves you into the sands. You pick yourself up, wincing at the pain in your side. ", false);
				var damage:Number = 10;
				if (player.armorDef < 10) damage += 10 - player.armorDef;
				damage += rand(3);
				damage = player.takeDamage(damage, true);
			}
			combatRoundOver();
		}

		override public function defeated(hpVictory:Boolean):void
		{
			game.desert.nagaScene.nagaRapeChoice();
		}

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean):void
		{
			if (pcCameWorms){
				outputText("\n\nThe naga's eyes go wide and she turns to leave, no longer interested in you.", false);
				player.orgasm();
				doNext(game.combat.cleanupAfterCombat);
			} else {
				game.desert.nagaScene.nagaFUCKSJOOOOOO();
			}
		}

		public function Naga(noInit:Boolean = false)
		{
			if (noInit) return;
			trace("Naga Constructor!");
			this.a = "the ";
			this.short = "naga";
			this.imageName = "naga";
			this.long = "You are fighting a naga. She resembles a beautiful and slender woman from the waist up, with dark hair hanging down to her neck. Her upper body is deeply tanned, while her lower body is covered with shiny scales, striped in a pattern reminiscent of the dunes around you. Instead of bifurcating into legs, her hips elongate into a snake's body which stretches far out behind her, leaving a long and curving trail in the sand.  She's completely naked, with her round C-cup breasts showing in plain sight. In her mouth you can see a pair of sharp, venomous fangs and a long forked tongue moving rapidly as she hisses at you.";
			// this.plural = false;
			this.createVagina(false, VAGINA_WETNESS_SLAVERING, VAGINA_LOOSENESS_NORMAL);
			this.createStatusEffect(StatusEffects.BonusVCapacity, 40, 0, 0, 0);
			createBreastRow(Appearance.breastCupInverse("C"));
			this.ass.analLooseness = ANAL_LOOSENESS_TIGHT;
			this.ass.analWetness = ANAL_WETNESS_DRY;
			this.createStatusEffect(StatusEffects.BonusACapacity,10,0,0,0);
			this.tallness = 5*12+10;
			this.hipRating = HIP_RATING_AMPLE+2;
			this.buttRating = BUTT_RATING_LARGE;
			this.lowerBody = LOWER_BODY_TYPE_NAGA;
			this.skinTone = "mediterranean-toned";
			this.hairColor = "brown";
			this.hairLength = 16;
			initStrTouSpeInte(28, 20, 35, 42);
			initLibSensCor(55, 55, 40);
			this.weaponName = "fist";
			this.weaponVerb="punch";
			this.weaponAttack = 3;
			this.armorName = "scales";
			this.armorDef = 5;
			this.lust = 30;
			this.temperment = TEMPERMENT_RANDOM_GRAPPLES;
			this.level = 2;
			this.gems = rand(5) + 8;
			this.drop = new WeightedDrop().
					add(null,1).
					add(consumables.REPTLUM,5).
					add(consumables.SNAKOIL,4);
			this.special1 = nagaPoisonBiteAttack;
			this.special2 = nagaConstrict;
			this.special3 = nagaTailWhip;
			checkMonster();
		}

	}

}


code:
package classes.Scenes.Areas.Desert
{
	import classes.*;
	import classes.internals.*;

	public class SandTrap extends Monster
	{
		//Wait:
		public function sandTrapWait():void {
			clearOutput();
			game.spriteSelect(97);
			if (findStatusEffect(StatusEffects.Climbed) < 0) createStatusEffect(StatusEffects.Climbed,0,0,0,0);
			outputText("Instead of attacking, you turn away from the monster and doggedly attempt to climb back up the pit, digging all of your limbs into the soft powder as you climb against the sandslide.");
			if (trapLevel() == 4) {
				outputText("\n\nYou eye the ground above you.  The edge of the pit is too sheer, the ground too unstable... although it looks like you can fight against the currents carrying you further down, it seems impossible to gain freedom with the sand under the monster's spell.");
			}
			else {
				//Strength check success: [Player goes up one level, does not go down a level this turn]
				if (player.str/10 + rand(20) > 10) {
					outputText("\n\nSweat beads your forehead - trying to clamber out of this pit is like running against the softest treadmill imaginable.  Nonetheless, through considerable effort you see you've managed to pull further clear of the sandtrap's grasp.  \"Watching you squirm around like that gets me so hot,\" it calls up to you.  Turning around you see that the creature is rubbing its hands all over its lean body whilst watching you struggle.  \"Such an energetic little mating dance, just for me... mmm, prey who do that are always the best!\"");
					trapLevel(2);
				}
				else {
					//Strength check fail:  [Player goes down as normal]
					outputText("\n\nSweat beads your forehead - trying to clamber out of this pit is like running against the softest treadmill imaginable.  You feel like you're going to burst and you eventually give up, noting wearily that you've managed to get nowhere. \"Watching you squirm around like that gets me so hot,\" the sandtrap calls to you.  Turning around you see that the creature is rubbing its hands all over its lean body whilst watching you struggle.  \"Such an energetic little mating dance, just for me... mmm, prey who do that are always the best!\"");
					trapLevel(1);
				}
			}
			outputText("\n\n");
			doAI();
			//combatRoundOver();
		}

		public function trapLevel(adjustment:Number = 0):Number {
			if (findStatusEffect(StatusEffects.Level) < 0) createStatusEffect(StatusEffects.Level,4,0,0,0);
			if (adjustment != 0) {
				addStatusValue(StatusEffects.Level,1,adjustment);
				//Keep in bounds ya lummox
				if (statusEffectv1(StatusEffects.Level) < 1) changeStatusValue(StatusEffects.Level,1,1);
				if (statusEffectv1(StatusEffects.Level) > 4) changeStatusValue(StatusEffects.Level,1,4);
			}
			return statusEffectv1(StatusEffects.Level);
		}

		//sandtrap pheromone attack:
		private function sandTrapPheremones():void {
			game.spriteSelect(97);
			outputText("The sandtrap puckers its lips.  For one crazed moment you think it's going to blow you a kiss... but instead it spits clear fluid at you!   You desperately try to avoid it, even as your lower half is mired in sand.");
			if (player.spe/10 + rand(20) > 10 || player.getEvasionRoll(false)) {
				outputText("  Moving artfully with the flow rather than against it, you are able to avoid the trap's fluids, which splash harmlessly into the dune.");
			}
			else {
				var damage:Number = (10 + player.lib/10);
				outputText("  Despite ducking away from the jet of fluid as best you can, you cannot avoid some of the stuff splashing upon your arms and face.  The substance feels oddly warm and oily, and though you quickly try to wipe it off it sticks resolutely to your skin and the smell hits your nose.  Your heart begins to beat faster as warmth radiates out from it; you feel languid, light-headed and sensual, eager to be touched and led by the hand to a sandy bed...  Shaking your head, you try to stifle what the foreign pheromones are making you feel.");
				game.dynStats("lus", damage);
				damage = Math.round(damage * player.lustPercent() / 10) / 10;
				outputText(" (" + damage +" lust)");
			}
		}

		//sandtrap quicksand attack:
		private function nestleQuikSandAttack():void {
			game.spriteSelect(97);
			outputText("The sandtrap smiles at you winningly as it thrusts its hands into the sifting granules.  The sand beneath you suddenly seems to lose even more of its density; you're sinking up to your thighs!");
			//Quicksand attack fail:
			if (player.spe/10 + rand(20) > 10  || player.getEvasionRoll(false)) {
				outputText("  Acting with alacrity, you manage to haul yourself free of the area affected by the sandtrap's spell, and set yourself anew.");
			}
			//Quicksand attack success: (Speed and Strength loss, ability to fly free lost)
			else {
				outputText("  You can't get free in time and in a panic you realize you are now practically wading in sand.  Attempting to climb free now is going to be very difficult.");
				if (player.canFly()) outputText("  You try to wrench yourself free by flapping your wings, but it is hopeless.  You are well and truly snared.");
				trapLevel(-1);
				if (findStatusEffect(StatusEffects.Climbed) < 0) createStatusEffect(StatusEffects.Climbed,0,0,0,0);
			}
		}

		override protected function performCombatAction():void
		{
			if (findStatusEffect(StatusEffects.Level) >= 0) {
				if (trapLevel() == 4 && findStatusEffect(StatusEffects.Climbed) < 0) nestleQuikSandAttack();
				else sandTrapPheremones();
//PC sinks a level (end of any turn in which player didn't successfully \"Wait\"):
				if (findStatusEffect(StatusEffects.Climbed) < 0) {
					outputText("\n\nRivulets of sand run past you as you continue to sink deeper into both the pit and the sand itself.");
					trapLevel(-1);
				}
				else removeStatusEffect(StatusEffects.Climbed);
				combatRoundOver();
			} else super.performCombatAction();
		}

		override public function defeated(hpVictory:Boolean):void
		{
			game.desert.sandTrapScene.pcBeatsATrap();
		}

		override public function won(hpVictory:Boolean,pcCameWorms:Boolean):void
		{
			if (pcCameWorms) {
				outputText("\n\nThe sand trap seems bemused by the insects your body houses...");
				doNext(game.combat.endLustLoss);
			} else {
				game.desert.sandTrapScene.sandtrapmentLoss(true);
			}
		}

		public function SandTrap()
		{
			//1/3 have fertilized eggs!
			if (rand(3) == 0) this.createStatusEffect(StatusEffects.Fertilized,0,0,0,0);
			this.a = "the ";
			if (game.silly())
				this.short = "sand tarp";
			else
				this.short = "sandtrap";
			this.imageName = "sandtrap";
			this.long = "You are fighting the sandtrap.  It sits half buried at the bottom of its huge conical pit, only its lean human anatomy on show, leering at you from beneath its shoulder length black hair with its six equally sable eyes.  You cannot say whether its long, soft face with its pointed chin is very pretty or very handsome - every time the creature's face moves, its gender seems to shift.  Its lithe, brown flat-chested body supports four arms, long fingers playing with the rivulets of powder sand surrounding it.  Beneath its belly you occasionally catch glimpses of its insect half: a massive sand-coloured abdomen which anchors it to the desert, with who knows what kind of anatomy.";
			// this.plural = false;
			this.createCock(10,2,CockTypesEnum.HUMAN);
			this.balls = 2;
			this.ballSize = 4;
			this.cumMultiplier = 3;
			// this.hoursSinceCum = 0;
			this.createBreastRow(0,0);
			this.ass.analLooseness = ANAL_LOOSENESS_NORMAL;
			this.ass.analWetness = ANAL_WETNESS_DRY;
			this.tallness = rand(8) + 150;
			this.hipRating = HIP_RATING_AMPLE+2;
			this.buttRating = BUTT_RATING_LARGE;
			this.skinTone = "fair";
			this.hairColor = "black";
			this.hairLength = 15;
			initStrTouSpeInte(55, 10, 45, 55);
			initLibSensCor(60, 45, 50);
			this.weaponName = "claws";
			this.weaponVerb="claw";
			this.weaponAttack = 10;
			this.armorName = "chitin";
			this.armorDef = 20;
			this.bonusHP = 100;
			this.lust = 20;
			this.lustVuln = .55;
			this.temperment = TEMPERMENT_LOVE_GRAPPLES;
			this.level = 4;
			this.gems = 2 + rand(5);
			this.drop = new ChainedDrop(consumables.TRAPOIL).add(consumables.OVIELIX,1/3);
			this.tailType = TAIL_TYPE_DEMONIC;
			createStatusEffect(StatusEffects.Level,4,0,0,0);
			checkMonster();
		}

	}

}


code:
package classes.Scenes.Areas.Desert
{
	import classes.*;
	import classes.internals.*;
	import classes.GlobalFlags.*;

	public class SandWitch extends Monster
	{

		override public function defeated(hpVictory:Boolean):void
		{
			if (player.findStatusEffect(StatusEffects.StoneLust))
			{
				player.removeStatusEffect(StatusEffects.StoneLust);
			}

			if (player.lust >= 33 && flags[kFLAGS.SFW_MODE] <= 0){
				game.desert.sandWitchScene.beatSandwitch();
			} else {
				game.combat.finishCombat();
			}
		}

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean):void
		{
			if (pcCameWorms){
				outputText("\n\nThe witch blanches and backs away, leaving you to your fate.");
				game.combat.cleanupAfterCombat();
			} else {
				game.desert.sandWitchScene.sandwitchRape();
			}
		}

		private function lustMagicAttack():void {
			outputText("The sand witch points at you, drawing a circle in the air and mouthing strange words.\n\n");
			if (player.findStatusEffect(StatusEffects.StoneLust) >= 0) {
				outputText("The orb inside you grows warm, almost hot, suffusing your body with heat and arousal.  ");
				game.dynStats("lus", 8 + int(player.sens) / 10);
			}
			else {
				outputText("You feel the sands shift by your " + player.feet() + ", and look down to see something slip out of the sands and into your clothes!  It feels incredibly smooth and circular as it glides upward along your " + player.leg() + ", its progress unaffected by your frantic effort to dislodge it.  ");
				if (player.vaginas.length > 0) outputText("It glides up your thighs to the entrance of your sex, and its intentions dawn on you!\n\nToo late! You reach to stop it, but it pushes against your lips and slips inside your " + player.vaginaDescript(0) + " in an instant.  You groan in frustration as it begins pulsing and vibrating, sometimes even seeming to change size.");
				else outputText("It glides up your thighs, curving around your buttocks, and its intentions dawn on you.\n\nYou desperately grab for it, but are too late!  It pushes firmly against your rectum and slips inside instantaneously.  You groan in frustration as it begins pulsing and vibrating, sometimes even seeming to change size.");
				player.createStatusEffect(StatusEffects.StoneLust, 0, 0, 0, 0);
				game.dynStats("lus", 4 + int(player.sens) / 10);
			}
			doNext(game.playerMenu);
		}

		public function SandWitch()
		{
			trace("SandWitch Constructor!");
			this.a = "the ";
			if (game.silly()){
				this.short = "sand witch";
				this.imageName = "sandwidch";
			} else {
				this.short = "sand witch";
				this.imageName = "sandwitch";
			}
			this.long = "A sand witch appears to be totally human, an oddity in this strange land.  She has dirty blonde hair and a very tanned complexion, choosing to cover most of her body with robes of the same color as the desert sands, making her impossible to spot from afar.";
			this.createVagina(false, VAGINA_WETNESS_WET, VAGINA_LOOSENESS_LOOSE);
			this.createBreastRow(Appearance.breastCupInverse("DD"));
			this.createBreastRow(Appearance.breastCupInverse("DD"));
			this.ass.analLooseness = ANAL_LOOSENESS_TIGHT;
			this.ass.analWetness = ANAL_WETNESS_NORMAL;
			this.tallness = rand(12) + 55;
			this.hipRating = HIP_RATING_CURVY;
			this.buttRating = BUTT_RATING_LARGE;
			this.skinTone = "bronzed";
			this.hairColor = "sandy-blonde";
			this.hairLength = 15;
			initStrTouSpeInte(25, 25, 35, 45);
			initLibSensCor(55, 40, 30);
			this.weaponName = "kick";
			this.weaponVerb="kick";
			this.armorName = "robes";
			this.bonusHP = 20;
			this.lust = 30;
			this.temperment = TEMPERMENT_LUSTY_GRAPPLES;
			this.level = 3;
			this.gems = rand(15) + 5;
			this.drop = new WeightedDrop().addMany(1,
					consumables.TSCROLL,
					consumables.OVIELIX,
					consumables.LACTAID,
					consumables.LABOVA_,
					consumables.W__BOOK,
					consumables.B__BOOK,
					null);
			this.special1 = lustMagicAttack;
			this.special2 = special2;
			this.special3 = special3;
			checkMonster();
		}

	}

}


code:
package classes.Scenes.Areas.Desert {
	import classes.*;

	public class Wanderer extends BaseContent{

		public function Wanderer()
		{
		}

		public function wandererRouter():void {
	spriteSelect(42);
	//First meeting...
	if (player.findStatusEffect(StatusEffects.MeetWanderer) < 0) {
		wandererFirstMeeting();
		player.createStatusEffect(StatusEffects.MeetWanderer,0,0,0,0);
	}
	//Repeat offense!
	else {
		//Chosen demon ending
		if (player.findStatusEffect(StatusEffects.WandererDemon) >= 0) {
			wandererDemonEpilogue();
			return;
		}
		//Chosen human ending
		if (player.findStatusEffect(StatusEffects.WandererHuman) >= 0) {
			wandererEpilogueHuman();
			return;
		}
		//No choose made repeat meeting
		wandererRepeatMeeting();
	}
}

//Encounter the wanderer for the first time
private function wandererFirstMeeting():void {
	//Each outputtext is a paragraph
	outputText("A small plume of dust rises in the distance, betraying the position of something else moving amongst the sandy dunes.   It grows larger as it approaches your position, revealing a bulky distorted shape lurking inside the cloud.  You cautiously approach, preparing to face some new demonic monstrosity.   As the sandy cloud parts, the blurred figure resolves itself into two distinct outlines.\n\n", true);
	outputText("On the left is a man carrying a heavily loaded wheelbarrow and struggling not to stumble in the sandy desert soil.  Slightly behind and to the right of the man is a shapely woman, her demonic origins plain to anyone who notices the spikes on her head.  As they near the man notices your presence and calls out, \"Ho, traveler!  Fine day isn't it?\"\n\n", false);
	outputText("The strange pair close the intervening distance, allowing you to make out more of their forms.  As expected, the succubus is quite a beauty, with curvy flesh in all the right places.  The man introduces himself as he struggles with his heavy load.  \"I am Marcus,  former traveler of extraordinary places and seeker of forbidden knowledge!  Though all that was a long time ago; I'm retired, you see.  I've settled down with my new partner, Lucia.\"  Marcus gestures, indicating the bored-looking succubus accompanying him.\n\n", false);
	outputText("You start to greet them, but nearly faint in shock – Marcus' wheelbarrow isn't full of cargo.  It's the only thing keeping his oversized balls from dragging in the sand!  He smiles at your reaction and winks lewdly, \"Why do you think I have to keep a succubus around?  If I don't empty these puppies every hour or two I damn near explode!\"  Looking thoughtful for a moment, Marcus nods to himself and asks, \"I don't suppose you have a moment to help me with a quandary I've been having?\"", false);
	simpleChoices("Help Him", wandererHelpHim, "", null, "", null, "", null, "Leave", wandererLeave);
}
//Leave
private function wandererLeave():void {
	spriteSelect(42);
	outputText("Marcus looks disappointed and sighs, hefting his wheelbarrow and waddling away.  Lucia bounces after him, looking like the cat that got the cream.  You wonder what all that was about.   What a strange land.", true);
	doNext(camp.returnToCampUseOneHour);
}
//Repeated encounter if he left
private function wandererRepeatMeeting():void {
	spriteSelect(42);
	outputText("Marcus waves to you as he crests a nearby dune, yelling a greeting.  \"Hey traveler!  Do you have a moment to help a man with a question of theological and moral imperatives?\"\n\nHis succubus accomplice, Lucia, snorts in disdain.", true);
	simpleChoices("Yes", wandererHelpHim, "", null, "", null, "", null, "Leave", wandererLeave);
}
//Volunteer to help
private function wandererHelpHim():void {
	spriteSelect(42);
	outputText("\"Oh good!\" he exclaims as he begins elaborating.  \"My dear succubus here is growing tired of our arrangement, and she wants me to give up the last of my humanity and become a demon like her.  I'm not really sure I want to lose my soul, but at the same time, I know enough about their kind to know I'd REALLY enjoy being an incubus, if you know what I mean.  Before I make the plunge, I'd like a second opinion – what do you think?\"\n\nHe glances over his shoulder with almost a small measure of fear.", true);
	simpleChoices("Go Demon", wandererGoDemon, "Stay Human", wandererStayHuman, "", null, "", null, "", null);
}
//Ask marcus to stay human
private function wandererStayHuman():void {
	spriteSelect(42);
	outputText("\"You little mortal fuckwit!\" screams Lucia before turning to her human lover, \"Don't listen to the foolish mortal, love; think of the fun we could have together!\"\n\n", true);
	outputText("Marcus shakes his head sadly, \"" + player.mf("He", "She") + "", false);
	outputText(" is right, my soul is immortal and not to be sacrificed so lightly.  Why don't we stick to our original agreement another decade and mull it over then?\"\n\n", false);
	outputText("Lucia pouts, nearly on the verge of tears, \"Fine!  But don't expect me to be happy about it.\"  She pats his swollen balls roughly, smirking down at him, \"and I'm going to let these swell up nice and tight before I take my next meal!\"  ", false);
	outputText("Marcus sighs, though you think you spy the hint of a smile on his lips, \"As you wish... thanks for your guidance traveler, and may you find what you seek in this strange land.\"\n\nAs they turn to leave, Lucia scowls at you over her shoulder...", false);
	dynStats("lib", -1, "lus", 1, "cor", -5);
	player.createStatusEffect(StatusEffects.WandererHuman,0,0,0,0);
	doNext(camp.returnToCampUseOneHour);
}
//Ask marcus to go demon
private function wandererGoDemon():void {
	spriteSelect(42);
	outputText("Lucia breaks into a mischievious smile as you suggest taking her up on her offer.  She sashays over to you, flesh jiggling enticingly the whole way.  She leans close, sliding a slender finger down the center of your chest.  \"Thank you for this.  Should we meet again, I promise rewards fit to make a whore faint.\"\n\n", true);
	outputText("Marcus raises an eyebrow at the exchange, but smiles as his demonic lover returns to his side.  Lucia winks again, and huge wings explode from her back.  She grabs Marcus, who bleats in surprise, and lifts off, flying away with her prize to her lair.", false);
	dynStats("lus", 5, "cor", 1);
	player.createStatusEffect(StatusEffects.WandererDemon,0,0,0,0);
	doNext(camp.returnToCampUseOneHour);
}

//Demonic epilogue v1
private function wandererDemonEpilogue():void {
	spriteSelect(42);
	if (player.findStatusEffect(StatusEffects.WandererDemon) >= 0) {
		//First time...
		if (player.statusEffectv1(StatusEffects.WandererDemon) == 0) {
			outputText("A winged shadow flashes by.  You look up, but can't find its source in the searing desert sun.   A tap on your shoulder is all the warning you get before a curvy body is pressed against you, stroking and touching you in all the right ways.\n\n", true);
			outputText("\"I stopped by and I wanted to thank you for this,\" Lucia purrs, balancing a purple crystal along her knuckles.  It sparkles and glitters with a light in the sunlight as she speaks, \"You see, when a human or other mortal creature finally begins to desire corruption and pleasure more than everything else, they can become a demon.  The process leaves behind a single crystal of lethicite – this crystal.  It's a power source beyond anything you can comprehend, and I have you to thank for giving it to me.\"\n\n", false);
			outputText("Lucia places a small bottle in your hand.  \"So thank you, and have this present.  Perhaps you can create some lethicite for us later... oh, and before I forget, Marcus is loving his new existence.\"\n\n", false);
			outputText("She steps away and blows a kiss as her wings unfurl.  With a powerful downstroke she scatters sand everywhere, forcing you to throw an arm in front of your eyes.  When the debris settles, she's gone.\n\n", false);
			dynStats("lus", 5);
			inventory.takeItem(consumables.SDELITE, camp.returnToCampUseOneHour);
			player.statusEffect(player.findStatusEffect(StatusEffects.WandererDemon)).value1 = 1;
		}
		//Second Encounter
		else if (player.statusEffectv1(StatusEffects.WandererDemon) == 1) {
			outputText("Lucia zips by overhead, spreading her legs and openly frigging her moist hairless slit and moaning lustily.  After a few moments she creams herself, dripping her juices over the dunes.  She licks her fingers and waves, unclipping an item from her belt and dropping it down towards you.\n\n", true);
			//Catch it
			if (50 < (player.spe + rand(60))) {
				outputText("You handily catch a small potion vial.  When you look up, she's gone.\n\n", false);
				inventory.takeItem(consumables.SDELITE, camp.returnToCampUseOneHour);
			}
			//Drop it
			else {
				outputText("You dive for the falling bottle, but miss, and it shatters into the sands, the fluids wicking away nearly instantaneously.", false);
				doNext(camp.returnToCampUseOneHour);
			}
		}
	}
}
//Human Epilogue 1
private function wandererEpilogueHuman():void {
	spriteSelect(42);
	if (player.findStatusEffect(StatusEffects.WandererHuman) >= 0) {
		//Human Epilogue 1
		if (player.statusEffectv1(StatusEffects.WandererHuman) == 0) {
			outputText("As you journey the desert, you see the twin figures of Marcus and his demonic companion, Lucia, in the distance.   Judging by the frantic bobbing of Lucia's head in Marcus's lap, she's just getting ready for a meal.  Closing the distance, you watch curiously as her throat bulges obscenely to keep up with the huge cum-load.  In time she flops back, a few huge globules of cum exploding onto her form like bursting water-balloons as Marcus' orgasm finishes, leaving her a cum-stained wreck.\n\n", true);
			if (player.cor < 33) outputText("You duck back behind a dune, blushing furiously.", false);
			else if (player.cor < 66) outputText("You blush crimson as you swear you see Lucia look right at you and wink.", false);
			else outputText("You openly leer at the crude display, whistling lewdly at the blissful couple.  Marcus looks up and gives a cocky smile, while Lucia licks her lips and gives you a predatory grin.", false);
			dynStats("lus", 10);
			//Value 1 is used to track the status of the end state.
			player.statusEffect(player.findStatusEffect(StatusEffects.WandererHuman)).value1 = 1;
			doNext(camp.returnToCampUseOneHour);
		}
		//Human Epilogue 2
		else if (player.statusEffectv1(StatusEffects.WandererHuman) == 1) {
			outputText("While exploring the desert, you find a strange bottle half-buried in the sand.  A small note is tied to it:\n\n\"I just knew you'd find this.  Try this a few times and I think you might change your mind about Marcus' situation.\n  -Lovely Lucia\"\n\n", true);
			inventory.takeItem(consumables.SDELITE, camp.returnToCampUseOneHour);
		}
	}
}
}
}


code:
/**
 * Created by aimozg on 06.01.14.
 */
package classes.Scenes.Areas
{
	import classes.*;
	import classes.GlobalFlags.kFLAGS;
	import classes.GlobalFlags.kGAMECLASS;
	import classes.GlobalFlags.kACHIEVEMENTS;
	import classes.Scenes.Areas.Forest.*;
	import classes.Scenes.Monsters.Goblin;
	import classes.Scenes.Monsters.Imp;
	import classes.Scenes.NPCs.Jojo;
	import classes.Scenes.Camp.CabinProgress;

	use namespace kGAMECLASS;

	public class Forest extends BaseContent
	{
		public var akbalScene:AkbalScene = new AkbalScene();
		public var beeGirlScene:BeeGirlScene = new BeeGirlScene();
		public var corruptedGlade:CorruptedGlade = new CorruptedGlade();
		public var essrayle:Essrayle = new Essrayle();
		public var faerie:Faerie = new Faerie();
		public var kitsuneScene:KitsuneScene = new KitsuneScene();
		public var tamaniDaughtersScene:TamainsDaughtersScene = new TamainsDaughtersScene();
		public var tamaniScene:TamaniScene = new TamaniScene();
		public var tentacleBeastScene:TentacleBeastScene = new TentacleBeastScene();
		public var erlkingScene:ErlKingScene = new ErlKingScene();

		public function Forest() { }

		public function exploreDeepwoods():void
		{
			clearOutput();
			//Increment deepwoods exploration counter.
			player.addStatusValue(StatusEffects.ExploredDeepwoods, 1, 1);

			var choice:Array = [];
			var select:int;

			//Build choice list!
			if (flags[kFLAGS.FAERIE_ENCOUNTER_DISABLED] <= 0) choice[choice.length] = 0; //Faerie
			if (player.level >= 2) choice[choice.length] = 1; //Tentacle Beast
			if (flags[kFLAGS.CORRUPTED_GLADES_DESTROYED] < 100 && rand(100) >= Math.round(flags[kFLAGS.CORRUPTED_GLADES_DESTROYED] * 0.5)) choice[choice.length] = 2; //Corrupted Glade
			choice[choice.length] = 3; //Akbal
			choice[choice.length] = 4; //Kitsunes
			if (flags[kFLAGS.TAMANI_TIME_OUT] == 0 && player.gender > 0 && flags[kFLAGS.TAMANI_BAD_ENDED] == 0 && (player.totalCocks() > 0 || player.hasKeyItem("Deluxe Dildo") < 0)) choice[choice.length] = 5; //Tamani
			if (flags[kFLAGS.CAMP_CABIN_PROGRESS] >= 4 && flags[kFLAGS.CAMP_CABIN_WOOD_RESOURCES] < 100 && rand(2) == 0) choice[choice.length] = 6; //Gather woods

			//Every tenth exploration finds a pumpkin if eligible!
			if (player.statusEffectv1(StatusEffects.ExploredDeepwoods) % 10 == 0 && isHalloween()) {
				//If Fera isn't free yet...
				if (player.findPerk(PerkLib.FerasBoonBreedingBitch) < 0 && player.findPerk(PerkLib.FerasBoonAlpha) < 0) {
					if (date.fullYear > flags[kFLAGS.PUMPKIN_FUCK_YEAR_DONE]) {
						kGAMECLASS.fera.pumpkinFuckEncounter();
						return;
					}
				}
				//Fera is free!
				else {
					if (flags[kFLAGS.FERAS_TRAP_SPRUNG_YEAR] == 0) {
						if (date.fullYear > flags[kFLAGS.FERAS_GLADE_EXPLORED_YEAR]) {
							kGAMECLASS.fera.feraSceneTwoIntroduction();
							return;
						}
					}
				}
			}
			//Hel jumps you for sex.
			if (flags[kFLAGS.PC_PROMISED_HEL_MONOGAMY_FUCKS] == 1 && flags[kFLAGS.HEL_RAPED_TODAY] == 0 && rand(10) == 0 && player.gender > 0 && !kGAMECLASS.helScene.followerHel()) {
				kGAMECLASS.helScene.helSexualAmbush();
				return;
			}
			//Every 5th exploration encounters d2 if hasnt been met yet and factory done
			if (flags[kFLAGS.DISCOVERED_DUNGEON_2_ZETAZ] == 0 && player.statusEffectv1(StatusEffects.ExploredDeepwoods) % 5 == 0 && flags[kFLAGS.FACTORY_SHUTDOWN] > 0) {
				kGAMECLASS.dungeons.enterDeepCave();
				return;
			}
			if (flags[kFLAGS.ERLKING_DISABLED] == 0 && flags[kFLAGS.ERLKING_ENCOUNTER_COUNTER] == 4)
			{
				flags[kFLAGS.ERLKING_ENCOUNTER_COUNTER] = 0;
				erlkingScene.encounterWildHunt();
				return;
			}
			else
			{
				flags[kFLAGS.ERLKING_ENCOUNTER_COUNTER]++;
			}

			select = choice[rand(choice.length)];
			//==============================
			//EVENTS GO HERE!
			//==============================
			switch(select) {
				case 0: //Faerie
					faerie.encounterFaerie();
					break;
				case 1: //Tentacle beasts
					if (player.gender > 0) flags[kFLAGS.UNKNOWN_FLAG_NUMBER_00247] = 0;
					//Tentacle avoidance chance due to dangerous plants
					if (player.hasKeyItem("Dangerous Plants") >= 0 && player.inte / 2 > rand(50)) {
						trace("TENTACLE'S AVOIDED DUE TO BOOK!");
						outputText("Using the knowledge contained in your 'Dangerous Plants' book, you determine a tentacle beast's lair is nearby, do you continue?  If not you could return to camp.\n\n", true);
						simpleChoices("Continue", tentacleBeastScene.encounter, "", null, "", null, "", null, "Leave", camp.returnToCampUseOneHour);
						return;
					}
					else {
						tentacleBeastScene.encounter();
						return;
					}
					break;
				case 2: //Corrupted Glade
					if (rand(4) == 0) {
						trappedSatyr();
						return;
					}
					corruptedGlade.intro();
					break;
				case 3: //Akbal
					akbalScene.supahAkabalEdition();
					break;
				case 4: //Kitsunes
					if (rand(3) == 0) kitsuneScene.kitsuneShrine();
					else kitsuneScene.enterTheTrickster();
					break;
				case 5: //Tamani
					if (player.totalCocks() > 0 && flags[kFLAGS.TAMANI_DAUGHTER_PREGGO_COUNTDOWN] == 0 && flags[kFLAGS.TAMANI_NUMBER_OF_DAUGHTERS] >= 24) {
						tamaniDaughtersScene.encounterTamanisDaughters();
					}
					else
						tamaniScene.encounterTamani();
					break;
				case 6: //Gather wood
					camp.cabinProgress.gatherWoods();
					break;
				default: //Failsafe mechanism
					outputText("You enjoy a peaceful walk in the deepwoods.  It gives you time to think over the recent, disturbing events.", true);
					dynStats("tou", .5, "int", 1);
					doNext(camp.returnToCampUseOneHour);
					break;
			}
		}

		//Explore forest
		public function exploreForest():void
		{
			clearOutput();
			//Increment forest exploration counter.
			flags[kFLAGS.TIMES_EXPLORED_FOREST]++;

			var choice:Array = [];
			var select:int;

			//Build choice list!
			choice[choice.length] = 0; //General Goblin and Imp Encounters
			if (player.findStatusEffect(StatusEffects.PureCampJojo) < 0 && !camp.campCorruptJojo() && flags[kFLAGS.JOJO_DEAD_OR_GONE] <= 0 && (flags[kFLAGS.JOJO_STATUS] < 2 || rand(2) == 0))
				choice[choice.length] = 1; //Jojo
			if (player.findStatusEffect(StatusEffects.PureCampJojo) < 0 && !camp.campCorruptJojo() && flags[kFLAGS.JOJO_DEAD_OR_GONE] <= 0 && player.findPerk(PerkLib.PiercedFurrite) >= 0 && rand(5) == 0 && (player.cor > 25 || flags[kFLAGS.JOJO_STATUS] > 0))
				choice[choice.length] = 1; //Extra chance of Jojo encounter.
			if (player.level >= 2) choice[choice.length] = 2; //Tentacle Beast
			if (flags[kFLAGS.CORRUPTED_GLADES_DESTROYED] < 100 && rand(100) >= Math.round(flags[kFLAGS.CORRUPTED_GLADES_DESTROYED] * 0.75)) choice[choice.length] = 3; //Corrupted Glade
			choice[choice.length] = 4; //Trip on a root
			if (rand(2) == 0) choice[choice.length] = 5; //Bee-girl encounter
			if (rand(2) == 0) choice[choice.length] = 6; //Pigtail Truffle or Healing Pill
			if (flags[kFLAGS.CAMP_CABIN_PROGRESS] >= 4 && flags[kFLAGS.CAMP_CABIN_WOOD_RESOURCES] < 100 && rand(2) == 0) choice[choice.length] = 7; //Gather woods
			if (player.level >= 3 || model.time.days >= 20) choice[choice.length] = 8; //Mimic or Succubus (UTG)
			choice[choice.length] = 9; //Peaceful walk in woods
			//Helia monogamy fucks
			if (flags[kFLAGS.PC_PROMISED_HEL_MONOGAMY_FUCKS] == 1 && flags[kFLAGS.HEL_RAPED_TODAY] == 0 && rand(10) == 0 && player.gender > 0 && !kGAMECLASS.helScene.followerHel()) {
				kGAMECLASS.helScene.helSexualAmbush();
				return;
			}
			//Chance to discover deepwoods
			if ((flags[kFLAGS.TIMES_EXPLORED_FOREST] >= 20) && player.findStatusEffect(StatusEffects.ExploredDeepwoods) < 0) {
				player.createStatusEffect(StatusEffects.ExploredDeepwoods, 0, 0, 0, 0);
				outputText("After exploring the forest so many times, you decide to really push it, and plunge deeper and deeper into the woods.  The further you go the darker it gets, but you courageously press on.  The plant-life changes too, and you spot more and more lichens and fungi, many of which are luminescent.  Finally, a wall of tree-trunks as wide as houses blocks your progress.  There is a knot-hole like opening in the center, and a small sign marking it as the entrance to the 'Deepwoods'.  You don't press on for now, but you could easily find your way back to explore the Deepwoods.\n\nDeepwoods exploration unlocked!", true);
				doNext(camp.returnToCampUseOneHour);
				return;
			}
			//Essy every 20 explores or so
			if ((rand(100) <= 1) && player.gender > 0 && (flags[kFLAGS.ESSY_MET_IN_DUNGEON] == 0 || flags[kFLAGS.TOLD_MOTHER_TO_RELEASE_ESSY] == 1)) {
				essrayle.essrayleMeetingI();
				return;
			}
			//Chance of dick-dragging! 10% + 10% per two foot up to 30%
			temp = 10 + (player.longestCockLength() - player.tallness) / 24 * 10;
			if (temp > 30) temp = 30;
			if (temp > rand(100) && player.longestCockLength() >= player.tallness && player.totalCockThickness() >= 12) {
				bigJunkForestScene();
				return;
			}
			//Marble randomness
			if (flags[kFLAGS.TIMES_EXPLORED_FOREST] % 50 == 0 && flags[kFLAGS.TIMES_EXPLORED_FOREST] > 0 && player.findStatusEffect(StatusEffects.MarbleRapeAttempted) < 0 && player.findStatusEffect(StatusEffects.NoMoreMarble) < 0 && player.findStatusEffect(StatusEffects.Marble) >= 0 && flags[kFLAGS.MARBLE_WARNING] == 0) {
				//can be triggered one time after Marble has been met, but before the addiction quest starts.
				clearOutput();
				outputText("While you're moving through the trees, you suddenly hear yelling ahead, followed by a crash and a scream as an imp comes flying at high speed through the foliage and impacts a nearby tree.  The small demon slowly slides down the tree before landing at the base, still.  A moment later, a familiar-looking cow-girl steps through the bushes brandishing a huge two-handed hammer with an angry look on her face.");
				outputText("\n\nShe goes up to the imp, and kicks it once.  Satisfied that the creature isn't moving, she turns around to face you and gives you a smile.  \"Sorry about that, but I prefer to take care of these buggers quickly.  If they get the chance to call on their friends, they can actually become a nuisance.\"  She disappears back into the foliage briefly before reappearing holding two large pile of logs under her arms, with a fire axe and her hammer strapped to her back.  \"I'm gathering firewood for the farm, as you can see; what brings you to the forest, sweetie?\"  You inform her that you're just exploring.");
				outputText("\n\nShe gives a wistful sigh. \"I haven't really explored much since getting to the farm.  Between the jobs Whitney gives me, keeping in practice with my hammer, milking to make sure I don't get too full, cooking, and beauty sleep, I don't get a lot of free time to do much else.\"  She sighs again.  \"Well, I need to get this back, so I'll see you later!\"");
				//end event
				doNext(camp.returnToCampUseOneHour);
				return;
			}
			select = choice[rand(choice.length)];
			trace(select);
			//==============================
			//EVENTS GO HERE!
			//==============================
			switch(select) {
				case 0: //Tamani 25% of all goblin encounters encounter rate
					if (rand(4) <= 0 && flags[kFLAGS.TAMANI_TIME_OUT] == 0 && player.gender > 0 && flags[kFLAGS.TAMANI_BAD_ENDED] == 0 && (player.totalCocks() > 0 || player.hasKeyItem("Deluxe Dildo") < 0)) {
						if (player.totalCocks() > 0 && flags[kFLAGS.TAMANI_DAUGHTER_PREGGO_COUNTDOWN] == 0 && flags[kFLAGS.TAMANI_NUMBER_OF_DAUGHTERS] >= 24) {
							tamaniDaughtersScene.encounterTamanisDaughters();
						}
						else
							tamaniScene.encounterTamani();
						return;
					}
					//Determines likelyhood of imp/goblins
					kGAMECLASS.exploration.genericGobImpEncounters();
					break;
				case 1: //Jojo
					clearOutput();
					if (flags[kFLAGS.JOJO_STATUS] == 0 && player.findStatusEffect(StatusEffects.PureCampJojo) < 0) {
						if (player.cor < 25)
						{
							if (player.level >= 4)
							{
								flags[kFLAGS.JOJO_STATUS] = 1;
								kGAMECLASS.jojoScene.lowCorruptionJojoEncounter();
								return;
							}
							else
							{
								outputText("You enjoy a peaceful walk in the woods.  It gives you time to think over the recent, disturbing events.", true);
								dynStats("tou", .5, "int", 1);
								doNext(camp.returnToCampUseOneHour);
								return;
							}
						}
						else
						{
							kGAMECLASS.jojoScene.highCorruptionJojoEncounter();
						}
						return;
					} else if (flags[kFLAGS.JOJO_STATUS] >= 2) { //Angry/Horny Jojo
						kGAMECLASS.jojoScene.corruptJojoEncounter();
					} else { // JOJO_STATUS is 1 or Negative (indicates rape is disabled.)
						kGAMECLASS.jojoScene.repeatJojoEncounter();
					}
					break;
				case 2: //Tentacle Beast
					clearOutput();
					//Oh noes, tentacles!
					//Tentacle avoidance chance due to dangerous plants
					if (player.hasKeyItem("Dangerous Plants") >= 0 && player.inte / 2 > rand(50)) {
						trace("TENTACLE'S AVOIDED DUE TO BOOK!");
						outputText("Using the knowledge contained in your 'Dangerous Plants' book, you determine a tentacle beast's lair is nearby, do you continue?  If not you could return to camp.\n\n", false);
						simpleChoices("Continue", tentacleBeastScene.encounter, "", null, "", null, "", null, "Leave", camp.returnToCampUseOneHour);
						return;
					}
					else {
						tentacleBeastScene.encounter();
						return;
					}
					break;
				case 3: //Corrupted Glade
					if (rand(4) == 0) {
						trappedSatyr();
						return;
					}
					corruptedGlade.intro();
					break;
				case 4: //Trip on a root
					outputText("You trip on an exposed root, scraping yourself somewhat, but otherwise the hour is uneventful.", false);
					player.takeDamage(10);
					doNext(camp.returnToCampUseOneHour);
					break;
				case 5: //Bee-girl
					beeGirlScene.beeEncounter();
					break;
				case 6:
					switch(rand(8)) {
						case 0:
							outputText("You find a large piece of insectile carapace obscured in the ferns to your left. It's mostly black with a thin border of bright yellow along the outer edge. There's still a fair portion of yellow fuzz clinging to the chitinous shard. It feels strong and flexible - maybe someone can make something of it. ");
							inventory.takeItem(useables.B_CHITN, camp.returnToCampUseOneHour);
							break;
						case 1:
						case 2:
							outputText("You find a pill stamped with the letter 'H' discarded on the ground. ");
							inventory.takeItem(consumables.H_PILL, camp.returnToCampUseOneHour);
							break;
						case 3:
						case 4:
						case 5:
						case 6:
						case 7:
						default:
							outputText("You spot something unusual. Taking a closer look, it's definitely a truffle of some sort. ");
							inventory.takeItem(consumables.PIGTRUF, camp.returnToCampUseOneHour);
					}
					break;
				case 7: //Gather woods
					camp.cabinProgress.gatherWoods();
					break;
				case 8:
					if (rand(2) == 0)
						getGame().mimicScene.mimicTentacleStart(3);
					else
						getGame().succubusScene.encounterSuccubus();
					break;
				default: //Failsafe
					if (player.cor < 80) {
						outputText("You enjoy a peaceful walk in the woods, it gives you time to think.", false);
						dynStats("tou", .5, "int", 1);
					}
					else {
						outputText("As you wander in the forest, you keep ", false);
						if (player.gender == 1) outputText("stroking your half-erect " + player.multiCockDescriptLight() + " as you daydream about fucking all kinds of women, from weeping tight virgins to lustful succubi with gaping, drooling fuck-holes.", false);
						if (player.gender == 2) outputText("idly toying with your " + player.vaginaDescript(0) + " as you daydream about getting fucked by all kinds of monstrous cocks, from minotaurs' thick, smelly dongs to demons' towering, bumpy pleasure-rods.", false);
						if (player.gender == 3) outputText("stroking alternatively your " + player.multiCockDescriptLight() + " and your " + player.vaginaDescript(0) + " as you daydream about fucking all kinds of women, from weeping tight virgins to lustful succubi with gaping, drooling fuck-holes, before, or while, getting fucked by various monstrous cocks, from minotaurs' thick, smelly dongs to demons' towering, bumpy pleasure-rods.", false);
						if (player.gender == 0) outputText("daydreaming about sex-demons with huge sexual attributes, and how you could please them.", false);
						outputText("", false);
						dynStats("tou", .5, "lib", .25, "lus", player.lib / 5);
					}
					doNext(camp.returnToCampUseOneHour);
					return;
			}
		}
		//[FOREST]
//[RANDOM SCENE IF CHARACTER HAS AT LEAST ONE COCK LARGER THAN THEIR HEIGHT, AND THE TOTAL COMBINED WIDTH OF ALL THEIR COCKS IS TWELVE INCHES OR GREATER]
		internal function bigJunkForestScene(lake:Boolean = false):void
		{
			clearOutput();
			var x:Number = player.longestCock();

			//PARAGRAPH 1
			outputText("Walking along the ", false);
			if (lake) outputText("grassy and muddy shores of the lake", false);
			else outputText("various paths of the forest", false);
			outputText(", you find yourself increasingly impeded by the bulk of your " + player.cockDescript(x) + " dragging along the ", false);
			if (lake) outputText("wet ground behind you.", false);
			else outputText("earth behind you.", false);
			if (player.cocks.length == 1) {
				if (lake) outputText("  As it drags through the lakeside mud, the sensation forces you to imagine the velvety folds of a monstrous pussy sliding along the head of your " + Appearance.cockNoun(player.cocks[x].cockType) + ", gently attempting to suck it off.", false);
				else outputText("  As it drags across the grass, twigs, and exposed tree roots, the sensation forces you to imagine the fingers of a giant hand sliding along the head of your " + Appearance.cockNoun(player.cocks[x].cockType) + ", gently jerking it off.", false);
			}
			else if (player.cocks.length >= 2) {
				if (lake) outputText("  With all of your " + player.multiCockDescriptLight() + " dragging through the mud, they begin feeling as if the lips of " + num2Text(player.cockTotal()) + " different cunts were slobbering over each one.", false);
				else outputText("  With all of your " + player.multiCockDescriptLight() + " dragging across the grass, twigs, and exposed tree roots, they begin feeling as if the rough fingers of " + num2Text(player.cockTotal()) + " different monstrous hands were sliding over each shaft, gently jerking them off.", false);
			}
			outputText("\n\n", false);

			//PARAGRAPH 2
			//FOR NON-CENTAURS]
			if (!player.isTaur()) {
				outputText("The impending erection can't seem to be stopped.  Your sexual frustration forces stiffness into your " + player.multiCockDescriptLight() + ", which forces your torso to the ground.  Normally your erection would merely raise itself skyward, but your genitals have grown too large and heavy for your " + player.hipDescript() + " to hold them aloft.  Instead, you feel your body forcibly pivoting at the hips until your torso is compelled to rest face down atop your " + player.multiCockDescriptLight() + ".", false);
				//IF CHARACTER HAS GIANT BREASTS ADD SENTENCE
				if (player.biggestTitSize() >= 35) {
					if (lake) outputText("  Your " + player.chestDesc() + " hang lewdly off your torso to rest in the lakeside mud, covering much of the ground to either side of you.  Their immense weight anchors your body, further preventing your torso from lifting itself up.  Mud cakes against their undersides and coats your " + player.nippleDescript(0) + "s.", false);
					else outputText("  Your " + player.chestDesc() + " hang lewdly off your torso to rest on the twings and dirt, covering up much of the ground to either side of you.  Their immense weight anchors your body, further preventing your torso from lifting itself up.  The rough texture of the bark on various tree roots teases your " + player.nippleDescript(0) + "s mercilessly.", false);
				}
				//IF CHARACTER HAS A BALLS ADD SENTENCE
				if (player.balls > 0) {
					outputText("  Your " + player.skinTone + " " + player.sackDescript() + " rests beneath your raised " + player.buttDescript() + ".  Your " + player.ballsDescriptLight() + " pulse with the need to release their sperm through your " + player.multiCockDescriptLight() + " and ", false);
					if (lake) outputText("into the waters of the nearby lake.", false);
					else outputText("onto the fertile soil of the forest.", false);
				}
				//IF CHARACTER HAS A VAGINA ADD SENTENCE
				if (player.vaginas.length >= 1) {
					outputText("  Your " + player.vaginaDescript() + " and " + player.clitDescript() + " are thoroughly squashed between the bulky flesh where your male genitals protrude from between your hips and the " + player.buttDescript() + " above.", false);
					//IF CHARACTER HAS A DROOLING PUSSY ADD SENTENCE
					if (player.vaginas[0].vaginalWetness >= VAGINA_WETNESS_DROOLING) {
						outputText("  Juices stream from your womanhood and begin pooling on the dirt and twigs beneath you.  ", false);
						if (lake) outputText("The drooling fem-spunk only makes the ground more muddy.", false);
						else outputText("The sticky fem-spunk immediately soaks down into the rich soil.", false);
					}
				}
			}
			//FOR CENTAURS
			else if (player.isTaur()) {
				outputText("  The impending erection can't seem to be stopped.  Your sexual frustration forces stiffness into your " + player.multiCockDescriptLight() + ", which forces the barrel of your bestial torso to the ground.  Normally your erection would merely hover above the ground in between your legs, but your genitals have grown too large and heavy for your " + player.hipDescript() + " to hold them aloft.  Instead, you feel your body being forcibly pulled down at your hind legs until your bestial body is resting on top of your " + player.multiCockDescriptLight() + ".", false);
				//IF CHARACTER HAS GIANT BREASTS ADD SENTENCE
				if (player.biggestTitSize() >= 35) {
					if (lake) outputText("  Your " + player.chestDesc() + " pull your human torso forward until it also is forced to face the ground, obscured as it is in boob-flesh.  Your tits rest on the wet earth to either side of you.  Their immense weight anchors you, further preventing any part of your equine body from lifting itself up.  Mud cakes their undersides and coats your " + player.nippleDescript(0) + "s.", false);
					else outputText("  Your " + player.chestDesc() + " pull your human torso forward until it also is forced to face the ground, obscured as it is in boob-flesh.  Your tits rest on the dirt and twigs to either side of you.  Their immense weight anchors you, further preventing any part of your equine body from lifting itself up.  The rough texture of the bark on various tree roots teases your " + player.nippleDescript(0) + "s mercilessly.", false);
				}
				//IF CHARACTER HAS A BALLS ADD SENTENCE
				if (player.balls > 0) {
					outputText("  Your " + player.skinTone + player.sackDescript() + " rests beneath your raised " + player.buttDescript() + ".  Your " + player.ballsDescriptLight() + " pulse with the need to release their sperm through your " + player.multiCockDescriptLight() + " and ", false);
					if (lake) outputText("into the waters of the nearby lake.", false);
					else outputText("onto the fertile soil of the forest floor.", false);
				}
				//IF CHARACTER HAS A VAGINA ADD SENTENCE
				if (player.vaginas.length >= 1) {
					outputText("  Your " + player.vaginaDescript() + " and " + player.clitDescript() + " are thoroughly squashed between the bulky flesh where your male genitals protrude from between your hips and the " + player.buttDescript() + " above.", false);
					//IF CHARACTER HAS A DROOLING PUSSY ADD SENTENCE
					if (player.vaginas[0].vaginalWetness >= VAGINA_WETNESS_DROOLING) {
						if (lake) outputText("  A leaf falls from a tree and lands on the wet lips of your cunt, its light touch teasing your sensitive skin.  Like a mare or cow in heat, your juices stream from your womanhood and pool in the mud beneath you.  The sloppy fem-spunk only makes the ground more muddy.", false);
						else outputText("  A leaf falls from a tree and lands on the wet lips of your cunt, its light touch teasing your sensitive skin.  Like a mare or cow in heat, your juices stream from your womanhood and pool in the dirt and twigs beneath you.", false);
					}
				}
			}
			outputText("\n\n", false);
			//PARAGRAPH 3
			outputText("You realize you are effectively trapped here by your own body.", false);
			//CORRUPTION BASED CHARACTER'S VIEW OF SITUATION
			if (player.cor < 33) outputText("  Panic slips into your heart as you realize that if any dangerous predator were to find you in this state, you'd be completely defenseless.  You must find a way to regain your mobility immediately!", false);
			else if (player.cor < 66) outputText("  You realize that if any dangerous predator were to find you in this state, you'd be completely defenseless!  You must find a way to regain your mobility... yet there is a certain appeal to imagining how pleasurable it would be for a sexual predator to take advantage of your obscene body.", false);
			else outputText("  Your endowments have rendered you completely helpless should any predators find you.  Somewhere in your heart, you find this prospect almost exhilarating.  The idea of being a helpless fucktoy for a wandering beast is unusually inviting to you.  Were it not for the thought that you might starve to death, you'd be incredibly tempted to remain right where you are.", false);

			if (lake) {
				//SCENE END = IF CHARACTER HAS FULL WINGS ADD SENTENCE
				if (player.canFly()) outputText("  You extend your wings and flap as hard as you can until at last, you manage to lighten the bulk of your body.  It helps just enough to let you drag your genitals out of the mud and back to camp.  The ordeal takes nearly an hour for you to return and deal with.", false);
				//Taurs
				else if (player.isTaur()) outputText("  You struggle and work your multiple legs against the wet ground.  Your " + player.feet() + " have consistent trouble finding footing as the mud fails to provide enough leverage to lift your bulk.  You breath in deeply and lean side to side, trying to find some easier vertical leverage beneath your feet.  Eventually, with a crude crawl, your legs manages to push the bulk of your body onto more solid ground.  With great difficulty, you spend the next hour shuffling your genitals back to camp.", false);
				//SCENE END = FOR ALL OTHER CHARACTERS
				else outputText("  You struggle and push with your " + player.legs() + " as hard as you can, but it's no use.  You do the only thing you can and begin stroking your " + player.multiCockDescriptLight() + " with as much vigor as you can muster.  Eventually, your body tenses and a light load of jizz erupts from your body, but the orgasm is truly mild compared to what you need.  You're far too weary from struggling to give yourself the masturbation you truly need, but you continue to try.  Nearly an hour later, " + player.sMultiCockDesc() + " has softened enough to allow you to stand again, and you make your way back to camp, still dragging your genitals through the mud.", false);
			}
			else {
				//SCENE END = IF CHARACTER HAS FULL WINGS ADD SENTENCE
				if (player.canFly()) outputText("  You extend your wings and flap as hard as you can, until at last, you manage to lighten the bulk of your body.  It helps just enough to let you drag your genitals out of the forest and back to camp.  The ordeal takes nearly an hour for you to return and deal with.", false);
				//SCENE END IF CHARACTER HAS CENTAUR BODY
				else if (player.isTaur()) outputText("  You struggle and work your multiple legs against the soft dirt.  Your " + player.feet() + " have consistent trouble finding footing as the ground fails to provide enough leverage to lift your bulk.  You breath in deeply and lean side to side, until eventually, your feet brace against the various roots of the trees around you.  With a crude crawl, your legs manage to shuffle your body and genitals out of the forest and back to camp.", false);
				//SCENE END = FOR ALL OTHER CHARACTERS
				else outputText("  You struggle and push with your " + player.legs() + " as hard as you can, but it's no use.  You do the only thing you can and begin stroking your " + player.multiCockDescriptLight() + " with as much vigor as you can muster.  Eventually, your body tenses and a light load of jizz erupts from your loins, but the orgasm is truly mild compared to what you need.  You're far too weary from struggling to give yourself the masturbation you truly need, but you continue to try.  Nearly an hour later, " + player.sMultiCockDesc() + " has softened enough to allow you to stand again, and you make your way back to camp, still dragging your genitals across the forest floor.", false);
			}
			dynStats("lus", 25 + rand(player.cor / 5), "resisted", false);
			player.changeFatigue(5);
			doNext(camp.returnToCampUseOneHour);
		}
		//Catch a Satyr using the corrupt glade and either leave or have your way with him.
		//Suggested to Fen as the MaleXMale submission.
		//Will be standalone
		private function trappedSatyr():void {
			clearOutput();
			spriteSelect(99);
			outputText("As you wander through the woods, you find yourself straying into yet another corrupt glade.  However, this time the perverse grove isn't unoccupied; loud bleatings and brayings of pleasure split the air, and as you push past a bush covered in dripping, glans-shaped berries, you spot the source.\n\n", false);

			outputText("A humanoid figure with a set of goat-like horns and legs - a satyr - is currently buried balls-deep in one of the vagina-flowers that scatter the grove, whooping in delight as he hungrily pounds into its ravenously sucking depths.  He stops on occasion to turn and take a slobbering suckle from a nearby breast-like growth; evidently, he doesn't care that he's stuck there until the flower's done with him.\n\n", false);
			if (flags[kFLAGS.CODEX_ENTRY_SATYRS] <= 0) {
				flags[kFLAGS.CODEX_ENTRY_SATYRS] = 1;
				outputText("New codex entry unlocked: Satyrs!\n\n")
			}
			//(Player lacks a penis:
			if (!player.hasCock()) {
				outputText("You can't really see any way to take advantage of this scenario, so you simply turn back and leave the way you came.", false);
				doNext(camp.returnToCampUseOneHour);
			}
			//Player returns to camp)
			//(Player has penis:
			else {
				outputText("You can see his goat tail flitting happily above his tight, squeezable asscheeks, the loincloth discarded beside him failing to obscure his black cherry, ripe for the picking.  Do you take advantage of his distraction and ravage his ass while he's helpless?\n\n", false);
				//[Yes] [No]
				simpleChoices("Ravage", rapeSatyr, "", null, "", null, "", null, "Leave", ignoreSatyr);
			}
		}

		//[=No=]
		private function ignoreSatyr():void {
			clearOutput();
			spriteSelect(99);
			outputText("You shake your head, ", false);
			if (player.cor < 50) outputText("disgusted by the strange thoughts this place seems to put into your mind", false);
			else outputText("not feeling inclined to rape some satyr butt right now", false);
			outputText(", and silently leave him to his pleasures.", false);
			dynStats("lus", 5+player.lib/20);
			doNext(camp.returnToCampUseOneHour);
		}
		//Player returns to camp
		private function rapeSatyr():void {
			clearOutput();
			spriteSelect(99);
			var x:Number = player.biggestCockIndex();

			//(Low Corruption)
			if (player.cor < 33) outputText("For a moment you hesitate... taking someone from behind without their consent seems wrong... but then again you doubt a satyr would pass on the opportunity if you were in his position.", false);
			//(Medium Corruption)
			else if (player.cor < 66) outputText("You smirk; normally you would have given this some thought, but the idea of free booty is all you need to make a decision.", false);
			//High Corruption
			else outputText("You grin; this is not even a choice!  Passing on free anal is just not something a decent person does, is it?", false);

			outputText("  You silently strip your " + player.armorName + " and ", false);
			if (player.isNaga()) outputText("slither", false);
			else outputText("sneak", false);

			outputText(" towards the distracted satyr; stopping a few feet away, you stroke your " + player.cockDescript(x) + ", urging it to full erection and coaxing a few beads of pre, which you smear along your " + player.cockHead(x) + ".  With no warning, you lunge forward, grabbing and pulling his hips towards your " + player.cockDescript(x) + " and shoving as much of yourself inside his tight ass as you can.\n\n", false);

			outputText("The satyr lets out a startled yelp, struggling against you, but between his awkward position and the mutant flower ravenously sucking on his sizable cock, he's helpless.\n\n", false);

			outputText("You slap his butt with a open palm, leaving a clear mark on his taut behind.  He bleats, bucking wildly, but this serves only to slam his butt into your crotch until the flower hungrily sucks him back, sliding him off your prick.  You smile as a wicked idea hits you; you hit his ass again and again, making him buck into your throbbing " + Appearance.cockNoun(player.cocks[x].cockType) + ", while the flower keeps pulling him back inside; effectively making the satyr fuck himself.\n\n", false);

			outputText("Eventually, his bleating and screaming start to annoy you, so you silence him by grabbing at his horns and shoving his head to the side, into one of the breast-like growths nearby.  The satyr unthinkingly latches onto the floral nipple and starts to suckle, quieting him as you hoped.  You're not sure why, but he starts to voluntarily buck back and forth between you and the flower; maybe he's getting into the spirit of things, or maybe the vegetal teat he's pulling on has introduced an aphrodisiac chemical after so many violent attempts to pull out of the kindred flower.\n\n", false);

			outputText("You resolve not to think about it right now and just enjoy pounding the satyr's ass.  With his bucking you're able to thrust even farther into his tight puckered cherry, ", false);
			if (player.cockArea(x) >= 100) outputText("stretching it all out of normal proportion and ruining it for whomever might happen to use it next.", false);
			else outputText("stretching it to fit your " + player.cockDescript(x) + " like a condom.", false);
			outputText("  Your groin throbs, ", false);
			if (player.balls > 0) outputText("your balls churn, ", false);
			outputText("and you grunt as you feel the first shots of cum flowing along " + player.sMultiCockDesc() + ", only to pour out into", false);
			if (player.cockTotal() > 1) outputText(" and onto", false);
			outputText(" the satyr's abused ass; you continue pounding him even as you climax, causing rivulets of cum to run down his cheeks and legs.\n\n", false);

			outputText("Still slurping obscenely on the fake breast, the satyr groans and murmurs; you're not sure how much of a role the sap he's swallowing or the cunt-flower on his cock is playing, but it looks like he's actually enjoying himself now.", false);

			//(Low Cum Amount)
			if (player.cumQ() < 250) outputText("  As much as you'd love to fill his belly so full of spunk he'd look pregnant, you just can't muster any more, and pull out with a sigh.\n\n", false);
			//(Medium Cum Amount)
			else if (player.cumQ() < 1000) outputText("  You cum and cum, filling every crevice of his anal passage with warm jism, the slutty goatman doesn't seem to mind this in the least.  When you're finally spent, you pull out with a sigh, and watch as your cum backflows out of his ass to fall on the grass below.\n\n", false);
			//(Large Cum Amount)
			else outputText("  You cum and cum, filling every crevice of his anal passage with warm jism, and the slutty goatman doesn't seem to mind this in the least - yet.  You push him to his limits; cum backflows out of his ass and around your spewing prick, but still you dump more and more of your heavy load inside your now-willing cock-sleeve, inflating his belly like a balloon.  When you're finally spent, you pull out with a sigh and look at your handiwork; cum pours out of his ass like an open tap and his belly is absolutely bulging, making him look pregnant.\n\n", false);

			outputText("The satyr is too absorbed in his own fucking of the plant-pussy, and his nursing of the tree boob to bewail your absence", false);
			if (player.cumQ() >= 1000) outputText(", although his eyes have widened perceptibly along with the stretching of his stomach", false);
			outputText(".\n\n", false);

			outputText("You can't help but smile inwardly at the helpless goatman's eagerness, and decide to stick around and watch him a little longer.  It's not everyday you see a creature like him at your mercy.  Every once in awhile you egg him on with a fresh slapping of his butt. The satyr grumbles and huffs, but continues to thrust and rut mindlessly into the vegetative pussy feeding on his cock. You don't think it'll be long before he cums...\n\n", false);

			outputText("As you watch the lewd display, you feel your arousal building and your " + player.cockDescript(x) + " growing back into full mast. Figuring you already have a willing slut readily available, you consider using him to relieve yourself once more... What do you do?", false);
			player.orgasm();
			//[Again][Leave]
			simpleChoices("Again", secondSatyrFuck, "", null, "", null, "", null, "Leave", dontRepeatFuckSatyr);
		}

		//[=Leave=]
		private function dontRepeatFuckSatyr():void {
			clearOutput();
			spriteSelect(99);
			outputText("You've had your fun, and you don't really want to fool around in the forest all day, so you grab your " + player.armorName + " and leave the rutting satyr behind.\n\n", false);
			doNext(camp.returnToCampUseOneHour);
		}
		//[=Again=]
		private function secondSatyrFuck():void {
			var x:int = player.cockThatFits(monster.analCapacity());
			if (x < 0) x = player.smallestCockIndex();
			clearOutput();
			outputText("There's no harm in using the helpless goat once more... This time though, you decide you'll use his mouth.  With a yank on his horns, you forcefully dislodge him from the breast-plant and force him to his knees, turning his head towards you; he doesn't put up much resistance and when you present your erect shaft to him, he licks his lips in excitement and latches onto your " + player.cockDescript(x) + ".\n\n", false);

			outputText("His mouth is exquisite; it feels slippery and warm and his lips are soft while his tongue wriggles about your shaft, trying to embrace and massage it.  He gloms onto your manhood with eager hunger, desperate to ravish you with his mouth.  Quivers of pleasure ripple and shudder through his body as he slobbers and gulps - and no wonder!  From the remnants of sap still in his mouth, you can feel currents of arousal tingling down your cock; if he's been drinking it straight, his mouth must be as sensitive as a cunt from the effects of this stuff.\n\n", false);

			outputText("Having had your first orgasm mere minutes ago, you don't last long.  Within a few moments of his beginning you flood his mouth with a second load of cum, pulling out to paint his face with the last couple jets.\n\n", false);

			outputText("With a great, garbled cry, the satyr cums on his own, gurgling through the sap-tinted cum drooling from his mouth as he spews into the waiting opening of his rapacious plant lover.  It swells and bloats as it gorges itself on his thick, stinking seed, stretching its stem until it is almost spherical, finally releasing him to collapse on his knees, free at last of the plant's grip.  He moans and bleats softly, leaking cummy sap from his chin onto his hairy chest, too overwhelmed by the combined fucking of yourself and the flower and too poisoned by whatever aphrodisiac he's been slurping on to move.\n\n", false);

			outputText("You give your sensitive member a few trembling, almost-painful strokes... maybe you overdid it a bit.  Shrugging, you gather your " + player.armorName + " and leave the passed-out satyr behind as you go back to your camp.", false);
			player.orgasm();
			dynStats("lib", 1, "sen", -5);
			doNext(camp.returnToCampUseOneHour);
		}
	}
}