code:
package classes.Scenes.Places.Bazaar
{
import classes.Scenes.Monsters.*;
	import classes.*;
import classes.GlobalFlags.kFLAGS;
import classes.GlobalFlags.kFLAGS;
	import classes.GlobalFlags.kGAMECLASS;
	import classes.GlobalFlags.kACHIEVEMENTS;
	import classes.Scenes.Camp.*;
	import classes.Items.*;
import classes.saves.SelfSaver;
import classes.saves.SelfSaving;

public class DemonFistFighterScene extends BaseContent implements SelfSaving
	{
		public function DemonFistFighterScene()
		{
            SelfSaver.register(this);
		}

        public var saveContent:Object = {
            timesLost: 0,
			playerName: "",
            beatDemonfist: false,
            donatedAmount:0,
            metMiffixPost:false
        };

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

        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.timesLost = 0;
            saveContent.playerName = "";
            saveContent.beatDemonfist = false;
            saveContent.donatedToMiffix = 0;
            saveContent.metMiffixPost = false;

        }

        public function onAscend(reset:Boolean):void {
            saveContent.timesLost = 0;
            saveContent.playerName = "";
            saveContent.beatDemonfist = false;
            saveContent.donatedToMiffix = 0;
            saveContent.metMiffixPost = false;
        }

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

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

		public function followTheLine():void{
			clearOutput();
			outputText("You follow the conspicuous line of demons to its source, a rather unassuming tent that does little to distinguish itself from the other stores in the Bazaar. One thing you do notice as you approach, however, is that quite a few demons and creatures are leaving the tent, most of them bruised and bleeding. You look down at the ground and notice it has quite a few patches of blood and sweat. Whatever happens in that tent, it's violent.");
			menu();
			addNextButton("Enter the line",enterTheLine).hint("Whether it's a spectacle to watch or a fight to participate in, you're definitely interested.");
			addNextButton("Bail out",backToBazaar).hint("You like your blood where it is, at least right now.");
		}

		public function backToBazaar():void{
			clearOutput();
			outputText("Fuck that lel");
			camp.returnToCampUseTwoHours();
		}

		public function enterTheLine():void{
			clearOutput();
			outputText("Curious, you decide to enter the rather long line. You tap a fidgety imp in front of you on the shoulder, causing him to turn to face you with suspicion, and ask him what the line is for. He groans in a high pitched voice, but answers all the same." +
					"\n[say: You stupid or something? This is Demonfist's arena! You either watch him fight for free, or make a bet to be part of the entertainment.]" +
					"\nYou nod, and ask him which of the two he plans to do. He looks around, somewhat nervous, and whispers into your ear."+
					"\n[say: I'm going to try my luck, I am. I've collected enough gems]–He goes silent for a moment, mouthing out \"five hundred\" with incredulous eyes–[say: To pay for one round with him, and I've watched enough fights to know all his moves. I can do it!]" +
					"\nYou ask him why he would risk that much money on a fight, considering he's not exactly all that physically intimidating himself and that some of the bruised demons leaving the tent are quite muscular. He is visibly offended, his pointy ears drooping down as he chews on his lips." +
					"\n[say: I-I can do it! I get mocked a lot by all the other demons here, but once the news that Miffix the Imp beat Demonfist spread, they will all respect me! The succubi will be all over me, the other imps will be afraid of me, and I bet Lethice will even hire me to be a captain in her army, just like Zetaz!]");
			if(flags[kFLAGS.ZETAZ_DEFEATED_AND_KILLED]){
				outputText("\nYou nod, and tell him there might even be a vacancy in Lethice's army, considering you killed Zetaz yourself. The imp laughs nervously. [say: H-heh, of course you did. You even match the Champion's descr–]His eyes widen, and he remains silent for a moment before quickly turning to face the line.");
			}else{
				outputText("\nYou nod and wish him good luck in his insane gamble. He turns to face the line again.");
			}
			doNext(enterTheLine2);
		}

		public function enterTheLine2():void{
			clearOutput();
			outputText("The two of you suffer through the rather long wait, periodically hearing the sounds of amazed crowds, always followed by a battered and broken demon leaving the tent. Every minute that passes makes you wonder if the wait could possibly be worth it, but you push through, considering you've already wasted too much time to just go back now. After a few more minutes, you finally enter the tent." +
					"\n\nThe air inside the tent is stuffy, pregnant with the smell of sweat and blood, and the heat is almost unbearable. At the center you see a makeshift boxing ring, evidently built in a hurry. Inside the ring, you see a well built, indigo-colored demon, as well as a significantly skinnier demon with crimson colored skin. The indigo demon is currently uppercutting the crimson demon's jaw, a punch with enough speed and strength to make the entire audience cringe with empathetic pain."+
					"\n\nThe crimson demon falls like a rock to the floor of the makeshift ring, and the audience stops cringing for a moment to celebrate. You do your best to shuffle your way to a somewhat comfortable spot with a decent view, and end up losing sight of the diminutive Miffix in the process." +
					"\n\nThe indigo demon waves his hand, prompting a rhino-morph to jump onto the ring and grab the other demon, who is still knocked out cold. He takes a waterskin from one of corners of the ring, drinks a bit of it, and pours the rest over his head, cooling himself down before pulling a stool from outside the ring, placing it on the floor, and sitting on it." +
					"\n\n[say: Good one,] The indigo demon says, breathing heavily. [say: Fast, smart, but too much of a glass jaw. How many has it been today?]" +
					"\nThe audience screams \"seven\" in unison, prompting a smile from the demon. [say: Alright, alright. I think I've got one more in me for today.] He gets up, much to the crowd's amazement, stretching his shoulders and massaging his bandage-covered knuckles, the fabric deeply stained with blood from previous fighters. [say: Are any of you in the audience]–he points to the crowd with a confident smile–[say: brave enough to try your skills against Demonfist?] He rolls his eyes after saying his title, perhaps aware of how silly it sounds." +
					"\n\nFor a few seconds, the audience remains silent. The thought to jump onto the ring yourself crosses your mind, but someone else screams their own name before you can do anything. \"Miffix\", the voice spells out." +
					"\n\n[say: Miffix, is it? I can't see you! Come onto the ring and let's see what you have,] Demonfist yells out. A hole forms in the packed crowd, revealing the emaciated Miffix, who immediately prompts laughter from the audience, some of it subdued, some of it not. [say: Come on people, don't underestimate an opponent!] Demonfist says, waving at the imp to climb into the ring. [say: Wouldn't be the first time I fought someone that's much faster or stronger than they look. And if he's a fool, well, the way I see it...]" +
					"\nMiffix shuffles through the crowd and enters the ring, with some difficulty." +
					"\n[say: Better fool than craven.]");
			doNext(miffixFight);

		}

		public function miffixFight():void{
			clearOutput();
			outputText("You look at Miffix. He's evidently terrified, but resolute; it's clear he's not going to back down from this fight." +
					"\n\n[say: Now, Miffix, got the gems?] Demonfist asks, jumping and punching the air, keeping himself heated up. The imp nods, untying a hefty pouch of gems from his loincloth. He throws it towards Demonfist, who quickly grabs it and tosses it out of the ring. The rhino-morph from before takes it, perfectly positioned to receive the impressive amount of gems. [say: Good! Very good! We can start whenever you want! Remember, I can handle dirty fighting, bladed weapons, poisoned fangs, or whatever you may have in store, but this is a <b>physical</b> fight! No lame magic in my ring! Understood?] " +
					"\nMiffix swallows, attempting to calm himself down. [say: Y-yes. I do.] " +
					"\nDemonfist smiles. [say: That's it then! The fight starts after you throw the first punch. Come on!] he says, cheekily taunting the imp by waving his hand in a \"come hither\" motion."+
					"\n\nThe imp gathers his courage, cracks his knuckles, breathes deeply, and then suddenly dashes towards the indigo demon, with a speed far greater than you though he could muster. The rest of the crowd gasps in surprise as well, the very fact the imp fought at all already exceeding their expectations." +
					"\nMiffix attempts a quick jab as soon as he reaches Demonfist's range, but the champion swiftly dodges to the right. The demon then attempts a counter hook, but, to your surprise, it whiffs, the imp managing to move back and just barely avoid the powerful strike. Sensing an opportunity due to Demonfist being out of balance, Miffix attempts to finish the fight immediately with an uppercut, jumping with the help of his wings to reach the demon's jaw. Demonfist is fast enough to tilt his head back and avoid the attack, but also shifts his field of view away from his opponent." +
					"\n\nComing down from from his leap, the imp twists his body and attempts to elbow his opponent in the ribs, a move that, to the audience's sheer amazement, lands successfully, causing the demon to twist in pain and bringing his head low, to a level the imp can reach without jumping. " +
					"\n\nMiffix wastes no time, executing a straight punch aimed at Demonfist's face to knock him out cold. In the blink of an eye, however, the indigo demon manages to recover, twisting his body around Miffix's stretched arm and sliding behind the overconfident imp. At the end of his move, the demon launches a powerful elbow hit to the back of Miffix's head, launching him forward and knocking him out." +
					"\n\nThe imp does not get up.");
			doNext(miffixFight2);
		}

		public function miffixFight2():void{
			clearOutput();
			outputText("The crowd remains silent for a moment before cheering for their undefeated champion. Demonfist rubs his bruised ribs for a moment and then waves at the rhino-morph, who quickly does his job and takes Miffix away." +
					"\n\n[say: Good, smart one! If that punch had a little more power, I might have been stunned for long enough for him to finish me off. Not good enough, but cheers to that brave little bastard!]" +
					"\nThe crowd follows through, cheering for the unconscious imp. Demonfist wipes some of his sweat with a nearby towel, and tells the crowd that that's all the fighting for today. They quickly disperse, scattered commentaries about the day's fights filling the air, including some complaints about the obscenely long streak of victories. You follow the rest of the crowd, wondering if you should give Demonfist a shot yourself in the future.");
			doNext(camp.returnToCampUseTwoHours);
		}

		public function miffixPostTalk():void{
            clearOutput();
            if(!saveContent.metMiffixPost){
                outputText("You approach the destitute imp, who reflexively turns towards you to beg for gems. It takes a few seconds for him to recognize you, and he doesn't seem to be particularly happy to see you again.\n\n[say: Oh, hello there. You're the one I met in the waiting line for Demonfist, aren't you? Sorry, I forgot your name.]");
                outputText("\n\nYou tell him your name, though you don't actually remember doing so before. \n\n[say: Yeah. Good to meet you again, [name].] You nod, unsure what to say to the poor imp.\n\nA few seconds pass before he gestures for gems again, which brings you out of your awkwardness induced paralysis. [say: Every little bit helps, friend. I'm completely broke now that Demonfist took my entire life's earnings.]");
                outputText("\n\nMaybe you should give him a few gems?");
                saveContent.metMiffixPost = true;
                miffixBegMenu();
            }else{
                if(saveContent.donatedAmount > 500){
                    outputText("Miffix's little begging spot is in a much better shape now. He has a makeshift mattress and blanket to sleep on, along with a sizeable stockpile of food. A separate bowl for alms has a small sign labeled \"Drinking Money, Won't Lie\" on top of it. Another sign sits next to him, containing a list of odd jobs he would and wouldn't do. You can't argue with many of the jobs he wouldn't; they're definitely more of a succubus' thing." +
                            "\n\nHe nods and welcomes you. [say: [name], how is it going? Life has its ups and downs, but a bit of perseverance goes a long way!]" +
                            "\n\nHe's still mostly destitute, but he's been holding on pretty well.");
                }
                else if(saveContent.donatedAmount > 100){
                    outputText("You approach Miffix's begging spot, which has seen some improvements over time. He bought himself a decent pillow and a rough blanket that he probably uses as a mattress. A few spare meals sit next to him. He probably won't starve if he controls himself." +
                            "\n\nHe nods at you. [say: Nice day, isn't it? Hope you don't get tired of the constant \"scorching sun\" forecast. Anyway, how is it going?]" +
                            "\n\nThings are looking up for him, apparently.");
                }else if(saveContent.donatedAmount > 50){
                    outputText("You approach Miffix, who is sitting down in his little begging spot. It is rather barren, with nothing more than a few pieces of old bread for food and a small worn cloth for him to rest on. He nods as he notices you, his humor visibly improved from before. [say: Hey there, [name]. Hope life has been fair to you lately.] ");
                }
                miffixTalkTopics();
            }
		}

        public function miffixTalkTopics():void{
            menu();
            addNextButton("Money",miffixTalkAnswers,0).hint("Ask him what he's planning to do with his money in the future.");
            addNextButton("Champion",miffixTalkAnswers,1).hint("Tell him the news about how you defeated Demonfist.").disableIf(!saveContent.beatDemonfist,"You actually need to beat him first before you can gloat about it.");
        }

        public function miffixTalkAnswers(topic:int = 0):void {
            switch(topic){
                case 0:
                    outputText("You cough and ask him what his future plans for his wealth are, quite aware that the topic is a bit of a private one. He sighs. [say: Paying debts. Let's just say that I didn't really have 500 gems to spare when I decided to try my luck, and now I need a lot more than that, and relatively quickly if I want my legs to stay intact.]" +
                            "\n\nSo he decided to make a risky bet with someone else's money. You ask him who is threatening him. It may not be the first thing in your list, but you could just beat them until they give up on beating him. He shakes his head at the suggestion." +
                            "\n\n[say: Look, I appreciate it, but it's not like I didn't know what I was doing. I'm not being swindled here, I was just stupid. I've no doubt you can beat the crap out of the people that lent me money, but then what? I still need to live here, and that will be a whole lot harder when news gets around that I'm a bad customer with a bloodthirsty bodyguard.]" +
                            "\n\nFair point, you think to yourself. You ask him if he just hopes he'll get the money in time before his legs get a thorough workout. He groans." +
                            "\n\n[say: I doubt they actually want to break my bones, I was being a bit dramatic there. They'll probably just keep extending the deadline... while also increasing interest rates. And the moment I refuse to pay, that's when the hammer comes down.]" +
                            "\n\nYou nod, and he nods as well. A few seconds of silence pass before he extends his hands towards you. [say: So, help me out?]");
                    miffixBegMenu();
                    break;
                case 1:
                    outputText("You tell him about your fight with Demonfist and subsequent victory. You try to sound humble, but soon notice it's a bit of a pointless effort. His reaction is quite a lot more relaxed than you had expected.");
                    if(player.short == saveContent.playerName){
                        outputText("\n\n[say: Yeah, didn't need an oracle to tell me that. Everyone screamed your name from the tent when it happened. I was just wondering when you would gloat about it.] ");
                    }else{
                        outputText("\n\n[say: Huh, no shit? You're actually " + saveContent.playerName + "? Should have guessed as much. Nice of you to wait a bit before coming to gloat about it.]");
                    }
                    outputText("\n\nHe chuckles, trailing off into a groan of disappointment. [say: Way to steal my thunder. If you managed to beat him then I guess I was much closer to doing it than I thought. Still, shame I wasn't there to see it. Would have loved to be on the front row when his mouth kissed the floor of the ring.]" +
                            "\n\nSounds like he has a bit of an animosity for the ex-champion. You ask him about it, and he shakes his head. [say: Nah, not really. I hate the bastard for taking my life's savings, but that's just me being stupid. I'm talking about the spectacle of it. No one in the Bazaar has seen as many of his fights as I have, and let me tell you, it was about time someone knocked him to the ground. No fighter can keep things entertaining for that long when he's champ. Just my luck that he bit the dust when I was scrubbing toilets for change.]" +
                            "\n\nLuck is definitely not kind to him. Still, you move the conversation along, and ask him what he thinks Demonfist will do now. He shrugs. [say: Don't think much will change, really. You beat his ass, but everyone else in the bazaar is still an easy victory for him. The fact someone finally beat him will probably drive more people to test their skills and lose their gems. I suggest you visit him again every once in a while to teach him humility. And tell me before you do it, so I can see it happening.]" +
                            "\n\nYou smile and tell the imp that you just might do that.");
                    break;
            }
        }

        public function miffixBegMenu():void{
            menu();
            addNextButton("What For",miffixBegAnswers,0).hint("Ask him what he plans to do with the gems he's getting.");
            addNextButton("10",miffixBegAnswers,1).hint("10 gems should buy him a good meal for today.").disableIf(player.gems < 10);
            addNextButton("50",miffixBegAnswers,2).hint("50 gems will probably last him a week if he's smart.").disableIf(player.gems < 50);
            addNextButton("100",miffixBegAnswers,3).hint("You don't really understand why money is an issue for people around here.").disableIf(player.gems < 100);
            addNextButton("500",miffixBegAnswers,4).hint("Exactly what he'd need to get knocked out by Demonfist again. Hopefully he's smarter this time around.").disableIf(player.gems < 500);
            addNextButton("1000",miffixBegAnswers,5).hint("Would make Miffix the biggest target in the Bazaar. Maybe that's what you want?").disableIf(player.gems < 1000);
            addNextButton("Nothing",miffixBegAnswers,6).hint("You don't have anything on you right now. Yeah.");
        }

        //Idea: Donating unlocks the next menu, where you can ask Miffix a few questions about him and his life.
        //Miffix needs 1000 gems(in small batches) to pay off the people that lent him money and to stabilize his life.
        //Once that value is reached, he will pitch another plan for him to become poplar, involving you changing/hiding your face and attacking a random store in the bazaar. Miffix would then "defeat" you and get a bit of fame.
        //You can just beat him normally, at which point the imp will disappear forever, probably taken out by his loaners.
        //If you help him out to the end, he would eventually show up in random encounters with his own pack of imps, suggesting he ended up becoming a somewhat respectable member of Lethice's army. He would give you a few items and bid you farewell.
        public function miffixBegAnswers(answer:int):void{
            clearOutput();
            switch(answer){
                case 0:
                    outputText("You ask him what exactly he plans to do with any gems you give him. He sighs, aware of what you mean.\n\n[say: You're worried I'll try my chances against Demonfist again, aren't you? I've learned my lesson. I'm not supposed to ever win anything, and I'll just beg and grovel for food for the rest of my life. Satisfied?]" +
                            "\n\nApparently losing that fight broke more than a few teeth. At least you know he's not going to waste whatever little he's getting from begging.");
                    miffixBegMenu();
                    break;
                case 1:
                    outputText("You give him a handful of gems. You expect him to be disappointed with the meager amount, but he actually seems quite satisfied. [say: Thank you. A day where I eat is a good day after all.]\n\nHe takes the gems and thanks you once again. Quite the rough life, you think to yourself. Still, you've done your good deed for the day, even if that good deed was helping an imp.");
                        player.gems -= 10;
                        saveContent.donatedAmount += 10;
                    break;
                case 2:
                    outputText("You give him a respectable amount of gems, which immediately makes his expression shift to a much happier one. [say: Thank you, friend, thank you! You have no idea how much that will help me!]\n\nHe takes the gems while smiling and bows to you in deep gratitude. You leave him to count his alms, feeling a bit awkward from the desperate praise.");
                    player.gems -= 50;
                    saveContent.donatedAmount += 50;
                    break;
                case 3:
                    outputText("You throw him a fat pouch of gems, which paralyzes him for a few seconds from sheer amazement. [say: Lethice's tits, [name]!] Miffix tries to calm down, aware it's in his best interests to not make too much of a fuss about it. [say: Just how many gems are there in this bag?] -- He whispers to you. You quickly gesture the value, and he swallows, unsure what to say. [say: T-thank you kindly. I'll certainly be able to eat today.]\n\nYou leave him to surreptitiously count his wealth, feeling quite smug about being able to just toss a small fortune at a random beggar like that.");
                    player.gems -= 100;
                    saveContent.donatedAmount += 100;
                    break;
                case 4:
                    outputText("You ask him if 500 gems would help him out. He laughs, but then changes his expression when he notices you're being serious. [say: Sorry, but are you insane? I don't have a place to store that many gems! It would take ten minutes for a mob to notice and pick my bones clean. Can't you just... donate less?]\n\nYou scratch your head, a bit confused over his statement. Well, if he isn't going to take all those gems, you might as well donate a bit less.");
                    miffixBegMenu();
                    break;
                case 5:
                    outputText("You struggle a bit getting a pouch filled with 1000 gems from your person, and ask him if that would help him out.\n\n[say: You don't have 1000 gems.] He says, incredulous. You tell him you most definitely do. [say: That's- how did- look, I really wish I could accept that, but on the off chance that the gems you're somehow willing to throw away aren't cursed, I'd be beaten near death and robbed just a minute after getting them. You might be able to defend yourself, but I can't. Can't you just... donate less?]\n\nYou scratch your head, a bit confused over his statement. Well, if he isn't going to take all those gems, you might as well donate a bit less.");
                    miffixBegMenu();

            }
        }

		public function returnToTent():void{
			clearOutput();
			player.gems -= 500;
			var possibleOpponents:Array =  ["a huge minotaur","a stocky looking imp","an athletic incubus","a mean looking rat-morph","a surprisingly muscled succubus"];
			outputText("You make your way back to Demonfist's arena, the line as packed and the crowd as energetic as the first time you watched him. This time around Miffix is nowhere to be seen, making the wait a fair bit more tedious. You can endure it for a shot at the champion, however." +
					"\n\nAfter several minutes, you finally make your way inside the tent, the heat and smell just as uncomfortable as before. You position yourself as close to the ring as you can, eager to shout your name as soon as Demonfist finishes off his current opponent. It isn't long before it happens, a well placed and viciously fast uppercut knocking out " + possibleOpponents[rand(possibleOpponents.length)] + " cold to the audience's amazement." +
					"\n\nThe champion does his usual short rest ritual before getting up from his stool again and pointing at the audience, calling another fighter insane enough to take him on. It's your chance! You could scream your name and get in the ring, though perhaps it wouldn't be a good idea to do so.");
            mainView.nameBox.text = "";
            menu();
            addButton(0,"Custom Name",nameYourself).hint("Get into the spirit of things and create a new fighter name for yourself.");
			addButton(1,"Your name",nameYourself,player.short).hint("Your name will do.");
			if(flags[kFLAGS.ZETAZ_DEFEATED_AND_KILLED])addNextButton("Zetaz's Doom",nameYourself,"Zetaz's Doom").hint("You've beaten one of Lethice's captains!");
			if(flags[kFLAGS.IZUMI_TIMES_GRABBED_THE_HORN] > 2)addNextButton("The Oni Obliterator",nameYourself,"The Oni Obliterator").hint("You've met a hulking giant and brought it to its knees.");
			if(flags[kFLAGS.HELIA_SPAR_VICTORIES] > 5)addNextButton("The Salamander Stomper",nameYourself,"The Salamander Stomper").hint("Not even a berserking salamander can stop you!");
			if(flags[kFLAGS.TIMES_BEATEN_DULLAHAN_SPAR] > 3 || flags[kFLAGS.TIMES_BEATEN_SHOULDRA] > 3) addNextButton("The Undertaker",nameYourself,"The Undertaker").hint("You've fought the undead... and lived to tell the tale.");
			if(player.isReligious() && player.cor < 40) addNextButton("Angelfist",nameYourself,"Angelfist").hint("The Gods themselves have chosen your for this task!");
			else addNextButton("The Corrupted Crusader",nameYourself,"The Corrupted Crusader").hint("You have turned your back on the Gods themselves. No mere demon can scare you!");
            if(player.weapon == weapons.LRAVENG) addNextButton("Perfect Storm",nameYourself,"Perfect Storm").hint("The opportunity to test your blade against such an opponent... Now you're a little motivated.");
        }

        public function nameYourself(name:String = ""):void {
            if (name === "" && (mainView.nameBox.text === "" || mainView.nameBox.text === "0" || mainView.nameBox.text === "1")) {
                clearOutput();
                outputText("<b>You must name yourself.</b>");
                menu();
                mainView.promptCharacterName();
                mainView.nameBox.x = mainView.mainText.x + 5;
                mainView.nameBox.y = mainView.mainText.y + 3 + mainView.mainText.textHeight;
                addButton(0,"Next",nameYourself);
                return;
            }
			if(name !== ""){
				name = mainView.nameBox.text;
            }
            saveContent.playerName = name;
            mainView.nameBox.text = "";
            mainView.nameBox.visible = false;
            clearOutput();

            challengeBegins();
        }

        public function challengeBegins():void {
            outputText("You raise a hand and yell out your ring name with confidence. The crowd turns to face you while Demonfist looks at you with interest, fingers running through his chin as he smiles. [say: Very well then, [ringname]. Show me the goods and climb into the ring. Let's see what you got to offer!]" +
					"\n\nYou take a gem pouch from your gear as the crowd parts in front of you, giving you a clear path towards the ring. You tense your muscles and climb the ring, quickly tossing the pouch to Demonfist when you enter it. As usual, he immediately tosses it towards the rhino-morph. You stare down at the champion, and he does the same to you." + "[say: If you don't know the rules, it's simple,] he says, cracking his knuckles. [say: You can use whatever weapons and dirty tricks you want against me. Go nuts. The one rule I have is no magic. I see you casting a spell and it won't be a fun sparring match anymore. I'm pretty sure the crowd here won't take it too well either. So, get it?]" +
					"\n\nYou nod and accept. He smiles. [say: Very nice. Well, hit me with all you've got! The fight starts when you attack me. Come on! Give me a challenge, and give the crowd a show!]" +
					"\n\nDemonfist stretches an arm towards you and motions for you to attack him. The crowd cheers for the two of you and you prepare to strike. <b>It's a fight!</b>");
			var monster:DemonFistFighter = new DemonFistFighter();
			monster.createStatusEffect(StatusEffects.GenericRunDisabled,0,0,0,0);
			combat.beginCombat(monster);
        }

        public function lustKO():void{
            outputText("The demon's energetic movements slow down, and you notice he begins to lose focus on the fight.\n" +
                    "[say: Lethice's tits, can you please take this fight seriously?]\n" +
                    "You coyly ask whatever he means by that, jerking your sweating body forward and visibly stunning him in the process.\n" +
                    "He stops moving, frustrated, and begins rambling. [say: Damn it, you know what I'm talking about! All this teasing, rubbing, moaning and whatever! Stop that shit right n-]" +
                    "\nSpotting an opening in his defenses, you swiftly uppercut him, hitting him straight on his jaw and causing an explosion of sweat to burst from him, his head whiplashing back in a visibly painful impact. He drops to the ground like a ragdoll, and remains silent for a few moments before groaning in pain.\n" +
                    "[say: That's your strategy then, huh?] He grabs his jaw and winces, attempting to get up. [say: Got me, got me. That's a knockout, I'm done.]");
            doNext(playerWins);
        }

		public function playerWins():void{
			clearOutput();
			outputText("The crowd remains silent, with only the occasional whisper being heard in the tent." +
					"\n\nFinally, an incubus decides to break the silence. [say: [He] cheated! [He] must have used magic, that's the only way [he] could have moved so fast! Not only that, bu-]" +
					"\n\n[say: Shut the hell up, you moron]–Demonfist yells out, instantly silencing the incubus–[say: [Ringname] here beat me fair and square. Maybe I fought too much today already or maybe I got complacent over the hundreds of victories I've had, but the truth is that I've been bested.]" +
					"\n\nDemonfist gets up and approaches you, grabbing your wrist with a tired smile. [say: I own this crappy tent, so I think I've the right to say this now. [ringname] here is the new Champion!] He lifts your arm, and the crowd begins to cheer for you, yelling out your name with fervor and admiration. You can't help but smile and raise your other arm in a victorious fist pump. Today, you are the " + player.mf("King","Queen") + " of Mareth! Or of a certain small corner of the Bazaar. Either way, it feels good.");
			if(player.weapon.isFist() && player.shield == ShieldLib.NOTHING){
                awardAchievement("Alexander the Great", kACHIEVEMENTS.ALEXANDER_THE_GREAT, true, true);
			}
            saveContent.beatDemonfist = true;
			doNext(game.combat.cleanupAfterCombat); //todo
		}

    }
}


