Beispiel #1
0
 private static string BogUnlock()
 {
     return("While exploring the swamps, you find yourself into a particularly dark, humid area of this already fetid biome. " +
            "You judge that you could find your way back here pretty easily in the future, if you wanted to. " +
            "With your newfound discovery fresh in your mind, you return to camp." +
            Environment.NewLine + Environment.NewLine + SafelyFormattedString.FormattedText("You've discovered the Bog!", StringFormats.BOLD));
 }
        private string GroPlusNipples(NippleStatus oldState)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("You sink the needle into each of your " + GenericShortDescription() + " in turn, dividing the fluid evenly between them. " +
                      "Though each injection hurts, the pain is quickly washed away by the potent chemical cocktail." + GlobalStrings.NewParagraph());
            //Grow nipples
            sb.Append("Your nipples engorge, suddenly sensitive to the slightest touch. Abruptly you realize they've grown " +
                      (Measurement.UsesMetric ? "almost a centimeter" : "more than a quarter-inch") + "." + GlobalStrings.NewParagraph());

            if (oldState != nippleStatus)
            {
                if (nippleStatus == NippleStatus.FUCKABLE)
                {
                    sb.Append("Your " + this.source.AllBreastsLongDescription() + " tingle with warmth that slowly migrates to your nipples, " +
                              "filling them with warmth. You pant and moan, rubbing them with your fingers. A trickle of wetness suddenly coats your finger as it slips " +
                              "inside the nipple. Shocked, you pull the finger free. <b>You now have fuckable nipples!</b>" + GlobalStrings.NewParagraph());
                }
                else if (nippleStatus == NippleStatus.DICK_NIPPLE)
                {
                    sb.Append("Your " + this.source.AllBreastsLongDescription() + " tingle with warmth that slowly migrates to your nipples, " +
                              "filling them with warmth. They get shockingly hard, and won't seem to relax. They feel incredible, and you can't fight the desire to " +
                              "rub them sensually. This proves difficult, as they're far too long to pull that off. You begin jerking them as if they were small cocks. " +
                              "Your nipples instantly become more sensitive, and you feel a surging sensation from within. Suddenly, a sticky substance bursts forth, coating your " +
                              "breasts and hands. " + SafelyFormattedString.FormattedText("It seems you have dick-nipples now!", StringFormats.BOLD));
                }
                else if (nippleStatus == NippleStatus.SLIGHTLY_INVERTED)
                {
                    sb.Append("Your nipples tingle, and stick out from your breasts slightly. It appears they've become too long to remain fully inverted, " +
                              "but not long enough to fully work themselves out. " + SafelyFormattedString.FormattedText("Your nipples are now slightly inverted!", StringFormats.BOLD));
                }
            }

            return(sb.ToString());
        }
        private static string DragonTransformStr(NeckData previousNeckData, PlayerBase player)
        {
            StringBuilder sb = new StringBuilder("You start to feel a sudden pain in your neck.");

            if (previousNeckData.length > player.neck.length)
            {
                sb.Append(" Its skin tightens as your spine gets shorter, until it's " + Measurement.ToNearestSmallUnit(player.neck.length, false, true) + " in length.");
            }
            else if (previousNeckData.length < player.neck.length)
            {
                sb.Append(" Your skin stretches and your spine grows a bit. Your neck has grown a few inches longer, and is now " +
                          Measurement.ToNearestSmallUnit(player.neck.length, false, true) + ".");
            }
            else
            {
                sb.Append(" Your spine reshapes itself slightly, though you're pretty sure your neck is still the same size.");
            }
            if (previousNeckData.neckAtBaseOfSkull)
            {
                sb.Append(" An intense discomfort forces you to jutt your neck forward, where it is strangely much more comfortable. Your neck appears to have shifted away from " +
                          "the base of your neck, and now rests angled away slightly. You realize you can't move your head laterally anymore; your head just rotates instead. After a few " +
                          "disorienting moments, you realize you can make up for it simply by moving your neck, which is incredibly flexible.");
            }
            sb.Append(SafelyFormattedString.FormattedText("You now have a draconic neck!", StringFormats.BOLD));
            return(sb.ToString());
        }
Beispiel #4
0
        private static string GenericLoseVaginaDesc(VaginaData removedVagina, PlayerBase player)
        {
            string byeVag = "You slip a hand down to check on it, only to feel the slit growing smaller and smaller until it disappears, taking your c**t with it! ";

            if (player.vaginas.Count == 0)
            {
                return("Your " + removedVagina.ShortDescription() + " clenches in pain, doubling you over. " + byeVag +
                       SafelyFormattedString.FormattedText("Your v****a is gone!", StringFormats.BOLD));
            }
            else
            {
                if (player.genitals.CountVaginasOfType(removedVagina.type) == 1)
                {
                    return("One of your " + removedVagina.ShortDescription() + "clenches in pain, causing you to double over. " + byeVag +
                           SafelyFormattedString.FormattedText("One of your " + removedVagina.ShortDescription(true) + "is gone", StringFormats.BOLD) +
                           ", leaving you with just your " + player.vaginas[0].LongDescription());
                }
                else
                {
                    return("Your " + removedVagina.ShortDescription() + " clenches in pain, doubling you over. " + byeVag +
                           SafelyFormattedString.FormattedText("Your " + removedVagina.LongDescription() + "is gone", StringFormats.BOLD) +
                           ", leaving you with just your " + player.vaginas[0].LongDescription());
                }
            }
        }
