code:
//Courtesy of
package classes.Scenes.Areas.GlacialRift
{
	import classes.*;
	import classes.GlobalFlags.kFLAGS;
	import classes.GlobalFlags.kGAMECLASS;

	public class YetiScene extends BaseContent
	{

		public function YetiScene()
		{
		}

		public function loseToYeti():void {
			clearOutput();
			if (doSFWloss()) return;
			if (player.HP <= 0) outputText("You feel your strength give way as your fighting stance wavers; the yeti beast senses your exhaustion and tackles you to the ground. With a groan, you stare up at the yeti as he pins you beneath him. There is a brief comfort from having such a warm, furred creature pressed against you in the frozen cave, though you feel the heat and pressure of his monstrous prick sliding out of its sheath and grinding against your body. His intentions are clear: he’s going to enjoy your warmth forcefully.");
			else outputText("You reach your limit; your loins are distracting you too much as you give up on fighting entirely. Your hands instead take to touching yourself through your armor lewdly: the only thing convincing you to keep anything on is the chill of the ice caverns surrounding you, but as you look at the ice yeti moving closer to loom over you, his monstrous red prick unsheathed fully and streaming the frigid air with it’s heat, you doubt you’ll be cold much longer.");
			//The Yeti decides what to do with you.
			//if (rand(2) == 0) getFuckedByYetiDoggyStyle();
			//else getFuckedByYetiFacial();
			getFuckedByYetiDoggyStyle();
		}

		private function getFuckedByYetiDoggyStyle():void {
			outputText("Your body is pinned completely under the large beast, his hand roughly feeling you up through your armor as his monstrous prick slides from the furred sheath to grind over you. All the forceful touching and groping sends shivers down your spine, but despite all that, the warmth of his body pressed against yours is oddly soothing and you find yourself relaxing into it to avoid the cold. WIth a grunt, his large hands cup over your " + player.buttDescript() + " and fondle your ass through your " + player.armorName + ". His forceful touch combined with the heat of his monstrous slick cock grinding over you excites your body, and the scent of the beasts rutting musk edges you even further, ");
			//Genderless PCs
			if (!player.hasCock() && !player.hasVagina()) outputText("tingling your body with arousal.");
			//Gendered PCs
			if (player.hasCock()) outputText("sending blood swelling to your " + player.multiCockDescriptLight() + "");
			if (player.hasCock() && player.hasVagina()) outputText(" as well as ");
			if (player.hasVagina()) outputText("making the lips of your " + player.vaginaDescript(0) + " begin to drool and grow moist");
			outputText(". With a sudden jerk you are spun around and shoved onto your hands and knees, his limbs pinning down yours to the ice cavern floor. With a gasp, you feel frost collecting on your limbs, ice crawling up them as they are frozen in place, trapping you as the yeti has his way with you. With a strong yank of his hands, the yeti exposes your " + player.buttDescript() + ", you shiver as it’s briefly left in the cold air.\n\n");
			outputText("A hot slick throbbing length is quickly nestled between your asscheeks, humping between your firm mounds as you feel the welcome warmth of the yeti’s cock. You gasp as the naturally slick monster prick drools over your " + player.assholeDescript() + ", smearing the warm preparation fluids all along your taint. The yeti continues to hump you earnestly as his warm furred body lays over yours, and you can’t help but the soft warmth oddly pleasurable despite your limbs being trapped in ice.  ");
			if (player.hasCock()) outputText("Your " + player.multiCockDescriptLight() + " is now fully erect, despite being in the cold air.  ");
			outputText("With a needy grunt the yeti ceases his humping, and when you turn your head, you can see him lining up, one of his hands gripping the hilt of his monstrous length. He presses the pulsing cockhead to your pucker, pushing in against your resistance and coaxing a low moan from your lips. With a persistent shove he slides in past the stiff flesh of your rim, nestling in your warmth. The beast gives a guttural moan from his maw, bucking his hips as he gets more of his massive cock inside you. You can only whimper and strain against the ice binding your limbs in place as the beast takes your hole.\n\n");
			outputText("The sound of flesh smacking flesh bounces off the ice walls of the cavern as the yeti beats your ass into oblivion, his giant huge member impaling you fully over and over, each savage thrust making your limbs ache from the strain of your bindings. Moans slip past your lips despite your discomforts, the furred beast wrapped around you like a heated fur sweater, the brutal thrusts against your ass making it burn up in all the right ways. You can feel his prespunk dripping out of your pucker and leaving warm trails down your taint and legs.  ");
			if (player.hasCock()) {
				outputText("Some gets onto your fully erect " + player.multiCockDescriptLight() + ", making ");
				if (player.totalCocks() == 1) outputText("it");
				else outputText("them");
				outputText(" ache all the more.");
			}
			if (player.balls > 0) outputText("Your ballsack is slimy with the stuff. ");
			if (player.hasVagina()) outputText("You can feel it pooling along the lips of your mound. ");
			outputText("The yeti’s furred balls slap against you, bludgeoning you with their large size, your cheeks reddening under its abuse. ");
			if (player.mf("m", "f") == "m") outputText("The tip of the beast’s length rams into your prostate, making you cry out in pleasure.") ;
			outputText("Your moans grow louder and, as the monstrous length pounds away at your hole, you soon reach your limits.")
			if (player.hasCock()) outputText("Ropes of cum shoot from your " + player.multiCockDescriptLight() + ", splashing all over the cavern flooring and steaming against the cold ice. ")
			if (player.hasVagina()) outputText("Your  " + player.vaginaDescript(0) + " is drenched in your sex, leaving your legs slick in your pleasure and dripping down to steam on the icy flooring under you. ")
			player.buttChange(18, true);
			outputText("With a low snarl the yeti rams into you hard enough to make your ice bindings crack: hilted in you as much as he can manage, he begins to pump you full of his cold resistant spunk. It warms your gut and lower body in ways that make you groan, his baseball sized balls filling you well past your limits as it flood your inner confines, spilling out to drenching your taint and groin. Soon there is a large heated pool on the floor under you. With a wet pop the yeti pulls his spent cock from your over stuffed hole, more spunk spilling out to splash onto the floor. Without any further ceremony the beast’s prick returns to it’s sheath and the yeti leaves out the way he came in, leaving you a trapped, helpless fuckhole to be used later.\n\n")
			outputText("You struggle against the ice binding your limbs, one of them cracked from the earlier rutting, and with some effort you manage to break free. ")
			outputText("Collecting your things, you notice you lost some gems during the struggle, but you ignore them since you are eager to leave the cavern. Taking the exit the yeti had used to wander back out into the rift, you begin your long walk to camp.. but as you trek through the frigid fields of the glacial rift, you notice your ass stays hot despite the cold. Perhaps it’s a special quality of the yeti’s cum?")
			player.orgasm();
			if(player.findStatusEffect(StatusEffects.ParasiteSlugReproduction) >= 0) player.changeStatusValue(StatusEffects.ParasiteSlugReproduction, 1, 1); //This pleases your parasite overlord
			combat.cleanupAfterCombat();
		}
		//Not used as it's not written and may or may not be added.
		/*private function getFuckedByYetiFacial():void {
			player.orgasm();
			combat.cleanupAfterCombat();
		}*/

		public function winAgainstYeti():void {
			clearOutput();
			if (monster.HP <= 0) outputText("The yeti beast’s bruised and battered body stares you down, though it’s obvious his muscles are giving out. With a loud thump he falls on his back, and lays there, vulnerable. A bellowed groan of defeat echoes the cavern walls and the threat passes. What do you do now?");
			else outputText("The beast looks at you with a hungry gaze, his hot thick member sliding from the sheath between his legs. Unable to fight it any longer, the yeti wraps his hands around his long hot prick, protecting it from the cold as he pleasures the slick, stiff flesh. You lower your guard as you realize the monster is no longer willing to fight, content to just touch himself while looking warily at you. So, what do you do now?");
			//Options
			menu()
			if (player.lust >= 33 && flags[kFLAGS.SFW_MODE] <= 0){
				if (player.hasCock()) {
					addButton(0, "Buttfuck", fuckYetiInTheAss);
				}
				if (player.hasVagina()) {
					addButton(1, "RideHisCock", rideYetisCock);
				}
				addButton(4, "Leave", combat.cleanupAfterCombat);
			}
			else {
				combat.cleanupAfterCombat();
			}
		}

		private function fuckYetiInTheAss():void {
			clearOutput();
			outputText("You walk closer to the vulnerable form of the yeti beast, his body laid out on his back before you. A desire wells up in your gut as your gaze lowers down to the beast’s genitals and beyond, at his legs slightly parted, his muscled asscheeks on display. You kneel down to push the large legs aside, and when the beast offers no resistance to your touch, you expose his large rump fully. Your hands feel up the beast’s furred cheeks, the fur surprisingly soft and warm to your touch, and kneading with your fingers you coax the firm mounds apart to expose his tight puckered entrance. \n\n")
			outputText("With a spark of curiosity, you slide a finger over the soft flesh: it resists your prodding, stiff and tight. You hear a strained grunt from the beast’s maw, though he continues to lay still as you coax his hole loose. By the time you slide a finger in, the beast seems to be panting hot wisps of steam from its mouth. Your finger is wrapped tight in the yeti’s pucker: it feels so hot compared to your frigid surroundings, and your loins ache under your armor just thinking of how wonderful it would feel to be wrapped in such blissful heat. You decide to keep your armor on as you fish your " + player.multiCockDescriptLight() + " out into the air, rubbing over the warm rear before you as the beast begins to stroke along his monstrous length. \n\n", true);
			outputText("Once you are fully hard, you begin to prod against the yeti’s resistance, working " + player.oMultiCockDesc() + " inside.\n\n")
			if (player.cocks[0].cockType == CockTypesEnum.HORSE) outputText("Your flared head makes things difficult, but your drooling precum eases your attempts as you work the resistant pucker loose enough to fit the wide flare past the rim. The yeti gives low groans as a spurt of precum leaks from his red member and, feeling your flared head grid over his walls, you begin to thrust deeper into the hot hole. \n\n");
			if (player.cocks[0].cockType == CockTypesEnum.CAT) outputText("With a grunt you manage to slip past the resistant rim, your feline prick plunging in deep as the stiff barbs rubbing over the yeti’s inner walls coax moans of pleasure from the beast's maw. You begin to thrust and smack your hips against the furred rear as your barbs vibrate over the beasts blissfully warm hole. \n\n");
			if (player.cocks[0].cockType == CockTypesEnum.DOG) outputText("Your members tip slips in easily, and with a few slow thrusts you work more of your canine dong into the beasts wonderful warmth. The sound of your hips slapping his firm rear echoes in the cave as you begin to pound away at the tight yeti hole, your knot slowly swelling as you moan out in pleasure. The beast under you groans softly as he strokes along his own massive red prick. Eventually your knot swells to a size too big for the yeti’s rim, smacking against the stiff flesh as you feel your climax approaching. \n\n");
			else outputText("You groan out loud at the beast’s warmth wrapped around your prick, slapping your hips against the beast’s furred rump as you begin to thrust and dig deeper into the yeti’s depths. More of your length sliding in each time, slipping past the tight ring stroking your shaft, milking you of your seed as it tugs on your stiff flesh. \n\n");
			outputText("The yeti strokes his giant red prick as you fuck him, gutteral moans escaping his maw as he lays still and lets you dominate his rear. Your hands grip his furred hips, clenching down tight as you pick up the pace. \n\n");
			if (player.biggestCockArea() >= 20) outputText("You shove as much into the beast as you can, taking what warmth you can get and moving one hand from the yeti’s hips to stroke along the inches of your length that simply won’t fit. \n\n");
			if (player.biggestCockArea() <= 20 && player.cocks[player.biggestCockIndex()].cockType == CockTypesEnum.DOG) outputText("With a final thrust, you pop your knot past the beast’s rim, joining you two together with you as the alpha and him your bitch as you ready to breed him with your seed. You lean forward, hitting your limit as you give out a low groan.\n\n");
			if (player.balls > 0) outputText("Your " + player.ballsDescriptLight() + " clench as your body readies to fire. You pump the yeti’s ass full of your spunk, firing out countless ropes of your seed, coating the beasts wall in your musky cum. \n\n");
			if (player.cocks.length > 1) outputText("Your other cocks unload and coat his furred rear, drenching his rump in your spunk and messing his white fur with your sticky cream. With a satisfied huff you pull out, trails of your seed following your cock and leaking out across his abused rear. The beast groans as he unloads over his chest, his giant globs of thick spunk matting his fur. \n\n");
			outputText("Without any delay you tuck your " + player.multiCockDescriptLight() + " into your " + player.armorName + " and make your way out of the cavern through the passageway the yeti came in through, leaving the fearsome yeti looking like a well used whore and collecting a few spoils along the way.")
			player.orgasm();
			combat.cleanupAfterCombat();
		}

		private function rideYetisCock():void {
			clearOutput();
			outputText("More than a little wet yourself, you decide to give the fallen beast a nice, warm sheath for his vulnerable rod. You pull open your " + player.armorName + " just enough to expose your " + player.vaginaDescript() + " as you straddle the downed yeti. He looks up at you with wary, yet hopeful eyes. Grinning, you take his big, furry hands in yours and push them back from his stiff red prick. The yeti gives a little yelp as the cold air assaults him, but you’re quick to line yourself up with him and drop down, burying his length inside you in one powerful motion. \n\n");
			if (player.looseness(true) <= 1) outputText("You whimper slightly as his thick cock stretches your walls painfully.  ");
			player.cuntChange(18, true);
			outputText("\n\n");
			outputText("You settle atop the burly yeti, sliding down on his prick until his hefty baseball-sized nuts press into your [butt]. You give a few short bounces on the beast’s cock, but quickly find yourself shivering as a cold wind barrels through the cave, chilling you to your core. Seeing your discomfort, the Yeti reaches up and wraps his thick, powerful arms around you before pulling you down on top of him. Your face nestles into ");
			if (player.tallness < 60) outputText("his furry belly");
			if (player.tallness >= 60 && player.tallness < 72) outputText("the thick, soft fur of his chest");
			if (player.tallness >= 72) outputText("the nape of his neck");
			outputText(", the yeti’s thick musk surrounding you. \n\n")
			outputText("Now wrapped in thick, warm fur and benefitting from the yeti’s comforting body heat, your shivers soon subside. With surprising gentleness, the yeti shifts so that his back is pressed against the cave wall, putting the two of you into a sitting position with you cuddled up in his lap. You give the big softie a little wink and, burying your hands in his pelt, start to rock your hips slightly, gently taking a tiny portion of his cock in and out of your " + player.vaginaDescript() + ", careful to keep the remained locked in the warmth between between your bodies. \n\n")
			outputText("You continue to bounce on the yeti’s cock, grinding your hips against him and squeezing your vaginal muscles to milk him. Holding you tight against him, the yeti shifts one of his big hands from your back to your " + player.chestDesc() + ", giving you gentle squeezes and pinches through your " + player.armorName + " and forcing a little gasp from you. Letting out a deep, throaty laugh at your reaction, the yeti starts to move his own hips in tandem with yours, stuffing you with even more of his cock than ever before. You grit your teeth and moan as the narrow head of his prick slides through your cervix, poking at the entrance to your womb. \n\n")
			outputText("You give out a final, whimpered moan as you climax, humping on the yeti’s prick as fast as you can while his arms restrain you. Shocks of pleasure shoot through you, making your whole body spasm in the beasts embrace. As your " + player.vaginaDescript() + " squeezes down on him, the yeti throws his head back and, with a final mighty thrust into your depths, cums as well, hilting in you as much as he can manage as you pumps you full of his thick, hot spunk. Pouring into you, the yeti’s cum warms your gut and lower body in ways that make you groan and gasp with pleasure. His baseball-sized balls fill you well past your limits as spunk floods your innermost depths, spilling out to drench your thighs and groin, squelching wetly between your entwined bodies. \n\n")
			outputText("With a wet pop, the yeti’s cock slides from your over-stuffed hole and back into its sheathe, letting more spunk spill out to stain his fur. Still gasping from your recent orgasm, you spend the next few minutes snuggled up to the warm, damp yeti, clinging to his soft fur until you feel it’s time to go. You look up to the yeti to say goodbye, but find him snoring quietly, his chest hefting your entire body with every breath. With a little smirk, you give him a kiss on the cheek and, securing your equipment, head back to camp.")
			player.orgasm();
			combat.cleanupAfterCombat();
		}

	}

}


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.HighMountains.*;

	use namespace kGAMECLASS;

	public class HighMountains extends BaseContent
	{
		public var basiliskScene:BasiliskScene = new BasiliskScene();
		public var harpyScene:HarpyScene = new HarpyScene();
		public var minervaScene:MinervaScene = new MinervaScene();
		public var minotaurMobScene:MinotaurMobScene = new MinotaurMobScene();
		public var izumiScenes:IzumiScene = new IzumiScene();
		public var phoenixScene:PhoenixScene = new PhoenixScene();

		public function HighMountains()
		{
		}

		//Explore High Mountain
		public function exploreHighMountain():void
		{
			flags[kFLAGS.DISCOVERED_HIGH_MOUNTAIN]++;
			doNext(playerMenu);

			if (kGAMECLASS.d3.discoverD3() == true)
			{
				return;
			}

			var chooser:Number = rand(4);
			//Boosts mino and hellhound rates!
			if (player.findPerk(PerkLib.PiercedFurrite) >= 0 && rand(3) == 0) {
				chooser = 1;
			}
			//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;
			}
			//Gats xmas adventure!
			if (rand(5) == 0 && player.gender > 0 && flags[kFLAGS.GATS_ANGEL_DISABLED] == 0 && flags[kFLAGS.GATS_ANGEL_GOOD_ENDED] == 0 && (flags[kFLAGS.GATS_ANGEL_QUEST_BEGAN] == 0 || player.hasKeyItem("North Star Key") >= 0)) {
				kGAMECLASS.xmas.snowAngel.gatsSpectacularRouter();
				return;
			}
			//Minerva
			if (flags[kFLAGS.DISCOVERED_HIGH_MOUNTAIN] % 8 == 0 && flags[kFLAGS.MET_MINERVA] < 4) {
				minervaScene.encounterMinerva();
				return;
			}
			//25% minotaur sons!
			if (flags[kFLAGS.UNKNOWN_FLAG_NUMBER_00326] >= 3 && rand(4) == 0 && player.hasVagina()) {
				spriteSelect(44);
				minotaurMobScene.meetMinotaurSons();
				return;
			}
			//Harpy odds!
			if (player.hasItem(consumables.OVIELIX) || flags[kFLAGS.TIMES_MET_CHICKEN_HARPY] <= 0) {
				if (player.hasItem(consumables.OVIELIX, 2)) {
					if (rand(4) == 0) {
						chickenHarpy();
						return;
					}
				}
				else {
					if (rand(10) == 0) {
						chickenHarpy();
						return;
					}
				}
			}
			if (kGAMECLASS.dungeons.checkPhoenixTowerClear() && rand(4) == 0) {
				phoenixScene.encounterPhoenix();
				return;
			}
			//10% chance to mino encounter rate if addicted
			if (flags[kFLAGS.MINOTAUR_CUM_ADDICTION_STATE] > 0 && rand(10) == 0) {
				spriteSelect(44);
				//Cum addictus interruptus!  LOL HARRY POTTERFAG
				//Withdrawl auto-fuck!
				if (flags[kFLAGS.MINOTAUR_CUM_ADDICTION_STATE] == 3) {
					getGame().mountain.minotaurScene.minoAddictionFuck();
					return;
				}
				getGame().mountain.minotaurScene.getRapedByMinotaur(true);
				spriteSelect(44);
				return;
			}
			trace("Chooser goin for" + chooser);

			//Generic harpy
			if (chooser == 0) {
				outputText("A harpy wings out of the sky and attacks!", true);
				if (flags[kFLAGS.CODEX_ENTRY_HARPIES] <= 0) {
					flags[kFLAGS.CODEX_ENTRY_HARPIES] = 1;
					outputText("\n\nNew codex entry unlocked: Harpies!")
				}
				startCombat(new Harpy());
				spriteSelect(26);
				return;
			}
			//Basilisk!
			if (chooser == 1) {
				basiliskScene.basiliskGreeting();
				return;
			}
			//Sophie
			if (chooser == 2) {
				if (flags[kFLAGS.UNKNOWN_FLAG_NUMBER_00282] > 0 || flags[kFLAGS.UNKNOWN_FLAG_NUMBER_00283] > 0 || kGAMECLASS.sophieFollowerScene.sophieFollower()) {
					outputText("A harpy wings out of the sky and attacks!", true);
					startCombat(new Harpy());
					spriteSelect(26);
				}
				else {
					if (flags[kFLAGS.MET_SOPHIE_COUNTER] == 0) kGAMECLASS.sophieScene.meetSophie();
					else kGAMECLASS.sophieScene.meetSophieRepeat();
				}
			}
			if (chooser == 3)
			{
				this.izumiScenes.encounter();
				return;
			}
		}
		//\"Chicken Harpy\" by Jay Gatsby and not Savin he didn't do ANYTHING
		//Initial Intro
		public function chickenHarpy():void
		{
			clearOutput();
			spriteSelect(90);
			if (flags[kFLAGS.TIMES_MET_CHICKEN_HARPY] == 0) {
				outputText("Taking a stroll along the mountains, you come across a peculiar-looking harpy wandering around with a large wooden cart in tow.  She's far shorter and bustier than any regular harpy you've seen before, reaching barely 4' in height but managing to retain some semblance of their thick feminine asses.  In addition to the fluffy white feathers decorating her body, the bird-woman sports about three more combed back upon her forehead like a quiff, vividly red in color.");
				outputText("\n\nHaving a long, hard think at the person you're currently making uncomfortable with your observational glare, you've come to a conclusion - she must be a chicken harpy!");
				outputText("\n\nAs you take a look inside of the cart you immediately spot a large hoard of eggs stacked clumsily in a pile.  The curious collection of eggs come in many colors and sizes, protected by a sheet of strong canvas to keep it all together.");
				outputText("\n\nThe chicken harpy - rather unnerved by the unflattering narration of her appearance you've accidentally shouted out loud - decides to break the ice by telling you about the cart currently holding your interest.");
				outputText("\n\n\"Heya traveller, I noticed you were interested in my eggs here - they're not for sale, but perhaps we can come to some sort of agreement?\"");
				outputText("\n\nYou put a hand to your chin and nod.  You are travelling, that's correct. The chicken harpy takes the gesture as a sign to continue.");
				outputText("\n\n\"Well you see, these eggs don't really grow from trees - in fact, I've gotta chug down at least two or three ovi elixirs to get a good haul with my body, y'know?  Since it's tough for a lil' gal like me to find a few, I like to trade an egg over for some elixirs to those willing to part with them.\"");
				outputText("\n\nSounds reasonable enough, you suppose.  Two or three elixirs for an egg? Doable for sure.");
				outputText("\n\n\"So whaddya say, do y'have any elixirs you can fork over?\"");
			}
			else {
				//Repeat Intro
				outputText("Taking a stroll along the mountains, you come across a familiar-looking shorty wandering around with a large wooden cart in tow.");
				outputText("\n\nHaving a long, hard think at the person you're currently making uncomfortable with your observational glare, you've come to a conclusion - she must be the chicken harpy!");
				outputText("\n\nYou run towards her as she waves a 'hello', stopping the cart to allow you to catch up.  Giving out her usual spiel about the eggs, she giggles and thrusts out a hand.");
				outputText("\n\n\"Hey sunshine, do y'have any elixirs you can give me today?\"");
				//[Give Two][Give Three]	[No, I Must Now Return To My People]
			}
			flags[kFLAGS.TIMES_MET_CHICKEN_HARPY]++;
			//[Give Two][Give Three]		[Not Really, No]
			menu();
			if (player.hasItem(consumables.OVIELIX, 2)) addButton(0, "Give Two", giveTwoOviElix);
			if (player.hasItem(consumables.OVIELIX, 3)) addButton(1, "Give Three", giveThreeOviElix);
			addButton(4, "Leave", leaveChickenx);
		}

		//If Give Two
		public function giveTwoOviElix():void
		{
			clearOutput();
			spriteSelect(90);
			player.consumeItem(consumables.OVIELIX);
			player.consumeItem(consumables.OVIELIX);
			outputText("You hand over two elixirs, the harpy more than happy to take them from you.  In return, she unties a corner of the sheet atop the cart, allowing you to take a look at her collection of eggs.");
			//[Black][Blue][Brown][Pink][Purple]
			menu();
			addButton(0, "Black", getHarpyEgg, consumables.BLACKEG);
			addButton(1, "Blue", getHarpyEgg, consumables.BLUEEGG);
			addButton(2, "Brown", getHarpyEgg, consumables.BROWNEG);
			addButton(3, "Pink", getHarpyEgg, consumables.PINKEGG);
			addButton(4, "Purple", getHarpyEgg, consumables.PURPLEG);
			addButton(5, "White", getHarpyEgg, consumables.WHITEEG);
		}

		//If Give Three
		public function giveThreeOviElix():void
		{
			clearOutput();
			spriteSelect(90);
			player.consumeItem(consumables.OVIELIX, 3);
			outputText("You hand over three elixirs, the harpy ecstatic over the fact that you're willing to part with them.  In return, she unties a side of the sheet atop the cart, allowing you to take a look at a large collection of her eggs.");
			//[Black][Blue][Brown][Pink][Purple]
			menu();
			addButton(0, "Black", getHarpyEgg, consumables.L_BLKEG);
			addButton(1, "Blue", getHarpyEgg, consumables.L_BLUEG);
			addButton(2, "Brown", getHarpyEgg, consumables.L_BRNEG);
			addButton(3, "Pink", getHarpyEgg, consumables.L_PNKEG);
			addButton(4, "Purple", getHarpyEgg, consumables.L_PRPEG);
			addButton(5, "White", getHarpyEgg, consumables.L_WHTEG);
		}

		//All Text
		public function getHarpyEgg(itype:ItemType):void
		{
			clearOutput();
			spriteSelect(90);
			flags[kFLAGS.EGGS_BOUGHT]++;
			outputText("You take " + itype.longName + ", and the harpy nods in regards to your decision.  Prepping her cart back up for the road, she gives you a final wave goodbye before heading back down through the mountains.\n\n");
			inventory.takeItem(itype, chickenHarpy);
		}

		//If No
		public function leaveChickenx():void
		{
			clearOutput();
			spriteSelect(90);
			outputText("At the polite decline of her offer, the chicken harpy gives a warm smile before picking her cart back up and continuing along the path through the mountains.");
			outputText("\n\nYou decide to take your own path, heading back to camp while you can.");
			doNext(camp.returnToCampUseOneHour);
		}
	}
}