code:
package classes.Scenes.Places.Bazaar
{
	import classes.GlobalFlags.kFLAGS;
	import classes.PerkLib;
	import classes.display.SpriteDb;

	public class GretasGarments extends BazaarAbstractContent
	{
		public function GretasGarments() {
		}

		private var cockSockDb:Array = [
			["Wool",      "wool",       10, "",
				"You spy a thick, woolen sock sitting on a counter and take it up to Greta.  \"Ah, yes.  That's our basic sock.  Warm and cozy, great for those chilly nights.  That one's a mere 10 gems.  A steal, of course.\""],
			["Cockring",  "cockring",  100, "",
				"You pick up one sock, surprised to find how heavy it is. Large metal rings encircle the base of the smooth cock-sock, with one loose ring dangling down, no doubt intending to wrap around the base of your ball sack. \"Oh yes, that's a fun one. Those rings will constantly constrict your manhood, so you'll always be hard and ready to go.\" She giggles and waves a hand, \"That's actually a very popular sock... so many demons come in to get these for their harems. It's 100 gems.\""],
			["Alabaster", "alabaster",  25, "",
				"You pick up a one sock and inspect it. It's a pure white cock sock, edged with delicate lace. It almost appears to be some kind of bridal wear... although you don't know of any kind of bride that would wear something like this.  \"Ah yeah, that's a popular one.  Some folks like the purity that it suggests... though I can't guess why.  It's 25 gems, though.\""],
			["Viridian",  "viridian", 1000, "",
				"You pick up one sock and inspect it.  The whole thing is a rich, natural green color and completely lace, accentuated with vivid red roses.  Just touching it makes you feel healthier and more alive.  \"Ahh, that's a fun one right there.  It hastens your natural healing.  Very useful, and pretty, too, if I say so myself.  It's 1,000 gems.\"  You pale at the price, but Greta waves a hand, \"Trust me, honey, it's worth it.\""],
			["Scarlet",   "scarlet",   250, "",
				"You pick up one sock and inspect it.  It's an incredible plush red, and made of soft satin and detailed with red lace.  It seems smaller than the other socks you've seen, and you can't help but wonder how tight it will feel on your dick.  \"Mmm, that one's special.  It increases the blood flow to your little dick, enabling it to grow a lot faster.  This one goes quick.  Everyone wants to be a minotaur!  It's 250 gems.\""],
			["Cobalt",    "cobalt",    250, "",
				"You pick up one sock and inspect it.  It's a cool, soft blue color, made from satin and detailed in light blue lace.  It seems extremely small, compared to the other socks in the shop, and you can't help but think it must be extremely uncomfortable to wear.  \"Oho, that's a fun one right there.  The cute little femboys go crazy for it.  As you can see, it's a bit small, and it will actually inhibit your cock from growing too big.  It's 250 gems.\""],
			["Purple", "amaranthine", 1000, "",
				"You pick up one sock and inspect it.  It's a silky smooth lavish purple color, with fine lace depicting some kind of six-legged wolf-like creature.  Overall, though, the sock is an odd shape, seemingly intended for someone with a knot AND some kind of equine-like flare.  Greta's eyebrows raise as she sees the item you're holding,  \"Ohh, that one.  That, honey, was an experiment.  I took some magic channeled down from the stars themselves and infused it into a new sock, and that was the result.  Truth be told, I'm not entirely sure what it does, but I'll sell it to you for 1,000 gems.\""],
			["Gilded",    "gilded",   3000, "",
				"You pick up one sock and inspect it, surprised to see how rigid and heavy it is.  Unlike the others in the shop, this one seems to be made of a cool golden metallic material.  Glittering gems are embedded into the top side, while the bottom is cinched closed with leather cords.  \"You've got a good eye,\" Greta says, her eyes twinkling greedily.  \"With that bad boy, you can actually convert some of your... sweet cum into even sweeter gems.  Of course, with that kind of awesome power, you've got to understand that it'll cost you 3,000 gems.\""],
			["Mtl. Green", "green",    500, "",
				"You pick up one sock and inspect it. It's a dark, metallic green in color and interlaced with brighter green highlights. Greta's eyebrows raise as she sees the item you're holding, \"Ohh, that one.  It's part of my newest lineup of cock-socks. If you're unsure of your endurance, this might help as the magic bolsters your overall health capacity. I'll sell it to you for 500 gems.\""],
			["Mtl. Red",  "red",       500, "",
				"You pick up one sock and inspect it. It's a dark, metallic red in color and interlaced with brighter red highlights. Overall, it looks a bit menacing. Greta's eyebrows raise as she sees the item you're holding, \"Ohh, that one. It's part of my newest lineup of cock-socks. This cock-sock will enhance your power so you can physically beat tougher opponents. I'll sell it to you for 500 gems.\""],
			["Mtl. Blue", "blue",      500, "",
				"You pick up one sock and inspect it. It's a dark, metallic blue in color and interlaced with brighter blue highlights that seems to glow in the dark. Greta's eyebrows raise as she sees the item you're holding, \"Ohh, that one.  It's part of my newest lineup of cock-socks. This cock-sock will enhance your spellpower. I'll sell it to you for 500 gems.\""]
		]

		//"Greta's Garments" - Interior
		public function gretasGarments():void {
			clearOutput();
			spriteSelect(SpriteDb.s_greta);
			if (flags[kFLAGS.FOUND_SOCKS] == 1 && flags[kFLAGS.SOCK_COUNTER] == 0) {
				outputText("As you enter the store, you're surprised to see that a variety of products line the shelves.  Clothing of various materials, sizes and shapes lay folded on shelves and tables around the little shop.  A lone, surprisingly anatomically correct mannequin stands by the counter nude except for a thin lacy piece of fabric held taut over its wooden penis.");
				outputText("\n\nThe demoness, Greta, spies you looking at the strange piece of clothing.  \"Aha, you're back!\" she says, throwing her arms wide, which has the unintentional but not unappreciated effect of making her enormous boobs jiggle.  \"As you can see, I'm back in full production.  I finally got that pesky backlog taken care of... although this one shy customer, a quiet browser, if you will, keeps me on my toes with new orders.  I swear he and his partner will be the death of me!\"");
				outputText("\n\nThe pink-skinned succubus clicks her tongue disapprovingly for a moment before turning her gaze back to you.  \"Anyway, I've now got a full stock of delicious cock-socks for purchase.  Please, do look around and let me know if you find anything... suitable,\" she giggles and turns her attention back to knitting.");
				unlockCodexEntry(kFLAGS.CODEX_ENTRY_SUCCUBUS);
				menu();
				addButton(0,"Next",gretasGarments);
				flags[kFLAGS.FOUND_SOCKS] = 2;
				return;
			}
			if (flags[kFLAGS.FOUND_SOCKS] < 2) {
				outputText("The interior of Greta's Garments is surprisingly bare.  It's literally an empty wagon with a crude bench, a strongbox, a few looms of cloth, and some sewing tools.  However, that's not to say that the shop is empty.  Reclining behind the counter is a pink-skinned succubus, busy knitting what looks like a sock. Even with her slouching posture, you can see that her breasts are truly tremendous - mountainous mammaries that she actually rests her arms on while she knits.  She's completely nude, save for two thin black squares that stretch over her taut nipples (concealing absolutely nothing) and a soaked triangle that's even now threatening to disappear into her gushing crevice forever.");
				outputText("\n\nNoticing your gaze, she sits up a little straighter and swivels on some kind of rotating chair to face you more directly.  Her jiggling breasts slowly bounce to a stop on the counter before her as she asks, \"Can I interest you in something, honey?\"");
				unlockCodexEntry(kFLAGS.CODEX_ENTRY_SUCCUBUS);
				outputText("\n\nThere doesn't seem to be anything for sale that you can see");
				if (flags[kFLAGS.OWN_MAIDEN_BIKINI] == 0) outputText(", except maybe a super-skimpy chain bikini that's chased with white and gold highlights");
				if (flags[kFLAGS.FOUND_SOCKS] == 0) flags[kFLAGS.FOUND_SOCKS] = 0.5; //For tooltip tracking (currently unused in this mod)
			}
			else {
				outputText("The interior of Greta's Garments is surprisingly colorful.  Though it started off as an empty wagon filled with loose bolts of cloth and sewing tools, vivid fabrics now cover all the shelves.  Curtains hang from the walls in every color of the rainbow, and a single wooden mannequin stands near the counter, its surprisingly anatomically correct cock covered in a thin, lacey cock-sock.  Sitting nearby, behind the counter, is a pink-skinned succubus, busy knitting what looks like another such sock. Even with her slouching posture, you can see that her breasts are truly tremendous - mountainous mammaries that she actually rests her arms on while she knits.  She's completely nude, save for two thin black squares that stretch over her taut nipples (concealing absolutely nothing) and a soaked triangle that's even now threatening to disappear into her gushing crevice forever.");
				outputText("\n\nNoticing your gaze, she sits up a little straighter and swivels on some kind of rotating chair to face you more directly.  Her jiggling breasts slowly bounce to a stop on the counter before her as she asks, \"Can I interest you in something, honey?\"");
				unlockCodexEntry(kFLAGS.CODEX_ENTRY_SUCCUBUS);
				outputText("\n\nThere doesn't seem to be anything aside from cock-socks here");
				if (flags[kFLAGS.OWN_MAIDEN_BIKINI] == 0) outputText(", except maybe a super-skimpy chain bikini that's chased with white and gold highlights");
			}
			outputText(".");
			if(flags[kFLAGS.TOOK_NAUGHTY_HABIT] == 0){
				outputText("\nA small mannequin sits in a chair on the far side of the room. A navy blue nun’s habit clings to its barely noticeable chest, plump rear and girlish hips.Poking out from a" +
						" pocket is a thick golden cross. If it weren’t for the rather large erect cock that had a thick black beaded rosary tied around it like a perverse cockring while the hem of the" +
						" habit was pulled up, it would have almost seemed chaste.");
			}
			dynStats("lus", 2, "scale", false);
			menu();
			if (flags[kFLAGS.FOUND_SOCKS] < 1) addButton(4,"Low Stock",askGretaAboutInventory);
			else {
				if (flags[kFLAGS.FOUND_SOCKS] == 2 && player.cocks.length > 0 && player.hasSockRoom()) addButton(1,"Browse Socks",browseDemSocksSon);
				if (player.hasSock()) addButton(2,"Remove Sock",takeOffDatSock);
			}
			if (flags[kFLAGS.OWN_MAIDEN_BIKINI] == 0) addButton(3,"Bikini",askGretaAboutZeBikini);
			if(flags[kFLAGS.TOOK_NAUGHTY_HABIT] == 0) addButton(2,"Nun's Habit",askGretaAboutHabit).hint("Enquire about the nun's habit.");
			addButton(14,"Back",bazaar.enterTheBazaarAndMenu);

		}

		 private function askGretaAboutHabit():void {
			clearOutput();
			 outputText("You enquire about the Nun’s Habit and Greta’s eyes light up. \n" +
					 "[say: Oh isn’t it just the most darling thing? It looks so pure and innocent. But go ahead and have a look at the items with it, as they’re not just for show] she smirks.\n\nYou take" +
					 " a closer look and are somewhat surprised to find the rosary beads are actually made of black rubber, their shiny surface coated in a thin layer of glossy lube. You can easily assume" +
					 " what sort of perverted purpose these were made for. You then move your gaze to the cross.\n" +
					 "\n" +
					 "You carefully lift the cross, surprised by the weight and the rubbery texture. You soon come to find that this cross is more than just a symbol. The shaft of the cross terminates in, well... a shaft. A thick dildo, shaped like a human cock, shines in the light. You’re starting to get the feeling this outfit is more intended as a bedroom piece than an outfit. Still it’s held your interest this long, maybe you should buy it anyway. The way the fabric clings to the mannequin reassures that it will make you look both pious and perverse, and you know that here that can be used to your advantage. You ask Greta what the price is after thinking for a while.\n\n" +
					 "[say: Hmm.. Well I was hoping for this innocent wide hipped femme boy... with a thick juicy cock... to come and try it on...] She says, clearly daydreaming about such an event and how" +
					 " she could take advantage of it. You wait for her to snap out of it before coughing slightly to bring her back. Her pink skin flushes a slight magenta at her unprofessionalism as she" +
					 " continues to speak. [say: Um...but for you sweetheart? 500 gems for the lot.]\n" +
					 "\nDo you buy the Nun’s Habit?\n");
			 menu();
			 addButton(0,"Yes",buyHabit).hint("Buy the habit.").disableIf(player.gems <= 500,"You don't have enough gems to purchase this piece.");
			 addButton(1,"No",gretasGarments).hint("Nah.");
		}

				private function buyHabit():void {
					clearOutput();
					player.gems -= 500;
					flags[kFLAGS.TOOK_NAUGHTY_HABIT] = 1;
					outputText("You give the gems to Greta and she hands the habit to you while smiling lasciviously. It's clear she is thinking of replacing the femme boy for you. You hurry out of the" +
							" store, not intending on being attacked like that until you try out your new purchase with some privacy. ");
					inventory.takeItem(armors.NNUNHAB,camp.returnToCampUseOneHour);
				}

		//Ask About Inventory
		private function askGretaAboutInventory():void {
			clearOutput();
			outputText("Curious about the lack of selection, you broach the topic with the slutty shopkeeper, asking just where the items she has for sale are at.");
			outputText("\n\nThe demoness, who must be Greta, laughs, \"Oh, it's sweet of you to ask, but I just got set up here.  You wouldn't know how hard it is not to go around taming every sweet little boner on display out there, but there's something to be said for earning profit with your own sweat, effort, and charm.\"  She presses her hands against the sides of her chest and turns her tremendous cleavage into a canyon of mammary delight.");
			outputText("\n\n\"See something you like?\" Greta asks, drawing your dazed eyes back up to her face.  \"Well it isn't on the menu today, though you do look like a scrumptious little morsel if I do say so myself.  I've got a lot of work to do if I'm going to keep up with all the demand for my products!\"");
			outputText("\n\nYou look around the store and inquire about what products she could possible mean.  Greta holds up the sock she was knitting and says, \"These!  I can't make them fast enough!  Every time I get one done, some cute hermaphrodite or wide-hipped femboy is in here buying it up.\"");
			outputText("\n\nYou ask, \"Socks?\" with confusion showing on your face.  What use do herms and girly-boys have for weird socks?  This shop seemed like it would specialize in sexy, not everyday garb!");
			outputText("\n\nGreta laughs so hard that her tits quake, scattering her knitting needles away.  Her tail deftly catches one that rolls off the crude counter's edge, twirling it about before stuffing it into the tight bob she has atop her head.  \"You think this is a sock!?  Ahahahahah!  No, dear " + player.mf("boy","girl") + ", this isn't an ordinary sock.  It's a cock-sock.  See the pattern here?  And the specially sewn gaps?  They let the wearer accentuate every sweet curve and throbbing vein on their erection, all while exposing the most sensitive bits for busy hands and hungry tongues, like mine.\"  She lets her tongue slowly extend out from her mouth, inch after inch of the wiggling, slick organ slowly disappearing into the valley between her tits.  She slowly retracts it with a giggle.");
			outputText("\n\n\"I've got back-orders on these things for miles, so you'll have to wait for me to get caught up before I consider crafting any for you.\"");
			//[Back]
			if (flags[kFLAGS.FOUND_SOCKS] < 1) flags[kFLAGS.FOUND_SOCKS] = 1;
			if (flags[kFLAGS.SOCK_COUNTER] == 0) flags[kFLAGS.SOCK_COUNTER] = 24;
			menu();
			addButton(4,"Back",gretasGarments);
		}

		//Ask About Bikini:
		private function askGretaAboutZeBikini():void {
			clearOutput();
			outputText("\"Oh, that?\" Greta asks.  \"That's an old project of mine.  Some slutty bitch that called herself a pure maiden used to wear it, right up until I got her to forsake her vows, grow a dick, and fuck me until she was addicted to the taste of my cunt and the flavor of my milk.  From what I heard, she came from a place where similarly attired warriors battled to become Queen of some silly country.  Anyway, that gear had some powerful magics on it that pain my kind to handle.  I've been trying to corrupt it into something more fun in my spare time, but it just hasn't been going well.\"");
			outputText("\n\nThe succubi sets down a half-sewn sock and grumbles, \"Do you have any idea how hard it is to unweave a ward while simultaneously infusing it with corruption?\"");
			outputText("\n\nYou shrug.");
			outputText("\n\nGreta blows a lock of inky black hair out of her face and muses, \"I guess not, huh?  Well, I got about halfway done with it - it won't burn you if you've got a lot of corruption in you, but I can't quite easily handle it yet.  From what my pet tells me, it's actually stronger when worn by a virgin, but it may, umm... induce some baser urges thanks to my meddling.  I suppose if you want it, you can have it for 500 gems.  Rent on this heap is coming up, after all.\"");
			//[Buy It] [Back]
			menu();
			if (player.gems < 500) outputText("\n\nYou can't afford it.");
			else addButton(0, "Buy Bikini", buyGretasBikini).hint(armors.LMARMOR.description, armors.LMARMOR.longName);
			addButton(4,"Back",gretasGarments);
		}

		//Buy Bikini
		private function buyGretasBikini():void {
			clearOutput();
			flags[kFLAGS.OWN_MAIDEN_BIKINI] = 1;
			player.gems -= 500;
			statScreenRefresh();
			outputText("Greta's eyes widen in surprise.  \"Really?\"");
			outputText("\n\nYou nod and pull out your gems, counting out the exact amount for her.  As soon as you finish, Greta pulls you over the counter and kisses you on the lips, her tongue sensually assaulting your surprised palate. Before you can react, she pulls back with a hum of pleasure.");
			outputText("\n\n\"Thanks, sugar!  Have fun and be safe, and if you don't want to be safe, come visit me sometime!\"");
			outputText("\n\nYou'll have to keep that in mind...  ");
			inventory.takeItem(armors.LMARMOR, camp.returnToCampUseOneHour);
		}

		//Cock-socks Available - First Time
		private function browseDemSocksSon():void {
			clearOutput();
			outputText("What type of cock-sock do you want to look at?");
			//Cock-sock Menu
			menu();
			for (var i:int = 0; i < cockSockDb.length; i++) {
				addButton(i, cockSockDb[i][0], chooseCockSock, cockSockDb[i]).hint(cockSockDb[i][3]);
		}
			addButton(14,"Back", gretasGarments);
		}

		private function chooseCockSock(selection:Array):void {
			clearOutput();
			var price:int = selection[2];
			outputText(selection[4]);
			flags[kFLAGS.SOCK_HOLDING] = selection[1];
			cockSelectionMenu(price);
		}

		private function cockSelectionMenu(price:int):void {
			menu();
			if (player.gems >= price) addButton(0, "Buy", pickACockForSock, price);
			else outputText("\n\nYou can't afford that.");
			addButton(4, "Back", browseDemSocksSon);
		}

		private function pickACockForSock(price:int = 0):void {
			//Buy Cock-sock
			clearOutput();
			outputText("You take the cock-sock over to the counter where Greta sits, knitting even more garments and place down the gems required.  \"Aha, good choice, honey!\" the succubus says, snatching up the money and stashing it away.  \"Now let's get that bad boy fitted on you.\"");

			//[If PC only has one cock, jump immediately to Putting It On, else:
			if (player.cockTotal() == 1) {
				menu();
				addButton(0,"Next",cockSockTarget,0);
			}
			else {
				outputText("\n\nWhich cock would you like to put it on?");
				temp = 0;
				var button:int = 0;
				menu();
				while(button < player.cockTotal()) {
					if (player.cocks[button].sock == "") addButton(button, String(button + 1), cockSockTarget, button, price);
					button++;
				}
			}
		}

		private function cockSockTarget(target:int, price:int = 0):void {
			clearOutput();
			flags[kFLAGS.SOCKS_BOUGHT]++;
			//Putting it On - First Time
			if (flags[kFLAGS.SOCKS_BOUGHT] == 1) {
				outputText("The gravity-defying succubus gestures towards your crotch.  \"Well, come on then, let's see the tasty cock getting all dressed up,\" she says, her voice becoming a deep purr.  You raise your eyebrow, questioning why she needs to see that.");
				outputText("\n\n\"Oh, don't you know?  These aren't your ordinary garments,\" she cackles lightly.  \"These are quite special cock-socks.  They won't slip or slide.  No matter what, they'll remain in place until you want me to take it off.\"");
				outputText("\n\nYou balk a little.  These things are going to be permanently attached to you?");
				outputText("\n\nSeeing your reaction, Greta calmly explains, \"Don't worry, it's just a simple little spell.  You can still use your dick, cum and all that delicious fun stuff.  This spell will just prevent it from slipping off no matter if you're limp or hard, and it will keep the material clean and repaired.  Before I learned this spell, you wouldn't believe how many socks I had to wash and stitch back together. I had no time to make new ones!\"");
				outputText("\n\nYou gulp.  Do you want this cock-sock attached to your penis semi-permanently?");
			}
			//Putting It On - Additional Times
			else {
				outputText("Greta motions with her hand, a movement that causes her mountainous cleavage to jiggle hypnotically.  \"Well, come on then, let's see the tasty cock getting all dressed up,\" she says, her voice becoming a deep purr.");
				outputText("\n\nWell?  Do you want this cock-sock attached to your penis semi-permanently?");
			}
			menu();
			addButton(0, "Yes", yesPutDatSockOnMe, target, price);
			addButton(1, "No", noCockSock);
		}

		//Yes
		private function yesPutDatSockOnMe(target:int, price:int = 0):void {
			clearOutput();
			var conflict:Boolean = false;

			switch(flags[kFLAGS.SOCK_HOLDING]) {
				case "cockring":
					if (player.findPerk(PerkLib.PentUp) < 0) player.createPerk(PerkLib.PentUp, 10, 0, 0, 0);
					else player.addPerkValue(PerkLib.PentUp, 1, 5);
					break;
				case "viridian":
				if (player.findPerk(PerkLib.LustyRegeneration) < 0) {
						player.createPerk(PerkLib.LustyRegeneration, 0, 0, 0, 0);
				}
				else {
					conflict = true;
				}
					break;
				case "scarlet":
					if (player.findPerk(PerkLib.PhallicPotential) < 0) {
						player.createPerk(PerkLib.PhallicPotential, 0, 0, 0, 0);
					}
					break;
				case "cobalt":
					if (player.findPerk(PerkLib.PhallicRestraint) < 0) {
						player.createPerk(PerkLib.PhallicRestraint, 0, 0, 0, 0);
			}
					break;
				case "gilded":
					if (player.findPerk(PerkLib.PentUp) < 0) player.createPerk(PerkLib.MidasCock, 5, 0, 0, 0);
					else player.addPerkValue(PerkLib.MidasCock, 1, 5);
					break;
				default:
					//Nothing here...
			}
			player.gems -= price;
			outputText("You nod to the busty succubus and strip off your [armor], revealing your naked body.  Greta's eyes light up as she looks over your body with barely-contained lust.  Finally her eyes settle onto your " + player.cockDescript(target) + ", and she licks her lips.  ");
			if (!conflict) { // There's no conflict. DO IT!!!
				player.cocks[target].sock = flags[kFLAGS.SOCK_HOLDING];
				statScreenRefresh();
				outputText("With one hand she lifts your limp cock up, giving it a pleasant little stroke.");
				outputText("\n\nHer other hand approaches, her thumb, fore- and middle-fingers holding the sock open as she slips it over your " + player.cockHead(target) + ".  She pulls it snugly into place and then gives your penis a little kiss.  The second her lips make contact with your flesh, a chill runs across your body, followed by a flood of warmth.");
				outputText("\n\nGreta smiles knowingly and returns to her chair behind the counter.");
				//(Cock-sock get! +2 Corruption, +5 Arousal)
				dynStats("lus", 5, "cor", 2);
				menu();
				addButton(0,"Next",gretasGarments);
			}
			else { // Conflict! NOOOOO! Pull up! Pull up!
				outputText("Then she suddenly stops, staring at your groin.\n\n\"Oh, dear...\" she says, \"As much as I would love to take your money honey, I can't be mixing magics like that.\"")
				menu();
				addButton(0,"Next",gretasGarments);
			}
		}

		private function noCockSock():void {
			clearOutput();
			flags[kFLAGS.SOCK_HOLDING] = 0;
			outputText("You shake your head.  Greta sighs, \"Figures.  Here's your money back, honey.  Come back when you change your mind.\"");
			//(Back to menu)
			menu();
			addButton(0,"Next",gretasGarments);
		}

		//Remove Cock-sock
		private function takeOffDatSock():void {
			clearOutput();
			outputText("Which cock-sock would you like to get removed?");
			//(display list of socked cocks)
			temp = 0;
			var button:int = 0;
			menu();
			while(button < player.cockTotal()) {
				if (player.cocks[button].sock != "") addButton(button,String(button+1),removeTargettedSock,button);
				button++;
			}
			addButton(14, "Cancel", gretasGarments);

		}

		private function removeTargettedSock(index:int):void {
			clearOutput();
			//Select-A-Cock!
			outputText("You walk up to the counter top.  Greta the succubus looks up at you over her latest creation, and you explain you'd like to remove a cocksock.");
			outputText("\n\n\"Ah, all right then,\" she says smoothly, setting aside her knitting needles.  \"Making room for a new sock, or just looking to get rid of this one?  No matter, it's a simple counterspell.\"  Greta stands up from her chair, though she's only on her feet for a moment before she kneels down in front of you, placing one hand under your " + player.cockDescript(index) + ".  With her free hand, she runs a little circle around your " + player.cockHead(index) + ", muttering something under her breath.");

			outputText("\n\nSuddenly your cock feels white-hot, burning with passionate arousal.  It jumps to attention immediately");
			if (player.cockArea(index) >= 100) outputText(", almost knocking Greta over in the process");
			outputText(", the cock-sock suddenly feeling unforgivingly tight.  With a light giggle, Greta gives your dick a soft kiss, and the burning arousal seems to dissipate, replaced with a cool, relaxing sensation that spreads throughout your body.");
			outputText("\n\nYour dick rapidly deflates, and as it does so, the sock covering it falls off naturally.  The busty succubus gathers up the now-mundane sock and returns to her seat behind the counter.");

			var storage:String = player.cocks[index].sock;
			var extra:Boolean = false;
			player.cocks[index].sock = "";
			temp = player.cockTotal();
			while(temp > 0) {
				temp--;
				//If the PC has another cock with the same effect.
				if (player.cocks[temp].sock == storage) {
					extra = true;
				}
			}
			if (extra) {
				if (storage == "cockring") {
					player.setPerkValue(PerkLib.PentUp, 1, 5 + (player.countCockSocks("cockring") * 5));
				}
				if (storage == "gilded") {
					player.setPerkValue(PerkLib.MidasCock, 1, player.countCockSocks("gilded") * 5);
				}
			}
			else {
				if (storage == "gilded") {
					player.removePerk(PerkLib.MidasCock);
				}
				if (storage == "cobalt") {
					player.removePerk(PerkLib.PhallicRestraint);
				}
				if (storage == "scarlet") {
					player.removePerk(PerkLib.PhallicPotential);
				}
				if (storage == "viridian") {
					player.removePerk(PerkLib.LustyRegeneration);
				}
				if (storage == "cockring") {
					player.removePerk(PerkLib.PentUp);
				}
			}
			outputText("\n\n\"If you need another one, we've got plenty more for sale.\"");
			//(Cock-sock lost! +5 Corruption, -10 Arousal)
			dynStats("lus", -10, "cor", 1);
			menu();
			addButton(0,"Next",gretasGarments);
		}
	}
}

