code:
package classes.Scenes.Dungeons.Manor
{
	import classes.*;
	import classes.internals.*;
	import classes.GlobalFlags.*;
	import classes.Scenes.Dungeons.Manor;
	import classes.BodyParts.*;
	public class BoneGeneral extends Monster
	{

		override protected function handleFear():Boolean
		{
			outputText("The skeleton seems to be unphased by your display of illusionary terror. It continues its attack as normal!\n\n");
			removeStatusEffect(StatusEffects.Fear);
			return true;
		}

		override protected function handleStun():Boolean{
			outputText("Your foe is too dazed from your last hit to strike back!");
			if (game.monsterArray.length > 1){
				for (var i:int = 0 ; i < game.monsterArray.length; i++) game.monsterArray[i].removeStatusEffect(StatusEffects.GuardAB);
			}
			if (statusEffectv1(StatusEffects.Stunned) <= 0) removeStatusEffect(StatusEffects.Stunned);
			else addStatusValue(StatusEffects.Stunned, 1, -1);

			return false;
		}

		public function canGuard():Boolean{
			if (game.monsterArray.length > 1){
				for (var i:int = 0; i < game.monsterArray.length ; i++){
					if (game.monsterArray[i].hasStatusEffect(StatusEffects.GuardAB)) return false;
				}
				for (i = 0; i < game.monsterArray.length; i++){
					if (game.monsterArray[i].HP > 0 && !(game.monsterArray[i] is BoneGeneral)) return true;

				}
			}
		return false;
		}
		override protected function performCombatAction():void{
			var actionChoices:MonsterAI = new MonsterAI();
			actionChoices.add(eAttack, 2, true, 0, FATIGUE_NONE, RANGE_MELEE_CHARGING);
			actionChoices.add(crushingBlow, 1, !player.hasStatusEffect(StatusEffects.Stunned), 10, FATIGUE_PHYSICAL, RANGE_MELEE_CHARGING);
			actionChoices.add(guardAlly, 1, canGuard(), 0, FATIGUE_NONE, RANGE_SELF);
			actionChoices.exec();

		}

		public function crushingBlow():void{
			outputText("The Bone General raises its enormous mace aloft, and brings it down on the ground next to you, crushing it with a massive, staggering hit!");
			if (!player.stun(rand(2),25)) outputText(" You manage to keep your balance and avoid being stunned by the shockwave.");
			else{
				outputText(" You lose your balance and fall to the ground, becoming <b>stunned</b> in the process!");
			}
			var damage:int = player.reduceDamage(40 + rand(20),this);
			player.takeDamage(damage, true);
		}

		public function guardAlly():void{
			outputText("The Bone General moves back, positioning himself to defend an ally.");
			var choices:Array = new Array();
			for (var i:int = 0; i < game.monsterArray.length; i++){
				if (game.monsterArray[i] is Necromancer && game.monsterArray[i].HP > 0){
					outputText("\nThe Necromancer is protected by the Bone General! Getting an attack on him now will be impossible!");
					game.monsterArray[i].createStatusEffect(StatusEffects.GuardAB, 2, 0, 0, 0);
					return;
				}
			if (!(game.monsterArray[i] is BoneGeneral) && game.monsterArray[i].HP > 0) choices.push(i);
			}
			var target:int = Utils.randomChoice(choices);
				outputText("\n" + game.monsterArray[target].capitalA + game.monsterArray[target].short + " is protected by the Bone General! Getting an attack on " + game.monsterArray[target].pronoun2 + " now will be impossible!");
				game.monsterArray[target].createStatusEffect(StatusEffects.GuardAB, 2, 0, 0, 0);

		}

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean = false):void
		{
				game.dungeons.manor.loseToGeneral();
		}

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

		public function BoneGeneral(noInit:Boolean=false)
		{
			if (noInit) return;
			this.a = "the ";
			this.short = "Bone General";
			this.imageName = "";
			this.long = "Before you stands a hulking giant skeleton, equipped in thick plate armor and wielding a massive rusted mace. Whoever he was during his life, he must have been a terrifying sight.";
			this.initedGenitals = true;
			this.pronoun1 = "it";
			this.pronoun2 = "it";
			this.pronoun3 = "its";
			createBreastRow(Appearance.breastCupInverse("E"));
			this.ass.analLooseness = Ass.LOOSENESS_TIGHT;
			this.ass.analWetness = Ass.WETNESS_DRY;
			this.tallness = 80;
			this.hips.rating = Hips.RATING_AMPLE+2;
			this.butt.rating = Butt.RATING_LARGE;
			this.skin.tone = "dark green";
			this.hair.color = "purple";
			this.hair.length= 4;
			this.armorDef = 60;
			this.armorPerk = "Heavy";
			initStrTouSpeInte(90, 100, 10, 42);
			initLibSensCor(45, 45, 100);
			this.bonusHP = 2000;
			this.weaponName = "spiked mace";
			this.weaponVerb="crush";
			this.armorName = "rusted plate armor";
			this.lust = 0;
			this.temperment = TEMPERMENT_RANDOM_GRAPPLES;
			this.drop = new WeightedDrop();
			this.level = 20;
			this.gems = rand(5) + 100;
			this.lustVuln = 0;
			this.createPerk(PerkLib.BleedImmune, 0, 0, 0, 0);
			this.createPerk(PerkLib.PoisonImmune, 0, 0, 0, 0);
			this.createPerk(PerkLib.Juggernaut, 0, 0, 0, 0);
			this.createPerk(PerkLib.ChargingSwings, 0, 0, 0, 0);
			checkMonster();
		}

	}

}