Beispiel #5
0
 public override string AboutItem()
 {
     return("This milk-bottle is filled to the brim with a creamy white milk of dubious origin. A pink label proudly labels it as \"" +
            SafelyFormattedString.FormattedText("Succubi Milk", StringFormats.ITALIC) + ".\" In small text at the bottom of the label it reads: \"" +
            SafelyFormattedString.FormattedText("To bring out the succubus in YOU!", StringFormats.ITALIC) + "\"" +
            (isPurified ? " Purified by Rathazul to prevent corruption." : ""));
 }
Beispiel #6
0
        //largely stolen from kelly horse-c**t-> humanoid pussy, and adapted to make it work here.
        private static string EquineRestoreStr(VaginaData oldVagina, PlayerBase player)
        {
            string intro = "Something invisible brushes against your sex, making you twinge.";

            string vagDesc;

            //2 vaginas, and both used to be the same type - we want to tell them which one we're talking about.
            if (player.vaginas.Count == 2 && player.genitals.CountVaginasOfType(oldVagina.type) == 1)
            {
                vagDesc = $"{Utils.NumberAsPlace(oldVagina.vaginaIndex)} {oldVagina.ShortDescription()}";
            }
            else
            {
                vagDesc = oldVagina.LongDescription(false);
            }
            string wearingText;

            if (!player.wearingAnything)
            {
                wearingText = $" You watch, dumbfounded, as your {vagDesc} shrinks down, finally stopping as it reaches a more human size and shape.";
            }
            else
            {
                wearingText = $" You strip off your clothes to inspect your nethers, and immediately notice your {vagDesc} is much smaller than it was just a few moments ago. " +
                              $"It continues shrinking before your eyes, finally stopping when it reaches a more human size and shape.";
            }
            return(intro + wearingText + "Your outer lips also shift from their current dark-purple, back to a more tone that blends more naturally with the rest of your body and " +
                   "complements your feminine folds. With a start, you realize " + SafelyFormattedString.FormattedText("You have a human pussy once again!", StringFormats.BOLD) +
                   " While smaller than it used to be, it appears just as tight, relatively speaking, and is still just as wet as it was before. Still, you're almost certain " +
                   "you've lost some of your former capacity, and a quick probe into your folds proves that is indeed the case. ");
        }
Beispiel #7
0
        private static string CathedralUnlockText()
        {
            string lustyText = GameEngine.currentlyControlledCharacter.libido >= 40 ? " Maybe you could take this with you as a life-sized sex toy?" : "";

            //OutputImage("gargoyle-cathedral"));
            return("You finally close the distance between yourself and the strange structure, which begins to take shape ahead. Though it's half-buried under " +
                   "what must be years of built-up sand and debris, you can clearly make out high stone walls supported by vaulted arches, broken every so often " +
                   "by the shattered remains of stained-glass windows and a pair of utterly destroyed oaken doors nearly hidden behind a row of tall marble pillars, " +
                   "many of which have long since crumbled. High above the ground, you can see a pair of tall, slender towers reaching up to the heavens, " +
                   "one of which has been nearly obliterated by some unimaginably powerful impact, leaving it a stump compared to its twin. From the rooftops, " +
                   "strange shapes look down upon you – stone statues made in the image of demons, dragons, and other monsters." + Environment.NewLine + Environment.NewLine +
                   "You arrive at the grounds around the ruins, cordoned off by a waist-high wrought-iron fence that surrounds the building and what once might have been " +
                   "a beautiful, pastoral garden, now rotting and wilted, its trees chopped down or burned, twig-like bushes a mere gale's difference from being tumbleweeds. " +
                   "A few dozen tombstones outline the path to a gaping maw that was once the great wooden doors. Seeing no obvious signs of danger, you make your way inside, " +
                   "stepping cautiously over the rubble and rotting debris that litters the courtyard." + Environment.NewLine + Environment.NewLine +
                   "It's quite dark inside, illuminated only by thin shafts of light streaming in from the shattered windows and sundered doors. " +
                   "You can make out a few dozen wooden pews, all either thrown aside and rotting or long-since crushed, leading up to a stone altar and an effigy of a great green tree, " +
                   "now covered in graffiti and filth. Stairs beside the altar lead up to the towers, and down to what must be catacombs or dungeons deep underground." + Environment.NewLine +
                   Environment.NewLine + "However, what most catches your eye upon entering the sanctuary are the statues that line the walls. Beautifully carved " +
                   "gray stone idols of creatures, chimeras, and nearer to the altar, god-like beings, are each set into their own little alcove. Unfortunately, " +
                   "most have been destroyed along with the cathedral, each lying in a pile of its own shattered debris; some having whole limbs or other extremities broken off " +
                   "and carried away by looters, leaving them mere shadows of their former glory." + Environment.NewLine + Environment.NewLine +
                   "All of them but one. In the farthest, darkest alcove you see a single statue that still seems intact. It is of a woman – well, more like a succubus than a human woman. " +
                   "Though posed in a low, predatory crouch, she would normally stand nearly six feet tall, hair sculpted to fall playfully about her shoulders. " +
                   "A pair of bat-like wings protruding from her back curl back to expose the lush, smooth orbs of her breasts, easily DD's on a human. A spiked, " +
                   "mace-like tail curls about her legs that are attached to the pedestal upon which she's placed. As you stand marveling at the statue's beauty, " +
                   "you cannot help but notice the slit of her pussy nearly hidden beneath her. Oddly, it seems to have been carved hollow so that you could easily stick " +
                   "a few fingers inside if you so choose." + lustyText + Environment.NewLine + Environment.NewLine +
                   "However, your attention is soon drawn from her body to the pedestal upon which she stands. A pair of solid gold chains extend from the pedestal to her wrists, " +
                   "binding the statue. You notice a plaque has been bolted to the pedestal, a feature not present on any of the other statues here. Leaning down, " +
                   "you blow a sizable amount of dust from the plaque, revealing the following short inscription:" + Environment.NewLine + Environment.NewLine +
                   "\"" + SafelyFormattedString.FormattedText("Break my bonds to make me tame.", StringFormats.ITALIC) + "\"" + Environment.NewLine + Environment.NewLine +
                   "You suppose you could break the chains on the statue. But who knows what will happen if you do?" + Environment.NewLine + Environment.NewLine +
                   SafelyFormattedString.FormattedText("You have discovered the cathedral. You can return here in the future by selecting it from the 'Places' menu in your camp.", StringFormats.BOLD));
        }
