internal static string SackDescription(IBalls balls) { if (balls.count == 0) { return("prostate"); } return(Utils.RandomChoice("scrotum", "sack", "nutsack", "ballsack", "beanbag", "pouch")); }
//size strings internal static string SizeText(IBalls balls, bool precise) { if (precise) { return(SimpleSizeStr(balls)); } else { return(SizeStr(balls)); } }
//count related internal static string CountText(IBalls balls, bool preciseCount, bool withArticle) { if (preciseCount) { return(SimpleCountStr(balls, withArticle)); } else { return(CountStr(balls, withArticle)); } }
internal static string LongDescription(IBalls balls, bool simplified, bool alternateFormat, bool prostateIfNoBalls, out bool isPlural) { if (balls.count == 0) { isPlural = false; return(alternateFormat ? "a prostate" : "prostate"); } else { isPlural = balls.count != 1; return(CountText(balls, simplified, alternateFormat) + SizeText(balls, simplified) + BallsNoun(balls.count != 1)); } }
internal static string SizeDescription(IBalls balls, bool preciseSize, out bool isPlural) { if (balls.count == 0) { isPlural = true; return("non-existent balls"); } else { isPlural = balls.count != 1; return(SizeText(balls, preciseSize) + BallsNoun(balls.count != 1)); } }
private static string SizeStr(IBalls balls) { if (balls.size >= 18) { return("hideously swollen and oversized "); } else if (balls.size >= 15) { return("beachball-sized "); } else if (balls.size >= 12) { return("watermelon-sized "); } else if (balls.size >= 9) { return("basketball-sized "); } else if (balls.size >= 7) { return("soccerball-sized "); } else if (balls.size >= 5) { return("cantaloupe-sized "); } else if (balls.size >= 4) { return("grapefruit-sized "); } else if (balls.size >= 3) { return("apple-sized "); } else if (balls.size >= 2) { return("baseball-sized "); } else if (balls.size > 1) { return("large "); } else { return(""); } }
internal static string CountDescription(IBalls balls, bool simplifiedCount, bool alternateFormat, bool prostateIfNoBalls, out bool isPlural) { if (balls.count == 0 && prostateIfNoBalls) { isPlural = false; return(alternateFormat ? "a prostate" : "prostate"); } else if (balls.count == 0) { isPlural = true; return(alternateFormat ? "a distinct lack of balls" : "lack of balls"); } else { isPlural = balls.count != 1; return(CountText(balls, simplifiedCount, alternateFormat) + BallsNoun(balls.count != 1)); } }
private static string CountStr(IBalls balls, bool withArticle) { if (balls.count == 0) { return(withArticle ? "a distinct lack of" : "lack of"); } else if (balls.count == 1) { if (withArticle) { return(Utils.RandomChoice("a single ", "a solitary ", "a lone ", "an individual ")); } else { return(Utils.RandomChoice("single ", "solitary ", "lone ", "individual ")); } } else if (balls.count == 2) { if (withArticle) { return(Utils.RandomChoice("a pair of ", "two ", "a duo of ")); } else { return(Utils.RandomChoice("pair of ", "two ", "duo of ")); } } else if (balls.count == 4) { return(Utils.RandomChoice("four ", "quadruple ", "two pairs of ", (withArticle ? "a quartette of" : "quartette of "))); } else { if (withArticle) { return(Utils.RandomChoice("a multitude of ", "many ", "a large handful of ", Utils.NumberAsText(balls.count / 2) + "pairs of ")); } else { return(Utils.RandomChoice("multitude of ", "many ", "large handful of ", Utils.NumberAsText(balls.count / 2) + "pairs of ")); } } }
private static string SimpleCountStr(IBalls balls, bool withArticle) { if (balls.count == 0) { return(withArticle ? "a distinct lack of " : "lack of "); } else if (balls.count == 1) { return(withArticle ? "a single " : "sole "); } else if (balls.count < 4) { return(withArticle ? "a pair of " : "pair of "); } else { return(Utils.NumberAsText(balls.count / 2) + " pairs of "); } }
private static string SimpleSizeStr(IBalls balls) { return(Measurement.ToNearestSmallUnit(balls.size, true, true, false)); }
internal static string FullDescription(IBalls balls, bool preciseMeasurements, bool alternateFormat, bool prostateIfNoBalls, out bool isPlural) { if (balls.count == 0 && prostateIfNoBalls) { isPlural = false; return(FallbackProstateText(alternateFormat)); } else if (balls.count == 0) { isPlural = true; return(alternateFormat ? "a distinct lack of balls" : "lack of balls"); } bool uniBall = balls.count == 1; string description = ""; //count description += CountText(balls, preciseMeasurements, alternateFormat); //balls.ballSize (normal) if (Utils.Rand(3) <= 1) { if (balls.size > 1 && !uniBall) { description += SizeText(balls, preciseMeasurements); } //balls.ballSize (UNIBALL) else if (uniBall) { description += Utils.RandomChoice("tightly-compressed ", "snug ", "cute ", "pleasantly squeezed ", "compressed-together "); } } //adjective: //Descriptive if (balls.hoursSinceLastCum >= 48 && Utils.RandBool()) { description += Utils.RandomChoice("overflowing", "swollen", "cum-engorged"); } //lusty if (balls.relativeLust > 90 && (description == "") && Utils.RandBool()) { description += Utils.RandomChoice("eager", "full", "needy", "desperate", "throbbing", "heated", "trembling", "quivering", "quaking"); } //Slimy skin if (balls.bodyType == BodyType.GOO) { if (description.Length != 0) { description += " "; } description += Utils.RandomChoice("goopey", "gooey", "slimy"); } if (description.Length != 0) { description += " "; } description += BallsStrings.BallsNoun(balls.count != 1); if (uniBall && Utils.RandBool()) { if (Utils.Rand(3) == 0) { description += " merged into a cute, spherical package"; } else if (Utils.RandBool()) { description += " combined into a round, girlish shape"; } else { description += " squeezed together into a perky, rounded form"; } } isPlural = !uniBall; return(description); }