code:
package classes.Scenes.Dungeons.Manor
{
	import classes.*;
	import classes.internals.*;
	import classes.GlobalFlags.*;
	import classes.BodyParts.*;
	public class BoneJester extends Monster
	{
		public var hidden:Boolean = false;
		public var prevHP:Number = 0;

		override protected function handleFear():Boolean
		{
			outputText("The skeleton seems to be unphased by your display of illusionary terror. It continues its attack as normal!");
			removeStatusEffect(StatusEffects.Fear);
			return true;
		}

		override protected function performCombatAction():void{
			if (prevHP > this.HP) hidden = false;
			prevHP = this.HP;
			var choices:Array = [];
			if (hidden){
				hideInShadows();
				return;
			}
			var actionChoices:MonsterAI = new MonsterAI();
			actionChoices.add(eAttack, 2, true, 0, FATIGUE_NONE, RANGE_MELEE);
			actionChoices.add(hideInShadows, 1, true, 0, FATIGUE_NONE, RANGE_SELF);
			actionChoices.add(harvest, 1, true, 12, FATIGUE_PHYSICAL, RANGE_MELEE_CHARGING);
			actionChoices.exec();

		}

		public function hideInShadows():void{
			if(!hidden){
				outputText("The Jester begins moving out of your sight, and into the darkness.");
			hidden = true;
			}else{
				outputText("The Jester jumps out of the shadows, appearing behind you, and delivering a devastating backstab!");
				hidden = false;
				var damage:int = player.reduceDamage(250 + rand(100),this);
				player.takeDamage(damage, true);
			}
		}

		public function harvest():void{
			outputText("The Jester jumps at you with uncanny speed, attempting to jam his jagged dagger deep into an artery!");
			var result:Object = combatAvoidDamage({doDodge:true,doParry:false,doBlock:false});
			if (result.dodge == EVASION_EVADE) {
				outputText(" You evade the stab, and the skeleton jumps back into a safe range.");
				return;
			}
			else if (result.dodge == EVASION_FLEXIBILITY) {
				outputText(" You twist your body and narrowly evade the stab! The skeleton quickly jumps back into a safe range.");
				return;
			}
			else if (result.dodge == EVASION_MISDIRECTION) {
				outputText(" The skeleton misses the stab, however, tricked by your practiced misdirection!");
				return;
			}
			else if (result.dodge == EVASION_SPEED || result.dodge != null) {
				outputText(" You dash out of the way just in time, and the skeleton fails to land his stab!");
				return;
			}else{
				if (player.bleed(this)) outputText(" Before you can react, he sinks his weapon into a vital area! The blade tears through flesh, puncturing an artery and causing you to bleed profusely!");
				else outputText(" Before you can react, he sinks his weapon into a vital area! Thankfully, your immunity to bleeding prevent the attack from wounding you too much.");
				var damage:int = player.reduceDamage(25 + rand(30),this);
				player.takeDamage(damage, true);
				return;
			}
		}

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean = false):void
		{
			game.dungeons.manor.losetoJester();
		}

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

		public function BoneJester(noInit:Boolean=false)
		{
			if (noInit) return;
			this.a = "the ";
			this.short = "Bone Jester";
			this.imageName = "";
			this.long = "Before you stands a hunched skeleton dressed in a tattered jester's garb. It wields a pair of jagged, curved daggers that look deadly sharp despite their obvious wear. The skeleton twitches and shakes quickly, unable to stand still.";
			this.initedGenitals = true;
			this.pronoun1 = "it";
			this.pronoun2 = "it";
			this.pronoun3 = "its";
			createBreastRow(Appearance.breastCupInverse("E"));
			this.ass.analLooseness = Ass.LOOSENESS_TIGHT;
			this.ass.analWetness = Ass.WETNESS_DRY;
			this.tallness = 80;
			this.hips.rating = Hips.RATING_AMPLE+2;
			this.butt.rating = Butt.RATING_LARGE;
			this.skin.tone = "dark green";
			this.hair.color = "purple";
			this.hair.length= 4;
			this.weaponAttack = 60;
			initStrTouSpeInte(60, 40, 100, 42);
			initLibSensCor(45, 45, 100);
			this.bonusHP = 1000;
			this.armorDef = 0;
			this.weaponName = "jagged daggers";
			this.weaponVerb="slash";
			this.armorName = "Jester's Garb";
			this.lust = 0;
			this.temperment = TEMPERMENT_RANDOM_GRAPPLES;
			this.drop = new WeightedDrop();
			this.level = 20;
			this.gems = rand(5) + 100;
			this.lustVuln = 0;
			this.createPerk(PerkLib.BleedImmune, 0, 0, 0, 0);
			this.createPerk(PerkLib.PoisonImmune, 0, 0, 0, 0);
			checkMonster();
		}

	}

}