Beispiel #8
0
        private static string BeeLikeTransformStr(WingData previousWingData, PlayerBase player)
        {
            if (previousWingData.type == WingType.NONE)
            {
                string sizeText = player.wings.isLarge
                                        ? " As you do, you briefly lift off the ground. It seems like they are large enough to fly with! "
                                        : " Unfortunately you can't seem to flap your little wings fast enough to fly, but they would certainly slow a fall. ";

                string armorText = player.wearingArmor
                                        ? "You hastily remove the top portion of your " + player.armor.ItemName() + " and marvel as "
                                        : "Checking your exposed back, you can't help but marvel as ";

                string modifyText = player.wearingArmor
                                        ? "A few quick modifications to your " + player.armor.ItemName() + " later and"
                                        : "Once you figure out how to handle your wings when you aren't using them,";

                return("You feel an itching between your shoulder-blades as something begins growing there."
                       + " You twist and contort yourself, trying to scratch and bring yourself relief, and failing miserably."
                       + " A sense of relief erupts from you as you feel something new grow out from yourbody. " + armorText + player.wings.LongDescription()
                       + " sprout from your back. Tenderly flexing your new muscles, you find you can flap them quite fast. " + sizeText + modifyText
                       + " you are ready to continue your journey with " + SafelyFormattedString.FormattedText("your new bee wings!", StringFormats.BOLD));
            }
            else
            {
                string sizeText = player.wings.isLarge
                                        ? " A quick flap of your now bee-like wings confirms they are large enough to fly with!"
                                        : " A quick flap of your now bee-like wings confirms they are too small to fly with, unfortunately.";

                return("you feel a strange substance suddenly coating your wings. Bringing a " + player.hands.ShortDescription(false) + " to them, you notice it's sticky, " +
                       "and you're pretty sure it's honey. Before you have time to confirm your suspicion, your " + previousWingData.ShortDescription() + "fully convert into the " +
                       "honey-like substance and fall off your back in a giant, goopy mess. Some of the substance remains on you, where your old, " + previousWingData.LongDescription()
                       + " met your back. You go to wipe it off when you notice " + player.wings.LongDescription(true, true) + " sprouting there. " +
                       SafelyFormattedString.FormattedText("You now have a pair of bee wings!", StringFormats.BOLD) + sizeText);
            }
        }
 protected static string BehemothRestoreStr(BackData back, PlayerBase player)
 {
     return("Your back and spine are suddenly overwhelmed with a sense of pins-and-needles. Unsure as to what exactly is causing this, you " +
            (player.wearingAnything ? "undress and " : "") + "find something reflective to check your back with. It seems that your back became completely normal " +
            "while you were searching for something reflective. That was fast! You wait for anything else to happen, and when nothing does, you are sure " +
            SafelyFormattedString.FormattedText("Your back is completely normal again!", StringFormats.BOLD));
 }
        internal static string ArrivalPartTwo()
        {
            Gender gender = GameEngine.currentlyControlledCharacter.genitals.gender;
            string arousalStr;

            switch (gender)
            {
            case Gender.MALE:
                arousalStr = "the urge to ram your c**k down his throat. The strangeness of the thought surprises you."; break;

            case Gender.FEMALE:
                arousalStr = "the urge to chase down his rod and impale yourself on it."; break;

            case Gender.GENDERLESS:
                arousalStr = "your body's need, unaware of how to completely sate it."; break;

            case Gender.HERM:
            default:
                arousalStr = "your body's urges, which alternate between taking his c**k in your folds and shoving your c**k down his throat."; break;
            }
            return("You wake with a splitting headache and a body full of burning desire. A shadow darkens your view momentarily and your training kicks in. " +
                   "You roll to the side across the bare ground and leap to your feet. A surprised looking imp stands a few feet away, holding an empty vial. " +
                   "He's completely naked, an improbably sized pulsing red c**k hanging between his spindly legs. You flush with desire as a wave of lust washes over you, " +
                   "your mind reeling as you fight " + arousalStr + Environment.NewLine + Environment.NewLine + "The imp says, \"" +
                   SafelyFormattedString.FormattedText("I'm amazed you aren't already chasing down my c**k, human. The last Champion was an eager w***e for me " +
                                                       "by the time she woke up. This lust draft made sure of it.", StringFormats.ITALIC) + "\"");
        }
