code:
package classes.Scenes.Places.MothCave
{
	import classes.*;
	import classes.BodyParts.*;
	import classes.GlobalFlags.*;
	import classes.internals.*;
	import classes.saves.SelfSaving;
	import classes.saves.SelfSaver;
	import classes.TimeAwareInterface;
	import classes.Items.WeaponLib;

	public class DoloresScene extends BaseContent implements SelfSaving, TimeAwareInterface {
		public var saveContent:Object = {
			doloresProgress: 0, //1 = alive, 2-5 = childhood events, 6-8 = cocoon events, 9+ = teen, 13 = done (for now)
			doloresTimeSinceEvent: 0, //tracks how many hours it's been since an event has fired
			doloresTimesLeft: 0, //tracks how many times you've been a deadbeat [dad]
			doloresDecision: 0, //tracks whether you let her keep the book
			doloresAngry: false, //tracks whether you've upset her somehow
			doloresSex: 0, //tracks whether you've unlocked sex and/or comforted her
			doloresBlowjob: false, //tracks whether you've been blown
			doloresAmbitions: 0, //tracks some progress that's parallel to the main one
			doloresFinal: 0 //tracks results of her final scene
		};

		public function get saveName():String {
			return "dolores";
		}

		public function get saveVersion():int {
			return 1;
		}

		public function load(version:int, saveObject:Object):void {
			for (var property:String in saveContent) {
				if (saveObject.hasOwnProperty(property)) saveContent[property] = saveObject[property];
			}
		}

		public function reset():void {
			saveContent.doloresProgress = 0;
			saveContent.doloresTimeSinceEvent = 0;
			saveContent.doloresTimesLeft = 0;
			saveContent.doloresDecision = 0;
			saveContent.doloresSex = 0;
			saveContent.doloresBlowjob = false;
			saveContent.doloresAmbitions = 0;
			saveContent.doloresFinal = 0;
		}

		public function onAscend(reset:Boolean):void {
			saveContent.doloresProgress = 0;
			saveContent.doloresTimeSinceEvent = 0;
			saveContent.doloresTimesLeft = 0;
			saveContent.doloresDecision = 0;
			saveContent.doloresSex = 0;
			saveContent.doloresBlowjob = false;
			saveContent.doloresAmbitions = 0;
			saveContent.doloresFinal = 0;
		}

		public function saveToObject():Object {
			return saveContent;
		}

		public function loadFromObject(o:Object, ignoreErrors:Boolean):void {
		}

		public function timeChangeLarge():Boolean { return false; }
		public function timeChange():Boolean {
			saveContent.doloresTimeSinceEvent++;
			return false;
		}

		public function DoloresScene() {
			SelfSaver.register(this);
			CoC.timeAwareClassAdd(this);
		}

		public function get doloresProg():int {
			return saveContent.doloresProgress;
		}

		public function get doloresTime():int {
			return saveContent.doloresTimeSinceEvent;
		}

		public function doloresReset():void {
			saveContent.doloresTimeSinceEvent = 0;
		}

		//For her magic progress scene; determines scene availability/what magic you use
		private function doloresMagicDetermine():Number {
			if (player.hasPerk(PerkLib.CorruptedNinetails) || player.hasPerk(PerkLib.EnlightenedNinetails)) return 1;
			if (player.hasPerk(PerkLib.TerrestrialFire)) return 2;
			if (player.hasStatusEffect(StatusEffects.KnowsBlind) && player.cor < 40) return 3;
			if (player.hasStatusEffect(StatusEffects.KnowsMight) && player.cor > 60) return 4;
			if (player.hasStatusEffect(StatusEffects.KnowsTKBlast)) return 5;
			if (player.hasStatusEffect(StatusEffects.KnowsBlind)) return 3;
			if (player.hasStatusEffect(StatusEffects.KnowsMight)) return 4;
			return -1;
		}

		//Laziness
		private function doloresComforted():Boolean {
			return saveContent.doloresSex == 4;
		}

		//Determines if any events will play
		public function encounterDolores():void {
			if (doloresProg == 5 && doloresTime > 168) doloresRunaway();
			else if (doloresProg == 9 && doloresTime > 36) doloresWings();
			else if (doloresProg == 10 && doloresTime > 96) doloresConcerns();
			else if (doloresProg == 11 && saveContent.doloresAmbitions == 2 && doloresTime > 72) doloresSummoning();
			else if (doloresProg == 14 && doloresTime > 48) doloresTapestryGifting();
			else doloresMenu();
		}

		//Progress based events

		//START OF CHILDHOOD EVENTS
		public function doloresPostBirth():void {
			clearOutput();
			outputText("You decide to check in on Sylvia and your new daughter Dolores. Making your way to their home, you wonder what your child will be like. Her mother can be quite the handful, but you have high hopes for your child. As you step into the cave, you hear the soft sound of crying coming from deeper in. Entering the main room, you see Sylvia cradling the baby in her arms, rocking it gently. She softly whispers, [say: Shush now, darling. Mommy's here,] and your daughter does seem to settle down somewhat.");
			outputText("\n\nThe moth-girl glances up at you as you approach and smiles warmly. She raises a finger to her lips before beckoning you closer. Dolores is asleep in her mother's arms, surprisingly quiet for a newborn. Sylvia gets up and gestures for you to accompany her as she works her way deeper into the cave. Making sure not to wake your daughter, you follow her into a room down the hallway. It's fairly bare at the moment, but a wooden crib has been placed in one corner. Sylvia gently lowers the baby into it before silently exiting and leading you back to the main room.");
			outputText("\n\n[b: Dolores has been added to the cave menu.]");
			saveContent.doloresProgress = 2;
			doNext(game.mothCave.caveMenu);

		}

		public function doloresToys():void {
			clearOutput();
			doloresReset();
			outputText("You decide that you'd like to check in on Dolores. It hasn't been very long since her birth, but she already seems to be growing at a remarkable rate, so it seems like a good idea to stop by. As you reach Sylvia's home, the faint sound of her voice echoes from inside of the cave. Entering the main room, you find your daughter sitting next to the bookshelf, her mother crouched down next to her. You see that Dolores is now roughly toddler-sized, her remaining baby fat still giving her a childish appearance.");
			outputText("\n\nSylvia notices your arrival and greets you with a wave before saying, [say: Hello, [name]. I'm showing Dolores a few of the toys my mother got me as a child. Why don't you join us?] Somewhat intrigued, you walk over to where the moth and her daughter are playing, noting that Dolores is oddly quiet for a child at play.");
			outputText("\n\nWanting to get a closer look at what they're doing, you lean in and see that Sylvia has a few toys in her hands and that there are a few others scattered around the young caterpillar. [say: Oh, how about this nesting doll? I loved it when I was your age...] The moth-girl seems to be trying to catch her daughter's interest, but it doesn't look like she's having much success. All four of her arms work in a blur, presenting a bevy of baubles before the caterpillar, but neither the wind-up doll nor the spinning top nor any of the other trinkets seem to appeal to her.");
			outputText("\n\nInstead, she seems to be scanning the books on the shelf next to her. It's clear that she doesn't understand the writing, but still, her eyes glitter as they run across the spines of the old tomes. Dolores glances back at her mother, a mild look of distress gracing her usually stoic face. Her lips part the slightest amount, and she manages to get out an almost silent, [say: Um.]");
			outputText("\n\nHowever, Sylvia doesn't seem to pick up on this. She continues to rummage through the pile of toys, showing signs of desperation as her search fails to turn up anything new. No matter how much the moth lauds her childhood trinkets, it seems that Dolores simply isn't interested in the same things that she was. You should probably do something, but how are you going to resolve this?");
			saveContent.doloresProgress = 3;
			menu();
			addNextButton("Help Sylvia", doloresToysHelp).hint("Assist Sylvia in entertaining your daughter.");
			addNextButton("Teach Reading", doloresToysTeach).hint("Show Dolores how to read.");
			addNextButton("Leave", doloresToysLeave).hint("You don't have time for this.");
		}

		public function doloresToysHelp():void {
			clearOutput();
			outputText("You feel bad for Sylvia, helpless as she is to find something impressive, so you decide to assist her in her attempt to play with your daughter. You kneel down next to the pair and take a look at the assortment of toys that Sylvia has brought out. None of the bright baubles look like they'd do any better at catching Dolores's attention, but just as things start to seem truly hopeless, something at the bottom of the pile catches your eye.");
			outputText("\n\nYou pick up your potential salvation and ask Sylvia about it. She responds, [say: Oh, that's a picture book my mother got me many years ago, not long before she... not long before everything changed.] Sylvia does her best to look chipper, but you can tell by the ache in her eyes that this has dredged up some painful memories. Wanting to save the mood, you tell Dolores that you've got something for her. Her gaze lazily drifts over to yours, the same cool expression on her face as before.");
			outputText("\n\nWhen you show the book to Dolores, however, her eyes immediately light up. She shuffles over to you on her knees, and you sit down next to her. You lean over and hold the book between you, slowly reading out the title, [i: The Enchanted Hunters], while tracing a finger across the letters to show her their sounds. Your daughter stares in open wonder as you start flipping the pages, slowly sounding out each word as you go along, and her look of utter astonishment leaves you in doubt as to whether she's actually getting any of this.");
			outputText("\n\nSylvia sits down on Dolores's other side, joining the two of you. Her soft, soothing voice soon accompanies yours in reading from the book, and your daughter seems delighted to be pampered like this. You and the moth settle into a rhythm, each of you taking turns reading to the eager child. Dolores frequently tries to mimic your pronunciations, to varying effect. You're quite proud when, after half a dozen attempts, she manages to sound out the word \"faerie.\"");
			outputText("\n\nAfter some time, your reading is suddenly interrupted by a yawn coming from your right. You look over to see Dolores rubbing her eyes, evidently tired out from all of this excitement. You smile and pick your daughter up, taking her to her room. When you arrive there, you see that she's graduated from a crib to a bed, in which you promptly place her. As soon as her head hits the pillow, she nods off, the sound of her snoring surprisingly loud. It seems she's noisier asleep than she is awake. You feel a pair of hands on your back and turn to see Sylvia looking at your daughter with a soft smile. The two of you exit her room silently, and you say a short goodbye to Sylvia before heading home.");
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresToysTeach():void {
			clearOutput();
			outputText("You can tell that Sylvia isn't really getting anywhere with the toys, but it seems like you can still salvage this situation. Dolores's eyes are locked onto a particularly thick volume on a shelf far out of her limited reach. Thinking quickly, you pull the book out and see that it's an illustrated encyclopedia. You're not sure how up to date it is, given its yellowed pages and the notable lack of articles on corrupted horrors you see while flipping through it, but it should do the trick.");
			outputText("\n\nYou give Sylvia a subtle nudge, causing her to look up at you in confusion, before turning towards your daughter. Her gaze still hasn't left the book, her mouth now hanging just a bit, and you can't help but let out a small laugh before asking her if she'd like to see it. She vigorously nods her assent, and so you sit down next to the little caterpillar and open the encyclopedia to a random page.");
			outputText("\n\nIt happens to be an article on local fauna. Well, that has certainly changed since this was written, but it should still suffice for entertaining your child. As you start to read from it, Dolores hangs on your every word, amazed at your ability to decipher the cryptic signs crawling across the page. Despite not knowing what they mean, she stretches out a single tiny hand to trace across those magical letters, the other three gripping onto the edge of the book as if it were some grand treasure. Your daughter stares in open wonder as you start flipping the pages, slowly sounding out each word as you go along, and her look of utter astonishment leaves you in doubt as to whether she's actually getting any of this.");
			outputText("\n\nSylvia sits down on Dolores's other side, joining the two of you. Her soft, soothing voice soon accompanies yours in reading from the book, and your daughter seems delighted to be pampered like this. You and the moth settle into a rhythm, each of you taking turns reading to the eager child. Dolores frequently tries to mimic your pronunciations, to varying effect. You're quite proud when, after half a dozen attempts, she manages to sound out the word \"faerie.\"");
			outputText("\n\nAfter some time, your reading is suddenly interrupted by a yawn coming from your right. You look over to see Dolores rubbing her eyes, evidently tired out from all of the excitement. You smile and pick your daughter up, taking her to her room. When you arrive there, you see that she's graduated from a crib to a bed, in which you promptly place her. As soon as her head hits the pillow, she nods off, the sound of her snoring surprisingly loud. It seems she's noisier asleep than she is awake. You feel a hand on your back and turn to see Sylvia looking at your daughter with a soft smile. The two of you exit her room silently, and you say a short goodbye to Sylvia before heading home.");
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresToysLeave():void {
			clearOutput();
			outputText("Well, it doesn't seem like you're going to be much help here, " + (player.cor > 50 ? "and this seems kind of boring anyway" : "however much you might want to") + ". You give one last pitying look to your daughter before telling Sylvia that you're going to leave. [say: Oh,] she says, somewhat downcast. [say: Well, take care, then...] You say your goodbyes to Dolores as well before heading out. As you're exiting the cave, you hear, [say: I'm sorry. I'm sure there's something here...]");
			saveContent.doloresTimesLeft++;
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresTalking():void {
			clearOutput();
			doloresReset();
			outputText("You make your way to Sylvia's cave, all the while thinking about Dolores. She seems like a good kid, but her tendency towards silence is somewhat worrying. Brushing those thoughts aside, you walk into the moth-girl's home.");
			outputText("\n\nSylvia is sitting on her knees a short distance from Dolores, who is attempting to wrestle with a dusty book far too big for her young hands. Examining your daughter, you see that she's grown since you last saw her, now about the size of a seven or eight year old. [say: Oh, hello, [name],] Sylvia says. [say: We're just working on reading right now. Would you like to join us?]");
			outputText("\n\nYou walk over and settle down next to the moth, watching your daughter as she wobbles her way over to the two of you, the heavy book throwing off her balance. When she finally reaches you, she dumps it onto the ground and flops down next to it on her belly, her legs splayed out behind her. You can see by the cover that it's a fantasy novel, although you suppose it could actually be a historical work given the magical nature of Mareth. Dolores flips through the pages at an impressive speed for her age, only occasionally pausing to point at a word for her mother to explain to her. You ask the little caterpillar how she likes the book, to which she responds, [say: Fine.] You try to prod her further, but most of her replies remain monosyllabic.");
			outputText("\n\nSylvia sighs and turns towards you. [say: She's a fast learner, but I can hardly get more than a word at a time out of her. She seems to understand me alright, but talking...] The two of you turn back towards Dolores. The young caterpillar girl looks conflicted, her eyes darting between you and Sylvia nervously. It seems like she's looking for some guidance. What advice should you give her?");
			saveContent.doloresProgress = 4;
			menu();
			addNextButton("It's Okay", doloresTalkingOkay).hint("It's okay to be quiet.");
			addNextButton("ExpressYourself", doloresTalkingExpress).hint("She should learn to make her feelings known.");
			addNextButton("Leave", doloresTalkingLeave).hint("You'd rather not stay.");
		}

		public function doloresTalkingOkay():void {
			clearOutput();
			outputText("You tell your daughter that it's fine if she doesn't always want to talk and that she should never feel pressured into doing something she doesn't want to. You explain that it's perfectly okay for her to be less talkative than others and that both you and Sylvia will love her no matter what. The moth-girl nods her agreement and adds a few additional words of encouragement. You aren't sure that everything you're saying is getting through to her, but it seems like she gets the jist of it, judging by how attentively her eyes are locked to yours.");
			outputText("\n\nWhen you finish your speech, Dolores seems extremely comforted by your words, a slight smile spreading across her usually impassive face. She hops up before rushing over and hugging you, her tiny arms " + (player.tallness > 96 || player.biggestTitSize() > 10 || player.thickness > 75 ? "not even remotely" : "not quite") + " able to wrap around your torso. As she nuzzles you lovingly, you can't help but smile at her display of affection.");
			outputText("\n\nYou're quite surprised when, even with everything that's happened, you hear a faint, hushed whisper coming from your daughter. Despite her voice being muffled by your chest, you manage to make out, [say: Thank you, [Father].] A bit stiff, but it warms your heart nonetheless. You squeeze her tighter before moving a hand up to pat her on the head.");
			outputText("\n\nShe sighs as you gently embrace her, and you look up to see Sylvia smiling at the two of you. The moth-girl drifts over to you and joins the hug from behind Dolores, sandwiching your daughter in between the two of you. The little caterpillar lets out an [say: Eep!], but the warmth of six arms embracing her soon soothes her.");
			outputText("\n\nAfter a precious moment, you step back, releasing Dolores from your arms. You're sad that you have to go so soon, but it seems your daughter is fully hugged-out, judging by the embarrassment evident in her flushed face. You say a short goodbye to her and Sylvia, who responds, [say: Thanks for helping out today.] Dolores simply waves, but her subtle smile tells you everything you need to know. You head off with a heady sense of " + player.mf("paternal", "maternal") + " pride.");
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresTalkingExpress():void {
			clearOutput();
			outputText("You tell your daughter that it's important for her to express herself. Even if she doesn't always want to say anything, letting others know how she feels is a crucial part of healthy relationships. You explain that you and Sylvia want to hear what she has to say because the two of you care about her. You aren't sure that everything you're saying is getting through to her, but it seems like she gets the jist of it, judging by how attentively her eyes are locked to yours.");
			outputText("\n\nDolores seems to take all of this to heart. Her trembling, once nervous, now gives off an air of excitement, her young body almost vibrating with energy. She clenches her fists tight and closes her eyes, her cheeks puffing out just a bit as she builds up the strength to do... whatever it is she's planning on doing.");
			outputText("\n\nFinally, in one great rush of sound, she blurts out, [say: Iwannaseearealfaerie!] You're impressed by her sudden output, but it does take you a moment to figure out what she meant. Once you do, you chuckle and tell her that you'll think about it. It seems that even that is enough for her, and she hops up before rushing over to hug you, her tiny arms " + (player.tallness > 96 || player.biggestTitSize() > 10 || player.thickness > 75 ? "not even remotely" : "not quite") + " able to wrap around your torso.");
			outputText("\n\nShe sighs as you gently embrace her, and you look up to see Sylvia smiling at the two of you. The moth-girl drifts over to you and joins the hug from behind Dolores, sandwiching your daughter in between the two of you. The little caterpillar lets out an [say: Eep!], but the warmth of six arms embracing her soon soothes her.");
			outputText("\n\nAfter a precious moment, you step back, releasing Dolores from your arms. You're sad that you have to go so soon, but it seems your daughter is fully hugged-out, judging by the embarrassment evident in her flushed face. You say a short goodbye to her and Sylvia, who responds, [say: Thanks for helping out today.] Dolores simply waves, but her subtle smile tells you everything you need to know. You head off with a heady sense of " + player.mf("paternal", "maternal") + " pride.");
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresTalkingLeave():void {
			clearOutput();
			outputText("You don't really have anything to add, and " + (player.cor > 50 ? "this is all a bit too dull to hold your interest" : "you have important things to return to anyway") + ". You stand up and walk over to your daughter, leaning down to briefly pat her on the head. You tell her not to worry about this so much before making your exit. As Dolores turns back to her book, you can't help but notice a tinge of disappointment on her face.");
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresMagic():void {
			clearOutput();
			doloresReset();
			outputText("You arrive at Sylvia's home only to find Dolores at the threshold to welcome you instead of her mother. It seems she's sprouted up a few inches since you last saw her, now appearing about ten years old.");
			outputText("\n\nYou're about to give your daughter a greeting, when you're cut off. [say: Good [day], [Father]. It's nice to see you.] Confusion nearly overwhelms you. Was that a full two sentences? And did she really just start talking to you unprompted? She just looks at you in response, frowning slightly. You stare back. [say: Yes, I did,] she says, now with a full-blown pout. A few more seconds pass. [say: Is that... a problem...?] " + (player.cor < 80 ? "Not at all," : "Maybe...") + " but it certainly is surprising");
			outputText("\n\nAs if on cue, Sylvia swoops in to save you. However, she immediately returns to the same topic. [say: Oh, isn't it wonderful? She's a regular chatterbox now!] Dolores grunts. The moth-girl smiles brightly and, turning to you, says, [say: I'm so proud.]");
			outputText("\n\nThe silence drags on just long enough to become awkward before Sylvia claps two of her hands, turns to Dolores, and says, [say: Now then, why don't you have a chat with your [father]? I have to go take care of something.]");
			outputText("\n\n[say: Alright,] she responds—disyllabically! This could take some getting used to.");
			outputText("\n\nSylvia waves briefly before slipping off to a back room. Dolores is still staring at you. You ask her what she's been reading about recently. Her lips curve upwards just a bit, and it seems that this finally brings her out of her shell. [say: Magic,] she says. [say: I've read that people can do all sorts of things, incredible things, just with their own hands and their own powers. Is that really true?] You tell her that it is.");
			outputText("\n\n[say: Wow...] Her violet eyes burn with curiosity, and she thinks for a moment longer, before turning back to you.");
			outputText("\n\n[say: Do </i>you<i> know anything about magic?]");
			saveContent.doloresProgress = 5;
			menu();
			addNextButton("Show Her", doloresMagicShow).hint("Show Dolores some of your own magic.").disableIf(doloresMagicDetermine() < 0, "You don't know any magic that you could use for a demonstration.");
			addNextButton("Book?", doloresMagicBook).hint("Perhaps there is something on Sylvia's shelf which could be of use.");
			addNextButton("Leave", doloresMagicLeave);
		}

		public function doloresMagicShow():void {
			clearOutput();
			outputText("Well, you have just the thing to impress her. Cracking your knuckles in preparation, you start to move your fingers in a rhythmic fashion as you summon forth your magic. ");
			switch(doloresMagicDetermine()){
				case 1:
					outputText("You conjure up a small flame which you then let dance across your digits, swirling and whirling in an impossibly hard to follow pattern. Suddenly, the little mote of " + (player.hasPerk(PerkLib.CorruptedNinetails) ? "purple" : "blue") + " splits into many luminous sparks, which mesmerize your daughter with the trails they trace in the air as they whiz about, before shooting up your wrist and then out of sight.");
					break;
				case 2:
					outputText("You conjure up a puff of green flame from the palm of your hand, holding it up in front of her but taking care not to singe her eyebrows. You then let it flare brighter for a moment, the brilliant fire reflected in your daughter's dazzled eyes, before clasping your fingers shut once more, extinguishing the emerald blaze.");
					break;
				case 3:
					outputText("You conjure up a pure white light at your fingertips, making sure to use less energy than you usually would to blind someone. Its sheer intensity causes your daughter to squint a bit and shield her eyes with her hand, so you flick your fingers and dispel the dazzling glare, though a slight glow remains for a few seconds afterwards.");
					break;
				case 4:
					outputText("Foul energy courses through your hand as it swells with strength, your veins almost throbbing with the power you're sending through them. You flex the now monstrously-muscled appendage, drawing a startled gasp from your daughter as she stares at it. You smirk, wiggle your bloated fingers, and then release the spell, allowing your hand to return to normal.");
					break;
				case 5:
					outputText("You concentrate on a book on a nearby table, stretching your hand out towards it as if trying to grab it. Drawing on your telekinesis, you lift the book off of the table with a wave of force. It floats over an amazed Dolores's head before being deposited into your waiting grasp as you release the spell.");
					break;
			}
			outputText("\n\nWhen your display is finished, your daughter rushes up to you, her eyes almost sparkling in the dim light. She looks as if she has a million questions but no idea where to start. Her lips quiver with potential energy, and for a moment you think she might " + (silly() ? "be broken" : "not be able to continue") + ", but suddenly, the dam breaks, and it all comes out in a flood. [say: How did you do that? Where did you learn it? Can you do it again? Does it hurt? How many times can you do that in a day? Could </i>I<i> do that?] And so on, until eventually you're forced to " + (player.cor > 50 ? "sigh" : "smile") + " and put a hand on her shoulder to stop her.");
			outputText("\n\nShe seems to realize that she's rambling, immediately falling silent and blushing a bit. [say: Apologies, [Father]. Would you... Would you mind teaching me a bit about magic?] You motion over to a chair and the two of you sit down.");
			outputText("\n\nFrom this angle, you suddenly spot Sylvia peering into the room from the back hallway. She gives you a wink as your eyes meet—it seems she was hoping for something like this to happen all along. " + (player.cor < 50 ? "Well, no matter," : "You'll have to have a talk with her later, but") + " you can finish talking with your daughter for now.");
			outputText("\n\nShe listens intently while you explain the basics—the source of your power, what it feels like to use it, and so on—to her, that earlier enthusiasm certainly still alive, but no longer strong enough to provoke another outburst of questioning. As you continue on, you find a genuine wonder in her eyes, a mixture of intense interest and childlike innocence that seems absolutely perfect on her face.");
			doNext(doloresMagic2);
		}

		public function doloresMagicBook():void {
			clearOutput();
			outputText((doloresMagicDetermine() > 0 ? "Unwilling" : "Unable") + " to show her a trick of your own, you instead decide to turn to the sizable collection of books that Sylvia has gathered here. Surely there's [i: something] which you could use to impress your daughter.");
			outputText("\n\nScanning the spines of the assorted books, you find that this collection is fairly eclectic in terms of topic. There's everything from \"Cooking with Caution\" to " + (silly() ? "\"Milking Furries for Fun and Profit,\"" : "\"The Tales of Captain Chronicle,\"") + " but nothing so far that seems appropriate. However, just as you begin to think that you might have to disappoint Dolores, you finally clap eyes on an old, forgotten tome in the top right corner of the bookcase, far out of your daughter's reach, entitled \"Source and Sorcery: the Fundamentals of Magic.\"");
			outputText("\n\nYou pull it out and dust it off a bit before showing the cover to Dolores and ask her if she's read it before. She shakes her head in the negative, so you suggest that the two of you read it together. She nods enthusiastically at this idea, so you direct her over to a nearby chair and then take a seat yourself.");
			outputText("\n\nFrom this angle, you suddenly spot Sylvia peering into the room from the back hallway. She gives you a wink as your eyes meet—it seems she was hoping for something like this to happen all along. " + (player.cor < 50 ? "Well, no matter," : "You'll have to have a talk with her later, but") + " you can finish talking with your daughter for now.");
			outputText("\n\nThe book seems to be focused on the basics—namely the primary sources of magic in Mareth. It details how white magic originates from the rigidity of an organized mind, while black magic comes from raw passion and emotion. You read it aloud to your daughter, and, despite the dry language, she seems to genuinely enjoy it, nodding along as you explain to her as much as you can.");
			outputText("\n\nWhenever relevant, you expand on the information in the book with your own experiences. You've seen some truly incredible things in your time on Mareth, and as a result, you find yourself with a " + (doloresMagicDetermine() > 0 ? "" : "surprising") + " amount of extra information for your daughter. She 'ooh's, 'ahh's, and 'eep's at all the right times, seeming genuinely engaged with your stories.");
			dynStats("int", 1);
			unlockCodexEntry(kFLAGS.CODEX_ENTRY_MAGIC);
			doNext(doloresMagic2);
		}

		public function doloresMagic2():void {
			clearOutput();
			outputText("Eventually, the conversation lulls a bit as you run out of things to say. You watch your daughter sitting there in silence for a short time before your earlier confusion returns to you. While she might not be a \"chatterbox,\" Dolores has still shown marked improvement, but that begs the question of why it was so difficult to get here in the first place.");
			outputText("\n\nYou ask your daughter why she didn't like talking when she was younger. She doesn't even consider the question for very long before saying, [say: Well... most things aren't really worth being spoken.] What? She huffs. [say: Why should one talk more than is needed? Most of the time it is simply a waste of breath. </i>Some<i> people]—she glances towards the hallway—[say: do not know the value of a word.] It seems she's developed a bit of an ego too.");
			outputText("\n\nSteering the conversation towards a more pleasant topic, you continue to talk with your daughter for a while. Eventually, however, it's time for you to go. You shoot Sylvia a glance, prompting her to properly re-enter the room. [say: Hello, dear,] she says to Dolores, [say: did you have a nice talk with your [dad]?]");
			outputText("\n\n[say: Yes.]");
			outputText("\n\n[say: And what did you talk about?]");
			outputText("\n\n[say: ...Magic.]");
			outputText("\n\n[say: Oh, well that must have been very interesting, hmm?]");
			outputText("\n\nYour daughter grunts. She doesn't seem to notice the knowing—maybe even smug—smile on her mother's face.");
			outputText("\n\nYou start to say your goodbyes and go on your way, but Dolores doesn't respond, which, although it wouldn't have been odd all that long ago, seems a bit off, and when you turn to look at her, you notice that she's staring at the ground, looking vaguely glum.");
			outputText("\n\nSylvia winks at you again, puts her hands on her hips, and turns towards her daughter. [say: Now Dolores, we talked about this. What do we say when someone does something nice for us?]");
			outputText("\n\nThe caterpillar-girl rolls her eyes, but runs over and embraces you tightly anyway, mumbling a surprisingly heartfelt, [say: Thank you, [Father],] into your " + (player.tallness > 72 ? "waist" : (player.tallness > 48 ? "chest" : "shoulder")) + ". You pat her on the back before she breaks off, blushing a bit and looking at her feet.");
			outputText("\n\n[say: Come back soon,] Sylvia says. [say: We're always happy to have you here.] Dolores nods fervently in agreement, and the two of them wave goodbye as you exit the cave.");
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresMagicLeave():void {
			clearOutput();
			outputText("You tell your daughter that " + (player.cor < 50 ? "you're sorry, but" : "") + " you can't be of help here. Her eyes slowly droop to her feet, and she only nods in response to your statement. You wait for a minute, but she doesn't seem to have anything else to say, so you say your goodbyes and head towards the mouth of the cave. As you're walking away, you think you hear something from behind you, so you turn back, but catch only a flash of Dolores running into the back hallway.");
			outputText("\n\nYou exit the cave and head home.");
			saveContent.doloresTimesLeft++;
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresRunaway():void {
			clearOutput();
			doloresReset();
			outputText("Deciding that you'd like to see your daughter, you take a look around the dim cave which you've come to think of as a home away from home. She's most likely tucked away in some corner, reading like always. However, Dolores doesn't seem to be in any of her usual haunts, you find. Her spot by the bookcase is notably empty, and her bedroom down the hall is similarly uninhabited. This is somewhat unusual, but there's no reason to panic just yet.");
			outputText("\n\nMaking your way back to the main room, you find Sylvia sitting at a desk, working with some fabric. You greet her, and she gives you a warm smile in response, but when you ask her about Dolores, the moth-girl's expression turns worried. [say: Is she not in her room? I had thought...] The two of you share a look of concern, and in a moment you both shoot up in search of the young caterpillar.");
			outputText("\n\nEventually, you conclude that she is most certainly no longer in the cave, having checked every possible nook you can think of. You reason that she must have left without her mother noticing, but why? Whatever her motive was, you need to find her before [i: she] finds trouble. [say: We'll search together,] Sylvia says, apparently thinking along the same lines. [say: " + (player.canFly() ? "I'm the better flier, so " : "") + "I'll look high, you look low.] Without waiting for objections, the moth takes off in a blur, speeding out through the mouth of the cave.");
			outputText("\n\nFollowing Sylvia out into the bog, you quickly lose sight of the moth as she shoots off into the sky, but there are more pressing matters demanding your attention. You " + (player.cor > 50 ? "angrily" : "worriedly") + " rush through the surrounding mire, your eyes sweeping through gnarled trees and bubbling muck with increasing " + (player.cor > 50 ? "panic" : "frustration") + ".");
			outputText("\n\nThe odds seems stacked against you here, as Dolores could be almost anywhere by now. Your worst fears start to play out as you search for many agonizing minutes without seeing any sign of her, and it's not long before you are scrambling to find anything which could alleviate your growing dread. However, a large tree somewhat hidden in the midst of a nearby thicket suddenly catches your eye. You think you can see some faint light just barely shining through the underbrush at the base of the trunk, and at this point, that's as good a lead as any. Cautiously advancing, you slowly make your way clockwise around the tree to get a better view of the unnatural illumination.");
			outputText("\n\nAs the opposite side of the trunk starts to come into view, you begin to see the outline of a particularly wide hollow in its side. It looks too unnatural for the tree to have grown like this, but there are no visible signs of the bark being cut. The opening forms an entrance to a cavity inside of the tree, which seems to be the source of the light. Keeping your [weapon] at the ready, you " + (player.isNaga() ? "slither" : "step") + " out into full view of the cavity. And then you see her. Dolores is sitting there alone in the hollow, currently unaware of your presence.");
			outputText("\n\nAt the sound of a snapping twig, Dolores looks up at you and softly gasps, her normally impassive face betraying no small amount of guilt. A old and dusty book is spread out on the ground in front of her, but at your approach, she snatches it up and hugs it to her chest. She's brought along a few candles which are now arrayed in front of her, their faint light illuminating the hollow with a dim, eerie light. You could almost mistake this scene for some sort of demonic ritual, and that thought brings you no comfort.");
			outputText("\n\nA complex mix of emotions swirling around inside you, you ask Dolores what she's doing all alone out here. " + (player.cor < 40 ? "She really worried you and Sylvia by running off" : "She should know better than to defy you like this") + ". The caterpillar-girl sighs and squirms around for a moment before finally seeming to muster up enough courage to answer.");
			outputText("\n\n[say: Well... I had surmised that mother might not have approved of my studying... 'unorthodox' texts... so I simply slipped off,] she says, still not looking you in the eye. She seems reticent to give you any more details, so you press her, asking now about the book. At its mention, her eyes shoot up. [say: I-It's nothing!] she says with a notable lack of her characteristic composure. It seems you're on the right track.");
			outputText("\n\nYou summon your sternest glare, and even your unflappable daughter is unable to weather this treatment, succumbing to your scowl with a slump of her shoulders. [say: It is... an ancient tome that I found abandoned in a storage room. I believe that it may be some kind of relic from another world.] A pause. [say: I was... attempting to learn something from it.] Dolores falters for a moment, seeming to mull something over, before continuing, [say: Please, [Father]... may I keep it?] Are you okay with your daughter playing with powers beyond her ken?");
			saveContent.doloresProgress = 6;
			menu();
			addNextButton("Let Her", doloresRunaway2, true);
			addNextButton("Stop Her", doloresRunaway2, false);
		}

		public function doloresRunaway2(let:Boolean):void {
			clearOutput();
			if (let) {
				outputText("Well, it's not like she's " + (silly() ? "ended the world or anything" : "done any major damage yet") + ". Although she is a bit young to be learning about potentially dangerous magic, you tell Dolores that she can keep the book for the moment.");
				outputText("\n\n[say: [b: Really!?]] she exclaims with a childlike glee you haven't seen in her even once so far. Seeming embarrassed by that sudden outburst, she continues much more meekly. [say: U-Um... Thank you, [Father]. I shan't waste this opportunity you've given me.] The bright smile on her face warms your heart, almost making up for all of the trouble she's put you through so far tonight.");
				if (silly()) outputText("\n\n[b: Dolores will remember that.]");
				outputText("\n\nWanting to at least know what you've allowed your daughter to keep, you ask her to let you take a look at the book. She happily hands it over, seeming " + (player.cor > 80 ? ", perhaps foolishly," : "") + " certain that you won't take it from her now that you've given your word. It's incredibly ancient and much heavier than you would have guessed, even considering its considerable number of pages. Turning it around in your hands, you find that the writing on the spine isn't anything you've seen before, but the image on the cover seems to resemble something close to an hourglass. Curious.");
				saveContent.doloresDecision = 1;
			} else {
				outputText("It's just too dangerous for her to meddle with forces outside of her control, especially at such a young age. You tell Dolores to hand the book over. For a moment, you're not sure if she'll comply, but eventually, she drags her feet over to you and thrusts the tome into your waiting hands. It's rare to see her this moody; this must have meant a lot to her.");
				outputText("\n\nEven so, this is the responsible thing to do. When you tell her as much, however, she doesn't seem very interested in listening, let alone responding. She simply stands there in front of you, her fists balled tight and her lip trembling. No matter how much you " + (player.cor < 50 ? "assure her that this is only temporary" : "explain that, as her [father], you know best" ) + ", her expression doesn't brighten one bit. A pity, but she'll understand in time.");
				if (silly()) outputText("\n\n[b: Dolores will remember that.]");
				outputText("\n\nWanting to know just what you've just stopped your daughter from unleashing, you take a look at the book she ran out here to read. It's incredibly ancient and much heavier than you would have guessed, even considering its considerable number of pages. Turning it around in your hands, you find that the writing on the spine isn't anything you've seen before, but the image on the cover seems to resemble something close to an hourglass. Curious.");
				saveContent.doloresDecision = 2;
			}
			outputText("\n\nYour examination is interrupted when something rockets down next to you before sweeping Dolores up in a crushing hug. Sylvia has tears running down her cheeks, and very few of her words are coherent at this point, but you manage to catch a few snatches of things like, [say: Oh, my baby,] and, [say: I'm so... oohhhh...] Eventually, she calms down enough that you can get a word in edgewise, and Dolores breathes a sigh of relief as she's freed from her mother's smothering embrace.");
			outputText("\n\nYou explain the situation and your subsequent decision to the motherly moth, and after only a moment of consideration, she nods and says, [say: Well, I trust your judgement. Thank you so much for saving our daughter, I can't imagine what could have happened if... But no, just thank you.] It's good that she's taking this so well. The three of you then head back towards Sylvia's home, " + (saveContent.doloresDecision == 2 ? "although Dolores still seems somewhat glum, her gait much more sluggish than normal" : "and you can tell how happy Dolores is by the skip in her step, even if her face betrays nothing") + ".");
			outputText("\n\nUpon your arrival, you pause for a moment at the entrance of the cave to make sure everything's okay before heading back off towards camp.");
			doNext(camp.returnToCampUseOneHour);
		}
		//END OF CHILDHOOD EVENTS

		//START OF COCOON EVENTS
		public function doloresPreCocoon():void {
			clearOutput();
			doloresReset();
			outputText("When you go to look for Dolores, you find her doubled over in her room, clutching her stomach with all four arms. Somewhat concerned, you start to [walk] towards her at a brisk pace, but she waves you off with a weak hand, though her face is still locked in a grimace. [say: I'm... alright,] she says between pants. [say: Simply feeling... a bit indisposed.]");
			outputText("\n\nAfter a few more moments of pained wheezing, Dolores manages to shuffle over to her bed and sit down, though the effort seems to have drained her significantly. Apparently having heard the commotion, Sylvia drifts into the room and gasps when she sees her daughter. [say: Oh my, are you all right?]");
			outputText("\n\n[say: I shall live, mother,] she responds, [say: but this is quite uncomfortable. My stomach feels as though it is attempting to turn itself inside out.]");
			outputText("\n\nAt this, Sylvia's eyes light up, and her concerned expression immediately transforms into one far brighter. [say: Oh,] she says, [say: I think I know what this is. It's something that we all have to deal with growing up.] Ah, it appears this was just ordinary " + (silly() ? "\"lady troubles\"" : "growing pains") + " all along. [say: You're going through metamorphosis! That pain is just your organs liquefying and rearranging to prepare you for becoming a full-fledged moth.] Well, maybe not ordinary.");
			outputText("\n\nDolores seems surprisingly calm at this somewhat disturbing news. [say: I see,] she says. [say: Will it take long for this process to occur?]");
			outputText("\n\nSylvia giggles and responds, [say: Oh, no, no. You'll need to start forming a cocoon relatively soon, but it should all be over and done within a week or so.] The caterpillar's only response is a contemplative [say: Hmph,] her gaze turning downwards as she processes this.");
			outputText("\n\nSylvia turns to you and asks, [say: Are you going to stay for this? It may take some time...] Dolores gives you an uncertain, but hopeful look. Will you stay?");
			saveContent.doloresProgress = 7;
			doYesNo(doloresPreCocoonYes, doloresPreCocoonNo);
		}

		public function doloresPreCocoonYes():void {
			clearOutput();
			outputText("You wouldn't miss such an important time in your daughter's life. While you don't know how much of a help you'll be, you're not going to neglect her by running off. Sylvia takes this in with a soft smile, but Dolores's reaction is more pronounced. Her entire face brightens up, and she seems much more comfortable with this entire process now that you've agreed to help her through it.");
			outputText("\n\n[say: Well then,] Sylvia says, [say: we should get started soon. [Name], would you mind helping me move things?] You agree and proceed to assist her in rearranging the furniture in Dolores's room so that there's a large, clear space in the middle for the cocoon to go. Sylvia then excuses herself to retrieve something from storage, leaving you alone with the fidgeting caterpillar.");
			outputText("\n\nStanding next to you in the now quiet room, Dolores seems somewhat nervous, her usual composure cracking as she restlessly rubs her hands together. You take hold of one. You don't know whether it's pride or her standard lack of emotion that prevents her from showing it on her face, but you can clearly tell how much this calms her down by the way the tension in her arm suddenly relaxes. The two of you stand together in silence until Sylvia returns.");
			outputText("\n\n[say: Alright, now take off your dress,] she says.");
			outputText("\n\n[say: Wh— Whuh?] comes your daughter's uncollected response.");
			outputText("\n\nThe moth-girl puts her hands on her hips and explains, [say: Now where exactly did you think silk comes from?]");
			outputText("\n\nYou didn't think someone with skin as dark as Dolores's could turn a proper shade of red, but Mareth brings new surprises every day. Your daughter coughs, turns to you, and says, [say: Thank you for your presence, [Father], but... I think I'm okay now.]");
			outputText("\n\nBefore you would even have the chance to protest, she pushes you towards the threshold, the meager strength in her thin arms still surprising for someone of her age. Sylvia gives you a knowing smile and a wink as you're shuffled out of the room, leaving you alone with Dolores in the hallway. She seems to search for something in the ground between you for a moment, perhaps trying to think up the proper words for something. With resolve written on her face, Dolores then looks up and says, [say: Really, thank you, [Father]. It means a lot that you were willing to be here for me.]");
			outputText("\n\nYou kiss your daughter on the forehead and wish her well before heading on your way, thoughts of her keeping you occupied on the trek back through the bog.");
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresPreCocoonNo():void {
			clearOutput();
			outputText((player.cor < 50 ? "Regrettably, you cannot stay to see your daughter through this transformation" : "You have better things to do than to sit around and watch them make a cocoon.") + " When you tell the two that you're leaving, Dolores does her absolute best to mask her disappointment, but the smallest quiver of her lip manages to sneak through her stoic mask.");
			outputText("\n\nSylvia cuts in by saying, [say: Well, if you need to be somewhere else, we won't keep you. Be safe.] You tell her " + (player.cor < 50 ? "you will" : "not to worry about it") + " before making your way out of the cave and back to camp.");
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresCocoon():void {
			clearOutput();
			doloresReset();
			outputText("As soon as you step into the cave, Sylvia is on you in an instant, her excited babbling almost unintelligible. [say: Oh, [name], so much has happened since you were here! Quickly, quickly, come look!] She drags you by the arm through her home and into Dolores's bedroom. You immediately spot the cause of her elation—a large, white bundle taking up the majority of the room. Upon closer inspection, you see that it appears to be made from fine strands of silk, wrapped tightly into an ovoid blob.");
			outputText("\n\n[say: Isn't it lovely? I never thought I could help make something so beautiful. Thank you for making her with me.] At this last remark, she snuggles up to your arm, grasping it with all four of her own. The two of you simply stand and stare at the cocoon for a moment while you take this all in.");
			outputText("\n\nAfter a while, Sylvia sighs softly before continuing her thought from earlier. [say: It really is extraordinary. There was a time... after my mother died... when I thought I might be the last one of my kind, ever. Sharing this with you... you will never know how much this means to me.] She turns to look at you, her violet eyes burning with an unexpected intensity. [say: <b>Ever.</b>]");
			saveContent.doloresProgress = 8;
			menu();
			addNextButton("Reciprocate", doloresCocoon2, 0).hint("Tell her that you feel the same.");
			addNextButton("Brush Off", doloresCocoon2, 1).hint("You don't feel that strongly for her.");
		}

		public function doloresCocoon2(answer:int):void {
			if (answer == 0) outputText("\n\nYou tell Sylvia that you understand what she's trying to say and that you feel the same. Building this family with her means a lot to you " + (player.hasChildren() ? "even if you already have one" : "") + ", and you wouldn't trade it for anything. With each word, Sylvia's smile grows, and when you finish, she presses her body to yours, seemingly trying to burrow inside of you.");
			else outputText("\n\nIt's very flattering, but you're not quite as crazy about her as she is about you. " + (player.hasChildren() || camp.loversCount() > 1 ? "After all, you have other loved ones waiting for you back at camp. " : "") + "Not wanting to offend the enamored moth, you dance around the topic, but never actually give her declaration a conclusive answer. She seems oblivious to your reticence, holding onto your arm with the same amount of affection as before.");
			outputText("\n\nYou stand there with her a moment longer, casting one last glance at the cocoon before Sylvia tugs on your arm and leads you back to the main room. The two of you sit down, and she asks you, [say: So, was there anything you wanted to do while you're here?]");
			doNext(game.mothCave.encounterCave);
		}

		public function doloresHatches():void {
			clearOutput();
			doloresReset();
			outputText("You make your way to Sylvia's home with ease, the path there now quite familiar to you. The sight of the inviting cave entrance gladdens you, and you hasten inside. Sylvia is sitting on her bed, reading a book yellowed with age. She doesn't look up immediately, but the smile on her face tells you that she's noticed your presence. You stand there for a moment, and just as it starts to get awkward, she snaps the book shut and jumps up to greet you. [say: It's so nice to see you, [name]. Any reason for the—]");
			outputText("\n\nHer usual greeting is suddenly interrupted by a loud thump sounding from somewhere in the back of the cave. The two of you share only a brief look before rushing through the hallway to Dolores's room. When you get there, you see that the cocoon which had previously stood inviolate in the center of the room has fallen on its side as something jostles it from within.");
			outputText("\n\nYou and Sylvia watch the shaking sack with excitement " + (player.cor < 50 ? "and some trepidation" : "") + ", eager to see what's become of your daughter. It trembles and jumps for some time with no apparent change in its surface, but suddenly, a great rip bursts along the side, and a wet figure comes tumbling out.");
			outputText("\n\nYou rush to your daughter's side as she coughs and sputters, clearing her throat. After she's had a few moments to recuperate, she waves you off, and you step back, giving you the opportunity to inspect the changes to her body.");
			outputText("\n\nWhat strikes you first is the new pair of wings sprouting from her back. Although they apparently aren't mature yet, looking fairly droopy on her back, they're still impressive. You can't get a proper look at their pattern like this, as only their vaguely grayish color is discernible. You next become aware of several new \"developments,\" including the swell of her small breasts and curve of her flared hips—it seems she's now well on her way to becoming a woman, as the heat rising to your face will attest. Finally, it appears that she now has fluffy patches, the same color as her hair, adorning her hands, ankles, and neck, just like her mother.");
			outputText("\n\nDolores returns your stare quizzically before looking down and noticing her own nudity, which causes her to blush and cover herself with her hands. [say: I-If you would give me a moment, [Father], I would like to make myself presentable.] You apologize and proceed to vacate the room with Sylvia in order to let Dolores clean herself up.");
			outputText("\n\nAfter a few minutes, the young moth emerges and greets you. Looking at her again, this time with her now-too-small dress, you're struck by her grace and elegance. The maturity of her body suits her far better than did her childhood form, and you're truly proud of how well she's shapen up. All of her earlier embarrassment appears to have evaporated, and it's with a confident stride that she closes the difference between you.");
			outputText("\n\nSylvia quietly excuses herself, giving you the opportunity to speak with Dolores. [say: Hello, [Father],] the moth begins, although she doesn't offer anything else to keep the conversation going. You ask her how she's feeling, as she seemed a bit woozy before. [say: I am quite alright, thank you for asking. While that experience was none too agreeable, I must say that I rather enjoy being grown.] Well, she's still got some way to go, but you'll let her have this moment.");
			outputText("\n\nYou and Dolores talk for some time about various topics before Sylvia reenters the room, a large bundle of something in her arms. As she buzzes over to you, you realize that it's silk—it must be the remnants of the cocoon. [say: Here you go,] Sylvia says. [say: This is yours to do with as you wish] " + (1<0 ? "You do actually know someone who might be able to work with this—the undead seamstress in the bog" : "You don't know anyone who would be able to work with this, but you'll keep an eye out") + ". You " + (player.cor < 50 ? "thank her and then" : "") + " excuse yourself, as it's time for you to return to camp. On your way out, Dolores gives you an unexpected hug. Open displays of affection are quite rare for her, so you happily return it. [say: I love you, [Father].] Your trip home is a pleasant one.");
			//Remember to update the above false with whatever's used to track knowing Marielle when she's added.
			player.createKeyItem("Bundle of Moth Silk", 0, 0, 0, 0); //Can be used by Marielle
			saveContent.doloresProgress = 9;
			doNext(camp.returnToCampUseOneHour);
		}
		//END OF COCOON EVENTS

		//START OF TEEN EVEMTS
		public function doloresWings():void {
			clearOutput();
			doloresReset();
			outputText("You walk into Dolores's room only to be greeted with a shriek of pain. You're surprised, but there doesn't seem to be any immediate danger in the room, just your daughter doubled over next to her bed.");
			outputText("\n\n[say: A-Ah... Damn that hur—] As her face raises to meet yours, she falls suddenly silent, and her look of extreme irritation immediately becomes one of mortification. [say: [Father]! I didn't hear you come in.] She clears her throat, a blush already spreading over her face. [say: I, well... Uhm...] Is there a problem? She winces, you're not sure if in pain or embarrassment, and says, [say: My sincere apologies for cursing.]");
			outputText("\n\nNever mind that, why was she screaming?");
			outputText("\n\n[say: Oh! Yes, my wings are finally growing out.] She turns around and, thanks to her backless dress, you can see her formerly droopy wings are oddly curled, half-engorged with some fluid as they hang behind her. [say: It's a terribly painful process, but mother is—]");
			outputText("\n\nShe's once again interrupted by an abrupt entrance, this time Sylvia's as the frazzled moth swoops into the room with a large, odd-looking contraption in her arms. She practically dumps it onto the floor as she lands, panting roughly. It seems her concern for her daughter outweighs her concern for her lungs as she starts talking despite being severely winded.");
			outputText("\n\n[say: Are you]—*gasp*—[say: alright]—*wheeze*—[say: honey?] Dolores starts assuring her mother, giving you the opportunity to examine the object Sylvia brought in. It's a large rack with several straps of indeterminate purpose along its length. Something about it seems just a bit off, but--it's bondage equipment, you realize. " + (player.cor > 50 ? "You can't deny a certain element of excitement, but nonetheless" : "This is certainly is certainly unexpected, so") + " you ask Sylvia for an explanation.");
			outputText("\n\nBefore she can answer, Dolores jumps in, saying, [say: It's a useful device, to be sure. It will allow me to rest in a more comfortable position while still allowing gravity to do the majority of the work in spreading the meconium.]");
			outputText("\n\nSylvia finally catches her breath, adding, [say: Yes, my mother used it, and her mother before her.] She turns to Dolores. [say: I remember how my unpleasant my experience was, but this should help at least a bit. If you need anything else, don't hesitate to ask.]");
			outputText("\n\nThe younger moth gives her mother a small but nonetheless warm smile. [say: Thank you, mother, but you've already done so much, I don't know what else I could possibly need.] The silence hangs for a few seconds before she glances at you and says, [say: Well then, I appreciate your coming here, [Father], but this will probably take quite some time.]");
			outputText("\n\nShould you do anything before you go?");
			saveContent.doloresProgress = 10;
			menu();
			addNextButton("Offer2Stay", doloresWingsStay);
			addNextButton("Hug", doloresWingsHug);
			addNextButton("Leave", doloresWingsLeave);
		}

		public function doloresWingsStay():void {
			clearOutput();
			outputText("You start to tell Dolores that you'd be glad to stay with her through this process, but before you can even finish, she cuts you off. [say: That is quite alright, [Father]. I won't keep you here any longer.]");
			outputText("\n\nWell that's a surprise, given how much she seemed to want you with her in the past.");
			outputText("\n\n[say: I... would like to handle this on my own. It is well within my capacity to endure some modest pain for a paltry few hours,] she says, somewhat haughtily. Her aloof front doesn't last long before the pretense breaks and she adds, [say: I need to handle this myself. You" + (saveContent.doloresTimesLeft > 0 ? " haven't" : "'ve") + " always been there for me, so I need to prove... prove that I can be alright on my own.]");
			outputText("\n\nYou ask if she's sure.");
			outputText("\n\n[say: Quite,] she responds, a gentle smile gracing her lips. With that, you give Sylvia a brief peck on the lips and exit the cave.");
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresWingsHug():void {
			clearOutput();
			outputText("You [walk] up and wrap your arms around Dolores, drawing her into a close hug. She starts to make a feeble attempt at protest, but quickly realizes that you're not going anywhere. You just hold her there for a while, being careful not to touch her surely sensitive wings. It doesn't take long for Dolores to melt in your embrace and then reciprocate it, her four hands rubbing your back. Out of the corner of your eye, you can just spy Sylvia looking on with a warm smile.");
			outputText("\n\nWhen you eventually pull back, the young moth's eyes look a little wet, and her lower lip trembles just the slightest bit. [say: ...Thank you, [Father],] she says, softly.");
			outputText("\n\nYou have to go soon but make sure to ask if she's okay.");
			outputText("\n\n[say: I will be.]");
			outputText("\n\nWith that, you give Sylvia a brief peck on the lips and exit the cave.");
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresWingsLeave():void {
			clearOutput();
			outputText("You wave goodbye to the two moths and prepare to leave. Dolores doesn't seem too broken up to see you go, a " + (saveContent.doloresTimesLeft > 0 ? "look of resignation" : "stoic look") + " on her youthful face as you give each of the ladies a kiss and then exit the cave.");
			saveContent.doloresTimesLeft++;
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresConcerns():void {
			clearOutput();
			doloresReset();
			outputText("You approach Dolores and try to make conversation like you usually do, but she seems somewhat distant, only nodding along absentmindedly in response. Her eyes repeatedly wander over to her desk, " + (saveContent.doloresDecision == 1 ? "on which sits an old, dusty book which you recognize as the one she stole off with that night" : "which is notably empty, cleared of the various books and scraps of paper that would usually be lying on it") + ".");
			outputText("\n\nYou're trying to figure out how to actually get her attention when, finally, she seems to decide that now is the time to speak up, asking out of the blue, [say: What should you do when you've made a mistake?]");
			outputText("\n\nWell that's relatively cryptic, but she seems deathly serious. Has she made a mistake?");
			outputText("\n\n[say: ...Yes. When I ran away, I...] she says, trailing off.");
			outputText("\n\nThat was some time ago, so the fact that this sudden bout of contrition is happening now is somewhat odd, but she looks like she expects some sort of answer from you. What do you tell her?");
			saveContent.doloresProgress = 11;
			menu();
			addNextButton("It's Okay", doloresConcerns2, 0).hint("Everybody makes mistakes, it's nothing to beat yourself up over.");
			addNextButton("Apologize", doloresConcerns2, 1).hint("It's important to own up to your mistakes and try to make them right.");
			addNextButton("Shouldn'tCare", doloresConcerns2, 2).hint("Who cares what other people think?");
			addNextButton("Shrug", doloresConcerns2, 3).hint("You don't have all the answers.");
		}

		public function doloresConcerns2(choice:int):void {
			switch(choice){
				case 0:
					outputText("\n\nYou tell your daughter that it was no big deal and that she should stop worrying about it. Even you mess up sometimes, but focusing too much on the past is a good way to just make things even worse.");
					outputText("\n\nDolores stares at the ground in front of her for a long time, evidently lost in thought. Eventually, she tilts her head up, a relieved look in her eyes. [say: Thank you, [Father]. That... makes me feel a good deal better about all this.]");
					break;
				case 1:
					outputText("\n\nYou tell your daughter that she has to think of personal accountability. Mistakes happen, but one must own up to them and do everything in their power to fix them. It's only right.");
					outputText("\n\nDolores stares at the ground in front of her for a long time, evidently lost in thought. Eventually, she tilts her head up, a new resolve in her eyes. [say: Yes. I will... make it right.]");
					break;
				case 2:
					outputText("\n\nYou tell your daughter that it's a chore wasting time on what your inferiors think, when you can just do what you want and damn the consequences. You've never found a good reason to grovel and cringe over every broken bone you've left in your path.");
					outputText("\n\nDolores stares at the ground in front of her for a long time, evidently lost in thought. Eventually, she tilts her head up, a new resolve in her eyes. [say: You're right. I... should not worry over what lesser minds think of my actions, so long as I am ultimately in the right. Thank you, [Father].]");
					break;
				case 3:
					outputText("\n\nYou just shrug, as you don't really have any sage advice to offer here.");
					outputText("\n\nDolores stares at the ground in front of her for a long time, evidently lost in thought. Eventually, she tilts her head, a new resolve in her eyes. [say: That's right, I... need to find these answers for myself. Thank you for showing me that, [Father].]");
					break;
			}
			outputText("\n\nA slight shiver runs down her back before her postures shifts back to normal and her features soften once again. [say: Now, what can I do for you?]");
			outputText("\n\nShe seems to have recovered from whatever doubt was afflicting her, but you can't help but notice the moth-girl glancing nervously at " + (saveContent.doloresDecision == 1 ? "that book" : "some drawers along the far wall") + " every so often.");
			doNext(doloresMenu);
		}

		public function doloresSummoning():void {
			clearOutput();
			doloresReset();
			outputText("Dolores isn't in her room.");
			outputText("\n\nHowever, there is a note on her bed, which you pick up. The neat, elegant handwriting on it apologizes for the [say: terrible inconvenience] and goes on for some time about nothing before asking you to [say: come to the spot where it all began] with some urgency, although it doesn't expound on what exactly \"it\" means. However, you imagine that she is referring to the place you found her on the night she ran away, given how much she's been dwelling on that incident as of late.");
			outputText("\n\nScribbled at the bottom in a clearly more rushed script is [say: Don't tell mother,] " + player.mf("which seems strange", "which you'll take to mean Sylvia") + ". You knew that Dolores doesn't always handle things \"normally,\" but is there really any reason to keep this a secret? You pocket the note with a foreboding feeling and make your way out of the cave.");
			outputText("\n\nBut just before leaving, you notice Sylvia sitting on her own, closely examining some silk. Should you say something to her, despite the note's instructions?");
			saveContent.doloresProgress = 12;
			menu();
			addNextButton("Tell Her", doloresSummoningTell).hint("You can trust her.");
			addNextButton("Leave", doloresSummoningDontTell).hint("No, it'd be better not to.");
		}

		public function doloresSummoningTell():void {
			clearOutput();
			outputText("Despite what the note says, you feel like it's the right call to let Sylvia know what's happening. You turn around and [walk] over to her, causing her to put the silk down and give you her full attention.");
			outputText("\n\n[say: Is there anything wrong, [name]? You look troubled.]");
			outputText("\n\nYou give it to her straight, informing her of Dolores's recent behavior along with the note you received just now. Through the story, she keeps a calm face, but you can tell that she's a little bit worried. When you've fully caught her up, she begins to speak again.");
			outputText("\n\n[say: Hmm... Well, thank you for telling me this. But since we don't know what's happening, maybe I should still... Ah, I've got it. I'll follow at a distance and step in only if there's any trouble,] she says. [say: After all, we wouldn't want to upset her for no reason, now would we?]");
			outputText("\n\nShe seems fairly confident that this is the best way to go about things, so the two of you exit the cave in tandem, both worried about whatever awaits you in the bog.");
			saveContent.doloresFinal = 10;
			doNext(doloresSummoning2);
		}

		public function doloresSummoningDontTell():void {
			clearOutput();
			outputText("The note explicitly said not to, and you're not even sure that there's anything to worry about, so you decide not to tell her about the meeting, or whatever this is. She briefly glances up as you start to [walk] towards the exit. The moth-girl doesn't stop you, instead just giving you a smile and a wave.");
			outputText("\n\nMaybe she could have helped you with whatever awaits you in the bog, but you're set on your path now, so you return the wave and move on.");
			doNext(doloresSummoning2);
		}

		public function doloresSummoning2():void {
			clearOutput();
			outputText("You [if (singleleg) slide|step] out into the mire, but notice that it feels quite a bit cooler than normal. In fact, the usually humid air feels oddly dry, and the surrounding flora seems strangely blanched, as if something vital has been sucked out of this place. It could be your imagination, but something definitely feels off about all this.");
			if (saveContent.doloresFinal > 0) outputText("\n\nSylvia gives you one last glance and says, [say: Well then, I'll take off now. Just call if there's any danger or you need me. I'll be with you in a heartbeat.] She manages to shift her frown into a reassuring smile before turning and spreading her wings. You have only a moment to admire their beauty before she shoots off like a dart, quickly flitting out of sight behind the twisted trees.");
			outputText("\n\nWith a shiver, you set out. The going is slow, given that you don't know exactly [i: where] you're going, but " + (saveContent.doloresTimesLeft > 0 ? "you feel obligated to do [i: something], just in case she's in some actual danger" : "you can't let your daughter down, even if it means you'll have to go through hell to do it") + ". Still, the swamp around you is quite impenetrable, giving you no clues as to where you would even start your search.");
			outputText("\n\nYou keep [walking], but the bog stays the same. Every tree looks like the same shriveled wreck, and every thicket you pass could be the one you should be looking for. How are you possibly meant to find it without a map? You can only hope that your strong desire to find your daughter will lead you in the right direction, given Mareth's spacial oddities.");
			outputText("\n\nBut even with this hope, you don't seem to make any progress. It's been many minutes of sludging through the mud, and all you have to show for it is the filth caking your [armor]. Should you try some other method? Perhaps the note has more clues, or perhaps " + (saveContent.doloresFinal > 0 ? "Sylvia could be of some help with her aerial perspective" : "you could try climbing a tree for a better vantage point") + ". But no matter what idea you come up with, you start to become less and less sure that you'll be able to find the meeting place.");
			outputText("\n\nAnd there you see it. The tree stands in the exact same spot, the same thick underbrush surrounding it. However, something has changed from the last time you stood here—the light emitted from inside of the hollow is much brighter now. Whereas before you were just barely able to make it out from amid the brush, this time it flares a bright orange, ebbing and pulsating from some unknown source. Your daughter isn't there to greet you, and you don't hear anything from inside, but she must be here, so you steel your resolve and approach.");
			outputText("\n\nWith some trepidation, you creep around the side of the tree, inching closer and closer to whatever lies beyond...");
			doNext(doloresSummoning3);
		}

		public function doloresSummoning3():void {
			clearOutput();
			outputText("Dolores is sitting in the middle of the cavity just as she did all those weeks ago, and the ritual implements around her look eerily similar, but there's one major difference: whatever she's doing is working this time. The candle flames flicker and bend, as if drawn towards some unseen point. Lines have been drawn on the ground in odd, unfamiliar shapes that you can't quite seem to follow with your eyes. Dim energy crackles menacingly around your daughter's hands, her eyes shut in deep concentration. And in front of her, the book.");
			outputText("\n\n" + (saveContent.doloresDecision == 1 ? "While you did give that to her, she wasn't meant to do anything dangerous with it, and this certainly doesn't look safe." : "But you took that from her! Did she steal it back? Is she really so obsessed with this that she'd defy the will of her parent?") + " You call out to her, and she starts, almost breaking her concentration.");
			outputText("\n\n[say: Don't worry, [Father]! I have this well under control,] she says, through clenched teeth. [say: Just a short while longer, and It'll all be done.]");
			outputText("\n\nYou take a step towards her, but everything suddenly feels slow, as if time itself is slowing down. With a start, you recognize this as the same sensation that you felt after her demonstration. You don't know what that could mean, exactly, other than that this spell might end with similarly unexpected results. As you're considering this, your actions suddenly speed up, and your every impulse feels multiplied tenfold in your motions. This has the side effect of causing you to careen to the ground, unable to properly balance yourself.");
			if (saveContent.doloresFinal > 0) outputText("\n\nBefore you can even call for her, Sylvia wings down from out of the sky to land near you. It seems that she's been watching the situation, so you don't need to explain anything to her. However, the moth fares no better than you in navigating the shifting distortions emanating from the hollow, and she too is quickly thrown off of her feet.");
			outputText("\n\nYou look up at Dolores, who once again is completely engrossed in the ritual. It looks like you'll only have one shot at doing anything to stop this.");
			menu();
			addNextButton("Stop Her", doloresSummoningStop).hint("Try to prevent her from completing the ritual.");
			addNextButton("LetItContinue", doloresSummoningLet).hint("Do nothing.");
			addNextButton("TalkDown", doloresSummoningTalkDown).hint("Maybe you can convince her to stop this madness.");
		}

		public function doloresSummoningStop():void {
			clearOutput();
			outputText("Whatever is going on, you can't let her finish. This ritual is clearly dangerous, and you have no idea what will happen if it is successful, so you start to struggle forward once more.");
			outputText("\n\nDolores sees your movements and recoils backwards. [say: No! No, I'll see this through. If I stop now, you'll never understand!]");
			if (player.str > 90 && player.spe > 90) {
				outputText("\n\nWith an incredible effort, you manage to heave yourself several steps forward in one go. Dolores seems surprised at this feat, but she quickly returns her attention to the spell she's casting. It seems that you won't have any direct interference, so you continue to work your way closer to the young moth. The going is tough, as spatial distortion assault you at every opportunity, forcing you to bend, leap, and balance yourself with no warning.");
				outputText("\n\nEventually, however, you push your way into striking distance. Your daughter is almost in arm's reach, and it's all you have to do to lean forward and put your arms on hers. Her head snaps up, and the look in her eyes is almost inhuman.");
				outputText("\n\n[say: You will not! You...]");
				outputText("\n\nBut all at once, something seems to shift in her face, as if a haze is clearing, and she asks, [say: [Father]?] before stumbling back. As she breaks her concentration, the air around suddenly feels tense, like there's some unreleased energy stuck there.");
				saveContent.doloresFinal += 1;
				doNext(doloresSummoningEnd);
			} else {
				outputText("\n\nDespite your best efforts, you can never quite manage to close the distance between you and your daughter. Your every movement is countered by some odd distortion or another, and you're neither strong nor quick enough to overcome them. When you look up, panting, to see how much progress you've made, you realize that you're no closer to her than when you started. But you [i: know] that you pushed at least a little bit forward. Was this all impossible from the start?");
				outputText("\n\nYou have no more time to consider this, as Dolores seems to be finishing her spell.");
				outputText("\n\n[say: Yes! Finally, you can stop this senseless struggling and bear witness!]");
				outputText("\n\nYou turn towards your daughter with dread as she completes the ritual.");
				doNext(doloresSummoning4);
			}
		}

		public function doloresSummoningLet():void {
			clearOutput();
			outputText("You're not sure if you could stop her even if you wanted to, so you're content to see how this plays out for the moment. After all, maybe everything really is fine. She seems confident that this will work, and you have no reason to doubt her. You simply watch with bated breath as your daughter waves her arms in intricate patterns, slowly coaxing something forth.");
			outputText("\n\nYou don't have to wait long before she looks up with glee and says, [say: Yes! Yes, it's so close!]");
			outputText("\n\nThere's an inexplicable sinking feeling in your gut as Dolores throws her arms up in success.");
			doNext(doloresSummoning4);
		}

		public function doloresSummoningTalkDown():void {
			clearOutput();
			if (saveContent.doloresTimesLeft == 0 && saveContent.doloresSex != 3 && saveContent.doloresFinal > 0) {
				outputText("You take a deep breath and then start talking in a calming voice. You tell Dolores that you love her, care for her, and that you want to see her happy. You say that you're proud of everything that she's done, emphasizing how impressive it is to do something like this given how short a time she's been here. You would even be happy to have her show you something like this under better circumstances. But then you say that this needs to stop.");
				outputText("\n\nAt these words, she shakes herself somewhat free of the trance you've lulled her in to, but it's clear that your words have still meant a lot to her. [say: I... I... No! This is right! I have to do this! I just know, know that... Can you really not see?]");
				outputText("\n\nYou're about to try again when Sylvia pipes up from your side. [say: My dear daughter, we can see very clearly. We see our little girl, capable of wonderful and terrible things. We see her all alone in a forest, about to make a grave mistake. Please, just calm down for now. I'm sure that whatever you're trying to show us, we'll be able to understand if you just talk to us.]");
				outputText("\n\nYour heart thumps in your chest. The only sound in the clearing is the wind whistling through the branches. Sylvia squirms next to you. But slowly, Dolores's arms lower until they rest at her sides. As if by magic, the tense atmosphere dissipates. The energy seems to evaporate as the strange light coming from the hollow becomes normal.");
				outputText("\n\nAnd your daughter lets loose a single sob. She dashes over and throws her arms around Sylvia, bawling into her mother's bosom. [say: I'm so sorry, mother. I'm... I'm...]");
				outputText("\n\nThe older moth girl shushes her and pats her on the back. [say: It's alright. We're here.]");
				outputText("\n\nIt takes some time for Dolores to calm down, but when she does, she steps back, and peace finally settles over the clearing.");
				saveContent.doloresFinal += 1;
				doNext(doloresSummoningEnd);
			} else {
				outputText("You start trying to talk to her, to explain that all of this needs to stop before something really bad happens, but a few words in, your daughter interrupts you.");
				outputText("\n\n[say: No! You don't... You haven't seen it the way I do, but once you have, you'll understand. Don't try to stop me!]");
				outputText("\n\nIt seems you'll have to resolve this another way.");
				menu();
				addNextButton("Stop Her", doloresSummoningStop).hint("Try to prevent her from completing the ritual.");
				addNextButton("LetItContinue", doloresSummoningLet).hint("Do nothing.");
			}
		}

		public function doloresSummoning4():void {
			clearOutput();
			outputText("The energy around Dolores's hands seems to flare before once again coalescing into a ball in between them, just like her last spell. It seems like she's close to completing whatever it is she's trying to do.");
			outputText("\n\n[say: " + (saveContent.doloresDecision == 1 ? "This is what you gave me the book for, don't you see? I'm meant to do this, I... can feel it. It's close." : "I can finally show you what I've been seeing this whole time. You'll understand! When you see it, you'll understand!") + "]");
			outputText("\n\nIt feels like you're being pulled and pushed at the same time, as if space itself is undulating around you. [say: You'll feel what I feel.] For a moment, you see complete and utter darkness, but in the next, everything is lit with a beautiful light, bringing out wondrous hues in the world around you that you've never seen before, almost bringing tears to your eyes. [say: You'll see what I see.] There's something eerie happening just outside the hollow, like the air itself is bunching up, pulling, tearing. [say: You'll know what I know.]");
			outputText("\n\nAnd then there's a flash. Before your eyes, a pinprick of white light appears, which then widens into a jagged line. The line opens into a gash, a rift from which spills inky blackness. You feel the intense urge to turn away, but your eyes are glued to the unsettling sight.");
			outputText("\n\nIn the middle of the clearing floats... you're not sure what to call it. There is an... orb, you suppose, roughly your daughter's size. It simply hovers there, unmoving. You have absolutely no idea what this thing is, but Dolores stares at it in awe.");
			outputText("\n\n[say: Do you see now? I... I've waited so long, yet still I did not expect...]");
			outputText("\n\nThe orb shifts ever so slightly, its hazy outline vibrating erratically, and then settles once again. Everything is quiet. Nothing moves. It's so dark that you're not sure anything is actually there—it looks more like someone punched a hole in the fabric of reality.");
			outputText("\n\nAnd then suddenly it blooms. You feel a slimy, creeping sensation as several long appendages slip out of the center with a wet slurch. The tentacles probe around for a moment, but you notice that the inky blackness of their skin looks more painted than real, and when they move, something is... [i: wrong] about it. Its movements are at once jerky and strangely smooth, as if it is moving in ways you can't even comprehend. Whatever has made its way here is clearly not meant for this world, not beholden to the same laws.");
			outputText("\n\nHowever, after a few moment of aimless flailing, its appendages retract, and it reforms itself into an orb once more. You wait a breath, then another, and then exhale. It seems stable for the moment—or at least, if it's not, you don't know what hope you have—so you consider your options. You could try fighting it directly, or you could ask Dolores to try something, or maybe you could even solve this, if you feel capable enough.");
			menu();
			addNextButton("Fight", doloresSummoningFight).hint("You have no choice but to battle this... <i>thing</i>.");
			addNextButton("AskDolores", doloresSummoningAsk).hint("She brought it here, maybe she can send it back.");
			addNextButton("Use Book", doloresSummoningUseBook).hint("Grab the book from her and solve this yourself.").disableIf(player.inte < 90, "You wouldn't be able to do anything with the book.");
		}

		public function doloresSummoningFight():void {
			clearOutput();
			outputText("Well, there's nothing else for it, so you ready yourself for whatever this thing might throw at you. However, even as you approach with your [weapon] " + (player.weapon == WeaponLib.FISTS ? "out" : "drawn") + ", it doesn't seem to react at all to your presence. Does it even sense you? You're not sure, but you're also not sure if you'd be able to capitalize on that, or even hurt it at all. " + (saveContent.doloresFinal > 10 ? "Sylvia seems preoccupied with protecting Dolores, so it looks like you'll be on your own for this." : ""));
			outputText("\n\nWell, no matter, you " + (player.hasPerk(PerkLib.Revelation) ? "already have some experience fighting things like this" : "have to do [i: something]") + ", so you start your offensive.");
			var monster:Outsider = new Outsider;
			combat.beginCombat(monster);
		}

		public function doloresSummoningAsk():void {
			clearOutput();
			outputText("You ask Dolores if there's anything she can do to reverse whatever she's done. " + (player.cor < 50 ? "You reassure her that anything, no matter how small or seemingly insignificant, might help" : "You demand that she fix this problem, as it's her fault in the first place") + ".");
			outputText("\n\n[say: I-I-I don't know!] she near screams, her eyes wide with fear and wonder. [say: It's so... be...] She starts to lose focus for a moment but quickly shakes her head and returns to the present. [say: There is something, but I'm not so sure...]");
			if (saveContent.doloresFinal > 0) {
				outputText("\n\nBut before you can say anything to her, you hear Sylvia clear her throat to your right, and the two of you turn to look at her.");
				outputText("\n\n[say: Now, I might not be an expert on any of this, but I do know you, Dolores. I have no idea what that thing is, but I believe in you. All of those days spent reading, studying, practicing, all of those nights spent staring up at the stars in wonder, I believe that all of it mattered. Now, go do what you need to.]");
				outputText("\n\nDolores seems transfixed by her mother's words, but at this last command, she snaps out of it, seeming embarrassed by such genuine praise. [say: Yes. Yes, I will... I </i>will<i>.] She turns her attention to the book in her hands, rapidly flipping though pages before suddenly stopping, her finger jabbing at a diagram that doesn't quite look right to your eyes.");
				outputText("\n\n[say: Here. This is the page which details the summoning of the... outsider. While I have not completely deciphered this script as of yet, I can make a reasonable guess that this]—she points to a small circle drawn in the lower right-hand corner with some tiny script scrawled around the edge—[say: should allow me to send it back whence it came.] She nods once in affirmation.");
				outputText("\n\n[say: Alright.] She turns to Sylvia. [say: Mother, would you be able to hold its... attention, if you could call it that? With your speed, you should be able to stay out of danger...]");
				outputText("\n\nSylvia smiles warmly in response. [say: Of course, honey. You just worry about doing whatever you need to do.]");
				outputText("\n\nShe turns to you. [say: And could you help me with the preparations?]");
				outputText("\n\nYou quickly agree, as you're not sure how much time you have before something really bad might happen, and the two of you get to it with no delay. Dolores directs your movements with a crisp, confident voice, and it's not long before you've finished all of the tasks she gives you. When you're both done, there's a circle on the ground similar to the one back in the hollow, but different in ways you can't quite see properly.");
				outputText("\n\n[say: Alright, I will begin now. If this doesn't work, [Father], just know that...]");
				outputText("\n\nShe doesn't finish, and you tell her that there's no time to waste. She nods and closes her eyes, falling into deep concentration. As you watch, your daughter begins to move her arms in a stunning display of dexterity, muttering incomprehensible syllables under her breath. You don't see the same energy gathering around her arms as before, and you start to worry that whatever she's trying to do isn't working, but you hear a sound from behind you, so you turn to look.");
				outputText("\n\nThe orb is reacting. Sylvia still flits around it, still trying to distract it, but you can tell somehow that all of its attention is focused on the young moth behind you. There's a tension in the air, and you feel for all the world like you're at the top of a cliff, staring down at your inevitable doom.");
				outputText("\n\nBut the feeling abates, and the entity recoils back, as if struck by a mighty blow. Dolores does not let up her efforts, continuing to chant as the inky black orb contorts and contracts, becoming smaller by the second. As the reduction becomes more clear, it almost looks like it's bulging around the edges of something, like it's being forced back through a hole too small for it. However, whatever your daughter is doing is strong enough, and the being is eventually pushed all the way through, causing the rift to snap closed with a resounding crack.");
				saveContent.doloresFinal += 2;
				doNext(doloresSummoningEnd);
			} else {
				outputText("\n\nShe trails off, apparently too uncertain of her solution, but you implore her to do anything.");
				outputText("\n\n[say: A-Alright, I'll try... I'll try...]");
				outputText("\n\nDolores doesn't finish, but she does open the book once more and start reading it, her eyes scanning the pages at a frantic speed. Eventually, she seems to alight on what she's looking for, exhaling shakily and putting the book down.");
				outputText("\n\nWithout further explaining what she's doing, she begins a low, guttural chant, her arms swaying rhythmically. You can tell that this isn't the same spell she used to bring the orb here, but you aren't able to determine anything other than that. After a short duration, she raises all four of her hands towards the being and utters a single syllable which you can't quite understand.");
				outputText("\n\nAt her incantation, the tentacles seem to writhe in pain for a moment before becoming sharper, more [i: real], somehow. You ask her what she did.");
				outputText("\n\n[say: Hmm... That should have sent it back, but... I don't think it worked, at least not in the way I had intended. I'm not sure that there's anything else I can do.]");
				outputText("\n\nIt seems you'll have to fight this thing after all.");
				doNext(doloresSummoningFight);
			}
		}

		public function doloresSummoningUseBook():void {
			clearOutput();
			outputText("You tell Dolores that you're better suited to solving this problem and hold out your hand for the book. She meekly turns it over, her gaze glued to the ground. You are just as surprised by its heft as the first time you held it, but there's no time to waste on distractions, so you have Dolores show you the pages she used and begin your examination.");
			outputText("\n\nThe script is entirely unfamiliar to you, and it doesn't seem to be a cipher of any language you know, but there happen to be diagrams next to the entries which serve as instructions for the ritual you presume she used to summon this thing.");
			outputText("\n\nYou're engrossed in studying a particularly interesting picture when a loud noise startles you out of your concentration. You look up to see a writhing appendage snake out from the being and probe its surroundings. When it comes into contact with a tree, the bark is ripped off in ragged strips, leaving behind bare wood which then starts to wither before your very eyes.");
			outputText("\n\nThis thing has to be stopped, and you're not sure how much time you have left. However, you do think that you're close to a breakthrough. You find that one page has a small diagram in the lower right which, if you're seeing it right, could possibly be used to reverse the initial ritual.");
			outputText("\n\nWell, it doesn't look like you have any other options, so you begin, drawing a rough approximation of it in the mud below you. That done, you begin to move your hands in the specified manner, and to your surprise, words that you don't understand come unbidden to your mind. You hurriedly start chanting them, and whatever you're doing at least [i: feels] right.");
			outputText("\n\nThe orb stops all other movements, and in a moment, you can feel it turn its attention towards you. That baleful look drains all of the heat from your body, but you hold fast, continuing to cast this unknown spell. And, as you watch, it begins to work, and the being lets out what you can only interpret as a cry of pain as it's pushed back through the rift. Its bulk bulges around the edge, but you keep at it, and the mass is steadily drained away, sent back whence it came.");
			outputText("\n\nThen, with a small 'pop' and a shockwave that almost knocks you off [if (singleleg) balance|your feet], the tear closes as it's sucked all the way in.");
			saveContent.doloresFinal += 3;
			doNext(doloresSummoningEnd);
		}

		public function doloresSummoningLose():void {
			clearOutput();
			outputText("Space warps around you, knocking you to the ground, and you stay there a moment, panting. You're on the ropes, but you haven't lost yet, and you know that you can't. This thing can't be left to wreak havoc on the world, and there's no one but you to stop it. " + (player.cor > 50 ? "Even if you're not the heroic type, you can't exactly live in this place if it's destroyed." : ""));
			outputText("\n\nYou look at it. It still floats there, imperious, untouchable, ambivalent. What does it want? Does it understand what's going on? Is it even sentient?");
			outputText("\n\nBut these questions are just a distraction, so you jump [if (singleleg) up|to your feet] and dive in for another attack. However, this time, just before you can muster up the strength to follow through on your impulse, an inky tendril shoots out of its body faster than you can blink and hits you straight in the stomach, knocking the wind from you.");
			outputText("\n\nYou have no time to react to the blow before the tentacle wraps around you and lifts you into the air. Your mind rings with abject terror, but there's nothing you can do as you're drawn into the orb, into this otherworldly black mist. As you lose contact with the last bit of Marethian air, a primal fear grips you, and you feel absolutely certain that you're not meant to be here, that your body is not suited for this place.");
			outputText("\n\nHowever, you don't die. There's no sound, and you can't see anything in the billowing black smoke, but you're certainly still conscious. Far from the unthinkable end you were expecting, it's almost... pleasant in here. As if you were resting on a cloud, its gentle caress lulling you into a relaxed state. You feel vague, strange sensations, like you're being probed by the being, but it doesn't quite hurt. It's more like you're being drawn in, held up for inspection by something much, much larger than you. And then, for just a moment, a gargantuan eye opens in front of you.");
			outputText("\n\nYou're on the ground, panting and shouting with panic. But nothing is here, just the bog. What happened there? You pat yourself down, finding everything to be in its proper place. With a start, you realize that you don't see the orb where it last was, so you whirl around, but it appears that it's not even here at all anymore. Could it have returned to wherever it came from? Or has it just slipped out of sight?");
			outputText("\n\nYou simply don't know, but there's nothing left to do but pick yourself back up and assess the situation.");
			saveContent.doloresFinal += 4;
			doNext(curry(combat.cleanupAfterCombat, doloresSummoningEnd));
		}

		public function doloresSummoningWin():void {
			clearOutput();
			outputText("Just as you're wondering what's going to happen next, the orb shudders. All of its tendrils pull back into the main mass, which then squishes and contorts itself in an odd fashion. But as you look, you realize that its volume is steadily decreasing, as if its being drained away. As the reduction increases, it becomes clear why this is happening—this thing appears to be cramming itself back through the rift that it first spilled out of.");
			outputText("\n\nYou keep your [weapon] at the ready just in case, but it really does appear to be leaving of its own volition. You thank whatever merciful god smiled upon you today as the last of the orb is sucked back whence it came, the rift snapping shut with a resounding shockwave. You almost can't believe that things ended this easily.");
			saveContent.doloresFinal += 3;
			combat.cleanupAfterCombat(doloresSummoningEnd);
		}

		public function doloresSummoningEnd(repeat:Boolean = false):void {
			clearOutput();
			if (repeat) {
				outputText("You ask Dolores to tell you what exactly she meant when she was rambling about making you \"understand\" something.");
				outputText("\n\nShe blushes slightly at the question, but responds anyway. [say: Ever since I first found that book, I've felt as if... it were calling to me. I can feel something there, some sort of presence, and it is...] She mulls this over for a moment, apparently struggling to find the proper words. [say: Beautiful,] she finishes. [say: I felt this urge to show everyone that beauty. To make them see it in the same way I do.]");
				outputText("\n\nHowever, at this, she frowns. [say: But there was something more. I felt compelled, bound to this task, and fear gripped me. It felt as though were I not to come here and cast the spell, that some grave misfortune would befall me. I suppose that the book may be dangerous after all...]");
			} else {
				outputText("And everything is normal. You're worried for a moment that it's not over yet, as no grand sign of your success is in sight, but as you observe your surroundings, you're struck by how mundane everything seems again. The tepid heat. Branches softly swaying in the wind. An errant mosquito buzzes its way past your nose, as though the entire world is at peace. And, as you realize, it is. " + (saveContent.doloresFinal%10 > 1 ? "Whatever that thing was, it's gone now, and you let out a breath you didn't even know you were holding." : ""));
				outputText("\n\nDolores runs up to you and throws her arms around you, the impact startling you out of your reverie. Tears flow freely from her eyes, and she almost can't get a word out through them. After roughly a minute of this, she steps back, wipes her eyes, and start to talk.");
				outputText("\n\n[say: [Father], I... I cannot properly express to you how sorry I am, for making you go through all of this. I]—she looks down at the ground, searching for the words—[say: was not quite myself. I don't know what came over me...]");
				if (saveContent.doloresFinal > 10) outputText("\n\nAt this, the older moth-girl chimes in. [say: Well, I'm not always... of my right mind, either, so I know how you feel.]");
				outputText("\n\nWhat do you tell her?");
			}
			//outputText("\n\n" + saveContent.doloresFinal);
			menu();
			if (!repeat) addNextButton("Explanation", doloresSummoningEnd, true).hint("Before you decide anything, you'd like to know why exactly she did all this.");
			addNextButton("It's Okay", doloresSummoningEnd2, 0).hint("While this wasn't the most pleasant experience, you still love her.");
			addNextButton("TryHarder", doloresSummoningEnd2, 1).hint("She shouldn't let this single failure deter her.");
			addNextButton("NeverAgain", doloresSummoningEnd2, 2).hint("You'll forgive her, this time...");
		}

		public function doloresSummoningEnd2(choice:int):void {
			clearOutput();
			switch(choice){
				case 0:
					outputText("You tell your daughter that everything is okay. Nobody got hurt, and nothing particularly bad happened in the end. Everyone makes mistakes, but that's how people learn. As long as she takes this experience as a lesson and doesn't repeat her blunders, then you could even look at this as a net positive.");
					outputText("\n\nDolores bears a soft smile, her eyes a bit misty. [say: Thank you, [Father]. I don't know that I deserve someone to cheer me up right now, but still you're there for me.] Tears in her eyes, but a smile on her face, she takes off into the bog, her small wings beating with genuine joy.");
					break;
				case 1:
					outputText("You tell your daughter that despite how wrong things may have gone, she was clearly on the cusp of something grand. Failure should not make one wary of success, and all progress must inevitably come at a price. All things considered, this one was relatively light for how fascinating and novel this magic seems to be.");
					outputText("\n\nAs you say all of this, Dolores's eyes remain wide-open, entranced by your mesmerizing words. When you finish, it seems like she doesn't really know how to react. [say: Yes. [Father]... I will do better, for you. I will overcome this. Thank you.] She takes off with purpose, her small wings carrying her towards a brighter future.");
					break;
				case 2:
					outputText("You tell your daughter that just this once, you won't punish her for her impudence. But only this once. She recklessly endangered not just you, but potentially the entire world. This was a grave error, one that you won't soon forget, and she would do well to make certain that she never again puts you in this position, or else your reaction might not be as pleasant.");
					outputText("\n\nDolores stands before you, trembling with shame. [say: Yes, [Father]. I will be better. I am sorry.] With this, she takes off into the bog, her small wings bearing her off somewhere where she can lick her wounds.");
					break;
			}
			if (saveContent.doloresFinal > 10) outputText("\n\nYour moth lover drifts over to you, draping her weary arms over your shoulders. [say: Well that was certainly quite the experience. Enough excitement for one day, I imagine?] You agree. [say: Well as much as I would like to drag you back for a round of stress-relief, I won't keep you any longer.] She gives you a peck on the lips before flitting off in the same direction as Dolores, back towards their cave, you presume.");
			outputText("\n\nOnce everything is silent in the clearing, your arms slump, and all of the exertion and stress of the past few hours hits you at once. You feel like you could almost fall asleep right here, but you know that you have to get back to camp before that can happen. With weary satisfaction, you set off, though you are still worried about how Dolores will take all this.");
			doNext(camp.returnToCampUseTwoHours);
		}

		public function doloresTalkAfter():void {
			clearOutput();
			doloresReset();
			outputText("You [walk] back to the cave with some consternation, unsure of what the situation will be like when you get there.");
			if (saveContent.doloresFinal > 10) {
				outputText("\n\nBut the moment you enter the cave, you're immediately entangled by four lithe arms. The moth they're attached to happily nuzzles your chest for a moment before pulling back.");
				outputText("\n\n[say: [Name]! It's so nice to see you.] She's silent for a beat. [say: Recent events have... reminded me how much I treasure you.]");
				outputText("\n\nShe thinks for a moment longer before adding, [say: How much I treasure your trust,] following it up with a quick kiss.");
			} else {
				outputText("\n\nAnd as soon as you [if (singleleg) slither|step] into the cave, you feel a looming presence behind you. You whirl around, but there's nothing there. Must be imagin—");
				outputText("\n\n[say: [Name].]");
				outputText("\n\nSylvia stands to your side, arms crossed and a conflicted look on her face.");
				outputText("\n\n[say: I... Dolores told me what happened. Please, if our daughter is in danger, tell me. You... you can trust me, right?]");
			}
			outputText("\n\nSylvia takes your hand and leads you into the main room, where you immediately spot Dolores sitting at a table, looking pensive. She doesn't look at you, but you can tell she's acknowledged your presence by the way her shoulders slump as you draw near. The book is on the table in front of her, as yellowed and worn by age as ever.");
			outputText("\n\nYou walk over and sit down next to her, but neither of you starts talking at first. Her hands fiddle with each other in front of her, but it might be necessary for you to start this conversation. Surprisingly, however, she chooses that moment to start out, though her voice is still a bit shaky.");
			outputText("\n\n[say: Well I suppose you want to talk about what happened...]");
			saveContent.doloresProgress = 13;
			menu();
			addNextButton("You Do", doloresTalkAfterYes).hint("You <i>would</i> like to know a bit more.");
			addNextButton("No Need", doloresTalkAfterNo).hint("She doesn't need to say anything");
		}

		public function doloresTalkAfterYes():void {
			clearOutput();
			outputText("You do want to talk, as you let her know. Dolores nods, but does nothing more.");
			outputText("\n\nIt seems like you'll have to be the one to start. But what to ask?");
			menu();
			addNextButton("Book", doloresTalkAfterAnswer, 0).hint("Ask about the book she used in the ritual.");
			if (saveContent.doloresFinal%10 > 1) addNextButton("Thing", doloresTalkAfterAnswer, 1).hint("Ask about that being she summoned.");
			addNextButton("Again?", doloresTalkAfterAnswer, 2).hint("Ask if anything she'll be doing anything like this again.");
			addNextButton("Sneak", doloresTalkAfterAnswer, 4).hint("Why did she do this so secretively?");
			addNextButton("Done", doloresTalkAfterAnswer, 3).hint("You're done with your questions.");
		}

		public function doloresTalkAfterAnswer(question:int):void {
			clearOutput();
			switch(question){
				case 0:
					outputText("You inquire about the old tome that caused all this.");
					outputText("\n\n[say: Ah,] she says, [say: that. Well, as I told you, I found it in a storage room, long forgotten. From what I've been able to decipher of the script, it seems to be a guide to accessing realms beyond our own.] You ask her why anyone would want to do that. [say: As you probably experienced during the... incident]—she winces a bit saying this word—[say: various anomalous effects can occur around the site of a rift. I believe that whoever wrote this book was trying to harness the power of these anomalies.]");
					outputText("\n\nInteresting stuff, but does it actually work?");
					outputText("\n\n[say: Hmm. I'm not sure, exactly. And I'm not sure that I want to find out. When I look at that book I... feel myself losing control.] She glances at it now, and you can see the shiver run down her back. [say: I hate that feeling.]");
					outputText("\n\nShe doesn't have anything else to say on this subject.");
					break;
				case 1:
					outputText("You ask Dolores what exactly it was that she brought here. She's fairly hesitant to answer this one, though you don't know if it's because of reluctance or if she doesn't really know, herself. Eventually, however, she does seem to muster some sort of explanation, starting out nervously.");
					outputText("\n\n[say: Outside of Mareth, outside of all realms, there lies a vast expanse of nothingness. It is a place completely incomprehensible to us, with none of the same laws as our worlds. There are... creatures that lurk in that dark space.] And that was one of them? [say: Yes, but... it didn't appear to be 'whole,' exactly. I believe that I was only able to pull a small part of it through. Thank the heavens that the full thing...]");
					outputText("\n\nShe trails off, looking guiltily at the ground, and it seems like a good time to change the topic.");
					break;
				case 2:
					outputText("You ask Dolores for confirmation that this was a one-time thing, as you're not sure if you'd want to go through that all over.");
					outputText("\n\nAt your inquiry, she blushes, and you catch the briefest flicker of indignation before she becomes once again remorseful. A shaky sigh slips out of her lips, and she starts to speak. [say: I... believe so. That 'episode' won't be repeated, as long as I still have my wits about me. I am... ashamed of how I acted.] She offers up nothing more, her gaze fixed on the far wall. Dwelling on past mistakes is painful for her, you sense.");
					outputText("\n\nTalking about this seems to embarrass her, so it's probably time to move on.");
					break;
				case 3:
					outputText("You tell Dolores that you have nothing else to ask, and she nods. She continues to sit there silently, not quite meeting your eyes, and the atmosphere is just beginning to grow awkward when she suddenly speaks of her own volition.");
					outputText("\n\n[say: One final thing.]");
					outputText("\n\nTwo of her arms reach out and hesitantly touch the book, as if it would burn them. Then, taking firm hold of it, Dolores lifts it up and thrusts it at your chest. [say: I'd like you to have this. " + (saveContent.doloresDecision == 1 ? "Thank you for letting me keep it at all." : "For good, this time.") + "] She looks up into your eyes, a deep trust evident in her face.");
					outputText("\n\nRather than say anything more, she wraps all four arms around you in a hug. So close, you catch the faintest whiff of her unfamiliar scent, finding it strangely soothing. She holds you tightly for some time, gently nuzzling you, and you relax. After a few minutes, she pulls back, a slight smile on her face.");
					outputText("\n\n[say: Take care, [Father].]");
					outputText("\n\nAnd with that, the two of you part. She goes off back to her room, and Sylvia gives you a brief farewell before you leave for camp.");
					player.createKeyItem("Old Eldritch Tome", 0, 0, 0, 0);
					doNext(camp.returnToCampUseOneHour);
					return;
					break;
				case 4:
					outputText((saveContent.doloresDecision == 1 ? "Last time should have been more than enough evidence to trust you" : "Even after what happened last time, she should still trust her [father]") + ", so why did she have to do all of this in secret? If she had just come to you first, things would have gone so much better.");
					outputText("\n\nDolores looks genuinely ashamed of herself at this, merely tapping her fingers together while she thinks of a response. Eventually, she does start talking, although you can tell from the hesitance in her voice that she's having trouble expressing herself.");
					outputText("\n\n[say: I... It was almost like a compulsion. I had this absolute certainty that I had to do things like that, that it had to be by myself, that no one would understand. I know now that I was wrong to think so, but... I almost can't describe it. All I can do is to say that it shall never happen again, not so long as I know myself.]");
					outputText("\n\nShe nods firmly, and that seems to be that. You suppose that you'll just have to trust her word for the moment.");
					break;
			}
			menu();
			addNextButton("Book", doloresTalkAfterAnswer, 0).hint("Ask about the book she used in the ritual.").disableIf(question == 0, "You just asked that.");
			if (saveContent.doloresFinal%10 > 1) addNextButton("Thing", doloresTalkAfterAnswer, 1).hint("Ask about that being she summoned.").disableIf(question == 1, "You just asked that.");
			addNextButton("Again?", doloresTalkAfterAnswer, 2).hint("Ask if anything she'll be doing anything like this again.").disableIf(question == 2, "You just asked that.");
			addNextButton("Sneak", doloresTalkAfterAnswer, 4).hint("Why did she do this so secretively?").disableIf(question == 4, "You just asked that.");
			addNextButton("Done", doloresTalkAfterAnswer, 3).hint("You're done with your questions.");
		}

		public function doloresTalkAfterNo():void {
			clearOutput();
			outputText("You raise a hand to quiet her and say that you aren't going to force anything out of her. You already know everything you need to.");
			outputText("\n\nDolores seems to take this well, a small smile peeking out from her downturned face. [say: Thank you, [Father]. I... appreciate your discretion.] She stands up and stretches slightly before finally turning to look you in the eye. [say: I will be in my room, if you'd like to see me.]");
			outputText("\n\nHowever, she hesitates for a moment before actually leaving. Did she have something else to say? It seems she does, as she walks straight over to you and starts to speak once again.");
			outputText("\n\n[say: Here.] The moth-girl thrusts something at you, and, looking down, you immediately recognize the book that's been the source of so much trouble. [say: I'd like you to have this. " + (saveContent.doloresDecision == 1 ? "Thank you for letting me keep it at all." : "For good, this time.") + "] With no further explanation, she struts off, seeming surprisingly at peace now that she's taken this load off her chest.");
			player.createKeyItem("Old Eldritch Tome", 0, 0, 0, 0);
			doNext(game.mothCave.caveMenu);
		}

		public function doloresTapestryMaking():void {
			clearOutput();
			doloresReset();
			outputText("You enter the dark cave, but find no one to greet you like usual. A faint glow and the sound of voices coming from the back hallway put any potential worries to rest, however, so you [walk] towards them.");
			outputText("\n\n[say: Ah! Mother, do I really have to... hold it like this?]");
			outputText("\n\n[say: Now now, be a good girl, for mommy.]");
			if (saveContent.doloresSex > 0) outputText("\n\nOh?");
			outputText("\n\nYou enter into the room to see Dolores holding an obviously uncomfortable pose before a sitting Sylvia, who's working on a sketch, two hands playing with a pencil while a third cups her chin contemplatively. The younger moth, meanwhile, has awkwardly twisted her torso, barely holding back a grimace while doing so.");
			outputText("\n\n[say: Holding your pose is very important for getting as accurate a sketch as possible.]");
			if (saveContent.doloresSex > 0) outputText("\n\nOh.");
			outputText("\n\n[say: But mother, I—] Your daughter's eyes swing over to you at the threshold, and she's momentarily mute.");
			outputText("\n\n[say: Welcome, dear. Do come in, we're just working out the preliminary sketch for Dolores's tapestry,] Sylvia says with a proud smile. [say: Oh, my little girl is growing up!]");
			outputText("\n\nIt's almost surreal watching the two of them like this so soon after what happened. You suppose that they must just be adaptable, or at the very least willing to ignore things they don't want to think about, but any comment you make on this is only likely to ruin the mood, so for the moment, you just watch them.");
			outputText("\n\nAnd anyway, there's something nice about the young moth and her mother enjoying each other's company like this. You can tell that, despite Dolores's outward coldness, the two actually do share a special bond. The way they talk, the way they look at each other, the sense of respect between them, it all seems so... wholesome.");
			outputText("\n\n[say: Alright, just a little while longer now.]");
			outputText("\n\n[say: Hmm. What is the final design going to be like?]");
			outputText("\n\n[say: Oh, I can't tell you that! You'll have to wait until I'm done.]");
			outputText("\n\nBy now, you can easily identify the smile hiding behind Dolores's smirk, but she doesn't say anything further, instead correcting her posture once again. Looking at her like this, you can see now a certain grace that wasn't there before, a certain bearing in her features that makes her appear more elegant, refined even. You don't know exactly when it happened, but it seems your daughter has matured, just a bit.");
			outputText("\n\n[say: Okay, done.]");
			outputText("\n\nDolores immediately slumps, losing much of that grace in her sagging shoulder and slack face. [say: Ugh, I was beginning to think that I would get stuck like that...] Sylvia simply gives her daughter a matronly look, drawing out another scoff from the younger moth. Her eyes flash in your direction, and she pauses a moment but does end up continuing. [say: In any case, it seems I am free now, [Father], if you'd like to talk.]");
			outputText("\n\nSylvia has apparently slipped past you without you noticing, as she's already at the doorway when she says, [say: And I'll be in my usual spot, if there's anything you need.]");
			saveContent.doloresProgress = 14;
			doNext(doloresMenu);
		}

		public function doloresTapestryGifting():void {
			clearOutput();
			doloresReset();
			outputText("You find Dolores in her room with her back turned to you. She stands in front of her bed, staring at something on it which her form hides from your gaze, and you think you can hear the faint sound of crying. You call out to her, she's slow to turn, but when she does, you see from her heartfelt smile that these are tears of joy.");
			outputText("\n\n[say: Oh, [Father], I... I have received the most wonderful gift.]");
			outputText("\n\nShe tenderly lifts the item on her bed and spreads it for your benefit. You can see on it various scenes from Dolores's life, rendered with a loving hand that has managed to really bring out her essence. Looking at all of the little details which bring it to life, you almost feel like you're standing next to two of her. A genuinely impressive piece of art.");
			outputText("\n\nDolores seems to feel the same, judging by her damp eyes and shaky breath. After a few more moments, her trembling hands return the tapestry to the bed, and she lets out a wistful sigh. [say: I didn't think... Well I suppose I always knew, deep down, but I didn't think that she truly understood me. To have confirmation otherwise is... Well, there are no words for it.]");
			outputText("\n\nSuddenly, her eyes dart up. [say: Oh, but I didn't want to waste your time with all that. Allow me to go hang this, and I'll return shortly.]");
			outputText("\n\nThe young moth brushes past you and, after only a short wait, returns. Her tears have dried, and her brief surge of emotion seems to have died down. However, the slight spring in her step lets you know that she really is pleased with her present.");
			outputText("\n\n[say: Now then, let's talk.]");
			saveContent.doloresProgress = 15;
			doNext(doloresMenu);
		}
		//END OF TEEN EVENTS

		public function doloresMenu():void {
			clearOutput();
			outputText("You walk into Dolores's room for a visit.");
			if (doloresProg < 3) outputText("\n\nYour newborn daughter is lying in her crib, safe and sound.");
			else if (doloresProg < 7) outputText("\n\nYour young daughter is sitting on her bed, an old book in her hands. As you enter the room, she perks up, meeting your gaze briefly before " + (doloresProg > 3 ? "mumbling out a, [say: Hello, [Father],] and " : "") + "returning her attention to reading.");
			else if (doloresProg < 9) outputText("\n\nHer cocoon stands there, immobile as ever.");
			else outputText("\n\nYour adolescent daughter is sitting at her desk, an old " + (saveContent.doloresDecision == 1 ? "magical" : "historical") + " tome splayed out in front of her. At your entrance, she looks up and graces you with a slight smile. [say: Good [day]], [Father]. Was there anything you wanted?]");
			menu();
			addNextButton("Appearance", doloresAppearance);
			if (doloresProg > 4) addNextButton("Talk", doloresTalkMenu).disableIf(doloresProg == 8, "You can't talk to her like this.");
			if (doloresProg > 3) addNextButton("Headpat", doloresHeadpat).disableIf(doloresProg == 8, "You can't pat her like this.");
			if (saveContent.doloresSex > 0) addNextButton("Sex", doloresSexMenu).disableIf(doloresProg == 8, "This is wombat insurance.").disableIf(player.lust < 33, "You're not aroused enough for sex.");

			addButton(14, "Back", game.mothCave.caveMenu);
		}

		public function doloresAppearance():void {
			clearOutput();
			if (doloresProg == 2) {
				outputText("Lying in the crib in front of you is a small infant caterpillar—your daughter, Dolores. She looks mostly human, the only major differences being the extra pair of arms and the two antennae sticking out from her forehead. Her slightly segmented body has a dark-gray tint, edging on black, but her eyes are the same violet as her mother's. She is currently wrapped in light-purple swaddling, presumably made by Sylvia. As you look down at her, she regards you with cool eyes, making surprisingly little sound for a baby. " + (player.cor > 80 && silly() ? "You find yourself having some particularly Satanic thoughts." : ""));
			} else if (doloresProg < 7) {
				outputText("Your caterpillar daughter Dolores is starting to grow, now appearing to be about " + (doloresProg < 5 ? (flags[kFLAGS.USE_METRICS] > 0 ? "122 cm" : "four feet") : (flags[kFLAGS.USE_METRICS] > 0 ? "140 cm" : "4'7''")) + " tall. She would look just like a normal human child, but her four arms and the dusky shade of her skin make it clear that she's anything but. Her body has retained the slight caterpillar-like segmentation that she was born with, although it's now mostly obscured by the light-purple dress she's wearing. Her thin limbs and petite frame give her a childlike aura that's completely at odds with the cold, shockingly mature look in her eyes, which are somewhat hidden behind the shock of dark black hair spilling from her head.");
			} else if (doloresProg < 9) {
				outputText("Your daughter is currently encased in a large silk cocoon situated in the middle of her room. It stands much taller than you would have expected, given your daughter's height, but you're no expert on lepidoptery. " + (doloresTime < 96 ? "Its fluffy exterior looks so soft that you almost want to hug it, but it's probably not a good idea to be too rough with it while she's still inside." : "Its previously fluffy exterior has hardened somewhat since it was first formed. Does this mean that Dolores is going to emerge soon?") + " Regardless, it seems you'll have to wait a bit longer before you'll be able to see your daughter again.");
			} else {
				outputText("Your daughter Dolores stands roughly " + (flags[kFLAGS.USE_METRICS] > 0 ? "150 cm" : "five feet") + " tall and has a fairly petite frame. Her breasts are only slight swells below the light purple dress she wears, but her figure is otherwise appealingly feminine—her hips just beginning to flare and her delicate limbs still preserving the beauty of youth. She has two " + (doloresProg > 9 ? "brilliant" : "somewhat droopy") + " gray wings hanging behind her back, folded up for the moment. Her second most distinguishing feature is the extra pair of arms sprouting from her sides, currently carrying an old book. She has a short shock of black hair, parted by the two antennae growing from her forehead, and matching patches of fuzzy fur at her neck and joints.");
			}
			doNext(doloresMenu);
		}

		//start of talk options
		public function doloresTalkMenu():void {
			clearOutput();
			outputText("What would you like to talk to her about?");
			menu();
			addNextButton("Just Chat", doloresJustChat);
			addNextButton("Sylvia", doloresSylviaChat);
			addNextButton("Literature", doloresLitChat);
			if (doloresProg > 5) addNextButton("Home", doloresHomeChat);
			if ((doloresProg > 8 && saveContent.doloresAmbitions < 1) || doloresProg > 12) addNextButton("Magic", doloresMagicChat);
			if (doloresProg > 8) addNextButton("Sex", doloresSexChat);
			if (doloresProg > 9) addNextButton("Wings", doloresWingsChat);
			if (doloresProg > 9 && saveContent.doloresAmbitions == 1) addNextButton("Ambition", doloresAmbitionChat);

			addButton(14, "Back", doloresMenu);
		}

		public function doloresJustChat():void {
			clearOutput();
			var choices:Array = []; //build an array of choices
			choices[choices.length] = 1;
			choices[choices.length] = 2;
			choices[choices.length] = 3;
			choices[choices.length] = 4;
			if (doloresProg > 9) choices[choices.length] = 5;

			//Selects one
			var choice:Number = choices[rand(choices.length)];
			switch(choice) {
				case 1:
					outputText("You ask Dolores why she talks the way she does.");
					outputText("\n\n[say: What do you mean by that?]");
					outputText("\n\nWell, she has a habit of being a bit verbose. Surely she must hear the difference between her and her mother.");
					outputText("\n\n[say: Hmph. It's not my fault that I'm a tad more refined that the majority of the people in this godsforsaken world. I simply take pride in my words, something largely forgotten these days. Is that such a crime?]");
					menu();
					addNextButton("It's Fine", function():* {
						outputText("\n\nShe smiles, somewhat smugly. [say: Thank you, [Father]. I knew you were a reasonable person.]");
						doNext(doloresTalkMenu);
					}).hint("You suppose that there's nothing really wrong with it.");
					addNextButton("Problem", function():* {
						outputText("\n\nShe frowns, somewhat haughtily. [say: Hmph. I suppose I must get my good sense from somewhere else.]");
						doNext(doloresTalkMenu);
					}).hint("She could learn a thing or two about respect.");
					return;
					break;
				case 2:
					outputText("You ask Dolores if she's read anything interesting recently. Her eyes immediately light up with enthusiasm, and she plows ahead before you have any time to regret your question.");
					outputText("\n\n[say: Why, yes. I just started an excellent treatise on the abstract principles of magical channeling efficiency in different races, written only a few scant years before the demon scourge. As it turns out...]");
					outputText("\n\nSeveral minutes later, you have a pretty good idea of how much you care about this topic.");
					break;
				case 3:
					outputText("You ask Dolores why she wears clothing. After all, Sylvia doesn't.");
					outputText("\n\nShe frowns slightly and says, [say: Is that an appropriate question for your daughter? While mother may not mind if people see her... like that... I'm—!] She falters and blushes slightly. [say: ...Not so 'confident.']");
					if (saveContent.doloresSex > 2) outputText("She then meets your eyes. [say: Besides, it is not like...] Her blush deepens. [say: You've already seen everything there is to see.]");
					outputText("She crosses her arms and looks the side, a pout on her face. It seems you're not getting any more out of her.");
					break;
				case 4:
					outputText("Dolores asks you, [say: Have you seen anything of interest lately?]");
					//Oh god, I'm nesting them
					choices = [];
					if (flags[kFLAGS.WIZARD_TOWER_PROGRESS] & game.dungeons.wizardTower.DUNGEON_LAURENTIUS_DEFEATED) choices[choices.length] = 1;
					if (flags[kFLAGS.LETHICE_DEFEATED] > 0) choices[choices.length] = 2;
					if (flags[kFLAGS.MANOR_PROGRESS] & 128) choices[choices.length] = 3;
					//choose for the second time
					choice = choices[rand(choices.length)];
					switch(choice) {
						case 1:
							outputText("\n\nYou tell her of the inquisitors tower and of the deranged man at its apex. You describe with detail the incredible living statues you battled and the devilish maze you solved there.");
							break;
						case 2:
							outputText("\n\nYou tell her of the demon queen's stronghold and the many dangers therein. Your words weave a story of great " + (player.cor < 30 ? "heroism" : "bravery") + " in your struggle against the wicked Lethice.");
							break;
						case 3:
							outputText("\n\nYou tell her of the cursed manor you explored. This tale of terror and madness noticeably darkens the atmosphere in the room, provoking an unexpected [say: Eep!] from Dolores when you get to the horrifying necromancer.");
							break;
						default:
							outputText("\n\nYou tell her of your recent travels throughout Mareth.");
							break;
					}
					outputText("\n\nThe young " + (doloresProg < 9 ? "caterpillar" : "moth") + " listens with rapt attention, her eyes lighting up at every mention of the the exotic magics you encountered on your quest.");
					break;
				case 5:
					outputText("\n\nYou ask Dolores if she's excited to be able to fly now. You [if (hasWings) know well|can't imagine] the sheer freedom of soaring through the air.");
					outputText("\n\n[say: Hmm, yes,] she says distractedly. She certainly doesn't [i: seem] enthusiastic.");
					outputText("\n\n[say: Well, it's simply not all that interesting to me. Sure I could fly through this fetid bog and look at all of the rotten muck below, but I'd much rather stay in and read. A good author can dream up places much more spectacular than anything in this dreadful world.]");
					outputText("\n\nCome to think of it, she doesn't seem to casually fly around the cave as much as Sylvia does, much more often using her legs instead.");
					outputText("\n\n[say: I suppose so,] she says with a shrug.");
					break;
			}
			doNext(doloresTalkMenu);
		}

		public function doloresSylviaChat():void {
			clearOutput();
			outputText("Glancing around to make sure the coast is clear, you ask Dolores what she thinks of her mother.");
			if (doloresProg < 9) {
				outputText("\n\nShe mumbles something not quite audible, so you ask her to repeat herself. [say: ...I said, I hate her! She's... She's... She's always so [b: chirpy]! It just makes me so... ugh...] You ask Dolores if she really thinks that.");
				outputText("\n\n[say: Hmph! Well...] Her gaze drops to the floor. [say: Maybe not... but I really do wish she would just try to understand me a bit better!]");
				outputText("\n\nFairly normal for a kid, you suppose.");
			} else {
				outputText("\n\n[say: She's... difficult to be around at times, but I know she loves me, and I love her. We're just different people, and...] The young moth bashfully rubs one arm. [say: Well frankly, I was a bit of a brat.] A sigh. [say: I really do appreciate everything that she's done for me.]");
				outputText("\n\nShe thinks for a moment before continuing. [say: " + (doloresProg > 14 ? "Especially the tapestry. I've... had my doubts in the past, but she really does understand me..." : "But... I'm just not sure that she really </i>understands<i> me.") + "]");
				outputText("\n\nHer eyes " + (doloresProg > 14 ? "get a little bit misty" : "drop down to look at her feet") + ". [say: My apologies if... that was too much.]");
			}
			doNext(doloresTalkMenu);
		}

		public function doloresLitChat():void {
			clearOutput();
			outputText("You ask Dolores what her opinions about literature are. After all, she's " + (doloresProg < 9 ? "developing quite interest in books"  :"read a lot of books") + ".");
			if (doloresProg < 9) {
				outputText("\n\nShe looks bashfully side to side. [say: Well... I like...] She seems somewhat embarrassed about her answer, so it takes her a while to force it out, but eventually, she does manage to say, [say: I like adventure stories. The ones about heroes and monsters, far-off lands and incredible feats...]");
				outputText("\n\nNot exactly the most highbrow stuff, but nothing for a kid to be embarrassed about. Still, is there a reason she likes them so much? After all, Mareth is a magical world, filled with adventure and danger around every corner. She's still a bit young, but wouldn't it be more exciting to just go outside?");
				outputText("\n\n[say: I, uhm... It's hard to explain. Reading is just... It's always better when you imagine it.]");
			} else {
				outputText("\n\nShe crosses her arms, puts a hand to her chin, and says, [say: Well... I suppose I'd have to say the classics. Fulicre, Tambow, Hitchgean]—none names you recognize—[say: and all the other greats. The sheer skill...] This last statement brings a wistful look to her eyes as they shift up to the ceiling.");
				outputText("\n\nWell that was an expectedly proper answer. You're about to change the subject when she starts up again. [say: But... I've always loved... Uh...] She suddenly seems almost too embarrassed to continue. Eventually, she squeezes her eyes shut and forces it out. [say: My favorites are still adventure stories. Childish, I know, but... I doubt I'll ever lose that wonder...] She trails off, and it seems like that's all she has to say.");
			}
			outputText("\n\nAfter a few more moments of silence, she turns to you and asks, [say: What kinds of books do you like?]");
			menu();
			addNextButton("Adventure", doloresLitAnswer, 0);
			addNextButton("Nonfiction", doloresLitAnswer, 1);
			addNextButton("Romance", doloresLitAnswer, 2);
			addNextButton("None", doloresLitAnswer, 3);
		}

		public function doloresLitAnswer(choice:int):void {
			switch(choice){
				case 0:
					outputText("\n\nYou love rip-roaring tales of danger and derring-do the most.");
					outputText("\n\n[say: I see,] she says, trying and failing to conceal a genuine smile.");
					break;
				case 1:
					outputText("\n\nYou like books about real subjects like history and science the best.");
					outputText("\n\n[say: I see,] she says, a contemplative look on her face.");
					break;
				case 2:
					outputText("\n\nYou like romance novels—tales of star-crossed lovers, fated meetings, and trashy flings alike.");
					outputText("\n\n[say: I see,] she says, " + (saveContent.doloresSex > 2 ? "blushing slightly" : "wrinkling her nose a bit") + ".");
					break;
				case 3:
					outputText("\n\nYou don't like [i: any] kinds of books. Never have.");
					outputText("\n\n[say: I see,] she says, looking slightly disappointed.");
					break;
			}
			doNext(doloresTalkMenu);
		}

		public function doloresHomeChat():void {
			clearOutput();
			outputText("You ask Dolores what she thinks of her home.");
			outputText("\n\nShe stares at you blankly for a moment. [say: Home... It's... alright?] She glances downwards very briefly. [say: Well I don't really have anything to compare it to, I suppose.] She doesn't seem to have anything else to add, so you try to prompt her further, this time asking if there's really nothing in particular she likes or dislikes about this place.");
			outputText("\n\n[say: Hmm...] She taps her foot and looks around. [say: Well... I do like all of the old books and such that mother's collected here.] Anything else? [say: Oh! The tapestries. They really are quite something.] That seems to be the full of it, and you're already about to move on, when she pipes up again.");
			outputText("\n\n[say: The swamp, however...] The " + (doloresProg > 9 ? "caterpillar" : "moth-girl") + " wrinkles her nose. [say: Ugh, I just cannot stand it. The heat, the muck, the bugs! You can hardly take two steps outside without some unbearable nuisance assaulting you! I don't know how mother has suffered this place for so long, I would have moved out within a week. And to raise a family here?] She scoffs. It seems that complaining comes much more naturally to her. [say: ...But it's home, and... I really can't imagine living anywhere else.]");
			doNext(doloresTalkMenu);
		}

		public function doloresMagicChat():void {
			clearOutput();
			if (doloresProg < 12) {
				outputText("Given her very explicit interest in magic, you want to know if she's still studying it.");
				outputText("\n\n[say: Yes,] she says " + (saveContent.doloresDecision == 1 ? "excitedly, [say: and it's all thanks to you.]" : ", somewhat pointedly, [say: despite your... objections.]") + " She shifts her stance a bit, moving a single finger to her cheek. [say: I've been... dabbling a bit, and I'm not particularly good yet, but...]");
				if (saveContent.doloresDecision == 1) {
					outputText("\n\nRather than finish her sentence, your daughter closes her eyes and stretches all four of her hands out. She starts to mumble something under her breath, and the room suddenly seems a slight bit dimmer than before. You can't understand any of the words, but her incantation does seem to have some sort of effect, as her fingers have started to glow with dark purple energy.");
					outputText("\n\nShe moves her hands into a diamond pattern, the palms all facing each other, and splays her fingers, never once breaking her concentration. The glow starts to pull off of her fingers in oddly tar-like clumps which then coalesce into an orb floating between her digits. The ball lingers there for a time, and Dolores's expression grows more strained, but just as you're wondering what she's trying to accomplish, there's a flash, and the mass dissipates.");
					outputText("\n\nFor a few moments, everything seems wrong, like you're underwater. You try to [if (singleleg) slide|take a step] forward, but your [if (legs) leg|body] is moving so slowly. Halfway through the motion, things return to normal, and you [if (singleleg) lurch forward unsteadily|finish your step with a wobbly lurch]. Dolores opens her eyes, seemingly oblivious to the odd occurrence which just took place. Did you imagine that?");
					outputText("\n\n[say: Pretty impressive, right?] your daughter asks, her expression more than a little self-satisfied. [say: I can't figure out how to sustain that light for very long, and I'm not sure of the spell's exact purpose, but it does look quite lovely, don't you think?]");
					menu();
					addNextButton("Amazing", doloresMagicAmazing).hint("Show your appreciation for her skill.");
					addNextButton("NotSpecial", doloresMagicEh).hint("Tell her you didn't think it was particularly special.");
					addNextButton("Dangerous?", doloresMagicDangerous).hint("Question her about the anomaly.");
				} else {
					outputText("\n\nShe lets that linger in the air for a few moment before continuing, [say: No, no, never mind that. It's certainly not ready yet. And </i>you've<i> made it quite clear that you don't want me doing anything 'irresponsible.'] She says this last word with some notable defiance, making you uncertain that she sees the wisdom in your actions.");
					outputText("\n\nShould you press her on this?");
					doYesNo(doloresMagicYes, doloresMagicNo);
				}
				saveContent.doloresAmbitions = 1;
			} else {
				outputText("Dolores's interest in magic hasn't always had the best of results, but as her [father], you feel obliged to learn more about this aspect of her life. And it couldn't hurt to make sure things aren't slipping again. You ask Dolores if she's still practicing magic after everything that's happened.");
				outputText("\n\nAt this question, her eyes light up a bit, and she gives you a cryptic, almost weary smile. [say: Certainly, [Father]. Magic is the one thing I find truly beautiful in this wretched world, and it seems to love me just as much. I intend to pursue my passion until the day I perish.] She looks guilty for a moment. [say: Responsibly, of course.]");
				outputText("\n\nWhat she said about it being \"love\" raises an interesting point. Why [i: was] she able to use the book so well? It seemed like a fairly complicated ritual, but she was" + (saveContent.doloresFinal%10 == 1 ? " almost" : "") + " able to do it all by herself. Do moths have some natural affinity for magic? Was it all down to luck and circumstance? Is she just a prodigy?");
				outputText("\n\nHer smile widens just a tad, but she takes a moment to answer, her fingers fiddling with the hem of her dress. [say: Hmm... Well I can't say for sure, but it has always felt natural for me. I suppose, given that the book was with us in the first place, that there may be some relation there, but... I simply know this as my calling. I would find it difficult to explain to you, but surely there is something you feel the same way about?]");
				outputText("\n\nInteresting. You'd like to know more about how magic [i: feels] to her, since she often describes it in such odd ways.");
				outputText("\n\n[say: It's exquisite, far finer than any worldly delicacy,] she says with a somewhat snobbish pout. You suppress your reaction for her benefit. [say: However... nothing compares to the feeling of the magics in that ancient tome. Having tasted something like that once... I shall never forget that sensation.] Her eyes flash. [say: One day... One day, I will taste it again, on my own terms.]");
				outputText("\n\n[say: Well in any case,] she says, returning to her usual detached demeanor, [say: feel free to ask about these things at any time. I am always happy to talk about my interests.] A genuinely warm smile. [say: And to talk to you, [Father].]");
				doNext(doloresTalkMenu);
			}
		}

		public function doloresMagicAmazing():void {
			clearOutput();
			outputText("You tell Dolores how impressed you were by that display. It might not have been the most controlled demonstration, but her magical ability is clearly remarkable for someone her age.");
			outputText("\n\nShe beams with youthful pride, for once actually looking her age. [say: I knew you would like it. I </i>knew<i> you would be able to see the beauty in it.] She's nearly bouncing on her feet with excitement. [say: Thank you, [Father], thank you for understanding.]");
			outputText("\n\nYou're surprised at how much your answer seems to have meant to Dolores, but her enthusiasm is infectious.");
			outputText("\n\n[say: Did you want to talk about anything else?] she asks, her smile still in full bloom.");
			doNext(doloresTalkMenu);
		}

		public function doloresMagicEh():void {
			clearOutput();
			outputText("You shrug your shoulders and tell her that you're not all that impressed, given that she doesn't even know what the spell's supposed to do, not to mention that it didn't seem like a success.");
			outputText("\n\nShe scoffs and turns her head away, poorly covering her hurt with a prideful facade. [say: You simply don't see the beauty in it.] Her shoulders tremble a bit. [say: I'd... I'd like to be alone, right now.]");
			outputText("\n\nYou oblige, exiting her room. It seems that mattered more to her than you thought, but hopefully her mood will improve with time.");
			saveContent.doloresAngry = true;
			doNext(game.mothCave.caveMenu);
		}

		public function doloresMagicDangerous():void {
			clearOutput();
			outputText("You could have sworn something odd happened a moment ago. You tell Dolores that you're not so sure that this spell is safe.");
			outputText("\n\nShe looks at you quizzically, as if you're not making sense. [say: What do you mean? I didn't notice anything.]");
			outputText("\n\nYou're not sure if you were just imagining things or if something really did happen, but you'll have to reserve your judgement for the moment.");
			outputText("\n\nShe scoffs. [say: Hmph. You're clearly just not able to appreciate the beauty of this magic. I'll show you, it's perfectly harmless.]");
			outputText("\n\nWell, it does seem like everything turned out okay...");
			doNext(doloresTalkMenu);
		}

		public function doloresMagicYes():void {
			clearOutput();
			outputText("You know better than to leave something like this to fester until it becomes a problem. When you ask Dolores if she's really keeping her nose clean, she seems to take offense.");
			outputText("\n\n[say: Yes, [Father],] she says, narrowing her eyes. [say: I am, in fact, capable of following simple instructions. I'd thought you would have known that, despite how little you obviously think of me.] Her spiteful tone wavers near the end, and she stares at her feet for some time before continuing in a much more subdued fashion.");
			outputText("\n\n[say: I... I'm sorry, [Father], but... I want to be alone right now.]");
			outputText("\n\nYou oblige, exiting her room. It seems this topic was more raw than you'd thought, but it seems that she's not getting into trouble, for the moment at least.");
			saveContent.doloresAngry = true;
			doNext(game.mothCave.caveMenu);
		}

		public function doloresMagicNo():void {
			clearOutput();
			outputText("You know better than to push her buttons when she's already upset. In time, you're sure she'll come around to see that what you did was for the best. And if she doesn't, " + (player.cor > 50 ? "you'll just have to teach her another lesson" : "you'll still be there for her") + ".");
			outputText("\n\nShe seems to calm herself after a few moments, regaining her cool demeanor. [say: My apologies, [Father]. Will there be anything else?]");
			doNext(doloresTalkMenu);
		}

		public function doloresSexChat():void {
			clearOutput();
			outputText("Your daughter is a growing girl, and" + (player.isChild() ? ", although you aren't much more experienced," : "") + " it's high time she learns about a few important matters. But where to start? " + (player.cor < 50 ? "These matters are fairly delicate, and you don't want to offend her" : "There're so many fun things she has yet to learn that you're overwhelmed by the possibilities") + ".");
			outputText("\n\nWhen you finally broach the topic, Dolores doesn't seem too troubled by it, but her noncommittal grunt doesn't give you much to work with. You start out as best you can, drawing on your own experiences as well as your memories of a similar talk " + (player.isChild() ? "not too long ago" : "from your childhood") + ". You try your best to be as informative as possible, but the young moth doesn't give you much of a reaction at all, so you don't really know if you're getting through to her.");
			outputText("\n\nWhen you start getting into the anatomy, Dolores cuts you off. [say: That's quite alright, [Father], I've already done some reading on these subjects, and I'm well aware of what to expect when the time comes.] Well that was surprisingly mature. You're not quite sure how to continue, and Dolores doesn't seem interested in adding anything else.");
			outputText("\n\nDo you have any parting advice for her? Or maybe you'd like to show your affection in another way?");
			menu();
			addNextButton("Be Safe", doloresSexAnswer, 1);
			addNextButton("Be With Me", doloresSexAnswer, 2);
			addNextButton("Back", doloresSexAnswer, 3);
		}

		public function doloresSexAnswer(choice:int):void {
			switch(choice){
				case 1:
					outputText("\n\nYou tell your daughter that you just want to make sure she's safe. She looks at you for a moment longer before growing a faint smile. [say: I will be, [Father]. You've no need to worry about me.] She follows this up by drifting over and giving you a warm hug, her head nuzzling into " + (player.tallness > 60 ? "your chest" : "yours") + ". [say: I love you, [dad].] You pat her on the back, your heart at ease.");
					break;
				case 2:
					clearOutput();
					outputText("You tell your daughter that you love her, to which she responds, [say: I love you too, [Father].] You continue, saying that you'd like to really show her how much you love her. She simply stares at you, apparently not understanding the implication. You move a hand to her cheek, brushing away an errant strand of hair. As it lingers there, you stare deeply into her violet eyes until something dawns on her and her face suddenly reddens. [say: U-Um,] she stammers, [say: I... I don't know what to say...]");
					outputText("\n\nYou do. You tell her how important she is to you before drawing her lips into a kiss. It's pure magic, you feel as though you're being lifted up, reaching a height you weren't meant to. When you pull back and open your eyes, you're greeted by mild confusion. [say: I... u-uh... I love you too, [dad].] She doesn't quite meet your eyes, but she doesn't need to. You give her another peck before pulling back, a throb of longing pulsing through your heart.");
					if (saveContent.doloresSex < 1) saveContent.doloresSex = 1;
					break;
				case 3:
					outputText("\n\nThat was certainly enough awkwardness for you. You pat Dolores on the back and move onto hopefully less difficult conversations.");
					break;
			}
			doNext(doloresTalkMenu);
		}

		public function doloresWingsChat():void {
			clearOutput();
			outputText("Now that they've come in fully, you'd like to get a proper look at her wings. At your request, she blushes and crosses her arms. The consternation written on her face is more than you'd expect for such a simple inquiry, but eventually, she does seem to come to some sort of conclusion. [say: W-Well fine.]");
			outputText("\n\nYour daughter slowly turns around until she faces the back wall, her arms jittering a bit as she does so. Her dress now has a small opening through which her wings protrude, but it doesn't look large enough to allow her properly spread them. Her gaze is glued to the ground and she slowly shifts the straps of the dress down over her shoulders, exposing her bare back to you.");
			outputText("\n\nThey're incredible. Radiating waves of lighter and darker gray roll down their length, the interplay of shifting shades subtly blending and morphing in mesmerizing ripples. The seamless transition from one hue to the next leads you on ebbing paths across her vast span, and you feel like you could get lost for hours tracking the swirling patterns hidden here and never find your way out. Luckily, two small white eyespots jut from the dusky ocean like lighthouses, guiding you back to safety.");
			outputText("\n\nYou can't believe she was hiding those back there.");
			outputText("\n\nWhen you give her your impression, Dolores doesn't seem very flattered, continuing to stare at her feet with no response but a [say: Mmm.] After a few more moments, she swiftly folds her wings, pulls up her straps, and turns back around to face you. You can now see the hot blush burning on her cheeks.");
			if (saveContent.doloresSex > 0) outputText("\n\n[say: Anything else you want to 'inspect,' you lecher?]");
			else outputText("\n\n[say: Will that be quite all?]");
			menu();
			addNextButton("Compliment", doloresWingsCompliment);
			addNextButton("Tease", doloresWingsTease);
			addNextButton("That's All", function():* {
				outputText("\n\nYou don't add anything else, and after a few moments, Dolores seems to cool down a bit, allowing you to return to other topics.");
				doNext(doloresTalkMenu);
			});
		}

		public function doloresWingsCompliment():void {
			clearOutput();
			outputText("You give her one last compliment, which causes her face to wrinkle up, wracked with conflicting emotions. It seems she doesn't take praise well, as her nearly crossed eyes and tight lips can attest.");
			outputText("\n\nHer strained silence starts to become worrying but suddenly, all of the tension leaves her face, and her eyes cloud over. You wave your hand in front of them, and she belatedly turns towards you.");
			outputText("\n\n[say: Yes, [Father]?] she says with a sweet smile.");
			outputText("\n\nIt seems like a good idea to just move on.");
			doNext(doloresTalkMenu);
		}

		public function doloresWingsTease():void {
			clearOutput();
			outputText("You can't resist one last little tease, but as soon as it leaves your mouth, Dolores turns a very different shade of red, and you swear you can see steam coming out of her ears.");
			outputText("\n\n[say: Get. Out.]");
			outputText("\n\nWith this she rushes over, plants all four hands on your back, and starts pushing you towards the door, slamming it behind you once you're out.");
			saveContent.doloresAngry = true;
			doNext(game.mothCave.caveMenu);
		}

		public function doloresAmbitionChat():void {
			clearOutput();
			outputText("You ask Dolores what she wants to do with her life. After all, she can't spend all of it cooped up in this cave, reading books, can she?");
			outputText("\n\nShe looks the slightest bit peeved at this question. [say: Are you trying to imply that my way of life is somehow lesser? That gallivanting all over this cursed plane is better than enjoying the safety we have here? Hmph.] She crosses her arms, a mildly awkward operation with how many she has.");
			if (saveContent.doloresDecision == 1) outputText("\n\n[say: I suppose if you must know, I would like to publish something, someday. There isn't much of an apparatus left for those kinds of things, but even in these trying times, it is still worthwhile to preserve and expand knowledge. I've been working on deciphering that old tome from earlier, and I believe that I am getting close to a breakthrough. I'll tell you all about it, when I'm sure that...]");
			else outputText("\n\n[say: And in any case, it doesn't seem to me like </i>you<i> have much of an interest in what </i>I'd<i> like to do. If you really must know, I've been working on a... treatise of my own, as of late. Even with all of the forces holding it back]—she shoots a pointed glance at you—[say: knowledge must be expanded. Nothing that I'm ready to share yet, but soon...]");
			outputText("\n\nShe trails off, a vaguely unnerving smile on her face. The young moth characteristically spaces out for a few moments before snapping back to attention and looking at you inquisitively.");
			outputText("\n\n[say: And what about you, [Father]? I already know what " + player.mf("mother", "my other parent") + " wants with her life...] She eyes you up and down, somewhat smugly. [say: But surely all of your travels must have some purpose.]");
			menu();
			addNextButton("Demons", doloresAmbitionAnswer, 0).hint("You want to stop the demons.");
			addNextButton("Yourself", doloresAmbitionAnswer, 1).hint("You only think of yourself.");
			addNextButton("Fun", doloresAmbitionAnswer, 2).hint("You're in it for the adventure.");
			addNextButton("Lovin'", doloresAmbitionAnswer, 3).hint("You're a tender soul.");
			addNextButton("Don't Know", doloresAmbitionAnswer, 4).hint("You're not quite sure.");
		}

		public function doloresAmbitionAnswer(choice:int):void {
			clearOutput();
			switch(choice){
				case 0:
					outputText("The answer is very simple: you're here to vanquish the demonic scourge plaguing this land. You'll not rest easy until Mareth—and all of the other worlds connected to it—are safe from the threat of corruption.");
					outputText("\n\nShe thinks on this for a moment before responding. [say: Very noble. But... No, I suppose we should all aspire to be so selfless.] She nods, regarding you with a newfound respect.");
					break;
				case 1:
					outputText("This land seems as good a place as any to stake your claim. There are no laws here, no rules to chain you down. So long as you stay here, you're free to do what you want, when you want, and anyone who would stand in your way is nothing more than an obstacle.");
					outputText("\n\nYour daughter looks slightly perturbed. [say: Is that really all you care about? Although... maybe it is not so wrong to want the best for oneself. Greatness often comes at a cost...]");
					break;
				case 2:
					outputText("You can't resist the call of the open road, the limitless potential that this land offers. You'll never feel more at home than when you're taking on some new challenge or rushing off to your next adventure.");
					outputText("\n\n[say: Why, how dashing,] she says, trying and failing to suppress a genuine smile. [say: You're a real daredevil! Right out of a storybook.] At this, the young moth lets out a giggle. [say: Oh, how I'd love to be so cavalier...]");
					break;
				case 3:
					outputText("You're a romantic at heart—and in other places. Mareth is quite a bountiful land for the amorous vagabond, and you've been very happy with sampling all of the local flavors.");
					if (saveContent.doloresSex > 0) outputText("\n\nDolores blushes bright red. [say: Th-That's...] She has to turn her face to the side before she can muster up an actual response. [say: Well I suppose I already knew that.]");
					else outputText("\n\nHer nose wrinkles, and she scoffs. [say: Ugh, typical. You could at least </i>try<i> to have a little bit more tact, though I suppose that that is in quite short supply these days.]");
					break;
				case 4:
					outputText("You can't quite say what drives you to go on these adventures, what gets you out of bed in the morning. You've simply been drifting through life, taking one thing at a time. It's not like this is a place that affords you the luxury of long-term plans.");
					outputText("\n\nShe thinks on this for a moment before responding. [say: Reasonable, maybe even admirable. Keeping your options open, adapting to what's in front of you, and having the strength to carry on, even without some greater purpose in mind. Yes...]");
					break;
			}
			outputText("\n\nHer expression slowly shifts back to neutral as her spine straightens out. [say: Well, putting aside your cause, things have clearly worked out for you, so you must be doing something right. And I appreciate your inquiry, [Father]. It is nice to know that you care about my future.]");
			saveContent.doloresAmbitions = 2;
			doNext(doloresTalkMenu);
		}
		//end of talk options

		public function doloresHeadpat():void {
			clearOutput();
			outputText("You decide to show Dolores some affection, as a good [father] should, and what better way than with headpats?");
			outputText("\n\nReaching out towards the indifferent " + (doloresProg < 9 ? "caterpillar" : "moth") + ", you firmly " + (player.tallness > 48 ? "lower" : "raise") + " one hand " + (player.tallness > 48 ? "down" : "up") + " onto her head, enjoying for a moment the feeling of her soft, silky hair. Dolores just looks " + (player.tallness > 48 ? "up" : "down") + " at you quizzically, clearly not understanding the point of all this. Well, that just means you'll have to show her.");
			outputText("\n\nYou start off slowly, settling into a steady groove. With her apparent inexperience, she might not be able to handle your full force, so you take care not to be too rough. To your astonishment, however, she seems completely unfazed by your expert ministrations. No matter how much affection you put into your patting, her blank stare continues to drill into you, piercing straight through to your heart. You're going to have to do better than this.");
			outputText("\n\nYou redouble your doting efforts, patting your daughter's head with a passion, but her expression still doesn't shift one bit. What a fearsome adversary. You'll need to pull out all the stops if you want this to work. Returning your attention to the struggle, you try everything—" + (silly() ? "concentric circular rubs, intense lateral stroking, even the reverse triple scalp-scrubber" : "stroking her hair, firm rubbing, even a light caress of her cheek") + ". You pat like you've never patted before.");
			outputText("\n\nFailure. Your indomitable daughter remains impervious to all of your best techniques, her impassive face seeming as if it were carved from marble. You let your hand slump off of the " + (doloresProg < 9 ? "caterpillar" : "moth") + "-girl's head, no longer possessing the strength to fight on. Despair fills your heart as you reflect on your complete inability to move your daughter's. However, just as it seems as though you couldn't sink any lower, you hear a light giggle coming from in front of you.");
			outputText("\n\nLifting your head, not quite daring to hope just yet, you slowly raise your eyes, and are astonished at the sight of your daughter's gentle smile. The dim glow of the cave outlines her unmistakably merry features in a pale blue light, and the rush of relief nearly blows you over. Dolores sighs gently and says, [say: I'm not entirely certain what you were trying to accomplish with that, [Father], but it gladdens me to know that you would go through all of that for my sake.] Well, it seems like you weren't completely unsuccessful after all.");
			doNext(camp.returnToCampUseOneHour);
		}

		//start of sin options
		public function doloresSexMenu():void {
			clearOutput();
			outputText("You tell your daughter that you'd like to get intimate. Her face freezes up, and it seems to take her some time to process your request. [say: A-Alright...] she mumbles, eventually. It seems you'll have to take the lead.");
			menu();
			if (saveContent.doloresSex == 1) addNextButton("Make Sure", doloresComfort).hint("Make sure that your daughter is ready to have sex.");
			if (saveContent.doloresSex < 3) addNextButton("Deflower", doloresDefloration).disableIf(!player.hasCock(), "This scene requires you to have a cock");
			if (saveContent.doloresSex < 3) addNextButton("First Time", doloresFirstTime).sexButton(FEMALE);
			if (saveContent.doloresSex > 2) addNextButton("Sex", doloresSex).disableIf(!player.hasCock(), "This scene requires you to have a cock");
			if (saveContent.doloresSex > 2) addNextButton("Blowjob", doloresBlowjob).disableIf(!player.hasCock(), "This scene requires you to have a cock");
			if (saveContent.doloresSex > 2) addNextButton("Tribbing", doloresTribbing).sexButton(FEMALE);
			if (saveContent.doloresSex > 2) addNextButton("LapPetting", doloresPetting).hint("Have Dolores sit in your lap while you play with her.");

			addButton(14, "Back", doloresMenu);
		}

		public function doloresComfort():void {
			clearOutput();
			outputText("Is she really ready for this? You wouldn't want to hurt her... And she shouldn't feel pressured into doing this just because you want her to. Her lips twitch. She takes a moment, seeing to draw up strength from somewhere inside herself, before starting to speak. [say: I... Yes. I am ready. It's... I love you, [Father], and I know how much I mean to you. I know that you're showing me your love. This is just... scary. I feel so out of my depth.] A slight smile. [say: I always need to feel that I'm in control, that I know everything I should, but with this... It's still a mystery to me.]");
			outputText("\n\nAfter that remarkably long speech—for her, at least—she surprises you again, unexpectedly leaning forward and giving your lips a painfully brief kiss. Your hands twitch with need. Shifting back, she sighs and smiles once again, a bit wider this time. [say: You can... proceed. Just please be gentle.]");
			outputText("\n\nYou will.");
			saveContent.doloresSex = 2;
			doNext(doloresSexMenu);
		}

		public function doloresDefloration():void {
			clearOutput();
			outputText("Your daughter is pure, untouched, inexperienced despite her frequent shows of \"maturity.\" She needs someone to guide her. And who better to be her first than her [father]? You can take care of her, can make sure no one hurts her, and for that matter, you love her far more than anyone else ever could. You take her trembling hand in yours and lead her over to the bed, " + (player.isNaked() ? "" : "stripping your armor before") + " sitting down next to her.");
			outputText("\n\nYou tell Dolores that you love her, and she mumbles out a response, her hands bunching the dress in her lap and her eyes glued to her dangling feet.");
			outputText("\n\nShe clearly doesn't know what to do, so you'll have to show her. You testingly pull at the purple garment—the only thing that lies between you and your love—but the young moth shies away from you, evidently still somewhat embarrassed about this. That's okay, you can take it as slowly as she needs. You scoot closer to Dolores, circling one arm around her while the other finds her chin to tilt her head towards you.");
			outputText("\n\nHer eyes are wide, and her breath is short. You lean in, stealing a kiss from her sweet, adolescent lips. But that's not enough, and so your hand drifts down from her chin, lower, lower, over the slight swell of her underdeveloped breasts, across the flat plane of her stomach until finally, it rests on her thighs, a few mere agonizing inches from what you really want. You break the kiss, opening your eyes to find " + (doloresComforted() ? "Dolores's doing the same" : "that Dolores's never closed") + ".");
			outputText("\n\nYou instruct your daughter to lie down on her bed, and she does. The young moth-girl doesn't seem to know what to do with her hands, and as a result, they uncertainly fidget around. It looked like she wasn't quite okay with you trying to remove her dress earlier, so you don't try that again, instead simply sliding your fingers over to its hem and then checking her face for a reaction. " + (doloresComforted() ? "She gives you a small, reassuring nod" : "There is none") + ". You continue, slowly, carefully pulling her dress up to her delectable hips. She's wearing panties. They're modest and made of lace, and although they're cute, they're currently in your way, so you pull them down her shapely leg.");
			outputText("\n\nAnd at last, it's exposed to you—your daughter's slit. It's quite neat, a small patch of hair just starting to grow above it. Placing your hands on her plump young thighs, you lower your nose towards it to get a whiff, and when you do, you're overwhelmed. It's intoxicating. So much so that you can't hold yourself back from a taste. Dolores gives out a soft cry as your tongue makes contact, evidently unprepared for this unfamiliar sensation. Has she even explored herself like this yet? It's very possibly that you are the first one to taste, to feel, to experience this part of her body.");
			outputText("\n\nYou don't know if you can wait much longer. She's not extremely wet, but that's to be expected of her first time, so you'll just have to manage. You're certain that your passion will be enough to show her a good time. Mentally preparing yourself for the pleasure to come, you bring a hand to your already stiff cock. Dolores steals a nervous glance at your [cock], perhaps worried about " + (player.longestCockLength() > 12 ? "your size" : "her inexperience") + ". You position yourself in front of her and move your prick right up to her virgin flower, coating her young lips with your pre.");
			outputText("\n\nThe twitching head of your member rests at her entrance, each of your throbs sending a little jolt through your shivering daughter as you press ever so lightly against her. Dolores makes no motion to stop you. Are you sure you'd like to proceed?");
			doYesNo(doloresDeflorationYes, doloresDeflorationNo);
		}

		public function doloresDeflorationYes():void {
			clearOutput();
			if (saveContent.doloresSex == 1) saveContent.doloresSex = 3;
			else saveContent.doloresSex = 4;
			outputText("Unable to contain your ardor for even a moment longer, you plunge in. Your first stroke is frantic, " + (doloresComforted() ? "slightly" : "") + " overeager, drawing a pained cry from Dolores as her maidenhead is torn. You " + (player.cor < 50 ? "apologize and" : "") + " slow down before continuing. Her petite frame makes her extremely tight, and you have some difficulty working yourself into a steady rhythm, but after a minute or so, she finally seems to relax a bit and adjust to you. You can now ease in and out of her without too much trouble, but the slight reddish color of the fluids coating your prick and the occasional gasp of discomfort from your daughter make it clear that she's still not enjoying this " + (doloresComforted() ? "yet" : "") + ".");
			outputText("\n\nA single tear runs down her cheek, which you quickly wipe away. You want to hold your daughter, to show her how good this can be, so you give her cheek one last rub before letting your hand slide downwards. You gently massage her nubile body, paying special attention to her budding breasts. Dipping even lower, you find that the soft curve of her torso as it merges with her hips is absolutely sublime, for a moment almost making you forget to move at all.");
			outputText("\n\nBut you don't. You continue to pump into her at a relaxed pace—far slower than you'd prefer, but just right for your daughter's first time. All of your efforts do seem to pay off in the end as Dolores's breath starts to quicken, her earlier pain having let up enough for her to " + (doloresComforted() ? "finally sigh with pleasure" : "no longer wince") + " every time you sink your length into her blissful folds.");
			outputText("\n\nYou need to be closer to her, need to feel her body against yours, so you lean down and hook your arms behind her back, grabbing at her soft rear. Like this, her small chest presses directly against you, allowing you to enjoy every last bit of her. You move your mouth to hers, desperate for her taste. It's just as perfect as everything else. " + (doloresComforted() ? "As you continue your carnal embrace, Dolores's four arms tentatively wrap around your back to return your affection. " : "") + "Coming back up for air, you simply let your cheek rest against hers, enjoying the cool feeling of her skin as you plow into her with the force allotted by your new position.");
			outputText("\n\nThe need to see your daughter in full overtakes you, and so you raise your torso back up to take her in. Her flushed face, her small body, the cute noises she lets out when you smack against her, it's all so much. More than you deserve, maybe, but you'll take it anyway. You dig your fingers into her petite hips and [b: drag] them into yours, " + (player.longestCockLength() ? "although you aren't quite able to meet them" : "sealing her tight against you") + ". Your roiling cum erupts from you, shooting into her writhing depths in thick ropes, proof of your " + player.mf("paternal", "maternal") + " love. The heady, heavenly high lasts for longer than usual, and you continue to grind your pelvis into her the whole way through.");
			outputText("\n\nWhen you finally come down, your fingers release their iron grip on Dolores, leaving behind white imprints as lasting marks of your passion. You slump forwards, completely spent after showing your daughter so much affection. Her bed is " + (player.tallness > 60 ? "a bit small for you, but you manage" : "just the right size for you, so you easily manage") + " to snuggle up besides Dolores, lightly stroking her hair as you hold your beloved daughter in your arms.");
			outputText("\n\nYou couldn't tell if she finished too, so you ask her. In response, she squirms just a bit, not meeting your gaze. [say: " + (doloresComforted() ? "I... am not sure" : "I... don't believe so") + ".] Your hand drifts down to her leaking nethers. She gives out a fluttery groan before saying, [say: N-No, that's... that is quite alright. " + (doloresComforted() ? "I... enjoyed it too, but... that was enough for me, for now..." : "You... I appreciate it, [Father], but you need do no more.") + "] You ask if she's sure. [say: I am.]");
			outputText("\n\nIt takes many minutes for you to fully recover, but when you do, you crawl around Dolores and arise from the bed. She remains there, an unidentifiable emotion on her face. [say: I love you, [Father],] she says, voice a bit shaky. You respond in kind before taking your leave, the journey back to camp brightened by the feeling of satisfaction in your chest.");
			player.orgasm('Dick');
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresDeflorationNo():void {
			clearOutput();
			outputText("Looking at your shivering daughter, you're not sure about any of this anymore. Maybe she isn't ready yet, maybe you'll just have to wait for a better time, but whatever the case, you're not going to go through with this. You pull back, stand up from Dolores's bed, and " + (!player.isNaked() ? "pull your [armor] back on" : "calm yourself down") + ". Dolores just looks confused, not daring to move a muscle yet. You apologize to her, and say that you're going to stop for now.");
			outputText("\n\nShe nods, a small amount of relief evident in her eyes, and pulls her panties back up before shifting into a sitting position. You give her a kiss on the forehead alongside a brief hug which she happily—thank the gods!—returns. You tell her that you love her, and her voice is much less shaky than before when she responds, [say: I... I love you too, [Father]. " + (doloresComforted() ? "We can... try again another time." : "") + "] Your farewell comes in the form of another peck, this time on her cheek, before you turn away and exit the cave.");
			outputText("\n\nThe walk back to your camp is long, giving much time to reflect on your actions.");
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresFirstTime():void {
			clearOutput();
			outputText("Looking at your daughter, you're struck by her youthful beauty, and then by the overwhelming desire to take that beauty for yourself. To pluck her bud in the flower of her youth, to show her pleasures you're sure she's never even dreamed of. Dolores looks at you uncertainly, and it's clear that she has no idea how to act in this situation. Well, as her [father], you'll just have to show her.");
			outputText("\n\nYou [if (singleleg) shift slightly|take a single step] towards her, and the reaction is immediate. She blushes, looks to the side, and folds her four arms up, apparently not confident to even look at you. You quickly [if (isnaked) ready yourself|start to strip], and Dolores's gaze becomes more pointed, though she seems to be keeping her composure for the moment.");
			if (saveContent.doloresSex == 2) outputText("\n\nAs you approach her, however, she becomes suddenly flustered, backing up until her legs bump against the bed. You follow her [if (singleleg) closely|step for step], not giving her any room. [say: I'm not so sure I... Yes, right, okay.] She nods, as if trying to convince herself of something, but you can tell that it doesn't really work.");
			else outputText("\n\nDolores's eyes are tinged with something you can't quite identify, and her lips trembles just a bit. [say: I'm not...] She doesn't finish the thought, instead looking down in resignation, two of her arms hugging her chest. You stride up to her and gently push her back until her legs bump against the bed, forcing her to sit down.");
			outputText("\n\nYou loom over her, making her lean back into the bed as her eyes go wide. But you don't mean to scare her or to go any faster than she's comfortable with, so for the moment, you simply stroke her side, making your amorous intentions clear.");
			outputText("\n\n" + (doloresComforted() ? "[say: How do you, er, we... You don't have—] You cut her off with a passionate kiss, causing her to gasp into your mouth in surprise." : "Your daughter doesn't seem interested in moving herself, or even talking, so you draw her into a passionate kiss, which she meekly accepts.") + " Your tongue presses into her mouth, though she seems reluctant to return your affections. When you pull back, you can see that her face is flushed, and you can barely hold yourself back from ravaging her.");
			outputText("\n\nYou lean in and smell the young moth. It's almost indescribable—a soft summer breeze, and just a hint of vanilla. You lick your lips in anticipation. But no, not yet, you need to tend to your trembling daughter. She is obviously scared of the unknown, but you're here to show her how good this can be. You touch her tenderly, feeling her nubile body as you make your way downwards. However, her hands interfere with yours, preventing you from disrobing her. It seems she's too embarrassed for that right now, but you can work with this.");
			outputText("\n\nShe clings firmly to her dress, and you won't push her on that, [if (cor > 50) however much you might want to, ]but her panties are left free for the taking, so you snatch them away before she can react, pulling them down over her supple legs to dangle at her feet. Dolores gasps and sits up, but she stays still as your [hands] glide up over her smooth skin to rest on her knees. And there you see it, her youthful, untouched slit. It lies in the cool shade of her thighs, slightly hidden by her dress, but you quickly remedy that, hitching it up enough to see all of her. You feel blessed to be here as you bend over, causing Dolores to shiver from your breath.");
			outputText("\n\nYour mouth hovers right over her waiting lips, which faintly glisten in the low light of the room, and you can barely contain your hunger. Dolores makes no motion to stop you. Are you sure you'd like to proceed?");
			doYesNo(doloresFirstTime2, doloresDeflorationNo);
		}
		public function doloresFirstTime2():void {
			clearOutput();
			if (saveContent.doloresSex == 1) saveContent.doloresSex = 3;
			else saveContent.doloresSex = 4;
			outputText("Without a further thought, you plunge your tongue into her depths. Dolores immediately gives out a soft cry, her thighs reflexively squeezing against the sides of your head. She's far too tense for you to move around much at the moment, so you slowly massage her leg until she relaxes enough that you can finally start.");
			outputText("\n\nAnd there's nothing else. As you drink in your daughter's juices, you feel as though nothing in the world could match this sweet taste. Dolores moans and shifts above you, occasionally clamping down when the errant lick stimulates her too much. This is heavenly, but you get the sense that she's still not enjoying this" + (doloresComforted() ? " yet" : "") + ", so you pull back, however painful that might be for you, and join her on the bed.");
			outputText("\n\nYou can now see that a single tear has made its way down her cheek, but you quickly wipe it up and then hug her close, giving her the [paternal] comfort she needs. Your daughter slowly stills in your arms, placated by your warmth.");
			if (doloresComforted()) outputText("\n\n[say: I-I'm fine, you can... you can keep going.] While that's not extremely convincing, she follows it up with a slight smile, so you proceed, snaking your fingers down her delectable belly. When they reach their target, you're surprised to find a spreading dampness beyond just what you left yourself. It seems that she's somewhat excited herself, despite all of her uncertainty.");
			else outputText("\n\nYou're surprised at how docile she is lying there, how doll-like. It seems like she's willing to let you do anything you want with her, so you gladly proceed, snaking your fingers down her delectable belly. When they reach their target, you're disappointed to find her mostly dry, except for the small amount of saliva you left. You'll need to work a bit harder, apparently.");
			outputText("\n\nNeed rises within you, so you shift to position yourself on top of her. Like this, you can see every single reaction, every twitch of her cute face as her [father] plays with her body. And play you do, tracing lines along her budding breasts, her slender shoulders, her barely flared hips. But none of those are what you [i: really] want to touch, so you drift down once again. Dolores squeaks when you make contact, but soon lets out more lewd sounds as you get to work. However, you're still bereft of what you crave most--her touch. It seems you'll need to teach her a lesson in proper lovemaking.");
			outputText("\n\nYou press her hand to your waiting sex. She " + (doloresComforted() ? "titters nervously" : "flinches") + ", but complies nonetheless, her inexperienced fingers teasing your well-prepared entrance. You start to give your daughter advice, telling her all of the most important spots and techniques while simultaneously demonstrating them on her own body. Distracted in this way, she learns somewhat slowly, but as you continue, her digits eventually start to pleasure you properly, and it's not overly long before you're panting just as much as her.");
			outputText("\n\nAnd quite unexpectedly, your daughter tenses up beneath you, eyes wide as she has what is very probably her first orgasm. You kiss and caress her through it, letting her feel all of your love. When she realizes how tightly she's gripping your shoulders, she lets off, embarrassed, although she doesn't look away as you stare into her eyes. Past the bashfulness, you sense some " + (doloresComforted() ? "measure of excitement, of wonder at this whole new world you're showing her" : "sort of hollowness, as if she's receded back into herself") + ".");
			outputText("\n\nWell this is no place to leave things, so after " + (doloresComforted() ? "confirming that it's okay to continue" : "reassuming your position") + ", you begin again. This time, however, you're less restrained, freely sharing your passion with your lovely daughter. The sounds of your ardor soon fill the room, and in a pleasant surprise, Dolores starts to reciprocate without you needing to tell her. Her chitinous fingers, smooth and cold, slide into you and start to explore your depths, sending tingles of pleasure throughout your body.");
			outputText("\n\n" + (doloresComforted() ? "One of your daughter's free hands tentatively reaches for you, but falters short of its destination." : "Your daughters hands lie listless at her side, and it seems she has no desire to touch you.") + " To make up for this, you lean in and press yourself to her, latching onto her neck as your own hands start to roam her body. Your [breasts] press against hers, and Dolores seems " + (doloresComforted() ? "embarrassedly interested in " + (player.biggestTitSize() > 1 ? "your more mature assets" : "a chest so like her own") : "somewhat uncomfortable with this, but no complaints pass her lips") + ".");
			outputText("\n\nThe stimulation is becoming too much for you, and you can feel yourself growing close. The feeling of her soft skin, slick with sweat, against [if (isfluffy) your [skindesc]|yours] and the sound of her labored breaths urge you on, making you grind your hips atop her wondrous hand. Dolores seems similarly affected, and so you increase your efforts, trying your hardest to finish her off until with a twin cry, you both reach your peaks.");
			outputText("\n\nYour whole body shudders, and your vision almost fades, but looking at your daughter, writhing and moaning under you, you feel an overwhelming gratitude that you could share this with her.");
			outputText("\n\nThe two of you lie side by side, breathing heavily. Your hands continue to caress her body, but Dolores seems quite overwhelmed by her second climax, not saying anything and barely moving at all. You ask her how she liked it.");
			outputText("\n\nIt takes a few moments before she can respond. " + (doloresComforted() ? "[say: I, um... I never thought that two... That was... I simply don't know what to say.]" : "She looks at you, her eyes wet, but can't seem to get anything out past a single [say: I...]") + " That's alright, she doesn't need to say anything. You hold her tight, and the two of you stay there for some time.");
			outputText("\n\nWhen it's finally time to get up, you're sad to leave her warmth, but you have no other choice. You hear from behind you, [say: I love you, [father],] and turn to see Dolores putting on a " + (doloresComforted() ? "shaky" : "faltering") + " smile. You return it, and then take your leave, your journey back to camp quite a pleasant one.");
			player.orgasm('Vaginal');
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresSex():void {
			clearOutput();
			outputText("Words aren't what you need right now, so you [if (singleleg) shift|step] forward and pull Dolores into your arms.");
			outputText("\n\nShe " + (doloresComforted() ? "blushes" : "doesn't react") + ", but doesn't pull away " + (doloresComforted() ? "" : "either") + ", so you lean in and plant a kiss on her sweet young lips.");
			outputText("\n\n[say: " + player.mf("F-Father", "M-Mother") + "...] she mumbles. You tell her how beautiful she is, how excited she makes you feel. She doesn't seem to know how to react to this, flustered as always at the topic of sex. It seems she'll need your gentle direction if you want to proceed, but how should you? You could ask her to take her dress off, or you could start like this.");
			menu();
			addNextButton("Undress", doloresSex2, false);
			addNextButton("Start", doloresSex2, true);
		}

		public function doloresSex2(dressed:Boolean):void {
			clearOutput();
			if (dressed) outputText("No, this is more than enough. Her demure dress does more than enough to emphasize her best features while still retaining some mystery, and you're not sure that you'd be willing to wait for her to take it off, as you need her [b: now]. Dolores notices your lecherous gaze and looks down at her feet, shuffling anxiously.");
			else outputText("You " + (doloresComforted() ? "ask" : "instruct") + " Dolores to strip, and surprisingly, she complies with no protest. Her little hands reach down and slowly—you'd say teasingly, if you didn't know her better—pull her garment up over her head, though it snags a bit on the wings. That done, she unclips her cute little bra and lets it fall to the floor, revealing to you her pert young breasts. Her hands shift awkwardly in front of her until she clasps them together, the urge to cover herself apparently still strong. Your daughter now stands nearly nude before you, shivering slightly, though if from cold or from embarrassment you can't tell.");
			outputText("\n\nEmboldened by lust, you step forward, backing her up against the wall as your hands move to caress her sides. " + (doloresComforted() ? "You ask her if she's ready for this" : "You tell her that you're about to start") + ".");
			outputText("\n\n[say: " + (doloresComforted() ? "I-I'm alright" : "Alright") + ",] she says, " + (doloresComforted() ? "a nervous flutter in her voice" : "a dead note in her voice") + ".");
			outputText("\n\nAs you grab her hips and pull her closer, she draws away, fumbling around for a second before turning around to face the wall, " + (doloresComforted() ? "evidently too shy to look at you during" : "though her stoic face betrays no emotion") + ". You can work with this, sidling up to her and returning your hands to their rightful place.");
			outputText("\n\nThere's one last thing you need to take care of before you can begin. Trembling a bit with excitement, you " + (dressed ? "pull her dress up over her hips and" : "") + " hook your thumbs under the band of her panties, pulling them to her feet, and your daughter dutifully steps out of them, allowing you to fling them away. With no remaining barriers, you " + (!player.isNaked() ? "yourself undress before pulling" : "pull") + " out your [cock] and line it up with her slit.");
			outputText("\n\nAs you tease her entrance, her hands fall forward onto the wall, and she sticks out her posterior enough for you to get a good angle without even needing your direction. What a good girl, you think as you pierce her depths, causing Dolores to gasp.");
			outputText("\n\nWorking your way into her slowly, you gently massage your daughter's back, trying to make the process as painless as possible. " + (player.longestCockLength() > 5 ? "You're still " + (player.longestCockLength() > 10 ? "too" : "a bit") + " big for her, causing her to squirm as you stretch her walls" : "She's evidently still not used to this sensation, causing her to squirm as you slip inside") + ". When you're fully hilted in her, the young moth shivers, and you start to move.");
			outputText("\n\nDolores doesn't seem inclined to act herself, so it's up to you to get things going. Your hands shift back to her hips, enjoying " + (dressed ? "their delicious contour" : "her smooth, unblemished skin") + " along the way and the wonderful softness they find at their destination. You begin to rock back and forth and can't suppress a moan as her quivering folds drag against you, clinging to your cock. For her part, Dolores seems to take it reasonably well, " + (doloresComforted() ? "even leaning back into you a bit as soft gasps escape her lips" : "keeping a steady posture with only a slight whimper") + ".");
			outputText("\n\nThis slow pace is pleasing for some time, but you soon find yourself wanting more. You start to really put your weight into it, each thrust smacking into her ass with a loud smack and causing it to deform against your skin. Your daughter gives out a strained " + (doloresComforted() ? "moan" : "grunt") + " as she endures your amorous assault. The rough motion causes her " + (dressed ? "dress to scrunch up and scrape against the wall, and you give a passing thought to potential damage" : "bare nipples to scrape against the wall, eliciting a low whine from her") + ", but you're too far into it to stop now.");
			outputText("\n\nAs you near release, you wrap your arms around her front and pull her close. Like this, your hands are free to roam where they please, feeling up her petite breasts and flat stomach. With your head right " + (player.tallness > 50 ? "above" : "behind") + " hers, your nose is practically thrust into her hair, allowing its dizzying fragrance to fill you up. The smell sends you into a frenzy as you roil with lust. Latent pheromones, perhaps? Or possibly just how absolutely delicious she is.");
			outputText("\n\nWhatever the cause, you don't have much left in you with all of the pleasure assaulting your various senses. " + (doloresComforted() ? "Dolores seems similarly close" : "It doesn't seem like Dolores can take much more either") + ", her fingers desperately grasping for purchase as her legs start to fail her. You're happy to help with that, ramming into her with everything you've got and pressing her against the wall while your member throbs inside of her.");
			outputText("\n\nRope after rope of cum fills your daughter as you mash yourself into her back, sealing her tight against the wall. Dolores cries out in " + (doloresComforted() ? "pleasure" : "discomfort") + " as you squeeze her, rubbing your face against her silky hair. Eventually, your spurts die down, but you stay slumped against her for some time as you recover from the strenuous lovemaking.");
			outputText("\n\nYou are the first to recuperate, so you lead your daughter over to the bed and sit the jittering moth down. She immediately slumps " + (doloresComforted() ? "against you" : "over on her side") + ", evidently unable to hold herself up any longer.");
			if (doloresComforted()) outputText("\n\nSomewhat worried by her trance-like state, you ask her if she liked it. She stays in her stupor for a few more moments before blinking and then looking at you as if she's just now realizing where she is. [say: Uh... what?] You repeat the question. [say: Ah! Yes, um... It was... unprecedented.] You'll take that as a compliment. Dolores looks like she could use some rest after that, so you tuck her in properly, give her a kiss on the forehead, and then go on your way, somewhat exhausted yourself.");
			else outputText("\n\nYou rest a hand on her hip, and she shivers at your touch. Did she like it? She nods. Really? She nods again, more fervently this time. Good. You lean in and wrap your arms around her to enjoy some gentle spooning. She presses her body into yours, oddly continuing to shiver despite your added warmth. After a few minutes, her breathing evens out as she falls asleep. You tuck her in properly and give the resting moth a quick kiss on the forehead before going on your way.");
			player.orgasm('Dick');
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresBlowjob():void {
			clearOutput();
			outputText("You [walk] over and give Dolores a quick kiss before starting the preamble to your salacious request. " + (!saveContent.doloresBlowjob ? "You aren't entirely sure how she'll respond to it, as she's normally a fairly passive partner, so y" : "Y") + "ou want to make sure she's " + (doloresComforted() ? "comfortable with giving" : "willing to give") + " you a blowjob. By the time you're done talking, your daughter seems thoroughly embarrassed.");
			if (!saveContent.doloresBlowjob) outputText("\n\n[say: I... I don't know. I've never...] She blushes. [say: I suppose that I could try... for you.]");
			else if (doloresComforted()) outputText("\n\n[say: Mmm... I suppose so. It's just a bit...] She doesn't finish the thought, instead flushing red.");
			else outputText("\n\n[say: Alright,] she says, a dead look in her eyes as gets up to service you.");
			outputText("\n\nYou give her a kiss before leading her over to a chair" + (!player.isNaked() ? "and beginning to strip. As your [armor] slowly comes off," : ".") + " Dolores seems intent on looking anywhere but at you, her hands fumbling with her dress. " + (!player.isNaked() ? "Now ready for her affection, y" : "Y") + " sit down and call for her. The dusky moth nervously inches over and begins to lower herself down, her eyes locked on your [cock] the whole while.");
			outputText("\n\nFinally, she kneels before your throbbing member. Her face moves in close, " + (doloresComforted() ? "scrutinizing it with some uncertainty" : "although her glazed eyes suggest she's somewhere else right now") + ". You can feel her breath tickling you,  and " + (player.cor > 50 ? "you'd like nothing more than to grab her head and slam it down to your hips" : "the sensation is nearly unbearable") + ", but you restrain yourself for the moment.");
			outputText("\n\nAt length, she moves her hands up to grasp the base, finally giving you the contact you've been craving, but does nothing more. She glances up at you with a questioning look, so you " + (doloresComforted() ? "reassure her" : "direct her to continue") + ". She gulps and starts to move, stroking you ever so lightly. It seems you'll have to endure this while she summons the will to keep going.");
			outputText("\n\nFinally, her prehensile tongue just barely dips out of her mouth to flick against your very tip. You shudder at the sudden contact, but she thankfully follows it up, starting to lavish the head of your cock with some remaining hesitation. It takes a couple minutes of licking, but Dolores seems to finally build up the courage to take the plunge, her pretty lips slipping over you and making your heart pound with anticipation.");
			outputText("\n\n" + (player.longestCockLength() > 4 ? "Her young mouth is too small to fit you fully, but she tries her best, diligently drawing in the first few inches" : "Her young mouth easily envelopes the " + (player.longestCockLength() > 2 ? "first few inches" : "entirety") + " of your small cock.") + " It seems she can't stay down very long, soon pulling you from her mouth with a wet 'pop' and panting heavily. You give her head a brief rub to let her know that she's doing a good job, and she gives you a " + (doloresComforted() ? "flustered smile" : "blank stare") + " in response.");
			outputText("\n\nThough inexperienced, the young moth seems to understand that something else is needed here, so she starts to " + (doloresComforted() ? "lovingly" : "mechanically") + " lick your [cock], using the full length of her long tongue to wrap around you. Once her saliva has been sufficiently applied, she dives back in, but this time, two of her hands start to work your shaft in concert.");
			outputText("\n\nShe clearly doesn't have the technique, but what she lacks in experience, she makes up for in willingness as she vigorously works your dick. " + (doloresComforted() ? "It seems that all of her earlier bashfulness has been lost in the heat of the moment" : "Despite her apparent ardor, you notice a notable lack of emotion on her face") + ", but you don't have time to think about that with your daughter's delightful service demanding your attention.");
			outputText("\n\nHer lithe little tongue runs up and down your glans, sending wonderful tingles up your spine. [if (hasballs) A free hand moves tentatively to your [balls], fondling them uncertainly at first, but with more confidence as your moans increase in volume. At the same time, s|S]he starts to put more twist into her grip, aided by the ample lubrication. " + (!saveContent.doloresBlowjob ? "It seems she's learning as she goes." : ""));
			outputText("\n\nYou're getting close, but would like to enjoy this, so you try to hold back as long as you can. However, all of your self-control turns out to be for naught as Dolores looks up at you, her beautiful violet eyes making contact with yours and sending you over the brink.");
			outputText("\n\nShe tries to keep the tip in her mouth as your cock starts to pulsate, but after only a few spurts, she sputters and pulls her head back, right into the line of fire. Squeezing her eyes shut, Dolores endures the " + (player.cumQ() > 500 ? "deluge" : "drops") + " of cum that splatter her cute face. Two hands move in to catch any spillage, but the other two continue to keep you company as your cock fires its last few shots.");
			if (doloresComforted()) outputText("\n\nWhen she realizes you're finally done, your daughter looks conflicted for a few moments before swallowing with an audible gulp. [say: I... hope you enjoyed that.] You tell her just how much, which doesn't seem to help with her embarrassment.");
			else outputText("\n\nShe doesn't seem to realize when you're finally finished, still lightly stroking your [cock] to the point of mild irritation, so you reach in to stop her. [say: Oh. Was... Was that good?] You tell her just how good it was, and she nods.");
			outputText(" The young moth gets up from her knees and stands before you for a second, looking a bit confused, before saying, [say: I'll... need to go clean up.]");
			outputText("\n\nYou thank her for the service and give her a quick kiss on an unspoiled part of her head, then make your way out of the cave.");
			player.orgasm('Dick');
			saveContent.doloresBlowjob = true;
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresTribbing():void {
			clearOutput();
			outputText("Not wanting to waste a single second more, you near fly into your daughter's arms, immediately locking her lips in a passionate kiss. Dolores is completely unprepared for this, and you take advantage of her stunned state by drinking her in, savoring the taste of her sweet young lips. You're eventually forced to pull back, a thin strand of saliva still connecting you to her, but you're already imagining all of the things you could do to her.");
			outputText("\n\nHowever, there's still one barrier to your pleasure remaining. You take a step back, but Dolores keeps her eyes closed and her lips pursed for a moment longer, before suddenly realizing with a blush. She stands before you, bashfully toying with her dress, which needs to go, now.");
			outputText("\n\nYou tell your daughter to strip. As expected, she immediately becomes flustered, not meeting your gaze. However, " + (doloresComforted() ? "she takes a moment to ready herself, clenching her fists with determination" : "her eyes suddenly deaden, and she turns to you, though it doesn't really seem like she's looking at you so much as through you") + ". She perfunctorily lifts her garment up and over her head, taking care not to move in any way that might seem the slightest bit teasing. You take pleasure in the show anyway, admiring her lithe body as it's slowly revealed to your hungry eyes.");
			outputText("\n\n[if (isnaked) As you have no need to undress, you simply sidle up to her|It wouldn't be fair if she were the only one who had to undress, so you soon follow suit, giving your daughter just enough of a show to make her look away as you shimmy out of your [armor]].");
			outputText("\n\nThinking for a moment, you consider the best way to go about this, eventually alighting on an idea of how you can truly appreciate your delectable daughter. You [walk] a bit closer before dropping down to sit on a conveniently placed rug, gesturing for Dolores to do the same. She nervously complies, though it's clear she doesn't know what you have in mind.");
			outputText("\n\nYou don't want to keep her in suspense for too long, so you [if (singleleg) shift back so that [if (isgoo) your gooey body|your tail] can stretch towards her|unfold your legs and stretch them towards her]. She still seems confused, until your [legs] start to intertwine with [if (singleleg) her legs|hers], bringing a glimmer of understanding to her face. Having locked the two of you together, you scoot a bit closer, until your nethers are practically touching. Dolores breathes heavily " + (doloresComforted() ? "in anticipation" : "with trepidation") + ", still somewhat uncomfortable with such salacious situations.");
			outputText("\n\nYou think she could use some warming up, so before getting to the main event, you pull her torso closer to you so you can get your hands on her nubile body. Your fingers dance across one of her lithe limbs, following a line from her shoulder, over her smooth skin, across the chitin starting at her forearm, to the patch of soft fluff at her wrist. You take a moment to feel it, and it's evidently sensitive, judging by the way she shivers when you brush against it.");
			outputText("\n\nContinuing your exploration of her body, you shift your focus to her breasts, teasing and toying with her petite chest. While there's not quite enough there to get a firm grasp on, they're no less fun to play with, and you soon lose sight of your goal while doing so. Unexpectedly, Dolores practically collapses into you after a few minutes, her head resting on your [chest] as she pants heavily. Her skin feels warm to the touch, and it's clear that you've excited her more than enough, so you move to start. Shifting your pelvis, you bring your crotch closer and closer to your daughter's until they contact, sending a delightful shiver up your thighs.");
			outputText("\n\nAt this, the young moth lets out a long, low moan into your shoulder, grabbing onto your sides for stability as she trembles in your arms. You pat her back [paternal]ly, shushing her until you think she's ready for you to continue.");
			doNext(doloresTribbing2);
		}
		public function doloresTribbing2():void {
			clearOutput();
			outputText("And by that time, your body is already roaring at you to move. Your hips grind into hers, rubbing your entrances together. The foreplay has provided ample lubrication, allowing you to glide over her lips with blissful fluidity, your movements quickly ratcheting up into a heated tempo. The smell of sweat and the sight of your daughter's flushed face give you a heady sense of satisfaction, and the sensations coming from your nethers are quite delightful as well. Every once in a while, your nubs catch against one another, temporarily halting your movements as the shock runs through you.");
			outputText("\n\nThings are heating up, and you're beginning to lose yourself to the pleasure. One hand on the small of her back, you reach down with the other and start to alternate between her clit and yours, making sure to divide your attention evenly. It's all Dolores can do to cling to you as you stroke her senseless, letting out little whines and moans.");
			outputText("\n\nFeeling yourself grow close, you pull Dolores flat against you, causing her to cry out. Your hand has barely any room to move, but your frantic fingers still do their best to bring you both to climax. Your daughter's hard nipples poke against you, and she seems to lose all of her earlier " + (doloresComforted() ? "embarrassment" : "reluctance") + " as you show her a small piece of paradise, rubbing and shaking and thrusting until she hits her limit with a sharp shout, and the resultant quaking of her body causes you to follow soon after.");
			outputText("\n\nYour arms remain draped around each other as you come down. You can barely focus on anything more than just breathing, but your fingers continue to stroke her head, tenderly sweeping through her disheveled hair. When the fog finally clears enough, you look to your daughter to see how she's doing, although that blissful scream earlier gave you a pretty good indication.");
			if (doloresComforted()) outputText("\n\nHowever, you're still surprised when she abruptly slumps against you, apparently no longer able to support herself properly. You hold her for as long as she needs, simply enjoying the warmth of your grateful daughter. Eventually, she manages to lean back, although she still looks quite wobbly.\n\n[say: I think... I need... to rest that one off,] she says, panting heavily.");
			else outputText("\n\nHowever, you feel a slight hiccup as she presses her face into you. You try to pull her back, but she resists, burrowing further into her [father]'s embrace. When you're finally able to tilt her head enough to get a look at her face, you can see two tracks of tears running from her eyes.\n\n[say: I'm sorry, [father]. Please, I... It's nothing. I just... need some time to rest.]");
			outputText("\n\nYou eventually unwind yourself from the moth-girl, getting [if (singleleg) up|to your feet] and gathering your [armor]. Dolores flattens herself out, one arm splayed over her face as she rests after all of that exertion. You give her one last farewell and then head off for camp, feeling quite worn out yourself.");
			player.orgasm('Vaginal');
			doNext(camp.returnToCampUseOneHour);
		}

		public function doloresPetting():void {
			clearOutput();
			outputText("You sit down in the chair by her desk and call Dolores over to you.");
			outputText("\n\nShe nervously complies, walking up and standing before you, waiting for further instruction. You use the opportunity to take her appearance in. Her dusky face has a slight rosy tint as she fidgets about. Two of her hands fiddle with her hair while the others lock in front of her. Her light, airy dress conceals her form in an alluring fashion, leaving you just enough of an impression to let your imagination run you ragged. You need to feel her.");
			outputText("\n\nAt your " + (doloresComforted() ? "direction" : "command") + ", the young moth sidles over and sits down in your lap, her pert ass digging into your crotch and exciting you" + (!player.isGenderless() ? "r waiting " + (player.hasCock() ? "cock" : "cunt") + ", which throbs with need " + (!player.isNaked() ? "beneath your [armor]" : "against the fabric of her dress") + ". But this isn't about that, you're here for [i: her] pleasure" : "immeasurably") + ". Sitting like this, her dress is hitched up a little bit, giving you quite the tantalizing view, but still slightly obstructing what you'd most like to see.");
			outputText("\n\nIt seems that she's too embarrassed to say anything, which leaves you to take the initiative.");
			outputText("\n\nTaking great care not to rush things, you slowly, deliberately, move your [hands] up the sides of her legs, enjoying for a moment the cool feel of her skin, to rest on top of her thighs. Shivering with anticipation, you nonetheless take a moment to calm yourself down. You need to pace yourself. She's warm, and like this, your head on her shoulder and your arms surrounding her, she's nearly engulfed by you. She lets out a low [say: Mmmm] as you just sit there, rubbing her thighs ever so slightly. You breathe in her scent. Just a faint hint of vanilla, quite different from Sylvia's distinctive aroma.");
			outputText("\n\nWhat starts as a dull ache at the base of your spine spreads outwards, radiating through your body until your every extremity is pulsating, thrumming with a sensation which slowly consumes you. It's need, you [i: need] her. Your first attempt at groping is clumsy, unfocused, causing her to [say: Eep] in surprise, but you soon correct that and set to cataloging each and every part of her.");
			outputText("\n\nFirst, her lithe legs. You slide down from her thighs to her knees and then back again, enjoying how supple her exposed skin is. Next, you drift upwards, dragging her dress up just enough to expose her cute lace panties on the way. Restraining yourself for the moment, you pass by her most precious place without disturbing it, " + (doloresComforted() ? "eliciting the faintest moan of need from Dolores" : "although Dolores doesn't seem to mind") + ", and move on to her soft stomach, with its delicious contour. Only slightly out of the way are her heavenly hips, which have just started to flare outwards.");
			outputText("\n\nInching upwards, you can feel the faint outline of her ribs through her thin garment as your fingers drag along their amorous path. You hesitate for just a moment below her breasts and press her to your [chest], reveling in the feeling of intimacy that this close contact brings you. When the time is right, you proceed, finally grasping her buds with both hands.");
			outputText("\n\nShe gasps at this, all four of her small hands grabbing onto your legs for support. You delicately tease her breasts, taking care not to be too rough. Although they're small, they're no less fun to play with, enticing you with their gentle femininity. You can't deny yourself a single pinch of her nipple, however, which draws a shaky whine from your captive daughter. You quickly return to the massage, mollifying her for the moment.");
			outputText("\n\nWhen you've gotten your fill, your hands move on, sliding over her collarbone to find their place on her shoulders. A slight squeeze, just to make sure that she's really there. You almost can't believe it—she's here, in your lap, all yours. You pivot your head to give her a kiss on the cheek, her neck-fluff tickling you just a bit.");
			doNext(doloresPetting2);
		}

		public function doloresPetting2():void {
			clearOutput();
			outputText("Finally, you begin the long trip back down her body, towards your waiting prize. This time, you trail over her top pair of arms. They're so thin that your hands wrap almost completely around them, and you have to marvel at how delicate she seems in comparison to her mother. You glide past the patches of fur at her wrists to grasp her hands, intertwining your fingers with hers. She's warm, and you want to stay. Sadly, you do have to move on, as much better things await.");
			outputText("\n\nEventually, you hands converge on her nubile bud, resting for the moment on either side of her mons. You carefully pull her panties to one side. She quivers. A stray " + (player.hasClaws() ? "claw" : "finger") + " drifts its way closer, closer, and then grazes softly against a single lip.");
			outputText("\n\n[say: A-Ah! [Father]...]");
			outputText("\n\nHer voice is so breathy, so delightful to your ears. You could just eat her up, and so you do, diving in and penetrating her tender depths. Your fingers find her nethers " + (doloresComforted() ? "wet enough to proceed" : "to be somewhat frigid, but you know just how to warm her up") + ", and so you proceed inwards, slowly working your way deeper and deeper.");
			outputText("\n\nWhen your digits finally bottom out, you begin the slow process of dragging them back, and by the time you're once again at her entrance, Dolores is panting heavily. It seems she finally summons the will to speak, although her voice is extremely shaky. [say: P-Please, slowly...] You slam your hand back in.");
			outputText("\n\nAt this, she " + (doloresComforted() ? "slams her legs together with a squeak" : "nervously starts to squeeze her legs together with a whimper") + ". You dig into her pliant thigh with your free hand, forcing her legs open to give you full access. Meanwhile, the other one gives her no rest, mercilessly searching her folds for every single weakness. You eventually find a particularly effective spot and begin to focus your attentions on it entirely, drawing a " + (doloresComforted() ? "wail" : "whimper") + " from Dolores.");
			outputText("\n\nAs you continue your passionate ministrations, you begin to rub the base of your palm against her clit, still making sure not to overwhelm your girl. The young moth is " + (doloresComforted() ? "obviously" : "uncomfortably") + " sensitive, her hips twisting and jerking, but your firm hand prevents her from writhing out of position. You keep your movements strong but steady, staging an inexorable assault that brings her closer and closer to her breaking point.");
			outputText("\n\nAnd with almost no warning, she climaxes, her legs tensing up and her petite rear grinding into your lap. You don't let up for one second, continuing to work her pussy while trailing kisses down her neck. She squirms in your grasp " + (doloresComforted() ? "letting out quiet cries of pleasure" : "but keeps almost completely silent") + ", apparently a bit too meek to really let it all out. That's fine, you know everything you need to from the way her body squeezes down on your fingers and the feeling of her wings beating against you in a paroxysm of bliss.");
			doNext(doloresPetting3);
		}

		public function doloresPetting3():void {
			clearOutput();
			outputText("Dolores sucks in heaving breaths as she comes down from that well-prepared height. Her situation probably isn't improved by you pulling her into a kiss. She reciprocates " + (doloresComforted() ? "through her stupor" : "somewhat tentatively") + ", small aftershocks still sweeping through her body from time to time. It takes a few minutes of shivering in your gentle embrace before she finally seems ready to get up. She " + (doloresComforted() ? "languidly stretches" : "silently rises") + " before turning to look at you.");
			if (doloresComforted()) outputText("\n\nDolores gives you a sheepish smile. [say: Wow.] Unusually simple for her. Is she reverting to monosyllables? " + (silly() ? "You didn't think you were [i: that] good. " : "") + "She shuffles her foot a bit before continuing. [say: That was... certainly quite something.] Would she like to do it again? [say: I... wouldn't be opposed to that.] Her face is bright red, but a smile peeks out from the fluff around her neck. [say: I love you, [Father].]");
			else outputText("\n\nDolores give you a cryptic look, so you ask her how she liked it. [say: It was... I don't know if I have the words.] And would she like to do it again? Her voice trembles just a bit as she answers, [say: If you so wish.] She pauses before finally meeting your gaze, her eyes alive with something akin to desperation. [say: I love you, [Father].] You return her affection, and she finally smiles, moving to embrace you with surprising strength.");
			outputText("\n\nYou give your daughter a last kiss on the forehead before departing.");
			dynStats("lus", 20);
			doNext(camp.returnToCampUseOneHour);
		}
		//end of sex stuff
	}
}