license: unknown


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

	/**
	 * ...
	 * @author ...
	 */
	public class Basilisk extends Monster
	{

		public static function basiliskSpeed(player:Player,amount:Number = 0):void {
			if (player.spe - amount < 1) {
				amount = player.spe - 1;
				if (amount < 0) amount = 0;
			}
			player.spe -= amount;
			if (player.findStatusEffect(StatusEffects.BasiliskSlow) >= 0) player.addStatusValue(StatusEffects.BasiliskSlow,1,amount);
			else player.createStatusEffect(StatusEffects.BasiliskSlow,amount,0,0,0);
			showStatDown( 'spe' );
			// speUp.visible = false;
			// speDown.visible = true;
		}

		//special 1: basilisk mental compulsion attack
		//(Check vs. Intelligence/Sensitivity, loss = recurrent speed loss each
		//round, one time lust increase):
		private function compulsion():void {
			outputText("The basilisk opens its mouth and, staring at you, utters words in its strange, dry, sibilant tongue.  The sounds bore into your mind, working and buzzing at the edges of your resolve, suggesting, compelling, then demanding you look into the basilisk's eyes.  ", false);
			//Success:
			if (player.inte / 5 + rand(20) < 24 + player.newGamePlusMod() * 5) {
				//Immune to Basilisk?
				if (player.findPerk(PerkLib.BasiliskResistance) >= 0) {
					outputText("You can't help yourself... you glimpse the reptile's grey, slit eyes. However, no matter how much you look into the eyes, you do not see anything wrong. All you can see is the basilisk. The basilisk curses as he finds out that you're immune!", false);
				}
				else {
					outputText("You can't help yourself... you glimpse the reptile's grey, slit eyes. You look away quickly, but you can picture them in your mind's eye, staring in at your thoughts, making you feel sluggish and unable to coordinate. Something about the helplessness of it feels so good... you can't banish the feeling that really, you want to look in the basilisk's eyes forever, for it to have total control over you.", false);
					game.dynStats("lus", 3);
					//apply status here
					basiliskSpeed(player,20);
					player.createStatusEffect(StatusEffects.BasiliskCompulsion,0,0,0,0);
					flags[kFLAGS.BASILISK_RESISTANCE_TRACKER] += 2;
				}
			}
			//Failure:
			else {
				outputText("You concentrate, focus your mind and resist the basilisk's psychic compulsion.", false);
			}
			game.combat.combatRoundOver();
		}

		//Special 3: basilisk tail swipe (Small physical damage):
		private function basiliskTailSwipe():void {
			outputText("The basilisk suddenly whips its tail at you, swiping your " + player.feet() + " from under you!  You quickly stagger upright, being sure to hold the creature's feet in your vision.  ", false);
			if (damage == 0) outputText("The fall didn't harm you at all.  ", false);
			var damage:Number = int((str + 20) - Math.random()*(player.tou+player.armorDef));
			damage = player.takeDamage(damage, true);
			game.combat.combatRoundOver();
		}

		//basilisk physical attack: With lightning speed, the basilisk slashes you with its index claws!
		//Noun: claw

		override protected function performCombatAction():void
		{
			if (player.findStatusEffect(StatusEffects.BasiliskCompulsion) < 0 && rand(3) == 0 && findStatusEffect(StatusEffects.Blind) < 0) compulsion();
			else if (rand(3) == 0) basiliskTailSwipe();
			else eAttack();
		}

		override public function defeated(hpVictory:Boolean):void
		{
			game.highMountains.basiliskScene.defeatBasilisk();
		}

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean):void
		{
			if (pcCameWorms){
				outputText("\n\nThe basilisk smirks, but waits for you to finish...");
				doNext(game.combat.endLustLoss);
			} else {
				game.highMountains.basiliskScene.loseToBasilisk();
			}
		}

		public function Basilisk()
		{
			this.a = "the ";
			this.short = "basilisk";
			this.imageName = "basilisk";
			this.long = "You are fighting a basilisk!  From what you can tell while not looking directly at it, the basilisk is a male reptilian biped standing a bit over 6' tall.  He has a thin but ropy build, his tightly muscled yellow underbelly the only part of his frame not covered in those deceptive, camouflaging grey-green scales.  A long, whip-like tail flits restlessly through the dirt behind his skinny legs, and sharp sickle-shaped index claws decorate each hand and foot.  You don't dare to look at his face, but you have the impression of a cruel jaw, a blunt lizard snout and a crown of dull spines.";
			// this.plural = false;
			this.createCock(6,2);
			this.balls = 2;
			this.ballSize = 2;
			createBreastRow(0);
			this.ass.analLooseness = ANAL_LOOSENESS_TIGHT;
			this.ass.analWetness = ANAL_WETNESS_DRY;
			this.createStatusEffect(StatusEffects.BonusACapacity,30,0,0,0);
			this.tallness = 6*12+2;
			this.hipRating = HIP_RATING_SLENDER+1;
			this.buttRating = BUTT_RATING_AVERAGE;
			this.lowerBody = LOWER_BODY_TYPE_LIZARD;
			this.skinTone = "gray";
			this.skinType = SKIN_TYPE_SCALES;
			//this.skinDesc = Appearance.Appearance.DEFAULT_SKIN_DESCS[SKIN_TYPE_SCALES];
			this.hairColor = "none";
			this.hairLength = 0;
			initStrTouSpeInte(85, 70, 35, 70);
			initLibSensCor(50, 35, 60);
			this.weaponName = "claws";
			this.weaponVerb="claw";
			this.weaponAttack = 30;
			this.armorName = "scales";
			this.armorDef = 10;
			this.armorPerk = "";
			this.armorValue = 70;
			this.bonusHP = 200;
			this.lust = 30;
			this.lustVuln = .5;
			this.temperment = TEMPERMENT_RANDOM_GRAPPLES;
			this.level = 12;
			this.gems = rand(10) + 10;
			this.drop = new ChainedDrop().add(consumables.REPTLUM,0.9);
			this.tailType = TAIL_TYPE_COW;
			this.tailRecharge = 0;
			checkMonster();
		}

	}

}