Beispiel #11
0
        protected static string BehemothTransformStr(BackData back, PlayerBase player)
        {
            StringBuilder sb = new StringBuilder(GlobalStrings.NewParagraph() + "Your back and spine are suddenly overwhelmed with a sense of pins-and-needles. Unsure as to what exactly is causing this, you " +
                                                 (player.wearingAnything ? "undress and " : "") + "find something reflective to check your back with.");

            if (back.type == BackType.DRACONIC_SPIKES)
            {
                sb.Append("Strangely, each one of your spikes has started to split, forming two smaller spikes to the left and right of their previous location. Hair starts to grow between each " +
                          "new pair, which continue to move away from the center of your back. Eventually, they stop moving and straighten out instead. Once this finishes, you notice ");
            }
            else if (back.type == BackType.DRACONIC_MANE)
            {
                sb.Append("Along both sides of the mane running down your spine, a set of small spikes poke through your skin, causing intense discomfort. Once the spikes have finished, " +
                          "you notice ");
            }

            else
            {
                if (back.type != BackType.NORMAL)
                {
                    sb.Append("It seems that your back became completely normal while you were searching for something reflective. That was fast! You shrug, assuming that was it, when you" +
                              "notice something else happening. ");
                }
                sb.Append("You begin to notice a unique tuft of hair forming along your spine, starting at the base of your neck and continuing down ");
                sb.Append(player.tail.type != TailType.NONE ? "your tail, all the way to the end, where it forms a small tuft. " : "until it reaches your butt. ");
                sb.Append("It is the same color as the hair on your head, but shorter and denser. Along either side of it, a set of small spikes poke through your skin, " +
                          "causing intense discomfort. Once the spikes have finished, you notice ");
            }



            sb.Append(SafelyFormattedString.FormattedText("you have a back much like your behemoth friend!", StringFormats.BOLD) + "The hair forms a thick vertical strip, maybe " +
                      Measurement.ToNearestSmallUnit(2, false, true) + " wide, and you'd estimate each spike is roughly half that width, but protrudes from your back at least that far.");
            return(sb.ToString());
        }
Beispiel #12
0
 private static string TendrilRestoreStr(BackData back, PlayerBase player)
 {
     return("You hear a faint pop, and see one of your tendrils falling to the ground out of the corner of your eye. " +
            SafelyFormattedString.FormattedText("That's strange", StringFormats.ITALIC) + " you think, though it's possible you whacked it on something earlier, and they are quite fragile." +
            " Several more pops follow, however, and now you're sure something's up. Each of your tentacles fall to the ground, and when you feel along your back, they show no signs of " +
            "regrowing. In fact, your back feels completely smooth. It seems " + SafelyFormattedString.FormattedText("you've lost your tendrils!", StringFormats.BOLD));
 }
Beispiel #13
0
        private static string DraconicSpikesTransformStr(BackData back, PlayerBase player)
        {
            string seeItHow;

            if (player.neck.type == NeckType.DRACONIC || player.neck.type == NeckType.COCKATRICE)
            {
                seeItHow = "you bend your neck around to look at it. ";
            }
            else if (player.tail.type == TailType.DRACONIC)
            {
                seeItHow = "you bend your tail around and look at it. ";
            }
            else
            {
                seeItHow = "strain your neck trying to see it, but eventually give up and find something reflective, "
                           + " and watch it that way. ";
            }

            string oldText  = back.type != BackType.NORMAL ? " your back shakes violently, forcibly reshaping until it's once again smooth, but the pain still remains. " : "";
            string tailText = player.tail.type != TailType.NONE ? "your tail, ending just before the tip. " : "until it reaches your butt. ";

            return(GlobalStrings.NewParagraph() + "You feel a sudden pain along your spine. Eager to see what's causing this, " + seeItHow + oldText +
                   "The pain seems to focus into smaller areas, which start to bulge outward against your skin. The bulges grow larger and more painful until, with one final " +
                   "burst of pain, spikes break through your skin. You nearly black out, but manage to retain your senses as they continue their growth, curving down and away from your neck. " +
                   GlobalStrings.NewParagraph() + "Once they stop growing, you notice the spikes form a line along your spine, starting at the base of your neck and continuing down " + tailText +
                   "The spikes are spaced evenly, each one steel-gray in color and maybe " + Measurement.ToNearestSmallUnit(2, false, true) +
                   " tall, their base roughly " + Measurement.ToNearestHalfSmallUnit(1, false, true) + " in diameter. "
                   + SafelyFormattedString.FormattedText("Your spine is now decorated with a row of curved spikes!", StringFormats.BOLD));
        }
Beispiel #14
0
        protected static string DraconicManeTransformStr(BackData previousBackData, PlayerBase player)
        {
            string seeItHow;

            if (player.neck.type == NeckType.DRACONIC || player.neck.type == NeckType.COCKATRICE)
            {
                seeItHow = "you bend your neck around to look at it. ";
            }
            else if (player.tail.type == TailType.DRACONIC)
            {
                seeItHow = "you bend your tail around and look at it. ";
            }
            else
            {
                seeItHow = "strain your neck trying to see it, but eventually give up and find something reflective, "
                           + " and watch it that way. ";
            }

            string tailText = player.tail.type != TailType.NONE ? "your tail, all the way to the end, where it forms a small tuft. " : "until it reaches your butt. ";
            string oldText  = previousBackData.type != BackType.NORMAL ? "Somehow, your back has become perfectly smooth, though the tingling remains. " : "";

            return(GlobalStrings.NewParagraph() + "You feel a sudden tingle just above your spine. Eager to see what's causing this, " + seeItHow + oldText +
                   "Tiny splotches of hair begin growing out of your " + player.body.mainEpidermis.ShortDescription() +
                   ". The hair grows longer and the splotches grow until they slowly merge to a vertical strip right above your spine." +
                   GlobalStrings.NewParagraph() + "The hair forms a mane along your spine, starting at the base of your neck and continuing down " + tailText +
                   "It is the same color as the hair on your head, but shorter and denser; it has grown in a thick vertical strip, maybe " + Measurement.ToNearestSmallUnit(2, false, true) +
                   " wide. It reminds you vaguely of a horse's mane. " + SafelyFormattedString.FormattedText("You now have a hairy mane along your spine!", StringFormats.BOLD));
        }