license: unknown


code:
package classes.Scenes.Places.Bazaar{
	import classes.BodyParts.*;
	import classes.GlobalFlags.kFLAGS;
	import classes.PregnancyStore;
	import classes.display.SpriteDb;
	import classes.internals.*;

	public class Lilium extends BazaarAbstractContent{

	public function Lilium()
	{
	}

//I dunno about the term 'satanic streetwalker', and it
//probably needs to increment your corruption if you're fucking
//a proper demon. -Z

//Notes: Requires just a penis, penis and long demonic tongue
//or a vagina. There's a couple of small conditionals to stop
//references to legs for nagas so it's ok for them, but it
//doesn't really make sense for centaurs.

//Vars:
//267 Times Bought Smexin'

//#########AREA TEXT#########
public function LiliumText(output:Boolean = false):Function {
	if (output) {
		//Before paying:
		if (flags[kFLAGS.LILIUM_TIMES_TALKED] == 0) outputText("\n\nYou can see a pale, scantily clad demon woman leaning casually against the wall of a building.");
		//After paying:
		else outputText("\n\nYou can see Lilium standing in her usual spot.");
	}
	if (game.time.hours >= 17) return approachLilium;
	return null;
}

private function approachLilium():void {
	clearOutput();
	spriteSelect(SpriteDb.s_lilium);
	var pay:Function = null;
	//#########FIRST TIME INTRODUCTION#########
	if (flags[kFLAGS.LILIUM_TIMES_TALKED] == 0) {
		outputText("As you approach the demon woman, her gaze shifts to you, and she runs her eyes down your body, scrutinizing you.  You respond in kind, taking in her form.  Two nearly foot-long horns grow up and out of her forehead, one of which is adorned with a shiny, silver band.  Her dark hair spills across her bare shoulders in loose coils and her black lipstick and heavy eyeshadow contrast with the paleness of her skin.  A black underbust corset wraps around her waist, leaving her breasts exposed, and long black gloves adorn her arms up to the shoulder.  She also wears a crinoline skirt with an opening at the front which reveals her smooth bare legs, a tail which wraps around her thigh like a garter, and her crotch, which sports an average cock curiously clad in a lacy sock in spite of her otherwise brazen exposure.\n\n");

		outputText("Her assessment of you seems to be positive, as a smile crosses her face and she says, \"You look like you've got more than a few gems to rub together; looking for a little fun?\"\n\n");

		outputText("Of course that would be why she's standing there dressed like that.\n\n");

		outputText("\"50 gems and I'm all yours,\" she continues, sweeping her arms out wide for emphasis.\n\n");
	}
	//#########REPEAT INTRODUCTION#########
	else {
		outputText("Lilium stands before you.  Her two nearly foot-long horns grow up and out of her forehead, one of which is adorned with a shiny, silver band.  Her dark hair spills across her bare shoulders in loose coils and her black lipstick and heavy eyeshadow contrast with the paleness of her skin.  A black underbust corset wraps around her waist, leaving her breasts exposed and long black gloves cling to her arms up to her shoulders.  She also wears a crinoline skirt with an opening at the front which reveals her smooth bare legs, a tail which wraps around her thigh like a garter, and her crotch which sports her average cock curiously clad in her lacy cock sock in spite of her otherwise brazen exposure.\n\n");

		outputText("\"Back again?  I thought I was finally rid of you!\"  Lilium teases, but you can see the eager smile on her face.  \"Is this visit business or pleasure?  I'm hoping both.\"\n\n");
	}
	menu();
	if (player.gems < 50) {
		outputText("You remember that you haven't got the 50 gems for her services right now.  Maybe next time.");
		addDisabledButton(0, "Pay");
	} else {
		addButton(0, "Pay", payForLilium);
	}
	addButton(14, "Leave", leaveLilium);
}

private function payForLilium():void {
	clearOutput();
	spriteSelect(SpriteDb.s_lilium);
	//#########GENDERLESS SCENE######### REQUIRES unsexed (hah)
	if (player.isGenderless()) {
		outputText("You follow Lilium to a secluded spot. With a grin on her face she squats before you and helps you remove your " + player.armorName + ".  The grin is quickly replaced by a look of surprise and confusion as she looks at your flat, featureless crotch.\n\n");

		outputText("She looks up at you and then back at your groin a few times before scratching her head and crossing her arms.  \"Well,\" she begins, breaking the awkward silence.  \"That's not something you see every day.  Did you get in an accident or something?  I mean, I've seen people with missing parts before, but...\"  The woman trails off as she lightly prods your bare mons with one gloved finger.  \"Actually, you know what?  I really don't think I want to know what could have done this to you.\" With that she stands back up, grabs one of your arms and drops the small pouch of gems containing your payment to her back in your hand.\n\n");

		outputText("\"Look, I'm sorry, but I can't really do anything for you right now.  If your, uh, situation changes, come see me again.\"  Lilium then walks off, leaving you alone and naked.\n\n");

		outputText("Bummer.");
		doNext(bazaar.enterTheBazaar);
		return;
	}
	//First time - Pay:
	if (flags[kFLAGS.LILIUM_TIMES_TALKED] == 0) {
		outputText("\"Sounds good,\" you answer while fishing for your gem stash.\n\n");

		outputText("\"I'm Lilium, by the way,\" she states, as you give the woman your name and your payment in return.\n\n");

		//(If player name is also Lilium)
		if (player.short == "Lilium") outputText("\"No way!\" she cries upon learning of your identical name.  \"Well... I hope you're not going to ask me to scream your name during sex.  That might be a bit awkward.\"\n\nHow do you want to have the whore?\n\n");

		outputText("What will you do with her?");
	}
	else {
		outputText("You toss the gems to the hooker and while she counts them, you wonder just what you want her to do this time.");
	}
	flags[kFLAGS.LILIUM_TIMES_TALKED]++;
	player.gems -= 50;
	statScreenRefresh();
	//Sex Menu here
	menu();
	if (player.hasCock() && player.hasLongTongue()) {
		addButton(0, "Buttfuck", buttFuckTongueJeorb);
	} else {
		addDisabledButton(0, "Buttfuck", "This scene requires player to have cock and long tongue.");
	}
	if (player.hasVagina()) {
		addButton(1, "Ride Her", liliumDickRidah);
	} else {
		addDisabledButton(1, "Ride Her", "This scene requires player to have vagina.");
	}
	if (player.hasCock()) {
		addButton(2, "Nipple-Fuck", liliumNippleFuck);
	} else {
		addDisabledButton(2, "Nipple-Fuck", "This scene requires player to have cock.");
	}
}

//- Leave:
private function leaveLilium():void {
	clearOutput();
	spriteSelect(SpriteDb.s_lilium);
	if (flags[kFLAGS.LILIUM_TIMES_TALKED] == 0) outputText("\"I'm deathly allergic to fun, unfortunately,\" you reply before moving on to examine more of the bazaar.");
	else outputText("\"Just passing through, and I thought I'd see how you were doing,\" you reply, and leave Lilium alone at her post.");
	doNext(bazaar.enterTheBazaar);
}

//#########BUTTFUCK + TONGUEJOB SCENE######### REQUIRES PENIS AND LONG DEMONIC TONGUE
private function buttFuckTongueJeorb():void {
	clearOutput();
	spriteSelect(SpriteDb.s_lilium);
	var x:Number = player.cockThatFits(40);
	if (x < 0) x = 0;
	outputText("The two of you find a secluded alley between two buildings.  Lilium removes her corset and skirt before moving to help you remove your " + player.armorName + ".\n\n");

	outputText("Squatting before you, she traces a single gloved finger along the underside of your " + player.cockDescript(x) + ", teasing it until it grows to its full " + Math.round(player.cocks[x].cockLength) + "-inch length.  Once your maleness has sprung to life, she turns around and bends over to brace herself against the wall before looking back over her shoulder at you mischievously and giving her hips a little wiggle.  Taking position behind her, you slide your " + player.cockDescript(x) + " between her soft thighs.");
	//(If player cock length > 8 inches)
	if (player.cocks[x].cockLength > 8) outputText("  You can feel Lilium's smaller cock resting atop your " + player.cockDescript(x) + ".");
	outputText("  With each thrust you can feel more and more feminine lube coating your shaft as you glide across Lilium's labia, her dick stiffening with arousal.\n\n");

	outputText("One last time, you slowly draw your " + player.cockDescript(x) + " from between her thighs and let it flop against her lower back, your hands moving from Lilium's hips to her pearlescent ass cheeks.  Spreading her wide, you let your " + player.cockDescript(x) + " gradually inch down the cleft between them until the head rests against her back entrance.  With an agonizing slowness you begin to push.  The faintest gasps escape Lilium's lips as her ass finally envelops the head of your cock, followed by a squeak of surprise as you suddenly drive the remaining length in; the force of your " + player.hipDescript() + " meeting her ass pushes her entirely up against the wall.\n\n");

	outputText("Your lips part slightly as you let your tongue begin to extend.  It journeys around Lilium's trim waist and down across her taut tummy until it finds its target: her turgid penis.  Your long tongue wraps around her shaft tightly and as its tip meets her tip you can taste the pre-cum leaking through her perfumed cock sock.  You begin to massage the unholy herm's cock by flexing your tongue as you speed up your thrusts into her round ass.\n\n");

	outputText("You establish a rhythm of pleasuring Lilium from both sides; thrust in, flex tongue, pull out, release and soon she begins pushing her hips back in time to meet you on every thrust.");
	//(If player has breasts)
	if (player.biggestTitSize() >= 1) {
		outputText("  A tingle emanates from your " + player.nippleDescript(0) + "s as your " + player.allBreastsDescript() + " slide across her sweat-slicked back with every thrust.");
		//(If player has a lot of milk)
		if (player.biggestLactation() >= 1) outputText("  The stream of milk that leaves your breasts each time you press your body against Lilium's adds further lubrication between you.");
	}
	outputText("\n\n");

	outputText("The pace of Lilium's breathing quickens and soon she begins to shudder as her cock throbs within your tongue's grasp.  Jets of the satanic streetwalker's cum shoot out against the tip of the sock and she lets out a moan of contentment.  Her internal muscles clench down on your shaft as she ejaculates, causing a wave of goose bumps to cover your body which signals your own impending orgasm.  Your knees buckle and tongue loses its grip on her sock; the wet fabric flies off her cock with her next spurt, hitting the ground with a tiny 'plap'.  The tingling across your body focuses itself in on the base of your " + player.cockDescript(x) + ", and you grab the root of Lilium's demonic tail for more leverage, pulling her roughly against you as you grunt loudly, the proof of your pleasure exploding into her bubble butt.  This final thrust forces an extra gout of cum from her cock, which then leaks down its tongue prison, giving you a last taste of her fluids.\n\n");

	outputText("Panting, Lilium grabs your hands and moves them around her waist, holding them against her stomach.  ");
	//(If naga body)
	if (player.isNaga()) outputText("As you both stand there, reeling in the wake of your ecstasy, she leans back against you causing you to flop onto your " + player.buttDescript() + " with the demon girl on top of you; you haven't the strength to remain standing.");
	//(else)
	else outputText("As you both stand there, reeling in the wake of your ecstasy, she leans back against you causing you to flop onto your " + player.buttDescript() + " with the demon girl on top of you; your wobbling legs have temporarily lost the strength to keep you both upright.");
	outputText("  Lilium lets out a laugh and soon you find yourself laughing with her.\n\n");

	outputText("After you both recover, you get up to don your " + player.armorName + ", thanking Lilium and beginning the trip back to camp.  Maybe you'll take a bath too...");

	player.orgasm('Lips');
	dynStats("cor", 1);
	doNext(camp.returnToCampUseOneHour);
}

//#########DICK RIDE SCENE######### REQUIRES VAGINA
private function liliumDickRidah():void {
	clearOutput();
	spriteSelect(SpriteDb.s_lilium);
	outputText("Lilium takes you to a secluded spot away from the Bazaar.  She removes her corset and skirt and slips the lacy cock sock off her cock and you eagerly remove your own " + player.armorName + ".\n\n");

	outputText("You gently push Lilium down onto her back and straddle her waist.  As she looks up at you with a demure expression you move your hands to her pert breasts and begin a slow circular massage of her chest.  With each pass you ever so slightly lighten your grip and move your fingers closer to her nipples until finally you are lightly trailing your index fingers around their rosy tips.  You can see Lilium's eyes close as she enjoys your touch on her body.  Gently you slip just the very tip of one finger into each of her fuckable nips and the woman beneath you arches her back, seeking to force your fingers into her heaving breasts further.  With a grin you tear your fingers away from her breasts and Lilium's eyes snap open and a look of disappointment crosses her face.  Quickly you lean down and plant a kiss on her dark, pouting lips, letting your tongue slip between them just the slightest bit to taste her.\n\n");

	outputText("Slowly you begin moving down Lilium's body.  You leave a trail of kisses down her neck before running your tongue along her collar bone.  Further down you go, letting your lips gently slide down the center of the demon herm's chest until you reach her navel.  ");
	//(if player has long hair)
	if (player.hair.length >= 15) outputText("You can feel Lilium shudder slightly beneath you as your hair tickles her nipples.  ");
	outputText("First you begin to circle her navel with the tip of your tongue, following up with long licks beginning at the base of her belly and trailing up and into her belly button. Lilium's breathing begins to quicken and her hips start to dart back and forth beneath you as you continue to tongue her navel. As you become more conscious of the hardened cock poking into your own chest you draw your head back, leaving a long shiny strand of saliva that joins your mouth to her smooth tummy.\n\n");

	outputText("You draw yourself up and position yourself above Lilium's twitching cock.  Your fingers part the lips of your " + player.vaginaDescript(0) + " which are slick with your own arousal.  ");
	//(If virgin/tight)
	if (player.vaginalCapacity() < 25) outputText("Gingerly you lower yourself down onto Lilium's cock, your breath tight in your chest as the head strains against your moist inner walls.  Each inch is easier than the last and soon you release a long slow exhale as your crotch meets hers and the pleasurable feeling of fullness washes over you.  ");
	//(if loose or produce lots of lube)
	else outputText("Without a second thought you plunge yourself down on Lilium's fuckrod, your " + player.buttDescript() + " jiggling from the sudden impact.  ");
	outputText("You pull yourself up until only the head of the demon girl's dick remains within you, before sliding back down to let her fill you again.  Up and down you bounce on top of her, your speed and force increasing with every stroke.  You let out a contented half moan, half grunt each time your " + player.hipDescript() + " collide with hers as her stiff cock stimulates your insides.  Lilium's own search for more pleasure brings her hands to her breasts and she begins to finger-fuck her nipples.  Before long she has two and then three fingers furiously plunging in and out of her gaping nipplecunts and you can see her eyes rolled back in her head as her mouth hangs open in testament to the excitement flowing through her body.");
	player.cuntChange(14,true,true,false);
	outputText("\n\n");

	//(if player has breasts)
	if (player.biggestTitSize() >= 1) {
		outputText("You turn your attention to your own " + player.allBreastsDescript() + " and how they bounce from the force of your vigorous fucking, supporting the weight of your " + player.breastDescript(0) + " with your hands as you continue to ride Lilium's cock.");
		//(if demonic tongue)
		if (player.hasLongTongue()) outputText("  Letting your long tongue extend out from between your lips, you wrap it around one " + player.nippleDescript(0) + " and gently squeeze, sending an electric thrill that flows to your core and back out to the tips of your fingers.");
		//(else if no demonic tongue)
		else outputText("  You begin to squeeze your " + player.nippleDescript(0) + " between two fingers, sending an electric thrill that flows to your core and back out to the tips of your fingers.");
		//(if lactating a little)
		if (player.biggestLactation() >= 1 && player.biggestLactation() <= 2) outputText("  A small stream of milk leaks out and dribbles over your tongue, giving you a taste of your own fluids.");
		//(else if lactating a lot)
		else if (player.biggestLactation() > 2) outputText("  A powerful stream of milk fires out of your " + player.nippleDescript(0) + ", coating Lilium's flat stomach.");
		outputText("\n\n");
	}

	outputText("With several fingers still inside her nipples, Lilium bites her lip and forcefully pushes her breasts together as her hips begin bucking to meet your own " + player.hipDescript() + ".  Seeing that her orgasm is near, you begin flexing your internal muscles in addition to pumping up and down on her cock.  With a sudden burst of movement that surprises you, Lilium tears her hands from her breasts and roughly grabs your " + player.buttDescript() + ", her fingers digging into your buttcheeks as she attempts to hold you down tight upon her.  Her eyes bulge wide and she lets out a loud cry as you feel her pump load after load of demonic cum into you, flooding your " + player.vaginaDescript(0) + ".  Lilium drops her arms to her sides with eyes half-lidded as she pants heavily.\n\n");

	outputText("Not finished with her yet, you draw yourself up off her wilting willy, clenching your lower muscles to keep as much of her cum inside you as possible as you flip yourself around and position your body above her face.  Lilium quickly catches on to what you're doing and you think you can see her gulp nervously as you lower your cum-stuffed pussy to her mouth.  Rolling your " + player.hipDescript() + " back and forth you begin grinding your " + player.vaginaDescript(0) + " into the demon woman's face as her tongue worms and tickles inside you, beginning its task of cleaning out the remnants of her ecstasy from your love hole.  While Lilium's tongue gently strokes your insides with lips occasionally sucking gently on your labia, you turn your attention to your clit.  ");
	//(if little clit)
	if (player.getClitLength() < 2) outputText("With one finger you begin to knead your " + player.clitDescript() + ", which instantly increases the pleasure emanating from your lower body.");
	//(else if big clit)
	else outputText("Tenderly grasping it between your fingers you begin to rub your " + player.clitDescript() + " from base to tip, each stroke adding a wave of pleasure to that of the tongue treatment your " + player.vaginaDescript(0) + " is receiving.");
	outputText("  The tingle of pleasure across your body begins to strengthen and you grind your crotch into your demon lover's face that little bit harder, trying to get yourself over the edge; suddenly you feel a burst of electricity inside you.  Your muscles all contract, your arms pull tight to your body and you collapse inwards, on top of Lilium as the pulses of pleasure shoot out across your body.  The tingles in your " + player.nippleDescript(0) + ", your " + player.clitDescript() + ", your insides and out, through your arms and " + player.legs() + ", reach a fever pitch and you let out a short, strained squeak through gritted teeth to voice your pleasure.\n\n");

	outputText("Exhausted, you flop to the side, leaving you lying supine beside Lilium.  You turn your head to look at her and she tilts her own head to meet your gaze.  You can see a similar look of contented exhaustion on her face, although you're fairly sure you lack the mix of cum and feminine lube and the smeared makeup.\n\n");

	outputText("After a moment of recovery time you get up to get dressed before starting your journey back to camp.  \"Don't be a stranger, now,\" calls the voice over your shoulder. A slight smile appears on your face.\n\n");

	player.orgasm('Vaginal');
	dynStats("cor", 1);
	//(imp preg check)
	player.knockUp(PregnancyStore.PREGNANCY_IMP, PregnancyStore.INCUBATION_IMP - 14, 61); //Lilium causes faster pregnancies
	doNext(camp.returnToCampUseOneHour);
}

//#########NIPPLE FUCK SCENE######### REQUIRES PENIS
private function liliumNippleFuck():void {
	var x:Number = player.cockThatFits(40);
	if (x < 0) x = 0;

	clearOutput();
	spriteSelect(SpriteDb.s_lilium);

	outputText("Lilium takes you to a secluded spot in the Bazaar for you to be able to enjoy each other's company. She kneels down before you and you strip out of your " + player.armorName + ", baring your naked body before her.\n\n");

	outputText("Lilium begins to gently rub her palms against the side of your flaccid cock.  As it begins to harden in her hands she leans in close, letting it grow stiff against her soft cheek.  You feel her wet tongue against the base of your " + player.cockDescript(x) + " before it begins sliding along the underside of your cock as Lilium licks the length of your maleness right to the tip.  ");
	//(If cock is pierced)
	if (player.cocks[x].pierced > 0) outputText("You can feel a slight bump as her tongue passes over each piercing and she gives the head of your cock a flick with the tip of her tongue as she reaches the end.  ");
	//(else)
	else outputText("As her tongue reaches the end of its journey she gives the head of your " + player.cockDescript(x) + " a little flick with the tip of her tongue.  ");
	outputText("Taking one black tress in hand she draws it slowly across your glans, sending a shiver down your spine. Taking obvious delight in your reaction she starts brushing the lock of plush hair up and down your shaft.  You can see her bring her free hand up to her breast as she continues to tickle your " + player.cockDescript(x) + " with the soft strands of hair.  At first she cups and massages the pale flesh slightly, before slipping a finger inside her rosy nipplecunt.  She bites down on her lip as she begins working the finger in and out.\n\n");

	outputText("Not content with just the teasing Lilium continues to give your " + player.cockDescript(x) + ", you grab her shoulders and push her back against the wall, the shock of which causes her finger to come free of her nipple.  With one hand you line the head of your " + player.cockDescript(x) + " up with the now dripping entrance to her breast and drive forward.  There is a slight resistance at first, but then Lilium coos as you overcome it and her breast envelops you.  Her boobs are sadly not large enough to take you to the hilt, but pumping part of your shaft in and out of her chest is pleasurable all the same. The soft flesh mound distorts as you fuck it, stretching out as you draw back and squishing together as you thrust in.  Lilium's eyes unfocus and she begins to pant louder and louder as you fuck her breast.\n\n");

	var doubleNipFuck:Boolean = false;
	//(if multicock)
	if (player.cockTotal() >= 2) {
		doubleNipFuck = true;
		outputText("Thinking it unfair that just one of her breasts receives your attention, you grab another of your " + player.multiCockDescriptLight() + " and unceremoniously jam it into Lilium's lonely nipple-cunt, causing her to let out a loud squeal from the extra penetration.  The extra purchase on Lilium's body from both your cocks now being inside her breasts causes the demon's body to rock back and forth vigorously with each of your thrusts.  You move yourself backwards slightly, pulling her with you away from the wall to avoid concussing her.  When you resume your thrusts you can hear her moans warble as her body rocks with yours.\n\n");
		doubleNipFuck = true;
	}
	//(else if demon/naga tail)
	else if (player.tail.type == Tail.DEMONIC || player.isNaga()) {
		outputText("Thinking it unfair that just one of her breasts receives your attention, you draw your tail up and unceremoniously jam it into Lilium's lonely nipple-cunt, causing her to let out a loud squeal from the extra penetration.  The extra purchase on Lilium's body from both your cock and your tail now being inside her breasts causes the demon's body to rock back and forth vigorously with each of your thrusts.  You move yourself backwards slightly, pulling her with you away from the wall to avoid concussing her.  When you resume your thrusts you can hear her moans warble as her body rocks with yours.\n\n");
	}

	outputText("Giving up trying to steady herself, Lilium brings her hands to her own cock and begins to stroke and massage it in time with you.  The wet shlicks and pops of you fucking Lilium's dripping nipple");
	if (doubleNipFuck) outputText("s");
	outputText(" and the soft sound of her stroking her dick combine with your grunts and her moans to form a sexual chorus in this isolated part of the Bazaar.  Soon you feel the familiar pressure building in your loins and you speed up your thrusts; with one great, final effort you drive as far into Lilium's tit");
	if (doubleNipFuck) outputText("s");
	outputText(" as you can.  A wave of ecstasy washes over you from your head to ");
	if (player.tail.type > Tail.NONE) outputText("your tail");
	else outputText("your " + player.feet());
	outputText(" as you cum");
	if (player.cockTotal() > 2) outputText(", your unused cocks drenching her with seed");
	outputText(".  The tightness of her ");
	if (doubleNipFuck) outputText("nipple-cunts around your twin cocks causes some of your cum to squirt back out of her nipples");
	else outputText("nipple-cunt around your cock causes some of your cum to squirt back out of her nipple");
	outputText(" each time you fire another load into her, the balance leaking down on Lilium's stomach and thighs.");
	if (player.cumQ() >= 700 && player.cockTotal() > 1) outputText("Rivers and rivers of cum pour out of your cocks, distending her nipple-holes as the backflow gushes from around the heads.");
	outputText("\n\n");

	outputText("The sensation of you pulling out of her fuck-able nipple");
	if (doubleNipFuck) outputText("s");
	outputText(" drives Lilium herself over the edge, causing jets of her own cum to explode out of her cock.  The outline of the spurt is visible in the end of the lacy sock for a moment; it bulges and drips obscenely as she fills it up, squeezing her cock and letting out a loud cry in pleasure.  As she kneels before you panting, cum dripping from her gaping nipple");
	if (doubleNipFuck) outputText("s");
	outputText(" and soaked sock, you brush a wayward strand of hair from her face.  Her eyes make their way up to meet yours and you give her a wink as you both smile lasciviously.\n\n");

	outputText("You get dressed again and begin to leave; as you look back over shoulder, Lilium - still seated and leaning against the wall - blows you a kiss.");
	player.orgasm('Dick');
	doNext(camp.returnToCampUseOneHour);
}
}
}