license: unknown


code:
package classes.Scenes.Dungeons.Manor
{
	import classes.*;
	import classes.internals.*;
	import classes.GlobalFlags.*;

	public class LethiciteCrystal extends Monster
	{

		override protected function handleFear():Boolean
		{
			removeStatusEffect(StatusEffects.Fear);
			return true;
		}

		override protected function handleStun():Boolean
		{
			removeStatusEffect(StatusEffects.Stunned);
			return true;
		}

		override protected function handleConstricted():Boolean
		{
			removeStatusEffect(StatusEffects.Constricted);
			return true;
		}

		override protected function performCombatAction():void{
			pulse();

		}

		public function pulse():void{
			outputText("The crystal pulses, sending a transparent pink wave outwards. It hits you, and your mind is overwhelmed with memories that aren't yours!\n\n");

			switch (rand(3)){
				case 0:
				outputText("A beautiful girl is riding you fiercely. You're both in a forest clearing. The full moon shines down on her voluptuous body, and, despite the odd blue color, you cannot deny the sexiness of her E-cup breasts, toned thick thighs and piercing golden eyes.\n\n She grinds hard on your cock, covering your crotch and abdomen with prodigious amounts of girl-cum, squeezing your member so hard it makes you moan in delight. You start cumming, and you just can't stop. You cum again and again, her muscles sucking every drop of semen you have to offer.\n\nYou cum too hard, and pass out.");
				break;
				case 1:
				outputText("You're surprised by the sight of a woman riding a horse on the desert's dunes. The night's cold makes traversal even harder than during the day, but you need to investigate. She may be a threat to yourself and your sisters.\n\nMinutes later, she's expertly licking your two pussies while you go down on her. None of your sisters are as skilled with their tongues as this strange woman is! You yell as you cum hard, splattering her face with your pleasure. She doesn't stop licking. Instead, she grabs hold of your nipples and begins milking you, enhancing your pleasure."
				+ "\n\nYou have no idea who this woman is, but you see no problem with enjoying this for a while longer.");
				break;
			case 2:
				outputText("You smell something outside your cave, invading your territory. A woman, although the smell is distinctively... colder. You stomp out of your home to see a blue woman revealed by the moonlight. It's no cow, but her short skirt and voluptuous body is enough to make your cock engorge, the flare widening up in preparation for a good fuck. You prepare to attack her, but you're surprised when she just bends to reveal her glistening pussy instead. You huff with anticipation, throwing your loincloth away."
				+ "\n\nYou ejaculate for the fifth time inside her. This girl is tiny, but she can take a cock like most of the cows you know! You continue rutting, and you're a bit annoyed when you notice her belly hasn't bloated at all. This makes no sense. When you fuck, their bellies are bloated by the second load! In your moment of distraction, the girl turns and pushes you into the ground to begin riding you. She has a wicked smile on her face. You grab her hips and fuck her hard. You might just keep this one forever!");
				break;
			case 3:
				outputText("You leave the tavern, depressed. An entire night trying your hardest to find a cute mouse-girl to take home, and no luck. Maybe you're just the ugliest mouse in the world? You stumble around, drunk, heading home.\n\nSuddenly, you notice you're lost. You've taken a wrong turn and ended up in a forest. You curse your bad luck this night when you hear the rustling of a nearby bush. It's a woman! Not a mouse-morph, but an actual human woman! You stumble back. People have told you humans can be dangerous, especially the ones that can cast spells!"
				+ "\n\nYou start turning, but the blue woman extends her hands, asking you to stop. You comply. The same hand is then lowered to her skirt. She pulls it up, and then lightly strokes her pussy through her panties. She moans, and you can see a small drop of girl-cum stretching from her crotch. You swallow, overwhelmed by lust. Maybe you won't spend this night all alone after all.");
				break;
			}
			outputText("\n\nYou shake your head. You have no idea whose memories are those, but you can't deny the effect that experiencing them had on you.");
			var damage:Number = 20 + rand(35);
			game.dynStats("lus", damage);
			damage = Math.round(damage * player.lustPercent() / 10) / 10;
			outputText(" (" + damage +" lust)");
		}

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean = false):void
		{
			game.dungeons.manor.losetoCrystal();
		}

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

		override protected function outputDefaultTeaseReaction(lustDelta:Number):void{
			if (lustDelta == 0) outputText("\n\n" + capitalA + short + " doesn't seem to be affected in any way.");
			else outputText("\n\n" + capitalA + short + " hums and vibrates, resonating with your erotic display.");
		}

		public function LethiciteCrystal(noInit:Boolean=false)
		{
			if (noInit) return;
			this.a = "a ";
			this.short = "Lethicite Crystal";
			this.long = "Before you stands an altar, adorned with a massive Lethicite crystal. It pulses constantly, washing you with thoughts of sex.";
			this.initedGenitals = true;
			this.pronoun1 = "it";
			this.pronoun2 = "it";
			this.pronoun3 = "its";
			createBreastRow(Appearance.breastCupInverse("flat"));
			this.ass.analLooseness = Ass.LOOSENESS_TIGHT;
			this.ass.analWetness = Ass.WETNESS_DRY;
			this.tallness = 65;
			this.skin.tone = "dark green";
			this.hair.color = "purple";
			this.hair.length= 4;
			this.bonusHP = 100000;
			initStrTouSpeInte(12, 0, 35, 42);
			initLibSensCor(45, 45, 100);
			this.weaponName = "fists";
			this.weaponVerb="tiny punch";
			this.armorName = "leather straps";
			this.lust = 0;
			this.temperment = TEMPERMENT_RANDOM_GRAPPLES;
			this.drop = new WeightedDrop();
			this.armorDef = 100;
			this.level = 20;
			this.gems = rand(5) + 5;
			this.lustVuln = 0.7;
			this.bonusLust = 200
			this.createPerk(PerkLib.Immovable);

			checkMonster();
		}

	}

}