Beispiel #15
0
        private string WearBimboSkirt(Creature wearer)
        {
            StringBuilder sb = new StringBuilder();


            sb.Append("As you go to put on your " + ItemName() + ", a strange sensation makes you pause for a moment. ");

            if (wearer.intelligence < 40)
            {
                sb.Append("You get the feeling wearing this won't just make you look like a bimbo, it'll make you LOOK like a bimbo, too.");
            }
            else if (wearer.intelligence < 65)
            {
                sb.Append("You get the impression wearing this won't just make you look like a bimbo, it'll make you more bimbo-like, too.");
            }
            else
            {
                sb.Append("You're fairly certain this is an enchanted item, and will undoubtedly alter your body and mind until you fully embody what it is to be a bimbo." +
                          "You're not really sure if that's something you want.");
            }
            sb.Append("Checking the tag confirms your suspicions. ");
            if (SillyModeSettings.isEnabled)
            {
                sb.Append("It reads: " + SafelyFormattedString.FormattedText("Made in Mareth. Machine wash cold. ", StringFormats.ITALIC));
            }
            else
            {
                sb.Append(" It also details a means to disable the effect. " + GlobalStrings.NewParagraph() + "Do you leave the bimbo-inducing effects " +
                          "enabled, or do you disable them?");
            }

            return(sb.ToString());
        }
Beispiel #16
0
        private static string DoggoWarningText(Creature target, bool wasPreviouslyWarned)
        {
            string endText = wasPreviouslyWarned ? ". At this point, you almost feel like you're pushing your luck" : "";

            return(Environment.NewLine + Environment.NewLine + SafelyFormattedString.FormattedText("Eating the pepper, you realize how dog-like you've become, " +
                                                                                                   "and you wonder what else the peppers could change" + endText + "...", StringFormats.BOLD));
        }
        private static string BeeTransformStr(TailData previousTailData, PlayerBase player)
        {
            OvipositorData previousOvipositorData = previousTailData.ovipositor;

            if (previousOvipositorData.type != OvipositorType.NONE)
            {
                return("Your " + previousOvipositorData.ShortDescription() + " feels strange. Suddenly, it expels all of its eggs, which then disintegrate for some reason. " +
                       "It them morphs slightly, shifting until " + SafelyFormattedString.FormattedText("you now have a bee ovipositor!", StringFormats.BOLD));
            }
            else
            {
                string corruptionText;
                if (player.corruption > 80)
                {
                    corruptionText = "Looks like you have something " + (player.hasCock ? "else " : "") + "to use to punish your enemies with.";
                }
                else if (player.corruption > 50)
                {
                    corruptionText = "You can think of more than a few kinky things you can do with your new sex-organ.";
                }
                else
                {
                    corruptionText = "You idly wonder what laying them with your new bee ovipositor will feel like...";
                }

                return("An odd swelling starts in your " + (previousTailData.type != player.tail.type ? "now bee-like " : "") + "abdomen, just below your stinger. Curling around, " +
                       "you reach back to your extended, bulbous bee stinger and run your fingers along the underside. You gasp when you feel a tender, yielding slit near the stinger. " +
                       "As you probe this new orifice, a shock of pleasure runs through you, and a tubular, black, semi-hard appendage drops out, pulsating as heavily as any sexual organ. " +
                       SafelyFormattedString.FormattedText("The new organ is clearly an ovipositor!", StringFormats.BOLD) + " A few gentle prods confirm that it's just as sensitive; " +
                       "you can already feel your internals changing, adjusting to begin the production of unfertilized eggs. " + corruptionText);
            }
        }
        private string GainedRubberySkinPerk(Creature consumer, bool knewAboutBlackEggs)
        {
            if (!knewAboutBlackEggs)
            {
                string corruptionText;
                if (consumer.corruption < 66)
                {
                    corruptionText = ("Looking like this makes you feel like some kind of freak, but fortunately you can change back whenever you want.");
                }
                else
                {
                    corruptionText = "You feel like some kind of sexy rubber-skinned love-doll, though you can go back to normal if you really want.";
                }

                return(GlobalStrings.NewParagraph() + "Your already flawless smooth skin begins to tingle as it changes again. It becomes shinier as its texture " +
                       "changes subtly. You gasp as you touch yourself and realize your skin is suddenly covered in a strange substance. " +
                       "The stuff is everywhere, obsuring your vision and making it difficult to breathe. Just as you're about to pass out, something clicks in your mind and " +
                       "you gain control of the strange substance, as if it were another muscle in your body, and it receeds into your skin. Cautiously, you let it once again, " +
                       "and this time you retain your ability to see and breathe normally. It seems you can now have a thin layer of a latex-like substance coat your body, " +
                       "like a second skin. " + corruptionText + " You have little doubt you'll find uses for this later, be it in combat or, more kinky situations, if you so choose. "
                       + Environment.NewLine + SafelyFormattedString.FormattedText("Perk gained: Rubbery Skin. You can now choose to cover your body in a thin layer of latex " +
                                                                                   "in certain scenes for unique sexual interactions.", StringFormats.BOLD) + GlobalStrings.NewParagraph() +
                       "Looks like you now know what rubber eggs can do to you, you note with a smirk.");
            }
            else
            {
                return("A familiar sensation runs through your skin, and you are once again covered in a thin layer of latex. this time, you're prepared, and you gain control " +
                       "over it with little effort. It looks like " + SafelyFormattedString.FormattedText("you've regained the ability to coat your body in latex!",
                                                                                                          StringFormats.BOLD) + " You knew what these things could do to you, so this isn't really that surprising.");
            }
        }
        private static string SpiderTransformStr(TailData previousTailData, PlayerBase player)
        {
            OvipositorData previousOvipositorData = previousTailData.ovipositor;

            if (previousOvipositorData.type != OvipositorType.NONE)
            {
                return("Your " + previousOvipositorData.ShortDescription() + " changes along with your tail. It expels all of its eggs, which then disintegrate for some reason. " +
                       "It them morphs slightly, shifting until " + SafelyFormattedString.FormattedText("you now have a bee ovipositor!", StringFormats.BOLD));
            }
            else
            {
                string corruptionText;
                if (player.corruption > 80)
                {
                    corruptionText = "Looks like you have something " + (player.hasCock ? "else " : "") + "to use to punish your enemies with.";
                }
                else if (player.corruption > 50)
                {
                    corruptionText = "You can think of more than a few kinky things you can do with your new appendage.";
                }
                else
                {
                    corruptionText = "You idly wonder what laying eggs with this thing will feel like...";
                }

                return("An odd swelling sensation floods your " + (previousTailData.type != player.tail.type ? "now " : "") + "spider half, just below where you store your webbing. " +
                       "Curling your abdomen underneath you for a better look, you gasp in recognition at your new 'equipment'! Your semi-violent run-ins with the swamp's population " +
                       "have left you " + SafelyFormattedString.FormattedText("intimately", StringFormats.ITALIC) + " familiar with the new appendage. " +
                       SafelyFormattedString.FormattedText("It's a drider ovipositor!", StringFormats.BOLD) + " A few light prods confirm that it's just as sensitive " +
                       "as any of your other sexual organs. " + corruptionText);
            }
        }
