public string RestoredAllVaginasGeneric(VaginaCollectionData oldVaginas)
        {
            //if changed has elements, we know they still exist in the current collection.
            IEnumerable <ValueDifference <VaginaData> > changed = ChangedVaginas(oldVaginas, true);
            int changeCount = changed.Count(x => x.newValue.isDefault && !x.oldValue.isDefault);

            if (changeCount == 0)
            {
                return("");
            }

            int humanVags = CountVaginasOfType(VaginaType.HUMAN);

            string changeText;

            if (vaginas.Count == 1)
            {
                //old should never be null.
                VaginaData old = oldVaginas.vaginas.FirstOrDefault(x => x.collectionID == vaginas[0].collectionID);
                if (old is null)
                {
                    return("");
                }
                else
                {
                    return(vaginas[0].RestoredText(old));
                }
            }

            if (humanVags < vaginas.Count)
            {
                changeText = "vaginas and find that one has returned back to a more natural, human size and color.";
            }
            else if (humanVags > changeCount)
            {
                changeText = "vaginas and find that one has returned back to something more fit on a human, matching the other one.";
            }
            else
            {
                changeText = "vaginas and find that they have turned back to their more natural, human size and color.";
            }

            string armorText = creature?.wearingArmor == true || creature?.wearingUpperGarment == true ? "Undoing your clothes" : "Looking down";

            return(GlobalStrings.NewParagraph() + "nSomething invisible brushes against your sex, making you twinge. " + armorText + ", you take a look at your "
                   + changeText);
        }
Пример #2
0
 protected virtual string RestoreAllVaginasText(Creature target, VaginaCollectionData oldCollection)
 {
     return(target.genitals.allVaginas.RestoredAllVaginasGeneric(oldCollection));
 }
Пример #3
0
        //MOD NOTE: this has been changed to work like bimbo liqueur - it will remove all vaginas and restore breasts to manly defaults if
        //the futa perk is not active.
        protected override string OnConsumeAttempt(Creature consumer, out bool consumeItem, out bool isBadEnd)
        {
            isBadEnd = false;

            StringBuilder sb = new StringBuilder();
            //get our common bimbo/bro/futa perk store. Note that it may be null (if we don't have it).
            BimBro bimbro = consumer.GetPerkData <BimBro>();

            //intro text.

            //first check: we don't have any bro/futa/bimbo perks, because it's not in our perk list. do the standard faire.
            sb.Append(Intro(consumer, bimbro));

            if (bimbro?.hasBroEffect == true)
            {
                (consumer as CombatCreature)?.RecoverFatigue(33);
                (consumer as CombatCreature)?.AddHPPercent(1);
            }

            VaginaCollectionData oldVaginaCollection = consumer.genitals.allVaginas.AsReadOnlyData();

            //get taller. only occurs if the player does not already have the bro perk in any form.
            if ((bimbro is null || !bimbro.broBody) && consumer.build.heightInInches < 77)
            {
                short delta = consumer.build.SetHeight(77);

                sb.Append(GrewTaller(consumer, delta));
            }

            //(T**s b' gone)
            //Does not affect creature if they already have bimbo or futa perks.
            if (bimbro is null || bimbro.broBody)
            {
                //Note: minimum cup size respects current gender. we'll need to make the creature male (or genderless) first.
                consumer.RemoveAllVaginas();

                if (consumer.genitals.BiggestCupSize() >= consumer.genitals.smallestPossibleMaleCupSize)
                {
                    BreastCollectionData oldRows = consumer.genitals.allBreasts.AsReadOnlyData();
                    consumer.RemovePerk <Feeder>();
                    bool stoppedLactation = consumer.genitals.SetLactationTo(LactationStatus.NOT_LACTATING);

                    sb.Append(ChangedBreastsText(consumer, bimbro, oldRows, stoppedLactation));
                }
            }

            //Body tone Flavor text. No effect on stats (yet)
            sb.Append(BecomeRippedFlavorText(consumer, bimbro));



            //Dick&balls growth. Affects all.

            //(has dick less than 10 inches)
            if (consumer.hasCock)
            {
                bool grewBalls      = !consumer.hasBalls;
                bool lengthenedCock = false;

                if (consumer.cocks[0].length < 10)
                {
                    lengthenedCock = true;
                    consumer.cocks[0].SetLength(10);
                    if (consumer.cocks[0].girth < 2.75)
                    {
                        consumer.cocks[0].SetGirth(2.75);
                    }
                }

                if (!consumer.hasBalls)
                {
                    consumer.balls.GrowBalls(2, 3);
                }

                sb.Append(LengthenedCock(consumer, bimbro, lengthenedCock, grewBalls));
            }
            //(No dick)
            else
            {
                consumer.AddCock(CockType.defaultValue, 12, 2.75);
                bool grewBalls = false;
                if (!consumer.balls.hasBalls)
                {
                    grewBalls = true;
                    consumer.balls.GrowBalls(2, 3);
                }
                sb.Append(GrewCock(consumer, bimbro, grewBalls));
            }

            //(Pussy b gone)
            //Note: only applies if consumer does not have bimbo or futa perks. also note that we already silently removed them so the breasts would resize correctly.
            //so all this does is print out the data.
            if ((bimbro is null || bimbro.broBody) && oldVaginaCollection.hasVagina)
            {
                sb.Append(RemovedAllVaginas(consumer, oldVaginaCollection));
            }

            //(below max masculinity)
            if ((bimbro is null || bimbro.broBody) && consumer.femininity > 0)
            {
                FemininityData oldFem = consumer.femininity.AsReadOnlyData();
                sb.Append(consumer.ModifyFemininity(0, 100));
                sb.Append(Masculinize(consumer, bimbro is null, oldFem));
            }

            //max tone. Thickness + 50
            //both are silent.
            consumer.build.ChangeMuscleToneToward(100, 100);
            consumer.build.ChangeThicknessToward(100, 50);

            if (consumer.intelligence > 21)
            {
                consumer.SetIntelligence((byte)Math.Floor(Math.Max(consumer.intelligenceTrue / 5.0, 21)));
            }
            consumer.DeltaCreatureStats(str: 33, tou: 33, inte: -1, lib: 4, lus: 40);

            sb.Append(Outro(consumer, bimbro, consumer.perks.HasPerk <Feeder>()));

            //apply the perks. this will also correct any silent data we missed.
            if (bimbro is null)
            {
                consumer.AddPerk(new BimBro(Gender.MALE));
            }
            else
            {
                bimbro.Broify();
            }


            ////Bonus cum production!
            //sb.Append("<b>(Bro Body - Perk Gained!)" + Environment.NewLine);
            //sb.Append("(Bro Brains - Perk Gained!)</b>" + Environment.NewLine);//int to 20. max int 50)
            //if (consumer.HasPerk<Feeder>())
            //{
            //	sb.Append("<b>(Perk Lost - Feeder!)</b>" + Environment.NewLine);
            //	consumer.RemovePerk<Feeder>();
            //}

            consumeItem = true;
            return(sb.ToString());
        }
Пример #4
0
 private string RemovedAllVaginas(Creature consumer, VaginaCollectionData oldVaginaCollection)
 {
     return("At the same time, your " + oldVaginaCollection.AllVaginasLongDescription(out bool isPlural) + (isPlural ? " burn" : " burns") +
            " hot, nearly feeling on fire. You cuss in a decidedly masculine way for a moment before the pain fades to a dull itch. " +
            "Scratching it, you discover your lady-parts are gone. Only a sensitive patch of skin remains." + GlobalStrings.NewParagraph());
 }