code:
package classes.Scenes.Dungeons.Manor
{
	import classes.*;
import classes.GlobalFlags.kACHIEVEMENTS;
import classes.Scenes.*;
	import classes.internals.*;
	import classes.GlobalFlags.kGAMECLASS;
	import classes.GlobalFlags.kFLAGS;
	import classes.BodyParts.*;

public class NamelessHorror extends Monster
	{
		public var doomLevel:Number = 1;//the power of conjoin increases every four turns.
		public var originalName:String = "";//
		public var playerStats:Array = new Array(0,0,0,0);
		override protected function handleFear():Boolean
		{
			outputText("The creature shrieks at your attempt of illuding him! The sound pierces into your psyche, overwhelming you with vistas of oblivion and doom!\n\n");
			removeStatusEffect(StatusEffects.Fear);
			if (player.hasStatusEffect(StatusEffects.Resolve)) player.removeStatusEffect(StatusEffects.Resolve);
			game.dungeons.manor.testResolve();
			return true;
		}

		override public function handleDamaged(damage:Number,apply:Boolean = true):Number{
			//You don't exist.
			if (player.hasStatusEffect(StatusEffects.Nothingness)){
				if ((game.combat.damageType == game.combat.DAMAGE_MAGICAL_MELEE || game.combat.damageType == game.combat.DAMAGE_MAGICAL_RANGED) && player.inte >= 90){
					if(apply) outputText("You manage to partially overwhelm the eldritch monstrosity's spell and declare yours as real.");
					damage *= 0.4;
				}
 				else damage = 0;
			}
			return damage;
		}

		override protected function handleStun():Boolean
		{
			if (rand(3) == 0){
				outputText("The cyclopean creature undulates, reshaping itself. It seems to have recovered from your stun!\n\n");
				removeStatusEffect(StatusEffects.Stunned);
				return true;
			}else return super.handleStun();
		}

		public function banish():void{
			game.dungeons.manor.banish();

		}

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean = false):void
		{
			game.dungeons.manor.losetoNamelessHorror();

		}

		override public function defeated(hpVictory:Boolean):void{
			clearOutput();
			if(game.silly()){
				outputText("Through miraculous power and luck, you have managed to weaken the horrible creature to submission. It will recover in mere moments and banish you forever, but it might" +
						" be enough to do something that you're sure no other being in the Universe has managed...");
				game.menu();
				game.addButton(0,"Blowjob",areYouFuckingSerious).hint("Charge in and let the Nameless Horror blowjob you.");
                game.addButton(1,"Wait",banish).hint("Better be cautious and wait.");
			}else{
            game.awardAchievement("Lord Shoggoth Postulate",kACHIEVEMENTS.LORD_BRITISH_POSTULATE,true,true);
			doNext(banish);
			}
		}

        private function areYouFuckingSerious():void {
			clearOutput();
			flags[kFLAGS.NH_BJ] = 1;
            if(!player.hasCock()) outputText("You suddenly sprout a temporary cock, because why not.\n\n");
            outputText("Shattered and broken, the horrifying abomination screeches and crumbles. There are no gods, not in the face of your awesome power.\n" +
                    "   \n" +
                    "You approach the amorphous construct, revealing your rigid cock as you do. With every movement that brings you closer, the apparent maw of this creature becomes harder to" +
                    " track. The nature of such monsters presents a complicated interpretation of physical space, yet it will not deter you. You sink your hands into it and thrust your cock forward, letting whatever damnable entity created this guide you to your target.\n" +
                    " \n" +
                    "Familiar screeching rings out again, now muffled by phallic obstruction. It would seem you've succeeded. You demand that the pitiful thing fellate you; you will not hesitate to pummel it further if you have to. Tendrils of fleshy darkness begin to spread onto your body, seemingly consuming you, yet it appears to be complying as well. Moist folds slide across your shaft, starting from the middle and spreading to the base and tip simultaneously. Repeatedly this sensation occurs, always beginning in the middle. Throughout the consistent motions, you feel cloudy fluids spraying gently on every inch of flesh not otherwise being caressed.\n" +
                    " \n" +
                    "Onward still, the tendrils crawl over your body. You know not what it happening to you, only that heavenly bliss awaits. You are a creature of euphoria, floating in seas of" +
                    " black with wisps of rainbow dimly lighting the void. The shuddering of your body suggests orgasm is coming, and you brace yourself, yet time passes on. The core of yourself, beyond the physical, melts and reforms, finally bursting in orgasmic bliss. So sweet and complete, as infinity takes thee.\n");
            game.awardAchievement("Lord Shoggoth Postulate",kACHIEVEMENTS.LORD_BRITISH_POSTULATE,true,true);
            doNext(banish);

        }
		override public function handleCombatLossText(inDungeon:Boolean, gemsLost:int):int
		{
			return 1;
		}

		override protected function performCombatAction():void
		{
			if (maxHP() - HP >= 3500 * (flags[kFLAGS.ASCENSIONING] == 1 ? 1.10 * flags[kFLAGS.NEW_GAME_PLUS_LEVEL] : 1)){
				banish();
				return;
			}
			if (game.combat.combatRound % 5 == 0 && game.combat.combatRound != 0){
				conjoin();
				return;
			}
			var actionChoices:MonsterAI = new MonsterAI();
			actionChoices.add(overwhelm, 1, true, 0, FATIGUE_NONE, RANGE_MELEE_FLYING);
			actionChoices.add(refashionIt, 1, !player.hasStatusEffect(StatusEffects.Revelation) && !player.hasStatusEffect(StatusEffects.Refashioned), 10, FATIGUE_MAGICAL, RANGE_OMNI);
			actionChoices.add(reveal, 0.33, !player.hasStatusEffect(StatusEffects.Revelation) && !player.hasStatusEffect(StatusEffects.Refashioned), 10, FATIGUE_MAGICAL, RANGE_OMNI);
			actionChoices.add(becomeNothingness, 0.5, !player.hasStatusEffect(StatusEffects.Nothingness), 10, FATIGUE_MAGICAL, RANGE_OMNI);
			actionChoices.exec();
		}

		public function overwhelm():void{
			outputText("Dozens of tentacles lash out at you at the same time!\n");
			createStatusEffect(StatusEffects.Attacks, 4, 0, 0, 0);
			if (player.HP / player.maxHP() < 0.4) spe = 40;
			eAttack();
			if (player.HP / player.maxHP() < 0.4) spe = 100;
		}

		public function refashionIt():void{
			outputText("The creature lifts several of its tentacles and points them at you, releasing a wave of eldritch magic that bends light around it!");
			outputText("\nYou're hit by the strange magic, and you're torn apart, broken into small pieces and scattered through the infinite cosmic expanse.");
			outputText("\n\nBefore you can realize your situation, however, you notice you're whole again. You have been remade, restructured!");
			player.takeDamage(25 + rand(50));
			player.createStatusEffect(StatusEffects.Refashioned, 2, 0, 0, 0);
			var lucky:int = rand(3);//picks one stat to get a good nudge.
			playerStats[0] = player._str;
			playerStats[1] = player._tou;
			playerStats[2] = player._inte;
			playerStats[3] = player._spe;
			player._str = 40 + rand(180) + (lucky == 0 ? 30 : 0);
			player._tou = 40 +  rand(180) + (lucky == 1 ? 30 : 0) ;
			player._inte = 40 + rand(180) + (lucky == 2 ? 30 : 0);
			player._spe = 40 +  rand(180) + (lucky == 3 ? 30 : 0);

		}

		public function becomeNothingness():void{
			outputText("The creature shrieks, blasting you with a wave of sound that shakes you to your core. When you recover, you're struck with a strange sensation - it is as if you do not exist at all. You're immaterial, reducing your damage to zero!");
			player.createStatusEffect(StatusEffects.Nothingness, 2, 0, 0, 0);

		}

		public function reveal():void{
			outputText("The creature lifts one of its tentacles and points it at you, releasing an invisible wave that pieces through your mind! You are suddenly blasted with knowledge beyond your comprehension, memories beyond your experience. Your sense of self is overwhelmed, shattered!");
			originalName = player.short;
			player.short = "Ephraim";
			player.createStatusEffect(StatusEffects.Revelation, 2, 50, 0, 0);

		}

		public function conjoin():void{
			outputText("The creature shrieks, causing your vision to blur and space itself to shift and bend in impossible shapes! With this maddening extra-dimensional sight, you glimpse the cosmic reality that tests your core; you are a part of him, and he is a part of you.\n\nThe vision shatters, and so does yourself.");
			player.takeDamage(player.HP * 0.25 * doomLevel, true);
			doomLevel++;

		}

		override public function updateBleed():void{
			var totalIntensity:int = 0;
			var totalDuration:int = 0;
			for (var i:int = 0; i < statusEffects.length;i++){
				if (statusEffects[i].stype.id == "Izma Bleed") {
				//Countdown to heal
				statusEffects[i].value1 -= 1;
				totalDuration += statusEffects[i].value1;
				totalIntensity += statusEffects[i].value2;
				if (statusEffects[i].value1 <= 0) {
				statusEffects.splice(i, 1);
				}
			}
			}
			if (totalDuration <= 0){
					outputText("The wounds you left on " + a + short + " stop bleeding so profusely.\n\n");
				}else{
					var store:Number = (maxHP() * (3 + rand(4)) / 100) * totalIntensity * 0.06;//gotta nerf this, otherwise he'd just melt
					store = game.combat.doDamage(store);
					if (plural) outputText(capitalA + short + " bleed profusely from the jagged wounds your weapon left behind. (" + store + ")\n\n");
					else outputText(capitalA + short + " bleeds profusely from the jagged wounds your weapon left behind. (" + store + ")\n\n");
			}
		}

		public function NamelessHorror()
		{
			this.a = "a ";
			this.short = "Nameless Horror";
			this.pronoun2 = "it";
			this.imageName = "namelesshorror";
			this.long = "A cyclopean abomination stands before you. It is a fifteen feet tall cone-like monstrosity, standing on a writhing mass of tentacles. Pitch black eyes cover most of its cone-like body in irregular patterns, and its 'face' is enclosed by a series of petal-like appendages. A series of tongues occasionally slither out of the enclosure, tasting the air.";
			createBreastRow(Appearance.breastCupInverse("A"));
			this.ass.analLooseness = Ass.LOOSENESS_TIGHT;
			this.ass.analWetness = Ass.WETNESS_NORMAL;
			this.tallness = 180;
			this.hips.rating = Hips.RATING_SLENDER;
			this.butt.rating = Butt.RATING_AVERAGE;
			this.skin.tone = "gray";
			this.skin.type = Skin.PLAIN;
			this.initedGenitals = true;
			//this.skinDesc = Appearance.Appearance.DEFAULT_SKIN_DESCS[Skin.FUR];
			this.hair.color = "white";
			this.hair.length= 0;
			initStrTouSpeInte(100, 100, 100, 150);
			initLibSensCor(40, 50, 100);
			this.weaponName = "tentacle";
			this.weaponVerb = "lash";
			this.fatigue = 0;
			this.weaponAttack = 20;
			this.armorName = "taut flesh";
			this.armorDef = 17;
			this.bonusHP = 99749;
			this.lust = 0
			this.lustVuln = 0;
			this.temperment = TEMPERMENT_LUSTY_GRAPPLES;
			this.level = 60;
			this.gems = 30;
			this.drop = new WeightedDrop();
			checkMonster();
		}

	}

}