Beispiel #20
0
        private static string SalonUnlockText()
        {
            var player = GameEngine.currentlyControlledCharacter;
            //OutputImage("location-salon"));
            StringBuilder sb = new StringBuilder("You step inside the cave, and are greeted by a sight you did not expect. The cave's floor is covered with smooth wood panelling " +
                                                 "and the walls are nearly entirely covered with hanging mirrors. The few stalactites have hooks drilled into them, " +
                                                 "from which hang hundreds of scissors, shears, razors, combs, and other hairstyling implements. It reminds you of the hair-cutter's shop in your hometown." +
                                                 Environment.NewLine + Environment.NewLine + "There are a few chairs along the wall and goblins with latex dresses and gloves looking bored." +
                                                 " At the sight of you they perk up and clamor around you excitedly, until one with a gravity-defying chest pushes them apart and greets you. \"" +
                                                 SafelyFormattedString.FormattedText("I apologize for my daughters,", StringFormats.ITALIC) + "\" she says as she presses herself against you. \" +" +
                                                 SafelyFormattedString.FormattedText("They're a bunch of brainless hussies for the most part. My name is Lynnette, and welcome to my salon! " +
                                                                                     "You want your hair cut or lengthened? We've got you covered, and we don't ask for much - just a shot of cum.", StringFormats.ITALIC));

            if (player.genitals.numCocks == 0)
            {
                sb.Append(SafelyFormattedString.FormattedText(" You look like you don't got any of your own, but we've got glory holes in the back if you need to get some. " +
                                                              "Just don't swallow too much, ok?", StringFormats.ITALIC) + "\"" + Environment.NewLine + Environment.NewLine +
                          "She shows you to the back of the cave, which is boarded-up. There are about 20 holes in boards, and most are empty. While you watch, " +
                          "a few new dicks slide in, and just as quickly the goblin's daughters commence sucking and f*****g them. There are only a few you could take a crack at -" +
                          " do you blow one (and if so which one)?");
            }
            else
            {
                string genderStr = player.genitals.AppearsMoreMaleThanFemale() ? "kinky boi" : "naughty girl";
                sb.Append(SafelyFormattedString.FormattedText(" I'll even do you the favor of letting you blow it in my mouth, I've already got a bun in the oven. " +
                                                              "So what do you say? Want a spooge and a haircut? Or would you rather go get your payment from one of the gloryholes in the back, you " + genderStr,
                                                              StringFormats.ITALIC) + Environment.NewLine + Environment.NewLine +
                          "In the very back of the salon you can see a boarded-up wall with holes cut in it, some of which are currently plugged by various monstrous penises. " +
                          "Do you let the goblin blow you, or do you go suck your payment from one of them?");
            }

            sb.Append(Environment.NewLine + Environment.NewLine + "(" + SafelyFormattedString.FormattedText("Salon unlocked in 'places' menu from camp", StringFormats.BOLD) + ")");

            return(sb.ToString());
        }