code:
package classes.Scenes.Areas.HighMountains
{
	import classes.*;
	import classes.GlobalFlags.kFLAGS;
	import classes.GlobalFlags.kGAMECLASS;

	public class Izumi extends Monster
	{
		// Set trace outout for this classes' content.
		private var combatDebug:Boolean = true;

		public function Izumi()
		{
			this.a = "";
			this.short = "Izumi";
			this.imageName = "izumi";
			this.long = "You're fighting the immense Oni, Izumi.  Standing around 9 feet tall and wielding little more than her fists, she is the picture of strength and power.  She is clad in a scandalous blue and white Kimono, the garment drawing your eyes to her humongous breasts, and her perfectly sculpted thighs.  A curious horn juts from her head, the texture of it almost lost amongst the rock lining the inside of the cave.\n\nA distinctly cocky grin is painted across her face, her undivided attention focused upon you.";
			// this.plural = false;
			this.createVagina(false, VAGINA_WETNESS_SLICK, VAGINA_LOOSENESS_NORMAL);
			createBreastRow(Appearance.breastCupInverse("FF")); // The doc mentions her breasts would be around D/DD on a "normal human" so err, winging this shit
			this.ass.analLooseness = ANAL_LOOSENESS_TIGHT;
			this.ass.analWetness = ANAL_WETNESS_DRY;
			this.tallness = 9*12+0;
			this.hipRating = HIP_RATING_AVERAGE;
			this.buttRating = BUTT_RATING_TIGHT;
			this.skinTone = "creamy-white";
			this.hairColor = "golden";
			this.hairLength = 25;
			initStrTouSpeInte(110, 90, 90, 80);
			initLibSensCor(30, 25, 15);
			this.weaponName = "fist";
			this.weaponVerb="punch";
			this.armorName = "silken kimono";
			this.bonusHP = 660;
			this.lust = 10;
			this.lustVuln = 0.33;
			this.temperment = TEMPERMENT_LOVE_GRAPPLES;
			this.level = 22;
			this.gems = 25 + rand(25);
			this.additionalXP = 75;
			this.drop = NO_DROP;
			checkMonster();
		}

		// Override won/lost calls
		override public function defeated(hpVictory:Boolean):void
		{
			this.cleanup();
			game.highMountains.izumiScenes.touchThatFluffyHorn();
		}

		// Monster won, not player, gg for descriptive method names
		override public function won(hpVictory:Boolean, pcCameWorms:Boolean):void
		{
			flags[kFLAGS.IZUMI_TIMES_LOST_FIGHT]++;
			if (player.findStatusEffect(StatusEffects.Titsmother) >= 0)
			{
				this.cleanup();
				game.highMountains.izumiScenes.deathBySnuSnuIMeanGiantOniTits();
				return;
			}
			else
			{
				this.cleanup();
				game.highMountains.izumiScenes.fuckedUpByAFuckhugeOni();
				return;
			}
		}

		// Override combat AI
		override protected function performCombatAction():void
		{
			// Handle chokeslam mechanics
			if (player.findStatusEffect(StatusEffects.Chokeslam) >= 0)
			{
				if (combatDebug) trace("ChokeSlam Rounds to Damage: " + player.statusEffectv1(StatusEffects.Chokeslam));

				player.addStatusValue(StatusEffects.Chokeslam,1,-1);

				if (player.statusEffectv1(StatusEffects.Chokeslam) <= 0)
				{
					chokeSlamDamage();
					cleanupChokeslam();
				}

				combatRoundOver();
				return;
			}

			// Handle groundpound
			if (player.findStatusEffect(StatusEffects.Groundpound) >= 0)
			{
				player.addStatusValue(StatusEffects.Groundpound,1,-1);

				if (player.statusEffectv1(StatusEffects.Groundpound) <= 0)
				{
					cleanupGroundpound();
				}
			}

			// Handle titsmother
			if (player.findStatusEffect(StatusEffects.Titsmother) >= 0)
			{
				combatRoundOver();
				return;
			}

			// Titsmother toggle; gonna need to play with this, it should only be used once per fight
			if (this.HPRatio() <= 0.25)
			{
				if (this.findStatusEffect(StatusEffects.UsedTitsmother) <= -1)
				{
					trace("Could use titsmother...");
				}
			}

			if ((this.HPRatio() <= 0.25) && (this.findStatusEffect(StatusEffects.UsedTitsmother) <= -1))
			{
				if (combatDebug) trace("Using Titsmother!");
				titSmother();
				this.createStatusEffect(StatusEffects.UsedTitsmother, 0, 0, 0, 0);
				return;
			}
			else
			{
				var actions:Array = [straightJab, straightJab, straightJab, roundhouseKick, roundhouseKick, roundhouseKick, chokeSlam];

				if (player.findStatusEffect(StatusEffects.Groundpound) <= -1)
				{
					actions.push(groundPound);
					actions.push(groundPound);
				}

				actions[rand(actions.length)]();
			}
		}

		// Remove any lingering effects from the player once combat is over
		public function cleanup():void
		{
			if (combatDebug) trace("Cleaning up lingering effects...");

			cleanupChokeslam();
			cleanupGroundpound();
			cleanupTitsmother();
		}

		// Quick punch at the player
		// Light damage
		public function straightJab():void
		{
			outputText("Quick as a flash, Izumi lashes out with her free hand, aiming for your head.");

			var damage:int = int((str + 175) - rand(player.tou) - player.armorDef);
			if (player.getEvasionRoll())
			{
				outputText("  You deftly dodge under the lightning-quick punch.");
			}
			else if (damage <= 0)
			{
				outputText("  You lash out and manage to deflect the blow before it can connect.");
			}
			else
			{
				outputText("  Her fist connects with your chin with a mighty crack, sending you sailing across the cave.  Izumi smirks at you as you");
				if (player.isNaga()) outputText(" raise back up onto your [legs]");
				else outputText(" stand");
				outputText(" and dust yourself off. ");

				player.takeDamage(damage, true);
			}
			combatRoundOver();
		}

		// Roundhouse Kick
		// Milkd lust increase
		public function roundhouseKick():void
		{
			outputText("Izumi leaps backwards onto one foot, spinning around and unleashing a thundering roundhouse kick.  Luckily, you manage to duck just in time, avoiding what surely would have been a monstrously powerful blow.  Unfortunately, as Izumi’s leg scythes through the air over your head, you find your gaze naturally following the line of her thigh muscles until you’re staring directly up the fluttering folds of Izumi’s increasingly impractical kimono.\n\n");

			if (player.cor >= 50 || player.lib >= 50 || player.sens >= 50)
			{
				outputText("You fall backwards and stagger away, already feeling a flush of warmth colouring your cheeks, trying to drag your mind back to the fight and away from... other things.");

				game.dynStats("lus", 10 + player.lib / 10);
			}
			else
			{
				outputText("You furrow a brow at the Oni's ineffectual attack, not entirely sure if she was intending to hurt you or turn you on.  Her thighs did look rather tantalizing though...");

				game.dynStats("lus", 5 + player.lib / 20);
			}

			combatRoundOver();
		}

		// Bind player for 3 turns. If the player doesn't break out in time, they take huge damage.
		// On escape, Izumi takes some damage
		public function chokeSlam():void
		{
			if (player.getEvasionRoll())
			{
				outputText("Izumi surges towards you, closing the distance between you within the blink of an eye. You narrowly avoid her crushing grip, twisting away from her grasp at the last moment.  The enormous Oni lets loose a deep, satisfied laugh.");
			}
			else
			{
				outputText("Izumi surges towards you, smashing aside your guard and seizing you by the throat in the blink of an eye.  Lifting you above her head, you can only struggle to breathe as the enormous Oni grins at you like some sort of prize.");
				player.createStatusEffect(StatusEffects.Chokeslam, 3, 0, 0, 0);

				if (combatDebug) trace("Applied Chokeslam effect");
			}
			combatRoundOver();
		}

		// Struggle against izumi's chokeslam
		public function chokeSlamStruggle():void
		{
			clearOutput();

			var brokeFree:Boolean;

			if (rand(player.str) > this.str / 2)
			{
				brokeFree = true;
			}

			if (brokeFree)
			{
				if (combatDebug) trace("Escaped from Chokeslam grapple");

				chokeSlamEscape();
				combatRoundOver();
			}
			else
			{
				outputText("Izumi's grip around your throat continues to strangle the breath from your lungs as she holds you aloft.  Your fingers tighten in turn around the Oni's wrist, fighting against her");
				if (player.str < 90) outputText(" immense");
				else outputText(" impressive");
				outputText(" strength, in an attempt to free yourself from her crushing embrace, without success.");

				player.takeDamage(75 + rand(15), true);
				doAI();
			}
		}

		// OH HEY ITS A THING
		public function chokeSlamWait():void
		{
			clearOutput();

			outputText("Your feet dangle uselessly in the air as Izumi holds you aloft.  Why bother resisting?  She's just so strong, her fingers wrapped so completely around your neck...");
			player.takeDamage(75 + rand(15), true);

			if (kGAMECLASS.fetishManager.compare(FetishManager.FETISH_BONDAGE))
			{
				outputText(" and to be honest, the grip isn't an entirely unplesent experience, either.  If only Izumi would stop playing around and just take you already.");
				game.dynStats("lus", 5);
			}
			else
			{
				outputText(".");
			}
			doAI();
		}

		// Player fails to escape from the chokeslam, and after 3 rounds gets nailed to the fuckin floor
		public function chokeSlamDamage():void
		{
			outputText("With a grunt of effort, Izumi hauls you through the air, her iron-like grip around your throat providing the perfect anchor to propel you towards the ground.  Before you have a chance to react, the Oni drives you into the unforgiving stone lining the floor of the cave.\n\n");

			outputText("The hit is extreme enough to leave you dazed for a moment, splayed out across the floor.  When you rouse yourself back to full consciousness a few seconds later, the cave is still echoing with the sound of the impact, a testament to the strength of the Oni - and your resilience.");

			var damage:int = int ((str + 225) - rand(player.tou) - player.armorDef);
			player.takeDamage(damage, true);

			combatRoundOver();
		}

		// Player escapes from the chokeslam attack
		public function chokeSlamEscape():void
		{
			var damage:Number = 50 + rand(player.str);
			if (combatDebug) trace("Escaping from Chokeslam!");

			outputText("Scrabbling desperately against her wrist, you narrow your eyes at the Oni woman’s superior expression,");
			if (player.isBiped()) outputText(" raise a [leg] and kick her roundly");
			else if (player.isNaga()) outputText(" raise your tail and slap her solidly");
			else outputText(" and slap her square");
			outputText(" in the face.  Izumi drops you, staggering back in surprise.  “Ow!”  She actually yelps, covering her face with her hands.\n\n");

			outputText("You drop to the ground and roll away, expecting some form of retribution.  Izumi glares at you from behind her hand for a moment, then snickers.  Slowly, she drops back into her fighting stance and gestures for your bout to continue.");
			outputText("(" + damage + ")")
			cleanupChokeslam();

			this.HP -= damage;

			combatRoundOver();
		}

		// Remove the effect post-combat
		public function cleanupChokeslam():void
		{
			if (player.findStatusEffect(StatusEffects.Chokeslam) >= 0)
			{
				trace("Removing chokeslam");

				player.removeStatusEffect(StatusEffects.Chokeslam);
			}
		}

		// Groundslam, does damage and slows the player if they don't dodge the hit
		public function groundPound():void
		{
			outputText("Izumi raises one mighty foot and slams it to the ground with a victorious yell.  The ground itself actually shakes below your feet, threatening to knock you off balance.\n\n");

			if (player.getEvasionRoll()) // TODO: ensure this is correct
			{
				outputText("Leaping to the side, you manage to steady yourself against the wall, keeping your footing.");
			}
			else
			{
				outputText("The rumbling actually knocks you off your feet, sprawling on the ground and banging your head.  As the shaking subsides, you pull yourself upright, but you feel a little unsteady on your [feet] after the disorienting impact.");

				var spdReducedBy:int = int(player.spe * 0.25);
				player.createStatusEffect(StatusEffects.Groundpound, 3, spdReducedBy, 0, 0);
				game.dynStats("spe-", spdReducedBy);

				if (combatDebug) trace("Applying Groundslam slow");
			}

			combatRoundOver();
		}

		// Remove the effect post-combat, fixup stats
		public function cleanupGroundpound():void
		{
			if (player.findStatusEffect(StatusEffects.Groundpound) >= 0)
			{
				// Can't use dynStats to achieve this, as it can give back more speed than we originally took away due to perks
				player.spe += player.statusEffectv2(StatusEffects.Groundpound);
				if (player.spe > player.getMaxStats("spe")) player.spe = player.getMaxStats("spe");

				player.removeStatusEffect(StatusEffects.Groundpound);

				trace("Removing Groundpound slow effect");
			}
		}

		// Binding attack, mild lust increase per turn until the player breaks out. Not TOO hard to break out, though.
		// Attack will be used ONCE, when Izumi reaches ~25% hp.
		public function titSmother():void
		{
			if (combatDebug) trace("Titsmother attack!");

			// Attack will ALWAYS hit, but be relatively easy to break out of
			outputText("With a sudden burst of speed, the Oni woman bullrushes you, slapping aside your hasty defence.  You brace yourself for a powerful impact, but rather than strike you she instead thrusts her arm straight past your head.  Bemused, you turn your head to follow her fist, just in time to see her crook her elbow and yank you back towards her - hard.  Pulled right off your [feet] by the sudden strike, you slam");
			if (player.hasMuzzle()) outputText(" muzzle-");
			else outputText(" face-");
			outputText("first into Izumi - specifically, into her chest.  Shocked by suddenly having your face rammed into the pillowy soft expanse of Izumi’s bust, you rear back only to be slammed straight back into the mountainous expanse by Izumi’s arm.");

			player.createStatusEffect(StatusEffects.Titsmother, 0, 0, 0, 0);
			game.dynStats("lus", (player.lib / 15) + 5 + rand(5));
			combatRoundOver();
		}

		// Remove the effect post-combat
		public function cleanupTitsmother():void
		{
			if (player.findStatusEffect(StatusEffects.Titsmother) >= 0)
			{
				player.removeStatusEffect(StatusEffects.Titsmother);
				if (combatDebug) trace("Removing Titsmother");
			}
		}

		// Struggle handler for titsmother attack
		public function titSmotherStruggle():void
		{
			if (combatDebug) trace("Titsmother Struggle");

			var brokeFree:Boolean;

			if (rand(player.str) > this.str / 4)
			{
				brokeFree = true;
			}

			if (brokeFree)
			{
				if (combatDebug) trace("Broke free of Titsmother!");

				titSmotherEscape();
				combatRoundOver();
			}
			else
			{
				if (rand(2) == 0)
				{
					clearOutput();
					outputText("“Hah!  Say goodnight, ‘cause I’m going to choke the fight right out of you!”  She cries exuberantly, forcibly mashing your face into her bosom.  It would appear that she is trying to throttle you, but only having one hand is making the task difficult.  You can breathe just fine, but having your face forced into the constantly jostling mass of tit-flesh before you is distracting to say the least.\n\n");
					outputText("You scrabble desperately against Izumi’s grip, trying not to think about where you’re placing your hands, or how soft and pliant the flesh beneath you is, or any number of other upsetting little details - but to no avail.  Izumi’s grip is incredibly strong.  You hang there for a moment, trying to get your breath back for another attempt as Izumi jostles and presses against you from all sides.");
				}
				else
				{
					clearOutput();
					if (player.hasCock())
					{
						outputText("Assaulted by the sensation of being pressed against such warm flesh, you can already feel [eachCock] starting to stiffen against your will.  Your hardening erection");
						if (player.totalCocks() > 1) outputText("s");
						outputText(" just makes things even more unbearable, as the harder");
						if (player.totalCocks() > 1) outputText(" they get");
						else outputText(" it gets");
						outputText(", the more insistently your");
						if (player.totalCocks() > 1) outputText(" erections throb");
						else outputText(" erection throbs");
						outputText(", pressed up against Izumi’s stomach muscles.  Her muscles ripple and undulate as she struggles to keep you in her grip, abs flexing, bumping, encircling your insistent erection");
						if (player.totalCocks() > 1) outputText("s");
						outputText(", stimulating you even further.  You realize in a flash of panic that if you don’t get out of this soon, you may actually... ");
					}
					else
					{
						outputText("Izumi’s bust encloses you on all sides, leaving you feeling like you’re trapped in some kind of breast sarcophagus.  The heat radiating from the soft flesh combines with the scent of whatever strange drug Izumi had been smoking, now hanging around her like some heady perfume.");
					}
				}

				game.dynStats("lus", player.lib / 15 + 5 + rand(5));
				doAI();
			}
		}

		// Player breaks free of tiSmother and applies damage to Izumi
		public function titSmotherEscape():void
		{
			if (combatDebug) trace("Escaping TitSmother!");
			clearOutput();

			if (player.str < 90)
			{
				outputText("Straining with all your might, you still can’t quite manage to break Izumi’s grip, but you do manage to somehow slide upwards through the valley of her bust.  Izumi’s face looms into view, the enormous woman gritting her teeth as she attempts to crush the fight out of you.  In an act of desperation, you rear back and then knife forwards in a brutal headbutt.\n\n");
				outputText("“Ack!”  Your forehead connects with her chin in a collision that probably hurts you as much as her, judging by the searing pain that lances through your forehead as she drops you to the floor. Meanwhile, Izumi staggers back, rubbing at her chin.  “Ow.  That hurt, kid!”  She says reproachfully.  The two of you take a moment to shake the cobwebs from your heads before dropping back into your combat stances, a little more wary this time around.\n\n");
			}
			else
			{
				outputText("Locking your arms against Izumi’s shoulders, you heave with all your might against the musclebound Oni girl’s choke hold.  You can feel her arm straining to hold you, struggling to resist, giving ground....");

				if (player.isBiped())
				{
					outputText("  As soon as you can, you hike up your legs and place your feet firmly on Izumi’s stomach, adding your leg muscles to the effort.");
				}

				outputText("  Izumi grits her teeth and growls as she pulls with all her might, trying to force your limbs to give way, but to no avail - with a final thrust, Izumi lets out a yelp as you knock her arm aside and leap away.  Izumi rolls her arm around a little, massaging her shoulder as she regards you, thoughtfully.  Then she reaches up and fans at her face with one hand, grinning that suggestive grin.\n\n");
			}

			outputText("“Oh my,” she purrs, lasciviously. “Aren’t you the impressive one?  Keep surprising me like that and I might just forget about this handicap...” ");

			cleanupTitsmother();
			var damage:Number = (15 + rand(player.str));
			this.HP -= damage;
			outputText("(" + damage + ")");
			combatRoundOver();
		}

		// Wait handler for titsmother attack
		public function titSmotherWait():void
		{
			clearOutput();

			if (combatDebug) trace("Waiting during TitSmother");

			outputText("With your face crushed into the Oni's cleavage, you can't help but wonder; why bother resisting?  She's just so strong, and her breasts feel so lushious against your [face]...");

			game.dynStats("lus", player.lib / 10 + 5 + rand(5));

			if (kGAMECLASS.fetishManager.compare(FetishManager.FETISH_BONDAGE))
			{
				outputText(" and to be honest, her grip isn't an entirely unplesent experience, either.  If only Izumi would stop playing around and just take you already.");
				game.dynStats("lus", 5);
			}
			else
			{
				outputText(".");
			}
			doAI();
		}
	}

}


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

	public class Minerva extends Monster
	{

		//Normal Attacks for all Minerva Types
		//Shark-bite:
		private function minervaBite():void
		{
			outputText("The siren paces around you in circles, waiting for the right moment to strike.  Unexpectedly quick thanks to her clawed feet, she propels herself toward you at full speed.  Her maw opens wide to chomp on you, showing off multiple rows of glinting, razor-sharp teeth.");
			var damage:int = int((str + 85) - rand(player.tou) - player.armorDef);
			if (player.getEvasionRoll()) {
				outputText("  You get out of the way just in time, Minerva making a loud chomping sound as she only catches the air.");
			}
			else if (combatBlock(true)) {
				outputText("  You raise your " + player.shieldName + " just in time, deflecting her bite.");
			}
			//[else block]
			else if (damage <= 0) outputText("  Your hands lash out, knocking her head to the side as she tries to bite you.  With the bite deflected, Minerva makes a loud chomping sound as she only bites the air.");
			//[if attack lands]
			else {
				outputText("  Her teeth dig right into your arm!  It's a bit of a struggle, but you're able to free yourself.  The damage doesn't look too serious. ");
				player.takeDamage(damage, true);
			}
			combatRoundOver();
		}

//Flying kick:
		private function minervaKnowsKungfu():void
		{
			outputText("The blue beauty flaps her wings and launches herself into the air.  Once she's gained as much altitude as she can, she dive-bombs you, her demon-clawed feet leading the attack.");

			var damage:int = int((str + weaponAttack + 100) - rand(player.tou) - player.armorDef);
			spe -= 70;
			if (player.getEvasionRoll()) {
				outputText("  You jump out of the landing zone just in time, piles of dirt exploding in all directions as Minerva slams into the ground.");
			}
			//[else block]
			else if (damage <= 0) outputText("  Steadying yourself, you reach up, grabbing hold of Minerva as she attempts to land a heavy blow on you.  Grunting hard, you pull against her and toss the siren aside completely, halting her attack.");
			//[if attack lands]
			else {
				outputText("  She hits you square in the chest, knocking you to the ground as her entire weight lands on you.  The bombshell of a woman jumps off your chest, ready to keep fighting. ");
				damage = player.takeDamage(damage, true);
			}
			spe += 70;
			combatRoundOver();
		}

//Tail-whip
		private function tailWhip():void
		{
			var damage:int = int((str + 35) - rand(player.tou) - player.armorDef);

			outputText("She runs at you, holding the weapon like she's about to chop into your side.  You brace yourself, but when she's only a few feet away, she starts to turn her body.");
			//[else block]
			if (damage <= 0) outputText("  Lashing out with a fierce kick you intercept the tail-whip, your [foot] impacting against her strong appendage and totally neutralizing its momentum.");

			//[if attack lands]
			else {
				outputText("  Her shark tail whacks you, knocking you to the ground.  You quickly struggle back into position");
				if (player.armorDef > 0) outputText(", but your defense has been reduced");
				outputText("! ");
				player.takeDamage(damage, true);
				if (findStatusEffect(StatusEffects.TailWhip) >= 0) addStatusValue(StatusEffects.TailWhip, 1, 10);
				else createStatusEffect(StatusEffects.TailWhip, 10, 0, 0, 0);
			}
			combatRoundOver();
		}

//Halberd stab:
		private function minervaUsesHalberdStab():void
		{
			outputText("Minerva charges at you, brandishing her halberd's sharp tip toward you.");
			var damage:int = int((str + weaponAttack) - rand(player.tou));

			if (player.getEvasionRoll()) outputText("  You sidestep the attack just as she thrusts the point past your face.");

			//[else block]
			else if (damage < 0) outputText("  With all your strength, you swing your [weapon], the blow landing on the side of Minerva's halberd and deflecting the goring strike away from you.");

			//[if attack lands]
			else {
				outputText("  She pierces you right in the shoulder!  You wince in pain and step back, out of her reach again.");
				player.takeDamage(damage, true);
			}
			combatRoundOver();
		}

//Halberd CHOP:
		private function minervaUsesHalberdCHOP():void
		{
			outputText("She moves in close, practically right in front of you and raises the halberd.");
			var damage:int = int((str + 100) - rand(player.tou) - player.armorDef);

			if (player.getEvasionRoll()) outputText("  You get out of the way quickly, her attack chopping deeply into the earth. ");

			//[else block]
			else if (damage < 0) outputText("  In a mad show of pure skill, you lift your hands, clamping them down on the cheeks of the halberd blade and stop Minerva's attack cold, bewildering the siren in the process.");

			//[if attack lands]
			else {
				outputText("  You don't have time to avoid the downward chop and the axe head lands right in your shoulder blade!  You cry out in pain, but you can still move your arm despite the brutal blow.");
				player.takeDamage(damage, true);
			}
			combatRoundOver();
		}

//White Fire
		private function kiteFire():void
		{
			outputText("The siren holds her hand out, flashing you a cunning smirk and snapping her fingers.  Your entire body is engulfed in white-hot flames, searing flesh and burning your [armor].  The sudden flash of heat and fire elicit panic from deep within you, causing you to cry out and roll on the ground to put the fires out.  The burns aren't too severe, but you know you can't keep getting hit like that! ");
			var damage:int = int(10 + (inte / 3 + rand(inte / 2)) * 1.5);
			player.takeDamage(damage, true);
			combatRoundOver();
		}

//Lust Attacks for tainted Minerva
//Booty-shorts
		private function bootyShortInYoFaceSon():void
		{
			outputText("The blue beauty turns around and bends over so far that she uses her halberd like a pole to support herself.  She lifts her shark tail up so you can see her short-shorts hugging perfectly against her ample bottom.  Her tail waves to the left and to the right as she does a little booty shake for you.  The siren gives her big ass a nice, hard slap that echoes off the tower walls, and making it jiggle even more.  She quickly turns around to face you, smirking at what she just did. ");
			game.dynStats("lus", 20 + player.lib / 10 + rand(5));
			combatRoundOver();
		}

//Lust Attacks for all Minervas
//Pole licking
		private function lickDatPole():void
		{
			outputText("Minerva stands, holding her halberd straight up next to her as she looks it over with a seductive stare.  Giving you a suggestive look she rolls out a two-foot long tongue from her mouth, licking a good length of the massive weapon, even wrapping her tongue around it a few times.  Suddenly she sucks her tongue back into her mouth and gives you a little smirk, almost to say \"Yeah, I can do that... and more.\" ");
			game.dynStats("lus", 20 + player.lib / 10 + rand(5));
			combatRoundOver();
		}

//Special attack
		private function sirensSong():void
		{
			//The Siren's Song (2-part attack) (Rarely used or when she's desperate aka: Less than 10% hp)
			//[part 1]
			if (findStatusEffect(StatusEffects.SirenSong) < 0) {
				outputText("Minerva begins to hum a pleasant tune.  It might be better to stand back to see what she's up to!");
				createStatusEffect(StatusEffects.SirenSong, 0, 0, 0, 0);
			}
			//[part 2]
			else {
				outputText("Her hum becomes a song.  A magnificent song without words, a sound that should be impossible for any human, or creature for that matter, to make naturally.");
				//If wait:
				if (flags[kFLAGS.IN_COMBAT_USE_PLAYER_WAITED_FLAG] == 1) outputText("  You cover your ears before she even opens her lips, wary of its power.  Judging by the dim feeling of pleasure simmering through you with the little sound you're picking up regardless, it probably was for the better.");
				//No wait - insta loss:
				else {
					outputText("  Your mind clouds over as the song flows through your ears and fills your mind with sweet bliss.  You lower your [weapon] and dreamily walk into the siren's sweet embrace.  You absent-mindedly disrobe yourself as you move in closer, the song getting louder with each step you take, until you finally bury yourself into the siren's soft bosom and she wraps her feathery arms around your body.  She stops singing her beautiful song and whispers into your ear, \"You're all mine now.\"");
					game.dynStats("lus", 999);
				}
				removeStatusEffect(StatusEffects.SirenSong);
			}
			combatRoundOver();
		}

		override protected function performCombatAction():void
		{
			if (findStatusEffect(StatusEffects.SirenSong) >= 0) sirensSong();
			else if (rand(25) == 0 || (HP < 100 && rand(2) == 0)) sirensSong();
			//Else choose randomly!
			else {
				var choices:Array = [lickDatPole,
					bootyShortInYoFaceSon,
					kiteFire,
					minervaUsesHalberdCHOP,
					minervaUsesHalberdStab,
					tailWhip,
					minervaKnowsKungfu,
					minervaBite];
				choices[rand(choices.length)]();
			}
		}

		override public function defeated(hpVictory:Boolean):void
		{
			game.highMountains.minervaScene.beatUpDatSharpie();
		}

		override public function won(hpVictory:Boolean,pcCameWorms:Boolean):void
		{
			game.highMountains.minervaScene.loseToMinerva();
		}

		public function Minerva()
		{
			this.a = "";
			this.short = "Minerva";
			//Set imageName based on pure/corrupt
			if (flags[kFLAGS.MINERVA_PURIFICATION_PROGRESS] >= 10) this.imageName = "minervapure";
			else if (flags[kFLAGS.MINERVA_CORRUPTION_PROGRESS] >= 10) this.imageName = "minervacorrupt";
			else this.imageName = "minerva";
			//Set description based on pure/corrupt
			if (flags[kFLAGS.MINERVA_PURIFICATION_PROGRESS] >= 10) this.long = "You're fighting the purified siren, Minerva.  Standing around eight feet and wielding a weapon just as tall, she is a force to be reckoned with.  Her skin is a golden yellow, though her belly, neck and inner thighs are as white as the clouds in the sky, and a golden piecing decorates her navel.  White stripes adorn her legs, tail and back.  Two large wings sprout from her back, their feathers an attention-grabbing white and .  She wears a tube-top that hold back her G-cups, and short shorts around her wide waist that seem to be holding back a huge bulge.\n\nHer weapon is a halberd, made from a shiny, silvery metal, and seems to have an unnatural glow to it.";
			else if (flags[kFLAGS.MINERVA_CORRUPTION_PROGRESS] >= 10) this.long = "You're fighting the corrupted siren, Minerva.";
			else this.long = "You're fighting the tainted siren, Minerva.  Standing around eight feet and wielding a weapon just as tall, she is a force to be reckoned with.  Her skin is a dark navy blue, though her belly, neck and inner thighs are as white as the clouds in the sky, and a golden piecing decorates her navel.  Orange and white stripes adorn her legs, tail and back.  Two large wings sprout from her back, their feathers an attention-grabbing red and orange mix.  She wears a tube-top that hold back her double d-cups, and short shorts around her wide waist that seem to be holding back a huge bulge.\n\nHer weapon is a halberd, made from a shiny, silvery metal, and seems to have an unnatural glow to it.";
			// this.plural = false;
			this.createCock(16, 3);
			if (flags[kFLAGS.MINERVA_CORRUPTION_PROGRESS] >= 10) this.createCock(16, 3); //Second cock for corrupted Minerva.
			this.balls = 2;
			this.ballSize = 3;
			if (flags[kFLAGS.MINERVA_PURIFICATION_PROGRESS] >= 10 || flags[kFLAGS.MINERVA_CORRUPTION_PROGRESS] >= 10) ballSize += 2;
			this.cumMultiplier = 3;
			// this.hoursSinceCum = 0;
			this.createVagina(false, VAGINA_WETNESS_SLICK, VAGINA_LOOSENESS_NORMAL);
			//Set breast size based on pure/corrupt
			if (flags[kFLAGS.MINERVA_PURIFICATION_PROGRESS] >= 10) createBreastRow(Appearance.breastCupInverse("G"));
			else if (flags[kFLAGS.MINERVA_CORRUPTION_PROGRESS] >= 10) createBreastRow(Appearance.breastCupInverse("E"));
			else createBreastRow(Appearance.breastCupInverse("DD"));
			this.ass.analLooseness = ANAL_LOOSENESS_TIGHT;
			this.ass.analWetness = ANAL_WETNESS_DRY;
			this.tallness = 8*12+4;
			this.hipRating = HIP_RATING_CURVY;
			this.buttRating = BUTT_RATING_LARGE+1;
			this.skinTone = "blue";
			this.hairColor = "red";
			this.hairLength = 25;
			initStrTouSpeInte(50, 65, 95, 75);
			initLibSensCor(30, 25, 45);
			if (flags[kFLAGS.MINERVA_PURIFICATION_PROGRESS] >= 10) cor = 0; //Set to 0 corruption if purified.
			if (flags[kFLAGS.MINERVA_CORRUPTION_PROGRESS] >= 10) cor = 80; //Set to 80 corruption if corrupted.
			this.weaponName = "halberd";
			this.weaponVerb="slash";
			this.weaponAttack = 30;
			this.weaponPerk = "";
			this.weaponValue = 150;
			this.armorName = game.armors.TUBETOP.name;
			this.armorDef = 1;
			this.armorPerk = "";
			this.armorValue = 5;
			this.bonusHP = 470;
			this.lust = 20;
			this.lustVuln = .2;
			this.temperment = TEMPERMENT_LOVE_GRAPPLES;
			this.level = 16;
			this.gems = rand(25) +10;
			this.additionalXP = 50;
			this.drop = new WeightedDrop(consumables.PURPEAC, 1);
			this.wingType = WING_TYPE_HARPY;
			this.wingDesc = "fluffy feathery";
			checkMonster();
		}

	}

}