code:
package classes.Scenes.Dungeons.Manor
{
	import classes.*;
	import classes.internals.*;
	import classes.GlobalFlags.*;
	import classes.BodyParts.*;
	public class Necromancer extends Monster
	{
		public var hasSummonedElite:Boolean = false;
		public var skellyHordeLocation:int = 1;

		override protected function handleFear():Boolean
		{
			outputText("The necromancer isn't affected by any visions of terror!\n\n");
			removeStatusEffect(StatusEffects.Fear);
			return true;
		}

		//NECROMANCER AI//
		override protected function performCombatAction():void{
			if (game.monsterArray.length > 1){
				for (var i:int = 0; i < game.monsterArray.length; i++){
					if (game.monsterArray[i] is SkeletonHorde){
						skellyHordeLocation = i;
						break;
					}
				}
			}
			if (!hasSummonedElite && HPRatio() < 0.5){
				raiseElite();
				return;
			}
			var choices:Array = [];
			var actionChoices:MonsterAI = new MonsterAI();
			actionChoices.add(raiseDead, 2, game.monsterArray[skellyHordeLocation].unitAmount < 10 &&
			!(flags[kFLAGS.MANOR_PROGRESS] & 512) || game.monsterArray[skellyHordeLocation].unitAmount < 5 &&
			(flags[kFLAGS.MANOR_PROGRESS] & 512), 0, FATIGUE_NONE, RANGE_SELF);
			actionChoices.add(eAttack, 1, true, 0, FATIGUE_NONE, RANGE_MELEE_CHARGING);
			actionChoices.exec();
		}

		public function raiseDead():void{
			outputText("The Necromancer raises his arms, chanting some incantation. \"We are all One, and the One is eternal.\" Several bones move on their own, building themselves into another skeleton!");
			game.monsterArray[skellyHordeLocation].unitAmount++;
			game.monsterArray[skellyHordeLocation].HP += 100;
			game.monsterArray[skellyHordeLocation].bonusHP += 100;

		}

		public function raiseElite():void{
			hasSummonedElite = true;
			outputText("\"Mortality is an illusion of the unenlightened.\" The Necromancer stabs his own arm with his cursed dagger and points to a dark corner of the chamber.\n");
			var choice:Number = rand(2);
			switch (choice){
				case 0:
					outputText("You hear the stomping of the hulking skeleton you've defeated before; the Bone General has been reanimated!");
					game.monsterArray.push(new BoneGeneral);
					break;
				case 1:
					outputText("You hear the jingling of the undead jester's headdress; the Bone Jester has been reanimated!");
					game.monsterArray.push(new BoneJester);
					break;
				case 2:
					outputText("You hear more eldritch whispers coming from the shadows; the Bone Courtier has been reanimated!");
					game.monsterArray.push(new BoneCourtier);
					break;
			}
		}
		//END OF NECROMANCER AI//

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean = false):void
		{
			game.dungeons.manor.losetoNecro();
		}

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

		public function Necromancer(noInit:Boolean=false)
		{
			if (noInit) return;
			this.a = "the ";
			this.short = "Necromancer";
			this.imageName = "necromancer";
			this.long = "Before you stands a towering monstrosity, a being of nightmares. The Necromancer, covered in a red cloak, breathes slowly, sure of its impending victory. Around him stands several bone piles, from which skeletons are assembled to attack you.";
			this.initedGenitals = true;
			this.pronoun1 = "it";
			this.pronoun2 = "it";
			this.pronoun3 = "its";
			createBreastRow(Appearance.breastCupInverse("E"));
			this.ass.analLooseness = Ass.LOOSENESS_TIGHT;
			this.ass.analWetness = Ass.WETNESS_DRY;
			this.createStatusEffect(StatusEffects.BonusACapacity,30,0,0,0);
			this.tallness = 6 * 12 + 10;
			this.hips.rating = Hips.RATING_AMPLE+2;
			this.butt.rating = Butt.RATING_LARGE;
			this.skin.tone = "dark gray";
			this.hair.color = "gray";
			this.hair.length= 4;
			initStrTouSpeInte(90, 100, 80, 160);
			initLibSensCor(10, 10, 100);
			this.weaponName = "clawed fingers";
			this.weaponVerb = "claw";
			this.weaponAttack = 40;
			this.armorName = "crimson cloak";
			this.bonusHP = 2500;
			this.lust = 0;
			this.temperment = TEMPERMENT_RANDOM_GRAPPLES;
			this.drop = new WeightedDrop();
			this.level = 25;
			this.gems = rand(15) + 250;
			this.lustVuln = 0;

			checkMonster();
		}

	}

}