Beispiel #21
0
 private static string VolcanicCragUnlock()
 {
     return("You walk for some time, roaming the hard-packed and pink-tinged earth of the demon-realm of Mareth. " +
            "As you progress, you can feel the air getting warm. It gets hotter as you progress until you finally stumble across a blackened landscape. " +
            "You reward yourself with a sight of the endless series of a volcanic landscape. Crags dot the landscape." + Environment.NewLine + Environment.NewLine +
            SafelyFormattedString.FormattedText("You've discovered the Volcanic Crag!", StringFormats.BOLD));
 }
Beispiel #22
0
        private static string GenericGrewVaginaDesc(PlayerBase player, byte grownVaginaIndex)
        {
            string multiVagText = player.vaginas.Count > 1 ? "alongside your previous one!" : "!";

            return("An itching starts in your crotch and spreads vertically. You reach down and discover an opening.  You have grown a " +
                   SafelyFormattedString.FormattedText("new " + player.vaginas[grownVaginaIndex].LongDescription() + multiVagText, StringFormats.BOLD));
        }
Beispiel #23
0
        private static string RemovedQuadNippleText(Creature target)
        {
            string armorText = target.wearingArmor ? "under your " + target.armor.ItemName() : target.wearingUpperGarment ? "under your " + target.upperGarment.ItemName() : "down";

            return(GlobalStrings.NewParagraph() + "A strange burning sensation fills your breasts, and you look " + armorText + " to see your extra nipples are gone! " +
                   SafelyFormattedString.FormattedText("You've lost your extra nipples!", StringFormats.BOLD));
        }
Beispiel #24
0
        private static string SandTrapTransformStr(VaginaData oldVagina, PlayerBase player)
        {
            var currentVag = player.vaginas[oldVagina.vaginaIndex];

            //should never happen but would cause strangeness in my lazy check later, so we'll explicitely handle it.
            if (oldVagina.type == currentVag.type)
            {
                return("Your v****a feels odd, but a quick inspection reveals nothing changed. Odd.");
            }

            StringBuilder sb = new StringBuilder(GlobalStrings.NewParagraph());

            //2 vaginas, and both used to be the same type - we want to tell them which one we're talking about.
            if (player.vaginas.Count == 2 && player.genitals.CountVaginasOfType(oldVagina.type) == 1)
            {
                sb.Append($"Your {Utils.NumberAsPlace(oldVagina.vaginaIndex)} {oldVagina.ShortDescription()}");
            }
            else
            {
                sb.Append($"Your {oldVagina.LongDescription(false)}");
            }

            if (oldVagina.type == HUMAN)
            {
                sb.Append(" feels... odd. You undo your clothes and gingerly inspect your nether regions. " +
                          "The tender pink color of your sex has disappeared, replaced with smooth, marble blackness starting at your lips and working inwards.");
            }
            else
            {
                sb.Append(" feels... odd. You undo your clothes and gingerly inspect your nether regions. You quickly notice it has changed back toward something more distincly human, "
                          + "though it is most definitely not. Instead of tender pink inner folds you'd expect, your sex is a smooth marble blackness, "
                          + "beginning at your outer lips and moving inward.");
            }
            //(Wet:
            if (currentVag.wetness >= VaginalWetness.SLICK)
            {
                sb.Append(" Your natural lubrication makes it gleam invitingly.");
            }
            //(Corruption <50:
            if (player.corruption < 50)
            {
                sb.Append(" After a few cautious touches you decide it doesn't feel any different");

                if (oldVagina.type != VaginaType.HUMAN)
                {
                    sb.Append(" than you'd expect");
                }
                sb.Append(" - it does certainly look odd, though.");
            }
            else
            {
                sb.Append(" After a few cautious touches you decide it doesn't feel any different - the sheer bizarreness of it is a big turn on though, " +
                          "and you feel it beginning to shine with anticipation at the thought of using it.");
            }

            sb.Append(SafelyFormattedString.FormattedText("Your v****a is now ebony in color.", StringFormats.BOLD));

            return(sb.ToString());
        }
Beispiel #25
0
        private string Outro(Creature consumer, BimBro bimbro, bool lostFeeder)
        {
            string perks;

            if (bimbro is null)
            {
                perks = SafelyFormattedString.FormattedText("Perks Gained: BroBody, Bro Brains!", StringFormats.BOLD) + Environment.NewLine;

                if (lostFeeder)
                {
                    perks += SafelyFormattedString.FormattedText("Perks Lost: Feeder!", StringFormats.BOLD);
                }

                StringBuilder sb = new StringBuilder();
                if (consumer.wearingAnything)
                {
                    sb.Append("You finish admiring yourself and adjust your " + (consumer.wearingArmor ? consumer.armor.ItemName() : "clothing") +
                              " to better fit your new physique.");
                }
                else
                {
                    sb.Append("You take a moment to admire your nude body in all its manly, ripped glory, especially your manly endowment" + (consumer.cocks.Count > 1 ? "s" : "") + ".");
                }
                sb.Append(" Maybe there's some bitches around you can f**k. Hell, as good as you look, you might have other dudes wanting you to f**k them too, no h**o." + GlobalStrings.NewParagraph() + perks);
                return(sb.ToString());
            }
            else if (bimbro.bimboBody)
            {
                perks = SafelyFormattedString.FormattedText("Perks Updated: Bimbo Body => Futa Form", StringFormats.BOLD);

                if (bimbro.bimbroBrains)
                {
                    perks += SafelyFormattedString.FormattedText(", Bro Brains", StringFormats.BOLD);
                }
                perks += SafelyFormattedString.FormattedText("!", StringFormats.BOLD);

                if (lostFeeder)
                {
                    perks += Environment.NewLine + SafelyFormattedString.FormattedText("Perks Lost: Feeder!", StringFormats.BOLD);
                }

                return("Finally, you feel the transformation skittering to a halt, leaving you to openly roam your new chiseled and sex-ready body. "
                       + "So what if you can barely form coherent sentences anymore? A body like this does all the talking you need, you figure!" + GlobalStrings.NewParagraph() + perks);
            }
            else
            {
                perks = "";
                if (lostFeeder)
                {
                    perks += Environment.NewLine + SafelyFormattedString.FormattedText("Perks Lost: Feeder!", StringFormats.BOLD);
                }

                string dudeSex = bimbro.futaBody
                                        ? "Or studs to get f****d by, you don't really care. Hell, if it lets you f**k it or f***s you, you'd bang just about anything."
                                        : "Or dudes, if they're into that sort of thing (no h**o). Not that you'd blame them, you're a f*****g stud!";
                return("As the beer finishes its course, you're able to admire your body once more. Goddamn, you look good. Time to find a few bitches to f**k. " + dudeSex +
                       GlobalStrings.NewParagraph() + perks);
            }
        }