code:
//Minerva Corruption (Warped by Lies)
package classes.Scenes.Areas.HighMountains
{
	import classes.*;
	import classes.GlobalFlags.kFLAGS;
	import classes.GlobalFlags.kGAMECLASS;

	public class MinervaCorruption
	{
		//I might not work on this, unfortunately.
		public function MinervaCorruption()
		{

		}

	}

}


code:
package classes.Scenes.Areas.HighMountains
{
	import classes.*;
	import classes.GlobalFlags.kFLAGS;

	/**
	 * ...
	 * @author ...
	 */
	public class MinotaurMob extends Monster
	{
		private function precumTease():void {
			var teased:Boolean = false;
			var damage:Number = 0;
			var oldLust:Number = player.lust;
			game.spriteSelect(94);
			//(Big taur pre-cum tease)
			if (rand(2) == 0) {
				teased = true;
				if (rand(5) > 0) {
					outputText("The biggest lifts his loincloth, giving you a perfect view of his veiny hardness.  Pre-cum visibly bubbles from his flared tip, splattering wetly on the rocks and filling the air with his bestial musk.  He says, \"See how much I need you?\"\n", false);
					damage = 7 + player.lib/20;
				}
				//crit)
				else {
					outputText("The largest bull in the crowd flaps his cum-soaked loincloth up and wraps a massive, muscled hand around his incredible erection.  Shaking it back and forth, he flicks his bubbling pre-cum in your direction, letting it spatter noisily against the rocks around you.  A few droplets even land on your skin, fogging the air with minotaur pheromones.\n", false);
					damage = 13 + player.lib/20;
				}
			}
			//(Middle Taur pre-cum tease)
			if (rand(2) == 0) {
				teased = true;
				if (rand(5) > 0) {
					outputText("\"Hey, slut, look at this!\" taunts one of the beast-men.  He shakes his hips lewdly, spinning his thick horse-cock in wide circles and sending his potent pre flying through the air.  Droplets rain down around you, filling the air with even more of that delicious smell.\n", false);
					damage = 3 + player.lib/30;
				}
				else {
					outputText("\"Mom, you may as well spread your thighs now, I got a treat for ya!\" announces a well-built minotaur.  He shifts his coverings and pumps on his swollen shaft, tugging hard enough over the iron-hard erection to blast out huge blobs of pre-seed in your direction.  ", false);
					if (player.spe/5 + rand(20) > 20) {
						outputText("You avoid most of them, the blobs splattering against the mountain and still getting a little on you.  Regardless, the air stinks of their heavy spunk.", false);
						damage = 6 + player.lib/20;
					}
					else {
						outputText("You try to avoid them, but one catches you in the face, a little getting into your mouth.  You swallow it reflexively and salivate some more, your eyes darting to look at the stained rocks around you.  Are you really considering licking it up from the ground?", false);
						damage = 15 + player.lib/20;
					}
				}
				outputText("\n", false);
			}
			//(Minitaur pre-cum tease)
			if (!teased || rand(3) == 0) {
				outputText("The smallest of the beastmen, the minitaur, moans and begs, \"Please Mom, can we please fuck you?  I... I need it so bad.\"  He raises the edge of his loincloth to show exactly what he's talking about.  His member is limp but leaking.  What really catches your eyes sits behind that drizzling shaft - a pair of balls looking swollen and pent up beyond belief.  A sticky web of his leavings hangs between his genitals and his loincloth, showing you just how much he's been leaking at the thought of fucking you.  Fanning the sopping garment, he inadvertently blows a wave of his pheromones your way.\n", false);
				damage = 9 + player.lib/20;
			}
			game.dynStats("lus", damage);
			damage = player.lust - oldLust;
			//UNIVERSAL pre-cum RESULT:
			//(Low damage taken)
			if (damage <= 8) {
				outputText("Though your body is tingling from the show the horny beasts are giving you, it doesn't effect you as much as it could have.", false);
				if (player.lust >= player.maxLust()) outputText("  Still, you're too horny to fight any longer.", false);
			}
			//(Medium damage taken)
			else if (damage <= 14) {
				outputText("The powerful pheromones and scents hanging in the air around you make your body flush hotly.  Your " + player.nippleDescript(0) + "s grow harder", false);
				if (player.lust > 70) outputText(", though you didn't think such a thing was possible", false);
				else outputText(", feeling like two bullets scraping along the inside of your " + player.armorName, false);
				outputText(", but it... it could have been worse.  You shudder as a little fantasy of letting them dribble it all over your body works through your mind.", false);
				if (player.lust >= player.maxLust()) outputText("  Fuck it, they smell so good.  You want, no, NEED more.", false);
				else outputText("  A growing part of you wants to experience that.", false);
			}
			//(high damage taken)
			else {
				outputText("All that potent pre-ejaculate makes your cunny ", false);
				if (player.wetness() <= 1) outputText("moisten", false);
				else if (player.wetness() <= 2) outputText("drip", false);
				else if (player.wetness() <= 3) outputText("drool", false);
				else outputText("juice itself", false);
				outputText(" in need.", false);
				if (player.minotaurNeed()) {
					outputText("  You need a fix so bad!", false);
					game.dynStats("lus", 5);
				}
				else {
					outputText("  You can understand firsthand just how potent and addictive that fluid is...", false);
				}
				if (player.hasCock()) outputText("  " + player.SMultiCockDesc() + " twitches and dribbles its own pre-seed, but it doesn't smell anywhere near as good!", false);
				outputText("  Shuddering and moaning, your body is wracked by ever-increasing arousal.  Fantasies of crawling under the beast-men's soaked legs and lapping at their drooling erections inundate your mind, your body shivering and shaking in response.  ", false);
				if (player.lust <= 99) outputText("You pull back from the brink with a start.  It'll take more than a little drugged pre-cum to bring you down!", false);
				else outputText("You sigh and let your tongue loll out.  It wouldn't so bad, would it?", false);
			}
			combatRoundOver();
		}

		//Grope
		private function minotaurGangGropeAttack():void {
			game.spriteSelect(94);
			outputText("Strong hands come from behind and slide under your equipment to squeeze your " + player.chestDesc() + ".  The brutish fingers immediately locate and pinch at your " + player.nippleDescript(0) + "s, the sensitive flesh on your chest lighting up with pain and pleasure.  You arch your back in surprise, utterly stunned by the violation of your body.  After a moment you regain your senses and twist away, but the damage is already done.  You're breathing a bit quicker now", false);
			if (player.lust >= 80) outputText(", and your pussy is absolutely soaking wet", false);
			outputText(".", false);
			game.dynStats("lus", (5 + player.sens/10));
			combatRoundOver();
		}
		//Gang Grope
		private function minotaurGangGangGropeAttack():void {
			game.spriteSelect(94);
			outputText("Before you can react, hands reach out from multiple angles and latch onto your body.  One pair squeezes at your " + game.player.buttDescript() + ", the strong grip massaging your cheeks with loving touches.  Another set of hands are sliding along your tummy, reaching down for, but not quite touching, the juicy delta below.  Palms encircle your " + player.chestDesc() + " and caress them, gently squeezing in spite of the brutish hands holding you.  You wriggle and squirm in the collective grip of the many minotaurs for a few moments, growing more and more turned on by the treatment.  At last, you shake out of their hold and stand free, panting hard from exertion and desire.", false);
			game.dynStats("lus", (15 + player.sens/10));
			combatRoundOver();
		}
		//Waste  a turn
		private function minotaurGangWaste():void {
			flags[kFLAGS.UNKNOWN_FLAG_NUMBER_00329] = 1;
			game.spriteSelect(94);
			outputText("\"Oh man I can't wait to go hilt-deep in that pussy... I'm going to wreck " + player.mf("him", "her") + ",\" promises one bull to his brother.  The other laughs and snorts, telling him how he'll have to do the deed during sloppy seconds.  It quickly escalates, and soon, every single one of the beast-men is taunting the others, bickering over how and when they'll get to have you.  While they're wasting their time, it's your chance to act!", false);
			combatRoundOver();
		}

		override public function doAI():void
		{
			game.spriteSelect(94);
			flags[kFLAGS.UNKNOWN_FLAG_NUMBER_00329] = 0;
			var select:Number = rand(7);
			if (select <= 2) precumTease();
			else if (select <= 4) minotaurGangGropeAttack();
			else if (select == 5) minotaurGangGangGropeAttack();
			else minotaurGangWaste();
		}

		override public function defeated(hpVictory:Boolean):void
		{
			game.highMountains.minotaurMobScene.victoryMinotaurGang();
		}

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean):void
		{
			if (pcCameWorms) {
				outputText("\n\nThe minutaurs share a laugh while you cum, but their throbbing erections don't subside in the slightest.");
				doNext(game.combat.endLustLoss);
			} else {
				game.highMountains.minotaurMobScene.minotaurDeFeet();
			}
		}

		public function MinotaurMob()
		{
			this.a = "the ";
			if (game.flags[kFLAGS.UNKNOWN_FLAG_NUMBER_00326] < 20)
				this.short = "minotaur gang";
			else
				this.short = "minotaur tribe";
			this.imageName = "minotaurmob";
			this.long = Num2Text(game.flags[kFLAGS.UNKNOWN_FLAG_NUMBER_00326]) + " shaggy beastmen stand around you in a loose circle.  Their postures aren't exactly threatening.  If anything, they seem to be standing protectively around you, as if their presence would somehow shelter you from the rest of the mountain.  All of their features share a brotherly similarity, though there's still a fair bit of differences between your minotaur sons.  One of them is a head above the rest, a massive hulk of muscle so big he seems to dwarf the rest.  In stark contrast, a feminine minitaur keeps his distance in the rear."+(game.flags[kFLAGS.UNKNOWN_FLAG_NUMBER_00326] >= 20?"  The tribe constantly makes hoots and cat-calls, fully expecting to be fucking you soon.":"");
			this.plural = true;
			this.pronoun1 = "they";
			this.pronoun2 = "them";
			this.pronoun3 = "their";
			this.createCock(rand(13) + 24,2 + rand(3),CockTypesEnum.HORSE);
			this.balls = 2;
			this.ballSize = 2 + rand(13);
			this.cumMultiplier = 1.5;
			this.hoursSinceCum = ballSize * 10;
			createBreastRow(0);
			this.ass.analLooseness = ANAL_LOOSENESS_STRETCHED;
			this.ass.analWetness = ANAL_WETNESS_NORMAL;
			this.createStatusEffect(StatusEffects.BonusACapacity,30,0,0,0);
			this.tallness = rand(37) + 84;
			this.hipRating = HIP_RATING_AVERAGE;
			this.buttRating = BUTT_RATING_AVERAGE+1;
			this.lowerBody = LOWER_BODY_TYPE_HOOFED;
			this.skinTone = "red";
			this.skinType = SKIN_TYPE_FUR;
			this.skinDesc = "shaggy fur";
			this.hairColor = randomChoice("black","brown");
			this.hairLength = 3;
			this.faceType = FACE_COW_MINOTAUR;
			initStrTouSpeInte(65, 60, 30, 20);
			initLibSensCor(40, 15, 35);
			this.weaponName = "fists";
			this.weaponVerb="punches";
			this.armorName = "thick fur";
			var bonusHP:Number = 340 + 50 * (game.flags[kFLAGS.UNKNOWN_FLAG_NUMBER_00326] - 3);
			var lustVuln:Number = 0.45;
			if ((game.flags[kFLAGS.UNKNOWN_FLAG_NUMBER_00326] - 3) * 2 > 13) lustVuln = .3;
			else lustVuln -= (game.flags[kFLAGS.UNKNOWN_FLAG_NUMBER_00326] - 3) * 0.02;
			this.bonusHP = bonusHP;
			this.lust = 30;
			this.lustVuln = lustVuln;
			this.temperment = TEMPERMENT_LUSTY_GRAPPLES;
			var level:int = 11 + Math.round((game.flags[kFLAGS.UNKNOWN_FLAG_NUMBER_00326] - 3)/2);
			if (level > 14) level = 14;
			this.level = level;
			this.gems = rand(15) + 45;
			this.tailType = TAIL_TYPE_COW;
			this.special1 = game.mountain.minotaurScene.minoPheromones;
			this.drop = NO_DROP;
			checkMonster();
		}
	}

}


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

	public class AbstractLakeContent extends BaseContent
	{
		protected function get lake():Lake{
			return kGAMECLASS.lake;
		}
		public function AbstractLakeContent()
		{
		}
	}
}


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

	public class FetishCultist extends Monster
	{

		private static const NAUGHTY_NURSES_UNIFORM:String = "naughty nurse's uniform";
		private static const TEACHERS_OUTFIT:String = "teacher's outfit";
		private static const SWIMSUIT:String = "swimsuit";
		private static const NOBLES_CLOTHING:String = "noble's clothing";
		private static const PERVY_NUNS_CLOTHING:String = "pervy nun's clothing";

		override public function combatRoundUpdate():void
		{
			super.combatRoundUpdate();
			var changed:Boolean = false;
			//Fetish Cultist Update
			switch (rand(5)) {
				case 0:
					if (armorName != PERVY_NUNS_CLOTHING) {
						//Religious outfit!
						long = "The woman across from you has her eyes closed, her hands joined, and seems to be chanting under her breath.  She is wearing a religious robe that closely hugs her curvacious shape. There is a specially-placed opening over her pussy lips.";
						this.armorName = PERVY_NUNS_CLOTHING;
						changed = true;
					}
					break;
				case 1:
					if (armorName != NOBLES_CLOTHING) {
						//Noble outfit
						this.armorName = NOBLES_CLOTHING;
						long = "She's wearing a skimpy noble's dress, which lets you get a good look at her well-filled bra through an over-generous cleavage. Her skirt is so short that you clearly see her pussy lips.  She smiles at you in a rather cute way.  She looks like she's coming out of a painting, executed by a rather depraved and lust-filled artist.";
						changed = true;
					}
					break;
				case 2:
					if (armorName != SWIMSUIT) {
						//Swim outfit
						long = "She's currently wearing a swimsuit that's apparently much too small for her, because it stretches across every curve and clearly outlines them for you to see.  Her sizable breasts look like they could burst through the fabric at any moment.  You can even see her erect nipples and her puffy lower lips.";
						this.armorName = SWIMSUIT;
						changed = true;
					}
					break;
				case 3:
					if (armorName != TEACHERS_OUTFIT) {
						//Pervy Teacher
						long = "She's now wearing a teacher's outfit, complete with glasses, make-up, her black hair in a tight bun, and a serious-looking outfit... with no back side at all.  She turns to the side to give you a good look at her rear, smiling mischievously.";
						this.armorName = TEACHERS_OUTFIT;
						changed = true;
					}
					break;
				case 4:
					if (armorName != NAUGHTY_NURSES_UNIFORM) {
						//Naughty Nurse
						long = "The woman is wearing heavy make-up and a whorish nurse's suit, seemingly in white latex with two openings at her breasts and a large one on her crotch and inner thighs. It lets her blood-gorged pussy lips hang freely, which she displays proudly.";
						this.armorName = NAUGHTY_NURSES_UNIFORM;
						changed = true;
					}
					break;
			}
			//Talk abouts it mang!
			if (changed) outputText("The fetish cultist's clothing shifts and twists, taking on the appearance of a " + armorName + ".\n\n", false);
			lust += lustVuln * 3;
		}

		private static const FETISHY_OUTFIT:String = "fetishy outfit";

		private function cultistRaisePlayerLust():void {
			//Two text variants!
			if (rand(2) == 0) {
				if (armorName == PERVY_NUNS_CLOTHING) outputText("She suddenly stops chanting and spreads her legs, opening her loose pussy wide with one hand while moaning like a whore.  She toys with her breasts and fondles one of her nipples with her other hand.\n\nDespite yourself,  you can't help but be aroused by the scene.", false);
				if (armorName == NOBLES_CLOTHING) outputText("She suddenly blushes and start giggling, saying: 'Really my lord!' in a suave, submitting voice while pulling down her skirt.  The movement lets you get an even better look down her cleavage, and her breasts appear even fuller than before.\n\nDespite yourself, you can't help but be aroused by the scene.", false);
				if (armorName == SWIMSUIT) outputText("She does a series of lewd stretches, showing off her tightly-clad, sexy body in every possible detail.  In particular, her excited, blood-gorged pussy lips, clearly outlined, seem to be begging for you to come and grope them... and that's just for a start.  Despite yourself, you can't help but be aroused by the scene.", false);
				if (armorName == TEACHERS_OUTFIT) outputText("Obviously very flexible, she arches her back with one hand on her hip, displaying her firm round ass while looking at you with a lascivious expression.  She says in a sexy voice, \"Maybe we should have a... private talk after class...\"  Despite yourself, you can't help but be aroused by the scene.", false);
				if (armorName == NAUGHTY_NURSES_UNIFORM) outputText("Still displaying her figure in her tight suit, she asks with a lewd smile, \"Is there one of your needs I could satisfy, my dear?\"  She grabs one of her firm, full breasts, \"Are you thirsty, maybe?\"  Despite yourself, you can't help but be aroused by the scene.", false);
				if (armorName == FETISHY_OUTFIT) outputText("She suddenly starts posing in sexy outfits.  Despite yourself, you can't help but be aroused by it.", false);
			}
			else {
				outputText("She suddenly starts mauling her shapely breasts, her fingers nearly disappearing briefly in the soft, full flesh, while fingering herself eagerly, emitting a variety of lewd noises.  You are entranced by the scene, the sexual excitement she's experiencing penetrating your body in warm waves coming from your groin.", false);
			}
			game.dynStats("lus", (player.lib/10 + player.cor/20) +4);
			if (player.lust >= player.maxLust())
				doNext(game.combat.endLustLoss);
			else doNext(game.combat.combatMenu);
		}
		private function cultistLustTransfer():void {
			if (lust <= 30 || rand(2) == 0) {
				outputText("Her eyes glaze over, ", false);
				if (player.cor < 40) outputText("and you're almost afraid to know ", false);
				else outputText("and you wish you knew ", false);
				outputText("what she is thinking of since you can almost feel her own lust building.", false);
				lust += 10;
			}
			else {
				outputText("Her eyes glaze over and you feel your mind suddenly becoming filled with a blur of every sexual perversion you could possibly think of, and then some.", false);
				if (player.vaginas.length > 0) {
					outputText("  You feel your " + player.vaginaDescript(0) + " soaking itself in a sudden burst", false);
					if (player.cockTotal() > 0)  outputText(", while a sudden influx of pre-cum blurts out and streams down your " + player.multiCockDescriptLight() + ", painfully hardened by a vast amount of blood rushing to your groin", false);
					outputText(".", false);
				}
				else if (player.cockTotal() > 0) outputText("  A sudden influx of pre-cum blurts out and streams down your " + player.multiCockDescriptLight() + ", painfully hardened by a vast amount of blood rushing to your groin.", false);
				if (player.gender == 0) outputText("  Your genderless body is suddenly filled by a perverted warmth.", false);
				outputText("\n\nYou notice that the young woman seems to have calmed down some.", false);
				game.dynStats("lus", (lust/3 * (1 + player.cor/300)));
				lust -= 50;
				if (lust < 0) lust = 10;
			}
			if (player.lust >= player.maxLust())
				doNext(game.combat.endLustLoss);
			else doNext(game.combat.combatMenu);
		}

		override public function defeated(hpVictory:Boolean):void
		{
			var temp2:Function =null;
			if (player.findStatusEffect(StatusEffects.Feeder) >= 0) temp2 = game.lake.fetishCultistScene.fetishCultistHasAMilkFetish;
			if (hpVictory) {
				outputText("Hurt too much to continue controlling her powers, the cultist collapses helplessly.", true);
			} else {
				outputText("Overwhelmed by her lusts, the cultist loses the ability to control herself and collapses.", true);
			}
			if (player.lust >= 33 && player.gender > 0 && flags[kFLAGS.SFW_MODE] <= 0) {
				outputText("  You realize she'd make a perfect receptacle for your lusts.  Do you have your way with her?", false);
				game.simpleChoices("Sex", game.lake.fetishCultistScene.playerRapesCultist, "", null, "", null, "B. Feed", temp2, "Leave", game.combat.cleanupAfterCombat);
			}
			else {
				if (temp2!=null && flags[kFLAGS.SFW_MODE] <= 0) {
					outputText("  She looks like she might take some of your milk if you offered it to her.  What do you do?", false);
					game.simpleChoices("B. Feed", temp2, "", null, "", null, "", null, "Leave", game.combat.cleanupAfterCombat);
				}
				else game.combat.cleanupAfterCombat();
			}
		}

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean):void
		{
			if (hpVictory){
				super.won(hpVictory,pcCameWorms);
			} else {
				if (pcCameWorms){
					outputText("\n\nThe cultist giggles as she watches you struggling.\n\n", false);
				}
				game.lake.fetishCultistScene.cultistRapesYou();
			}
		}

		override protected function performCombatAction():void
		{
			randomChoice(special1, special2)();
		}

		public function FetishCultist()
		{
			trace("FetishCultist Constructor!");
			this.a = "the ";
			this.short = "fetish cultist";
			this.imageName = "fetishcultist";
			this.long = "The woman across from you has her eyes closed, her hands joined, and seems to be chanting under her breath. She is wearing a religious outfit that closely hugs her curvacious shape, with a skirt so short that you can clearly see her pussy's lips.\n\nShe has clealy lost her grasp on sanity, and filled the void with pure perversion.";
			// this.plural = false;
			this.createVagina(false, VAGINA_LOOSENESS_GAPING, VAGINA_WETNESS_WET);
			createBreastRow(Appearance.breastCupInverse("DD"));
			this.ass.analLooseness = ANAL_LOOSENESS_NORMAL;
			this.ass.analWetness = ANAL_WETNESS_NORMAL;
			this.tallness = 5*12+7;
			this.hipRating = HIP_RATING_AMPLE;
			this.buttRating = BUTT_RATING_LARGE;
			this.skinTone = "pale";
			this.hairColor = "black";
			this.hairLength = 15;
			initStrTouSpeInte(35, 25, 30, 1);
			initLibSensCor(75, 80, 90);
			this.weaponName = "whip";
			this.weaponVerb="whip-crack";
			this.armorName = FETISHY_OUTFIT;
			this.lust = 25;
			this.temperment = TEMPERMENT_LOVE_GRAPPLES;
			this.level = 2;
			this.gems = 5+rand(10);
			this.drop = new WeightedDrop().add(consumables.LABOVA_,1)
					.add(weapons.RIDINGC,1)
					.add(consumables.OVIELIX,2)
					.add(consumables.L_DRAFT,6);
			this.special1 = cultistRaisePlayerLust;
			this.special2 = cultistLustTransfer;
			checkMonster();
		}

	}

}


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

	public class FetishZealot extends Monster
	{

		private static const RELIGIOUS_CLOTHES:String = "religious clothes";
		private static const PIRATE_CLOTHES:String = "pirate clothes";
		private static const MILITARY_CLOTHES:String = "military clothes";
		private static const LEATHER_CLOTHES:String = "leather clothes";
		private static const STUDENTS_CLOTHES:String = "student's clothes";

		override public function combatRoundUpdate():void
		{
			super.combatRoundUpdate();
			var changed:Boolean = false;
			//Fetish Zealot Update!
			switch (rand(5)) {
				case 0:
					//Religious outfit!
					if (armorName != RELIGIOUS_CLOTHES) {
						long = "The zealot is clad in a bizarre set of religious robes.  They are similar to what you've seen on other religious leaders from home, but none of them included the large slit at the front that lets his above average sized human dick stick out of the front.";
						this.armorName = RELIGIOUS_CLOTHES;
						changed = true;
					}
					break;
				case 1:
					//Pirate Outfit
					if (armorName != PIRATE_CLOTHES) {
						this.armorName = PIRATE_CLOTHES;
						long = "You are faced with one of the strangest things you have ever seen in your life.  A stereotypical pirate, who has not replaced his hand with a hook, but rather a collection of sex toys.  You can see at least two dildos, a fleshlight, and numerous other toys that you're incapable of recognizing.";
						changed = true;
					}
					break;
				case 2:
					//Military Uniform
					if (armorName != MILITARY_CLOTHES) {
						long = "In front of you is someone wearing a green military uniform.  They obviously aren't in any military you've ever heard of, as on his shoulder he has emblazoned FF Army Sex Instructor.  It seems you are his latest recruit...";
						this.armorName = MILITARY_CLOTHES;
						changed = true;
					}
					break;
				case 3:
					//Leather fetish shiiiiite
					if (armorName != LEATHER_CLOTHES) {
						long = "The Zealot has taken on an appearance that seems more suitable for the level of perversion he exudes.  He is wearing a full-body suit of leather, with a cock case over his crotch; you can clearly see a large zipper on it.  The zipper handle is far bigger than you think is absolutely necessary.";
						this.armorName = LEATHER_CLOTHES;
						changed = true;
					}
					break;
				case 4:
					//Student
					if (armorName != STUDENTS_CLOTHES) {
						long = "The Zealot seems to have taken on the appearance of a young adult wearing a student uniform of sorts; of course, this isn't any less perverted than any of the other costumes this man wears.  This one includes a number of loose straps that you're certain would cause large sections of his clothes to fall off if somebody pulled on them.";
						this.armorName = STUDENTS_CLOTHES;
						changed = true;
					}

					break;
			}
			//Talk abouts it mang!
			if (changed) outputText("The fetish zealot's clothing shifts and twists, until he is wearing " + armorName + ".\n\n", false);
			lust += lustVuln * 5;
		}

//Special1: Tease
	//See Costumes section for text
	private function zealotSpecial1():void {
		//Costumes
		//This foe periodically switches between outfits; this determines what text is displayed when they use tease.

		//Perverted religious costume;
		if (armorName == RELIGIOUS_CLOTHES) {
			//The zealot is clad in a bizarre set of religious robes.  They are similar to what you've seen on other religious leaders from home, but none that included the large slit at the front that lets his above average sized human dick stick out the front.
			outputText("The zealot cries out \"Child, are you ready to present your offering to the holy rod?\" while indicating his cock sliding between his robes.  The whole scene leaves you distracted for a few moments and significantly aroused.", false);
		}
		//A pirate costume;
		if (armorName == PIRATE_CLOTHES) {
			//You are faced with one of the strangest things you have ever seen in your life.  A stereotypical pirate, who has not replaced his hand with a hook, but rather a collection of sex toys.  You can see at least two dildos, a fleshlight, and numerous other toys that you're incapable of recognizing.
			outputText("The zealot turns to the side holding his prosthetic towards you and doing something that sends the devices spinning and clicking.  So that's how that would work... you find yourself thinking for a few moments before realizing that he had both distracted and aroused you.", false);
		}
		//Military attire;
		if (armorName == MILITARY_CLOTHES) {
			//In front of you is someone wearing a green military uniform.  They obviously aren't in any military you've ever heard of, as on his shoulder he has emblazoned FF Army Sex Instructor.  It seems you are his latest Recruit...
			outputText("He suddenly barks, \"Let's see those genitals, soldier!\" ", false);
			//[player is corrupt]
			if (player.cor > 50) outputText("You eagerly cry out \"Yes, sir!\" and show yourself off to the best of your ability.  The whole act is extremely arousing.", false);
			//[player is not corrupt]
			else outputText("You have no idea why, but you promptly display yourself in the most provocative way possible.  After a moment you realize what you're doing and quickly stop, flushed with embarrassment and arousal.", false);
		}
		//Gimp gear;
		if (armorName == LEATHER_CLOTHES) {
			//The Zealot has taken on an appearance that seems more suitable for the level of perversion he exudes.  He is wearing a full-body suit of leather, with a cock case over his crotch; you can clearly see a large zipper on it.  The zipper handle is far bigger than you think is absolutely necessary.
			outputText("The Zealot turns around and gives you a full view of his tight leather clad body.  He smacks his ass and says \"You like what you see, don't you " + player.mf("stud","slut") + "?\"  You can't help but be incredibly aroused by the scene.", false);
		}
		//Well dressed and well groomed student in uniform;
		if (armorName == STUDENTS_CLOTHES) {
			//The Zealot seems to have taken on the appearance of a young adult wearing a student uniform of sorts; of course, this isn't any less perverted than any of the other costumes this man wears.  This one includes a number of loose straps that you're certain would cause large sections of his clothes to fall off if somebody pulled on them.
			outputText("The Zealot student looks at you a little shyly and sticks a pencil in his mouth while pushing a hand in front of his groin, trying to hide a rather obvious bulge.  The whole scene is rather cute, and you feel incredibly aroused afterwards.", false);
		}
		game.dynStats("lus", (7+rand(player.lib/20+player.cor/20)));
		combatRoundOver();
	}
	//Special2: Lust transfer spell, it becomes more and
	//more likely that he will use this power as his lust gets
	//higher, but he can use it at any time (like the cultist).
	private function zealotSpecial2():void {
		outputText("The zealot suddenly cries out and extends his arms towards you; your mind is suddenly overwhelmed with a massive wave of arousal as images of every kind of fetish you can imagine wash over you, all blended together.  After a moment you are able to recover, but you notice that the Zealot doesn't seem to be as aroused as before.", false);
		game.dynStats("lus", lust/2);
		lust /= 2;
		combatRoundOver();
	}

		override protected function postAttack(damage:int):void
		{
			if (damage > 0){
				outputText("\nYou notice that some kind of unnatural heat is flowing into your body from the wound", false);
				if (player.inte > 50) outputText(", was there some kind of aphrodisiac on the knife?", false);
				else outputText(".", false);
				game.dynStats("lus", (player.lib / 20 + 5));
			}
			super.postAttack(damage);
		}

		override public function defeated(hpVictory:Boolean):void
		{
			game.lake.fetishZealotScene.zealotDefeated();
		}

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean):void
		{
			if (pcCameWorms){
				outputText("\n\nThe fetish cultist ignores the perverse display and continues on as if nothing had happened...", false);
				player.orgasm();
				doNext(game.lake.fetishZealotScene.zealotLossRape);
			} else {
				game.lake.fetishZealotScene.zealotLossRape();
			}
		}

		public function FetishZealot()
		{
			trace("FetishZealot Constructor!");

			this.a = "the ";
			this.short = "fetish zealot";
			this.imageName = "fetishzealot";
			this.long = "The zealot is clad in a bizarre set of religious robes.  They are similar to what you've seen on other religious leaders from home, but none that included the large slit at the front that lets his above average sized human dick stick out the front.";
			// this.plural = false;
			this.createCock(7,1.5);
			createBreastRow(0);
			this.ass.analLooseness = ANAL_LOOSENESS_LOOSE;
			this.ass.analWetness = ANAL_WETNESS_DRY;
			this.createStatusEffect(StatusEffects.BonusACapacity,40,0,0,0);
			this.tallness = 6*12;
			this.hipRating = HIP_RATING_BOYISH+1;
			this.buttRating = BUTT_RATING_TIGHT;
			this.skinTone = "tan";
			this.hairColor = "black";
			this.hairLength = 4;
			initStrTouSpeInte(35, 35, 30, 1);
			initLibSensCor(75, 80, 90);
			this.weaponName = "wavy dagger";
			this.weaponVerb="stab";
			this.weaponAttack = 3;
			this.armorName = RELIGIOUS_CLOTHES;
			this.armorDef = 5;
			this.lust = 25;
			this.lustVuln = 0.75;
			this.temperment = TEMPERMENT_RANDOM_GRAPPLES;
			this.level = 5;
			this.gems = 5+rand(10);
			this.drop = new WeightedDrop().add(armors.C_CLOTH,1)
					.add(consumables.L_DRAFT,4)
					.add(weapons.L_DAGGR,1)
					.add(null,4);
			this.special1 = zealotSpecial1;
			this.special2 = zealotSpecial2;
			checkMonster();
		}

	}

}