code:
package classes.Scenes.Dungeons.Manor
{
	import classes.*;
	import classes.internals.*;
	import classes.GlobalFlags.*;
	import classes.BodyParts.*;
	public class SkeletonHorde extends Monster
	{
		override public function maxHP():Number{
			return unitAmount * 100;
		}
		override protected function performCombatAction():void
		{
			unitAmount = Math.ceil(HP / 100);

			outputText("\n");
			for (var i:Number = 0; i < unitAmount; i++){
				recombobulateWeapon();
				eAttack();

			}
		}

		public function recombobulateWeapon():void{
			var chooser:Number = rand(4);
			switch (chooser){
				case 0:
				this.weaponVerb = "stab";
				this.weaponName = "pitchfork";
				this.weaponAttack = 50;
				break;
				case 1:
				this.weaponVerb = "slash";
				this.weaponName = "rusty sword";
				this.weaponAttack = 70;
				break;
				case 2:
				this.weaponVerb = "crush";
				this.weaponName = "rusty mace";
				this.weaponAttack = 60;
				break;
				case 3:
				this.weaponVerb = "slap";
				this.weaponName = "femur";
				this.weaponAttack = 30;
				break;
			default:
				this.weaponVerb = "pick";
				this.weaponName = "pickaxe";
				this.weaponAttack = 40;
			}
		}

		override protected function handleFear():Boolean
		{
			outputText("The skeletons aren't affected by any visions of terror!\n\n");
			removeStatusEffect(StatusEffects.Fear);
			return true;
		}

		override public function won(hpVictory:Boolean, pcCameWorms:Boolean = false):void
		{
			game.dungeons.manor.losetoNecro();
		}

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

		public function SkeletonHorde(noInit:Boolean=false)
		{
			if (noInit) return;
			this.a = "the ";
			this.short = "Horde of Skeletons";
			this.imageName = "necromancer";
			this.long = "*Rattling intensifies*";
			this.initedGenitals = true;
			this.pronoun1 = "they";
			this.pronoun2 = "them";
			this.pronoun3 = "their";
			createBreastRow(Appearance.breastCupInverse("E"));
			this.ass.analLooseness = Ass.LOOSENESS_TIGHT;
			this.ass.analWetness = Ass.WETNESS_DRY;
			this.createStatusEffect(StatusEffects.BonusACapacity,30,0,0,0);
			this.tallness = 35 + rand(4);
			this.hips.rating = Hips.RATING_AMPLE+2;
			this.butt.rating = Butt.RATING_LARGE;
			this.skin.tone = "dark green";
			this.hair.color = "purple";
			this.hair.length= 4;
			initStrTouSpeInte(20, 60, 35, 42);
			initLibSensCor(45, 45, 60);
			this.bonusHP = 230;
			this.weaponName = "fists";
			this.weaponVerb="tiny punch";
			this.armorName = "leather straps";
			this.lust = 0;
			this.temperment = TEMPERMENT_RANDOM_GRAPPLES;
			this.drop = new WeightedDrop();
			this.level = 15;
			this.gems = rand(5) + 5;
			this.lustVuln = 0;
			this.createPerk(PerkLib.BleedImmune, 0, 0, 0, 0);
			this.createPerk(PerkLib.PoisonImmune, 0, 0, 0, 0);
			this.unitHP = 100;
			this.unitAmount = 4;
			this.plural = true;
			checkMonster();
		}

	}

}


