protected bool ChangeFemininity(Creature target, StringBuilder sb) { FemininityData oldFem = target.femininity.AsReadOnlyData(); if (target.femininity.ChangeFemininityToward(70, 2) != 0) { sb.Append(FemininityChangedText(target, oldFem)); return(true); } return(false); }
private string Masculinize(Creature consumer, bool firstTime, FemininityData oldFem) { if (firstTime) { return("Lastly, the change hits your face. You can feel your jawbones shifting and sliding around, your skin changing to accommodate your face's new shape. " + "Once it's finished, you feel your impeccable square jaw and give a wide, easy-going grin. You look awesome!" + GlobalStrings.NewParagraph()); } else { return("The changes finally return to your face, ensuring your face matches your fully masculine body. After finding something to reflective, you note your" + "square jawline and manly cheekbones. You snap your fingers and point toward your reflection. " + SafelyFormattedString.FormattedText("Still got it!", StringFormats.ITALIC) + GlobalStrings.NewParagraph()); } }
public string FemininityChangedText(FemininityData oldFemininity) { var strength = value - oldFemininity.value; if (strength == 0) { return(""); } //See if a change happened! if (ThresholdChanged(oldFemininity)) { //Gain fem? if (strength > 0) { return(GlobalStrings.NewParagraph() + "<b>Your facial features soften as your body becomes more feminine. (+" + strength + ")</b>"); } else { strength *= -1; return(GlobalStrings.NewParagraph() + "<b>Your facial features harden as your body becomes more masculine. (+" + strength + ")</b>"); } } //Barely noticable change! else { if (strength > 0) { return(GlobalStrings.NewParagraph() + "Your face tingles slightly as it changes imperceptibly towards being more feminine. (+" + strength + ")"); } else { strength *= -1; return(GlobalStrings.NewParagraph() + "Your face tingles slightly as it changes imperceptibly towards being more masculine. (+" + strength + ")"); } } }
protected virtual string AdjustFemininity(Creature target, FemininityData oldData) { return(target.femininity.FemininityChangedText(oldData)); }
protected override string FemininityChangedText(Creature target, FemininityData oldFem) { return("You run your " + target.hands.ShortDescription() + " across the fabric of your Gown, then against your face as it feels like" + " there is something you need to wipe off. " + target.femininity.FemininityChangedText(oldFem)); }
//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()); }
protected abstract string FemininityChangedText(Creature target, FemininityData oldFem);