Beispiel #26
0
 private static string HighMountainUnlock()
 {
     return("After exploring the forest so many times, you decide to really push it, and plunge deeper and deeper into the woods. The further you go the darker it gets, " +
            "but you courageously press on. The plant-life changes too, and you spot more and more lichens and fungi, many of which are luminescent. " +
            "Finally, a wall of tree-trunks as wide as houses blocks your progress. There is a knot-hole like opening in the center, and a small sign marking it as " +
            "the entrance to the 'HighMountains'. You don't press on for now, but you could easily find your way back should you decide to later." +
            Environment.NewLine + Environment.NewLine + SafelyFormattedString.FormattedText("You've discovered the High Mountains!", StringFormats.BOLD));
 }
 private static string TownRuinsUnlockText()
 {
     return("You follow the overgrown path inland, away from the shore of the lake. You pass through thick trees, struggling not to lose the path, " +
            "before finally reaching what is clearly the end. In front of you lie crumbling walls, broken and scattered by the wind and rain... " +
            "and by other forces entirely. Beyond them are houses that have been torn apart, burned or collapsed. This was clearly once a village, " +
            "but it was devastated at some point in the past. Demon attack is the first possibility that leaps into your mind. You examine the ruins for a " +
            "time, and then decide to head back to camp. You don't think it would be wise to investigate here without preparing first." + Environment.NewLine +
            Environment.NewLine + "(" + SafelyFormattedString.FormattedText("\"TownRuins\" added to Places menu.", StringFormats.BOLD) + ")");
 }
 private static string ForestUnlock()
 {
     return("You walk for quite some time, roaming the hard-packed and pink-tinged earth of the demon-realm. " +
            "Rust-red rocks speckle the wasteland, as barren and lifeless as anywhere else you've been. A cool breeze suddenly brushes against your face, " +
            "as if gracing you with its presence. You turn towards it and are confronted by the lush foliage of a very old looking forest. " +
            "You smile as the plants look fairly familiar and non-threatening. Unbidden, you remember your decision to test the properties of this place, and think of your campsite as you walk forward. " +
            "Reality seems to shift and blur, making you dizzy, but after a few minutes you're back, and sure you'll be able to return to the forest with similar speed." +
            Environment.NewLine + Environment.NewLine + SafelyFormattedString.FormattedText("You have discovered the Forest!", StringFormats.BOLD));
 }
Beispiel #29
0
 private static string GlacialRiftUnlock()
 {
     return("You walk for some time, roaming the hard-packed and pink-tinged earth of the demon-realm of Mareth. As you progress, " +
            "a cool breeze suddenly brushes your cheek, steadily increasing in intensity and power until your clothes are whipping around your body in a frenzy. " +
            "Every gust of wind seems to steal away part of your strength, the cool breeze having transformed into a veritable arctic gale. " +
            "You wrap your arms around yourself tightly, shivering fiercely despite yourself as the hard pink dirt slowly turns to white; " +
            "soon you’re crunching through actual snow, thick enough to make you stumble with every other step. You come to a stop suddenly as the ground before you " +
            "gives way to a grand ocean, many parts of it frozen in great crystal islands larger than any city." + Environment.NewLine + Environment.NewLine +
            SafelyFormattedString.FormattedText("You've discovered the Glacial Rift!", StringFormats.BOLD));
 }
Beispiel #30
0
 private static string ChangedArmsText(Creature target, ArmData oldArmData)
 {
     return(GlobalStrings.NewParagraph() + "Weakness overcomes your arms, and no matter what you do, you can't muster the strength to raise or move them."
            + " Did the pepper have some drug-like effects? Sitting on the ground, you wait for the limpness to end."
            + " As you do so, you realize that the bones at your hands are changing, as well as the muscles on your arms."
            + " They're soon covered, from the shoulders to the tip of your digits, on a layer of soft,"
            + " fluffy " + target.ActiveHairOrFurColor().AsString() + " fur."
            + " Your hands gain pink, padded paws where your palms were once, and your nails become short claws,"
            + " not sharp enough to tear flesh, but nimble enough to make climbing and exploring easier. "
            + SafelyFormattedString.FormattedText("Your arms have become like those of a dog!", StringFormats.BOLD));
 }