code:
package classes.Scenes.Dungeons {
public class RandomDungeon extends DungeonAbstractContent{
    public function RandomDungeon() {
    }

    public function generate2DArray(length:int,height:int):Array{
        var map:Array = [];
        for(var i:int = 0;i<height;i++){
            map.push([]);
            for(var j:int = 0;j<length;j++){
                map[i].push(1);
            }
        }
        return map;
    }

    override public function runFunc():void{
        clearOutput();
        dungeons.setDungeonButtons();
        if(game.dungeons.map.walkedLayout.indexOf(dungeons.playerLoc) == -1) game.dungeons.map.walkedLayout.push(dungeons.playerLoc);
        dungeonRooms[dungeons.playerLoc]();
        output.flush();
    }

    public function generateRandomMaze(height:int,width:int):Array{
        var map:Array = generate2DArray(height,width);

        var frontiers:Array = new Array();

        for(var i:int  = 0;i < 1;i++){
            var x:int = rand(height);
            var y:int = rand(width);
            frontiers.push([x,y,x,y]);
           /* frontiers.push([rand(height),rand(width),rand(height),rand(width)]);
            frontiers.push([rand(height),rand(width),rand(height),rand(width)]);
            frontiers.push([rand(height),rand(width),rand(height),rand(width)]);
            frontiers.push([rand(height),rand(width),rand(height),rand(width)]);*/

            while (!(frontiers.length == 0)){
                var f:Array = frontiers.splice(rand(frontiers.length))[0];
                x = f[2];
                y = f[3];
                if ( map[x][y] == 1
                    && map[x+1][y] == 1
                        && map[x+1][y] == 1
                        && map[x+1][y] == 1
                        && map[x+1][y] == 1 )
                {
                    map[f[0]][f[1]] = 0;
                    map[x][y] = 0;
                    if ( x >= 2 && map[x-2][y] == 1)
                        frontiers.push([x-1,y,x-2,y]);
                    if ( y >= 2 && map[x][y-2] == 1)
                        frontiers.push([x,y-1,x,y-2]);
                    if ( x < width-2 && map[x+2][y] == 1 )
                        frontiers.push([x+1,y,x+2,y]);
                    if ( y < height-2 && map[x][y+2] == 1 )
                        frontiers.push([x,y+1,x,y+2]);
                }
            }
        }
        var finalMap:Array = squash2DArray(map);
        return finalMap;
    }

    override public function initRooms():void {
        dungeonRooms = {};
        for(var i:int = 0;i<dungeonMap.length;i++){
            dungeonRooms[i] = function():void{
                outputText("Stuff!");
            }
        }
    }

    //finds an entrance for the random dungeon. It scans the map for edges and crossroads and picks one randomly.
    public function findEntrance():int{
        var possibleIndexes:Array = [];
        var mapModulus:int = Math.sqrt(dungeonMap.length);
        for(var i:int = 0;i<dungeonMap.length;i++){
            var connections:int = 0;
            if(i+1 < dungeonMap.length && dungeonMap[i+1] == 0){
                connections++;
            }
            if(i-1 >= 0 && dungeonMap[i-1] == 0){
                connections++;
            }
            if(i+mapModulus < dungeonMap.length && dungeonMap[i+mapModulus] == 0){
                connections++;
            }
            if(i-mapModulus < dungeonMap.length && dungeonMap[i-mapModulus] == 0){
                connections++;
            }
            if(dungeonMap[i] == 0 && (connections == 1 || connections == 4)){
                possibleIndexes.push(i);
            }
        }
        return possibleIndexes[rand(possibleIndexes.length)];
    }

    public function setEntrance():void{
        var entrance:int = findEntrance();
        dungeonRooms[entrance] = function():void{
            outputText("Welcome to an empty random dungeon.");
            addButton(0,"Leave",leave).hint("Leave.")

        }
        game.dungeons.teleportPlayer(entrance);
    }
    override public function initMap():void{
        this.dungeonMap = generateRandomMaze(6,6);
    }

    public function squash2DArray(array:Array):Array{
        var map:Array = [];
        for(var i:int = 0;i<array.length;i++){
            for(var j:int = 0;j<array.length;j++){
                map.push(array[i][j]);
            }
        }
        return map;
    }

    public function generateRandomDungeon():void{
        game.dungeonLoc = 81;
        menu();
        game.dungeons.startAlternative(this, 0,"Random trash");
        setEntrance();
        game.dungeons.setDungeonButtons();
        runFunc();
    }
}
}